summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_bg.c20
-rw-r--r--src/battle_controllers.c92
-rw-r--r--src/battle_data.c13
-rw-r--r--src/battle_main.c52
-rw-r--r--src/battle_message.c18
-rw-r--r--src/battle_records.c2
-rw-r--r--src/battle_script_commands.c26
-rw-r--r--src/battle_setup.c20
-rw-r--r--src/battle_util.c162
-rw-r--r--src/berry_blender.c4
-rw-r--r--src/clock.c4
-rw-r--r--src/credits.c2
-rw-r--r--src/data/heal_locations.h25
-rw-r--r--src/data/text/move_descriptions.h714
-rw-r--r--src/data/text/move_names.h358
-rw-r--r--src/data/text/species_names.h414
-rw-r--r--src/data/text/trainer_class_names.h73
-rw-r--r--src/data/trainer_parties.h12437
-rw-r--r--src/data/trainers.h11971
-rw-r--r--src/dynamic_placeholder_text_util.c (renamed from src/unk_text_util.c)10
-rw-r--r--src/egg_hatch.c2
-rw-r--r--src/field_region_map.c2
-rw-r--r--src/field_special_scene.c2
-rw-r--r--src/field_specials.c4329
-rw-r--r--src/heal_location.c74
-rwxr-xr-xsrc/item_menu.c2
-rw-r--r--src/link.c2
-rw-r--r--src/link_rfu.c46
-rw-r--r--src/list_menu.c12
-rw-r--r--src/load_save.c2
-rw-r--r--src/main_menu.c2
-rw-r--r--src/match_call.c4
-rw-r--r--src/menu.c3
-rw-r--r--src/overworld.c10
-rw-r--r--src/pokedex.c2
-rw-r--r--src/pokemon.c26
-rw-r--r--src/pokemon_storage_system.c523
-rw-r--r--src/pokemon_summary_screen.c358
-rw-r--r--src/recorded_battle.c6
-rw-r--r--src/region_map.c112
-rw-r--r--src/rom_8011DC0.c3266
-rw-r--r--src/rotating_gate.c6
-rw-r--r--src/safari_zone.c4
-rw-r--r--src/scrcmd.c4
-rw-r--r--src/strings.c2051
-rw-r--r--src/text.c4
-rw-r--r--src/tv.c4
-rw-r--r--src/walda_phrase.c1
-rw-r--r--src/wallclock.c4
49 files changed, 36814 insertions, 466 deletions
diff --git a/src/battle_bg.c b/src/battle_bg.c
index 9f5bd8740..999b64a54 100644
--- a/src/battle_bg.c
+++ b/src/battle_bg.c
@@ -279,7 +279,7 @@ static void sub_8035C4C(void)
{
if (gBattleOutcome == B_OUTCOME_WON)
{
- switch (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18)
+ switch (gLinkPlayers[gBattleScripting.multiplayerId].id)
{
case 0:
BattlePutTextOnWindow(gText_Win, 0x16);
@@ -301,7 +301,7 @@ static void sub_8035C4C(void)
}
else
{
- switch (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18)
+ switch (gLinkPlayers[gBattleScripting.multiplayerId].id)
{
case 0:
BattlePutTextOnWindow(gText_Win, 0x17);
@@ -324,7 +324,7 @@ static void sub_8035C4C(void)
}
else if (gBattleOutcome == B_OUTCOME_WON)
{
- if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 != 0)
+ if (gLinkPlayers[gBattleScripting.multiplayerId].id != 0)
{
BattlePutTextOnWindow(gText_Win, 0x17);
BattlePutTextOnWindow(gText_Loss, 0x16);
@@ -337,7 +337,7 @@ static void sub_8035C4C(void)
}
else
{
- if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 != 0)
+ if (gLinkPlayers[gBattleScripting.multiplayerId].id != 0)
{
BattlePutTextOnWindow(gText_Win, 0x16);
BattlePutTextOnWindow(gText_Loss, 0x17);
@@ -366,23 +366,23 @@ void sub_8035D74(u8 taskId)
name = gLinkPlayers[i].name;
linkPlayer = &gLinkPlayers[i];
- switch (linkPlayer->lp_field_18)
+ switch (linkPlayer->id)
{
case 0:
BattlePutTextOnWindow(name, 0x11);
- sub_8035AE4(taskId, linkPlayer->lp_field_18, 1, 2, 4);
+ sub_8035AE4(taskId, linkPlayer->id, 1, 2, 4);
break;
case 1:
BattlePutTextOnWindow(name, 0x12);
- sub_8035AE4(taskId, linkPlayer->lp_field_18, 2, 2, 4);
+ sub_8035AE4(taskId, linkPlayer->id, 2, 2, 4);
break;
case 2:
BattlePutTextOnWindow(name, 0x13);
- sub_8035AE4(taskId, linkPlayer->lp_field_18, 1, 2, 8);
+ sub_8035AE4(taskId, linkPlayer->id, 1, 2, 8);
break;
case 3:
BattlePutTextOnWindow(name, 0x14);
- sub_8035AE4(taskId, linkPlayer->lp_field_18, 2, 2, 8);
+ sub_8035AE4(taskId, linkPlayer->id, 2, 2, 8);
break;
}
}
@@ -393,7 +393,7 @@ void sub_8035D74(u8 taskId)
u8 opponentId = playerId ^ BIT_SIDE;
u8 opponentId_copy = opponentId;
- if (gLinkPlayers[playerId].lp_field_18 != 0)
+ if (gLinkPlayers[playerId].id != 0)
opponentId = playerId, playerId = opponentId_copy;
name = gLinkPlayers[playerId].name;
diff --git a/src/battle_controllers.c b/src/battle_controllers.c
index 1ce5d3099..4d714ca81 100644
--- a/src/battle_controllers.c
+++ b/src/battle_controllers.c
@@ -264,67 +264,67 @@ static void InitSinglePlayerBtlControllers(void)
for (var = gUnknown_0203C7B4, i = 0; i < MAX_BATTLERS_COUNT; i++)
{
- switch (gLinkPlayers[i].lp_field_18)
+ switch (gLinkPlayers[i].id)
{
case 0:
case 3:
- sub_81B8D64(gLinkPlayers[i].lp_field_18, 0);
+ sub_81B8D64(gLinkPlayers[i].id, 0);
break;
case 1:
case 2:
- sub_81B8D64(gLinkPlayers[i].lp_field_18, 1);
+ sub_81B8D64(gLinkPlayers[i].id, 1);
break;
}
if (i == var)
{
- gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer;
- switch (gLinkPlayers[i].lp_field_18)
+ gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToRecordedPlayer;
+ switch (gLinkPlayers[i].id)
{
case 0:
case 3:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].id] = B_POSITION_PLAYER_LEFT;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 0;
break;
case 1:
case 2:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].id] = B_POSITION_PLAYER_RIGHT;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 3;
break;
}
}
- else if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[var].lp_field_18 & 1))
- || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[var].lp_field_18 & 1)))
+ else if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[var].id & 1))
+ || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[var].id & 1)))
{
- gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer;
- switch (gLinkPlayers[i].lp_field_18)
+ gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToRecordedPlayer;
+ switch (gLinkPlayers[i].id)
{
case 0:
case 3:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].id] = B_POSITION_PLAYER_LEFT;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 0;
break;
case 1:
case 2:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].id] = B_POSITION_PLAYER_RIGHT;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 3;
break;
}
}
else
{
- gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedOpponent;
- switch (gLinkPlayers[i].lp_field_18)
+ gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToRecordedOpponent;
+ switch (gLinkPlayers[i].id)
{
case 0:
case 3:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_LEFT;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].id] = B_POSITION_OPPONENT_LEFT;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 0;
break;
case 1:
case 2:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_RIGHT;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].id] = B_POSITION_OPPONENT_RIGHT;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 3;
break;
}
}
@@ -506,69 +506,69 @@ static void InitLinkBtlControllers(void)
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
- switch (gLinkPlayers[i].lp_field_18)
+ switch (gLinkPlayers[i].id)
{
case 0:
case 3:
- sub_81B8D64(gLinkPlayers[i].lp_field_18, 0);
+ sub_81B8D64(gLinkPlayers[i].id, 0);
break;
case 1:
case 2:
- sub_81B8D64(gLinkPlayers[i].lp_field_18, 1);
+ sub_81B8D64(gLinkPlayers[i].id, 1);
break;
}
if (i == multiplayerId)
{
- gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToPlayer;
- switch (gLinkPlayers[i].lp_field_18)
+ gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToPlayer;
+ switch (gLinkPlayers[i].id)
{
case 0:
case 3:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = 0;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].id] = 0;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 0;
break;
case 1:
case 2:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = 2;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].id] = 2;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 3;
break;
}
}
else
{
- if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[multiplayerId].lp_field_18 & 1))
- || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[multiplayerId].lp_field_18 & 1)))
+ if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[multiplayerId].id & 1))
+ || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[multiplayerId].id & 1)))
{
- gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToLinkPartner;
- switch (gLinkPlayers[i].lp_field_18)
+ gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToLinkPartner;
+ switch (gLinkPlayers[i].id)
{
case 0:
case 3:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = 0;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].id] = 0;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 0;
break;
case 1:
case 2:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = 2;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].id] = 2;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 3;
break;
}
}
else
{
- gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToLinkOpponent;
- switch (gLinkPlayers[i].lp_field_18)
+ gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToLinkOpponent;
+ switch (gLinkPlayers[i].id)
{
case 0:
case 3:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = 1;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].id] = 1;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 0;
break;
case 1:
case 2:
- gBattlerPositions[gLinkPlayers[i].lp_field_18] = 3;
- gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].id] = 3;
+ gBattlerPartyIndexes[gLinkPlayers[i].id] = 3;
break;
}
}
diff --git a/src/battle_data.c b/src/battle_data.c
new file mode 100644
index 000000000..f3719ac2d
--- /dev/null
+++ b/src/battle_data.c
@@ -0,0 +1,13 @@
+#include "global.h"
+#include "battle.h"
+#include "data2.h"
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/species.h"
+#include "constants/trainers.h"
+
+#include "data/trainer_parties.h"
+#include "data/text/trainer_class_names.h"
+#include "data/trainers.h"
+#include "data/text/species_names.h"
+#include "data/text/move_names.h"
diff --git a/src/battle_main.c b/src/battle_main.c
index 6aa7ae622..86937f85f 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -828,7 +828,7 @@ static void SetAllPlayersBerryData(void)
for (i = 0; i < numPlayers; i++)
{
src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2);
- battlerId = gLinkPlayers[i].lp_field_18;
+ battlerId = gLinkPlayers[i].id;
for (j = 0; j < BERRY_NAME_COUNT - 1; j++)
gEnigmaBerries[battlerId].name[j] = src->name[j];
@@ -965,8 +965,8 @@ static void CB2_HandleStartBattle(void)
if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00)
{
- gLinkPlayers[0].lp_field_18 = 0;
- gLinkPlayers[1].lp_field_18 = 1;
+ gLinkPlayers[0].id = 0;
+ gLinkPlayers[1].id = 1;
}
SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32);
@@ -1153,10 +1153,10 @@ static void CB2_HandleStartMultiPartnerBattle(void)
{
u8 language;
- gLinkPlayers[0].lp_field_18 = 0;
- gLinkPlayers[1].lp_field_18 = 2;
- gLinkPlayers[2].lp_field_18 = 1;
- gLinkPlayers[3].lp_field_18 = 3;
+ gLinkPlayers[0].id = 0;
+ gLinkPlayers[1].id = 2;
+ gLinkPlayers[2].id = 1;
+ gLinkPlayers[3].id = 3;
GetFrontierTrainerName(gLinkPlayers[2].name, gTrainerBattleOpponent_A);
GetFrontierTrainerName(gLinkPlayers[3].name, gTrainerBattleOpponent_B);
sub_8165B88(&language, gTrainerBattleOpponent_A);
@@ -1214,7 +1214,7 @@ static void CB2_HandleStartMultiPartnerBattle(void)
if ((GetBlockReceivedStatus() & 3) == 3)
{
ResetBlockReceivedFlags();
- if (gLinkPlayers[playerMultiplayerId].lp_field_18 != 0)
+ if (gLinkPlayers[playerMultiplayerId].id != 0)
{
memcpy(gPlayerParty, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2);
memcpy(gPlayerParty + 3, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon) * 2);
@@ -1238,7 +1238,7 @@ static void CB2_HandleStartMultiPartnerBattle(void)
if ((GetBlockReceivedStatus() & 3) == 3)
{
ResetBlockReceivedFlags();
- if (gLinkPlayers[playerMultiplayerId].lp_field_18 != 0)
+ if (gLinkPlayers[playerMultiplayerId].id != 0)
{
memcpy(gPlayerParty + 2, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon));
memcpy(gPlayerParty + 5, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon));
@@ -1429,8 +1429,8 @@ static void CB2_PreInitMultiBattle(void)
if (numPlayers == 4)
{
- if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplierId].lp_field_18 & 1))
- || (gLinkPlayers[i].lp_field_18 & 1 && gLinkPlayers[playerMultiplierId].lp_field_18 & 1))
+ if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[playerMultiplierId].id & 1))
+ || (gLinkPlayers[i].id & 1 && gLinkPlayers[playerMultiplierId].id & 1))
{
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct4) * 3);
}
@@ -1590,7 +1590,7 @@ static void CB2_HandleStartMultiBattle(void)
for (id = 0; id < MAX_LINK_PLAYERS; id++)
{
sub_8185F90(gBlockRecvBuffer[id][1]);
- switch (gLinkPlayers[id].lp_field_18)
+ switch (gLinkPlayers[id].id)
{
case 0:
gTasks[var].data[3] |= gBlockRecvBuffer[id][1] & 0x3F;
@@ -1627,7 +1627,7 @@ static void CB2_HandleStartMultiBattle(void)
{
if (id == playerMultiplayerId)
{
- switch (gLinkPlayers[id].lp_field_18)
+ switch (gLinkPlayers[id].id)
{
case 0:
case 3:
@@ -1641,10 +1641,10 @@ static void CB2_HandleStartMultiBattle(void)
}
else
{
- if ((!(gLinkPlayers[id].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplayerId].lp_field_18 & 1))
- || ((gLinkPlayers[id].lp_field_18 & 1) && (gLinkPlayers[playerMultiplayerId].lp_field_18 & 1)))
+ if ((!(gLinkPlayers[id].id & 1) && !(gLinkPlayers[playerMultiplayerId].id & 1))
+ || ((gLinkPlayers[id].id & 1) && (gLinkPlayers[playerMultiplayerId].id & 1)))
{
- switch (gLinkPlayers[id].lp_field_18)
+ switch (gLinkPlayers[id].id)
{
case 0:
case 3:
@@ -1658,7 +1658,7 @@ static void CB2_HandleStartMultiBattle(void)
}
else
{
- switch (gLinkPlayers[id].lp_field_18)
+ switch (gLinkPlayers[id].id)
{
case 0:
case 3:
@@ -1690,7 +1690,7 @@ static void CB2_HandleStartMultiBattle(void)
{
if (id == playerMultiplayerId)
{
- switch (gLinkPlayers[id].lp_field_18)
+ switch (gLinkPlayers[id].id)
{
case 0:
case 3:
@@ -1704,10 +1704,10 @@ static void CB2_HandleStartMultiBattle(void)
}
else
{
- if ((!(gLinkPlayers[id].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplayerId].lp_field_18 & 1))
- || ((gLinkPlayers[id].lp_field_18 & 1) && (gLinkPlayers[playerMultiplayerId].lp_field_18 & 1)))
+ if ((!(gLinkPlayers[id].id & 1) && !(gLinkPlayers[playerMultiplayerId].id & 1))
+ || ((gLinkPlayers[id].id & 1) && (gLinkPlayers[playerMultiplayerId].id & 1)))
{
- switch (gLinkPlayers[id].lp_field_18)
+ switch (gLinkPlayers[id].id)
{
case 0:
case 3:
@@ -1721,7 +1721,7 @@ static void CB2_HandleStartMultiBattle(void)
}
else
{
- switch (gLinkPlayers[id].lp_field_18)
+ switch (gLinkPlayers[id].id)
{
case 0:
case 3:
@@ -2095,7 +2095,7 @@ static void sub_8038B94(u8 taskId)
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- switch (gLinkPlayers[r2].lp_field_18)
+ switch (gLinkPlayers[r2].id)
{
case 0:
case 2:
@@ -3964,9 +3964,9 @@ void BattleTurnPassed(void)
TurnValuesCleanUp(TRUE);
if (gBattleOutcome == 0)
{
- if (UpdateTurnCounters())
+ if (DoFieldEndTurnEffects())
return;
- if (TurnBasedEffects())
+ if (DoBattlerEndTurnEffects())
return;
}
if (HandleFaintedMonActions())
@@ -4008,7 +4008,7 @@ void BattleTurnPassed(void)
gChosenMoveByBattler[i] = MOVE_NONE;
}
- for (i = 0; i < 4; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
*(gBattleStruct->monToSwitchIntoId + i) = PARTY_SIZE;
*(&gBattleStruct->field_91) = gAbsentBattlerFlags;
diff --git a/src/battle_message.c b/src/battle_message.c
index 4f5190dec..13502d6f2 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -2383,25 +2383,25 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
toCpy = text;
break;
case B_TXT_LINK_PLAYER_MON1_NAME: // link first player poke name
- GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18]],
+ GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_LINK_OPPONENT_MON1_NAME: // link first opponent poke name
- GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 1]],
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 1]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_LINK_PLAYER_MON2_NAME: // link second player poke name
- GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 2]],
+ GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 2]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_LINK_OPPONENT_MON2_NAME: // link second opponent poke name
- GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 3]],
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 3]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
@@ -2467,7 +2467,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
}
else
{
- if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gPotentialItemEffectBattler)
+ if (gLinkPlayers[gBattleScripting.multiplayerId].id == gPotentialItemEffectBattler)
{
StringCopy(text, gEnigmaBerries[gPotentialItemEffectBattler].name);
StringAppend(text, sText_BerrySuffix);
@@ -2562,13 +2562,13 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
toCpy = gLinkPlayers[multiplayerID].name;
break;
case B_TXT_1F: // link partner name?
- toCpy = gLinkPlayers[GetBattlerMultiplayerId(2 ^ gLinkPlayers[multiplayerID].lp_field_18)].name;
+ toCpy = gLinkPlayers[GetBattlerMultiplayerId(2 ^ gLinkPlayers[multiplayerID].id)].name;
break;
case B_TXT_20: // link opponent 1 name?
- toCpy = gLinkPlayers[GetBattlerMultiplayerId(1 ^ gLinkPlayers[multiplayerID].lp_field_18)].name;
+ toCpy = gLinkPlayers[GetBattlerMultiplayerId(1 ^ gLinkPlayers[multiplayerID].id)].name;
break;
case B_TXT_21: // link opponent 2 name?
- toCpy = gLinkPlayers[GetBattlerMultiplayerId(3 ^ gLinkPlayers[multiplayerID].lp_field_18)].name;
+ toCpy = gLinkPlayers[GetBattlerMultiplayerId(3 ^ gLinkPlayers[multiplayerID].id)].name;
break;
case B_TXT_22: // link scripting active name
toCpy = gLinkPlayers[GetBattlerMultiplayerId(gBattleScripting.battler)].name;
@@ -2832,7 +2832,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
{
if (hword == ITEM_ENIGMA_BERRY)
{
- if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gPotentialItemEffectBattler)
+ if (gLinkPlayers[gBattleScripting.multiplayerId].id == gPotentialItemEffectBattler)
{
StringCopy(dst, gEnigmaBerries[gPotentialItemEffectBattler].name);
StringAppend(dst, sText_BerrySuffix);
diff --git a/src/battle_records.c b/src/battle_records.c
index c06005b17..8e9d045cb 100644
--- a/src/battle_records.c
+++ b/src/battle_records.c
@@ -356,7 +356,7 @@ static void Task_ExitTrainerHillRecords(u8 taskId)
{
if (!gPaletteFade.active)
{
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
Free(sTilemapBuffer);
RemoveTrainerHillRecordsWindow(0);
FreeAllWindowBuffers();
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 3af03a5e0..7f5a4fb48 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -1120,9 +1120,9 @@ static void atk01_accuracycheck(void)
{
u16 move = T2_READ_16(gBattlescriptCurrInstr + 5);
- if (move == 0xFFFE || move == 0xFFFF)
+ if (move == NO_ACC_CALC || move == NO_ACC_CALC_CHECK_LOCK_ON)
{
- if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker)
+ if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && move == NO_ACC_CALC_CHECK_LOCK_ON && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker)
gBattlescriptCurrInstr += 7;
else if (gStatuses3[gBattlerTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER))
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
@@ -4378,22 +4378,22 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po
static void atk47_setgraphicalstatchangevalues(void)
{
u8 value = 0;
- switch (gBattleScripting.statChanger & 0xF0)
+ switch (GET_STAT_BUFF_VALUE2(gBattleScripting.statChanger))
{
- case 0x10: // +1
+ case SET_STAT_BUFF_VALUE(1): // +1
value = 0xF;
break;
- case 0x20: // +2
+ case SET_STAT_BUFF_VALUE(2): // +2
value = 0x27;
break;
- case 0x90: // -1
+ case SET_STAT_BUFF_VALUE(1) | STAT_BUFF_NEGATIVE: // -1
value = 0x16;
break;
- case 0xA0: // -2
+ case SET_STAT_BUFF_VALUE(2) | STAT_BUFF_NEGATIVE: // -2
value = 0x2E;
break;
}
- gBattleScripting.animArg1 = (gBattleScripting.statChanger & 0xF) + value - 1;
+ gBattleScripting.animArg1 = GET_STAT_BUFF_ID(gBattleScripting.statChanger) + value - 1;
gBattleScripting.animArg2 = 0;
gBattlescriptCurrInstr++;
}
@@ -4479,16 +4479,16 @@ static void atk48_playstatchangeanimation(void)
}
}
- if (gBattlescriptCurrInstr[3] & ATK48_BIT_x4 && changeableStatsCount < 2)
+ if (gBattlescriptCurrInstr[3] & ATK48_ONLY_MULTIPLE && changeableStatsCount < 2)
{
gBattlescriptCurrInstr += 4;
}
- else if (changeableStatsCount != 0 && gBattleScripting.field_1B == 0)
+ else if (changeableStatsCount != 0 && !gBattleScripting.statAnimPlayed)
{
BtlController_EmitBattleAnimation(0, B_ANIM_STATS_CHANGE, statAnimId);
MarkBattlerForControllerExec(gActiveBattler);
- if (gBattlescriptCurrInstr[3] & ATK48_BIT_x4 && changeableStatsCount > 1)
- gBattleScripting.field_1B = 1;
+ if (gBattlescriptCurrInstr[3] & ATK48_ONLY_MULTIPLE && changeableStatsCount > 1)
+ gBattleScripting.statAnimPlayed = TRUE;
gBattlescriptCurrInstr += 4;
}
else
@@ -7230,7 +7230,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
PREPARE_STAT_BUFFER(gBattleTextBuff1, statId)
- if ((statValue << 0x18) < 0) // stat decrease
+ if (statValue <= -1) // Stat decrease.
{
if (gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].mistTimer
&& !certain && gCurrentMove != MOVE_CURSE)
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 46fc7349c..2955a33fc 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -467,7 +467,7 @@ void StartWallyTutorialBattle(void)
{
CreateMaleMon(&gEnemyParty[0], SPECIES_RALTS, 5);
ScriptContext2_Enable();
- gMain.savedCallback = CB2_ReturnToFieldContinueScript;
+ gMain.savedCallback = CB2_ReturnToFieldContinueScriptPlayMapMusic;
gBattleTypeFlags = BATTLE_TYPE_WALLY_TUTORIAL;
CreateBattleStartTask(B_TRANSITION_SLICE, 0);
}
@@ -609,13 +609,13 @@ static void CB2_EndScriptedWildBattle(void)
if (IsPlayerDefeated(gBattleOutcome) == TRUE)
{
if (InBattlePyramid())
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
else
SetMainCallback2(CB2_WhiteOut);
}
else
{
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
}
@@ -900,7 +900,7 @@ static void CB2_GiveStarter(void)
{
u16 starterMon;
- *GetVarPointer(VAR_FIRST_POKE) = gSpecialVar_Result;
+ *GetVarPointer(VAR_STARTER_MON) = gSpecialVar_Result;
starterMon = GetStarterPokemon(gSpecialVar_Result);
ScriptGiveMon(starterMon, 5, 0, 0, 0, 0);
ResetTasks();
@@ -932,7 +932,7 @@ static void CB2_StartFirstBattle(void)
static void CB2_EndFirstBattle(void)
{
Overworld_ClearSavedMusic();
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
static void sub_80B1218(void)
@@ -1308,18 +1308,18 @@ static void CB2_EndTrainerBattle(void)
{
if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE)
{
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
else if (IsPlayerDefeated(gBattleOutcome) == TRUE)
{
if (InBattlePyramid() || sub_81D5C18())
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
else
SetMainCallback2(CB2_WhiteOut);
}
else
{
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
if (!InBattlePyramid() && !sub_81D5C18())
{
RegisterTrainerInMatchCall();
@@ -1332,7 +1332,7 @@ static void CB2_EndRematchBattle(void)
{
if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE)
{
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
else if (IsPlayerDefeated(gBattleOutcome) == TRUE)
{
@@ -1340,7 +1340,7 @@ static void CB2_EndRematchBattle(void)
}
else
{
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
RegisterTrainerInMatchCall();
SetBattledTrainersFlags();
HandleRematchVarsOnBattleEnd();
diff --git a/src/battle_util.c b/src/battle_util.c
index c739c648c..875244d79 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -426,7 +426,7 @@ u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check)
gPotentialItemEffectBattler = battlerId;
- for (i = 0; i < MAX_BATTLERS_COUNT; i++)
+ for (i = 0; i < 4; i++)
{
if (gBattleMons[battlerId].moves[i] == 0 && check & MOVE_LIMITATION_ZEROMOVE)
unusableMoves |= gBitTable[i];
@@ -490,7 +490,22 @@ u8 GetImprisonedMovesCount(u8 battlerId, u16 move)
return imprisionedMoves;
}
-u8 UpdateTurnCounters(void)
+enum
+{
+ ENDTURN_ORDER,
+ ENDTURN_REFLECT,
+ ENDTURN_LIGHT_SCREEN,
+ ENDTURN_MIST,
+ ENDTURN_SAFEGUARD,
+ ENDTURN_WISH,
+ ENDTURN_RAIN,
+ ENDTURN_SANDSTORM,
+ ENDTURN_SUN,
+ ENDTURN_HAIL,
+ ENDTURN_FIELD_COUNT,
+};
+
+u8 DoFieldEndTurnEffects(void)
{
u8 effect = 0;
s32 i;
@@ -508,7 +523,7 @@ u8 UpdateTurnCounters(void)
switch (gBattleStruct->turnCountersTracker)
{
- case 0:
+ case ENDTURN_ORDER:
for (i = 0; i < gBattlersCount; i++)
{
gBattlerByTurnOrder[i] = i;
@@ -530,7 +545,7 @@ u8 UpdateTurnCounters(void)
gBattleStruct->turnSideTracker = 0;
}
// fall through
- case 1:
+ case ENDTURN_REFLECT:
while (gBattleStruct->turnSideTracker < 2)
{
side = gBattleStruct->turnSideTracker;
@@ -555,7 +570,7 @@ u8 UpdateTurnCounters(void)
gBattleStruct->turnSideTracker = 0;
}
break;
- case 2:
+ case ENDTURN_LIGHT_SCREEN:
while (gBattleStruct->turnSideTracker < 2)
{
side = gBattleStruct->turnSideTracker;
@@ -581,7 +596,7 @@ u8 UpdateTurnCounters(void)
gBattleStruct->turnSideTracker = 0;
}
break;
- case 3:
+ case ENDTURN_MIST:
while (gBattleStruct->turnSideTracker < 2)
{
side = gBattleStruct->turnSideTracker;
@@ -605,7 +620,7 @@ u8 UpdateTurnCounters(void)
gBattleStruct->turnSideTracker = 0;
}
break;
- case 4:
+ case ENDTURN_SAFEGUARD:
while (gBattleStruct->turnSideTracker < 2)
{
side = gBattleStruct->turnSideTracker;
@@ -629,7 +644,7 @@ u8 UpdateTurnCounters(void)
gBattleStruct->turnSideTracker = 0;
}
break;
- case 5:
+ case ENDTURN_WISH:
while (gBattleStruct->turnSideTracker < gBattlersCount)
{
gActiveBattler = gBattlerByTurnOrder[gBattleStruct->turnSideTracker];
@@ -650,7 +665,7 @@ u8 UpdateTurnCounters(void)
gBattleStruct->turnCountersTracker++;
}
break;
- case 6:
+ case ENDTURN_RAIN:
if (gBattleWeather & WEATHER_RAIN_ANY)
{
if (!(gBattleWeather & WEATHER_RAIN_PERMANENT))
@@ -680,7 +695,7 @@ u8 UpdateTurnCounters(void)
}
gBattleStruct->turnCountersTracker++;
break;
- case 7:
+ case ENDTURN_SANDSTORM:
if (gBattleWeather & WEATHER_SANDSTORM_ANY)
{
if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0)
@@ -700,7 +715,7 @@ u8 UpdateTurnCounters(void)
}
gBattleStruct->turnCountersTracker++;
break;
- case 8:
+ case ENDTURN_SUN:
if (gBattleWeather & WEATHER_SUN_ANY)
{
if (!(gBattleWeather & WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0)
@@ -718,8 +733,8 @@ u8 UpdateTurnCounters(void)
}
gBattleStruct->turnCountersTracker++;
break;
- case 9:
- if (gBattleWeather & WEATHER_HAIL)
+ case ENDTURN_HAIL:
+ if (gBattleWeather & WEATHER_HAIL_ANY)
{
if (--gWishFutureKnock.weatherDuration == 0)
{
@@ -738,7 +753,7 @@ u8 UpdateTurnCounters(void)
}
gBattleStruct->turnCountersTracker++;
break;
- case 10:
+ case ENDTURN_FIELD_COUNT:
effect++;
break;
}
@@ -746,14 +761,36 @@ u8 UpdateTurnCounters(void)
return (gBattleMainFunc != BattleTurnPassed);
}
-#define TURNBASED_MAX_CASE 19
+enum
+{
+ ENDTURN_INGRAIN,
+ ENDTURN_ABILITIES,
+ ENDTURN_ITEMS1,
+ ENDTURN_LEECH_SEED,
+ ENDTURN_POISON,
+ ENDTURN_BAD_POISON,
+ ENDTURN_BURN,
+ ENDTURN_NIGHTMARES,
+ ENDTURN_CURSE,
+ ENDTURN_WRAP,
+ ENDTURN_UPROAR,
+ ENDTURN_THRASH,
+ ENDTURN_DISABLE,
+ ENDTURN_ENCORE,
+ ENDTURN_LOCK_ON,
+ ENDTURN_CHARGE,
+ ENDTURN_TAUNT,
+ ENDTURN_YAWN,
+ ENDTURN_ITEMS2,
+ ENDTURN_BATTLER_COUNT
+};
-u8 TurnBasedEffects(void)
+u8 DoBattlerEndTurnEffects(void)
{
u8 effect = 0;
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20);
- while (gBattleStruct->turnEffectsBattlerId < gBattlersCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE)
+ while (gBattleStruct->turnEffectsBattlerId < gBattlersCount && gBattleStruct->turnEffectsTracker <= ENDTURN_BATTLER_COUNT)
{
gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->turnEffectsBattlerId];
if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
@@ -764,7 +801,7 @@ u8 TurnBasedEffects(void)
{
switch (gBattleStruct->turnEffectsTracker)
{
- case 0: // ingrain
+ case ENDTURN_INGRAIN: // ingrain
if ((gStatuses3[gActiveBattler] & STATUS3_ROOTED)
&& gBattleMons[gActiveBattler].hp != gBattleMons[gActiveBattler].maxHP
&& gBattleMons[gActiveBattler].hp != 0)
@@ -778,22 +815,22 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 1: // end turn abilities
+ case ENDTURN_ABILITIES: // end turn abilities
if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBattler, 0, 0, 0))
effect++;
gBattleStruct->turnEffectsTracker++;
break;
- case 2: // item effects
+ case ENDTURN_ITEMS1: // item effects
if (ItemBattleEffects(1, gActiveBattler, 0))
effect++;
gBattleStruct->turnEffectsTracker++;
break;
- case 18: // item effects again
+ case ENDTURN_ITEMS2: // item effects again
if (ItemBattleEffects(1, gActiveBattler, 1))
effect++;
gBattleStruct->turnEffectsTracker++;
break;
- case 3: // leech seed
+ case ENDTURN_LEECH_SEED: // leech seed
if ((gStatuses3[gActiveBattler] & STATUS3_LEECHSEED)
&& gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER].hp != 0
&& gBattleMons[gActiveBattler].hp != 0)
@@ -809,7 +846,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 4: // poison
+ case ENDTURN_POISON: // poison
if ((gBattleMons[gActiveBattler].status1 & STATUS1_POISON) && gBattleMons[gActiveBattler].hp != 0)
{
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8;
@@ -820,7 +857,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 5: // toxic poison
+ case ENDTURN_BAD_POISON: // toxic poison
if ((gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON) && gBattleMons[gActiveBattler].hp != 0)
{
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16;
@@ -834,7 +871,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 6: // burn
+ case ENDTURN_BURN: // burn
if ((gBattleMons[gActiveBattler].status1 & STATUS1_BURN) && gBattleMons[gActiveBattler].hp != 0)
{
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8;
@@ -845,7 +882,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 7: // spooky nightmares
+ case ENDTURN_NIGHTMARES: // spooky nightmares
if ((gBattleMons[gActiveBattler].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBattler].hp != 0)
{
// R/S does not perform this sleep check, which causes the nightmare effect to
@@ -865,7 +902,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 8: // curse
+ case ENDTURN_CURSE: // curse
if ((gBattleMons[gActiveBattler].status2 & STATUS2_CURSED) && gBattleMons[gActiveBattler].hp != 0)
{
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4;
@@ -876,7 +913,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 9: // wrap
+ case ENDTURN_WRAP: // wrap
if ((gBattleMons[gActiveBattler].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBattler].hp != 0)
{
gBattleMons[gActiveBattler].status2 -= 0x2000;
@@ -909,7 +946,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 10: // uproar
+ case ENDTURN_UPROAR: // uproar
if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR)
{
for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++)
@@ -958,7 +995,7 @@ u8 TurnBasedEffects(void)
if (effect != 2)
gBattleStruct->turnEffectsTracker++;
break;
- case 11: // thrash
+ case ENDTURN_THRASH: // thrash
if (gBattleMons[gActiveBattler].status2 & STATUS2_LOCK_CONFUSE)
{
gBattleMons[gActiveBattler].status2 -= 0x400;
@@ -980,7 +1017,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 12: // disable
+ case ENDTURN_DISABLE: // disable
if (gDisableStructs[gActiveBattler].disableTimer1 != 0)
{
s32 i;
@@ -1003,7 +1040,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 13: // encore
+ case ENDTURN_ENCORE: // encore
if (gDisableStructs[gActiveBattler].encoreTimer1 != 0)
{
if (gBattleMons[gActiveBattler].moves[gDisableStructs[gActiveBattler].encoredMovePos] != gDisableStructs[gActiveBattler].encoredMove) // pokemon does not have the encored move anymore
@@ -1022,22 +1059,22 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 14: // lock-on decrement
+ case ENDTURN_LOCK_ON: // lock-on decrement
if (gStatuses3[gActiveBattler] & STATUS3_ALWAYS_HITS)
gStatuses3[gActiveBattler] -= 0x8;
gBattleStruct->turnEffectsTracker++;
break;
- case 15: // charge
+ case ENDTURN_CHARGE: // charge
if (gDisableStructs[gActiveBattler].chargeTimer1 && --gDisableStructs[gActiveBattler].chargeTimer1 == 0)
gStatuses3[gActiveBattler] &= ~STATUS3_CHARGED_UP;
gBattleStruct->turnEffectsTracker++;
break;
- case 16: // taunt
+ case ENDTURN_TAUNT: // taunt
if (gDisableStructs[gActiveBattler].tauntTimer1)
gDisableStructs[gActiveBattler].tauntTimer1--;
gBattleStruct->turnEffectsTracker++;
break;
- case 17: // yawn
+ case ENDTURN_YAWN: // yawn
if (gStatuses3[gActiveBattler] & STATUS3_YAWN)
{
gStatuses3[gActiveBattler] -= 0x800;
@@ -1056,7 +1093,7 @@ u8 TurnBasedEffects(void)
}
gBattleStruct->turnEffectsTracker++;
break;
- case 19: // done
+ case ENDTURN_BATTLER_COUNT: // done
gBattleStruct->turnEffectsTracker = 0;
gBattleStruct->turnEffectsBattlerId++;
break;
@@ -1264,7 +1301,24 @@ void TryClearRageStatuses(void)
}
}
-#define ATKCANCELLER_MAX_CASE 14
+enum
+{
+ CANCELLER_FLAGS,
+ CANCELLER_ASLEEP,
+ CANCELLER_FROZEN,
+ CANCELLER_TRUANT,
+ CANCELLER_RECHARGE,
+ CANCELLER_FLINCH,
+ CANCELLER_DISABLED,
+ CANCELLER_TAUNTED,
+ CANCELLER_IMPRISONED,
+ CANCELLER_CONFUSED,
+ CANCELLER_PARALYSED,
+ CANCELLER_IN_LOVE,
+ CANCELLER_BIDE,
+ CANCELLER_THAW,
+ CANCELLER_END,
+};
u8 AtkCanceller_UnableToUseMove(void)
{
@@ -1274,12 +1328,12 @@ u8 AtkCanceller_UnableToUseMove(void)
{
switch (gBattleStruct->atkCancellerTracker)
{
- case 0: // flags clear
+ case CANCELLER_FLAGS: // flags clear
gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_DESTINY_BOND);
gStatuses3[gBattlerAttacker] &= ~(STATUS3_GRUDGE);
gBattleStruct->atkCancellerTracker++;
break;
- case 1: // check being asleep
+ case CANCELLER_ASLEEP: // check being asleep
if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP)
{
if (UproarWakeUpCheck(gBattlerAttacker))
@@ -1323,7 +1377,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 2: // check being frozen
+ case CANCELLER_FROZEN: // check being frozen
if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE)
{
if (Random() % 5)
@@ -1350,7 +1404,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 3: // truant
+ case CANCELLER_TRUANT: // truant
if (gBattleMons[gBattlerAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBattlerAttacker].truantCounter)
{
CancelMultiTurnMoves(gBattlerAttacker);
@@ -1362,7 +1416,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 4: // recharge
+ case CANCELLER_RECHARGE: // recharge
if (gBattleMons[gBattlerAttacker].status2 & STATUS2_RECHARGE)
{
gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_RECHARGE);
@@ -1374,7 +1428,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 5: // flinch
+ case CANCELLER_FLINCH: // flinch
if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FLINCHED)
{
gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_FLINCHED);
@@ -1386,7 +1440,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 6: // disabled move
+ case CANCELLER_DISABLED: // disabled move
if (gDisableStructs[gBattlerAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattlerAttacker].disabledMove != 0)
{
gProtectStructs[gBattlerAttacker].usedDisabledMove = 1;
@@ -1398,7 +1452,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 7: // taunt
+ case CANCELLER_TAUNTED: // taunt
if (gDisableStructs[gBattlerAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0)
{
gProtectStructs[gBattlerAttacker].usedTauntedMove = 1;
@@ -1409,7 +1463,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 8: // imprisoned
+ case CANCELLER_IMPRISONED: // imprisoned
if (GetImprisonedMovesCount(gBattlerAttacker, gCurrentMove))
{
gProtectStructs[gBattlerAttacker].usedImprisionedMove = 1;
@@ -1420,7 +1474,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 9: // confusion
+ case CANCELLER_CONFUSED: // confusion
if (gBattleMons[gBattlerAttacker].status2 & STATUS2_CONFUSION)
{
gBattleMons[gBattlerAttacker].status2--;
@@ -1450,7 +1504,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 10: // paralysis
+ case CANCELLER_PARALYSED: // paralysis
if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_PARALYSIS) && (Random() % 4) == 0)
{
gProtectStructs[gBattlerAttacker].prlzImmobility = 1;
@@ -1462,7 +1516,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 11: // infatuation
+ case CANCELLER_IN_LOVE: // infatuation
if (gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION)
{
gBattleScripting.battler = CountTrailingZeroBits((gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) >> 0x10);
@@ -1482,7 +1536,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 12: // bide
+ case CANCELLER_BIDE: // bide
if (gBattleMons[gBattlerAttacker].status2 & STATUS2_BIDE)
{
gBattleMons[gBattlerAttacker].status2 -= 0x100;
@@ -1512,7 +1566,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case 13: // move thawing
+ case CANCELLER_THAW: // move thawing
if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE)
{
if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT)
@@ -1526,11 +1580,11 @@ u8 AtkCanceller_UnableToUseMove(void)
}
gBattleStruct->atkCancellerTracker++;
break;
- case ATKCANCELLER_MAX_CASE:
+ case CANCELLER_END:
break;
}
- } while (gBattleStruct->atkCancellerTracker != ATKCANCELLER_MAX_CASE && effect == 0);
+ } while (gBattleStruct->atkCancellerTracker != CANCELLER_END && effect == 0);
if (effect == 2)
{
diff --git a/src/berry_blender.c b/src/berry_blender.c
index ed082e14c..257c7233f 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -2687,7 +2687,7 @@ static void CB2_HandlePlayerLinkPlayAgainChoice(void)
if (gReceivedRemoteLinkPlayers == 0)
{
FREE_AND_SET_NULL(sBerryBlenderData);
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
break;
}
@@ -2737,7 +2737,7 @@ static void CB2_HandlePlayerPlayAgainChoice(void)
if (sBerryBlenderData->playAgainState == PLAY_AGAIN_OK)
SetMainCallback2(DoBerryBlending);
else
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
FreeAllWindowBuffers();
UnsetBgTilemapBuffer(2);
diff --git a/src/clock.c b/src/clock.c
index 71c433ed2..91eb5f16d 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -83,11 +83,11 @@ static void UpdatePerMinute(struct Time *localTime)
static void ReturnFromStartWallClock(void)
{
InitTimeBasedEvents();
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
void StartWallClock(void)
{
- SetMainCallback2(Cb2_StartWallClock);
+ SetMainCallback2(CB2_StartWallClock);
gMain.savedCallback = ReturnFromStartWallClock;
}
diff --git a/src/credits.c b/src/credits.c
index 168f3e8a3..a88e4b549 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -2285,7 +2285,7 @@ static void sub_81772B8(struct Sprite *sprite)
static void sub_8177388(void)
{
- u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_FIRST_POKE)));
+ u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_STARTER_MON)));
u16 page;
u16 dexNum;
u16 j;
diff --git a/src/data/heal_locations.h b/src/data/heal_locations.h
new file mode 100644
index 000000000..613bcebe8
--- /dev/null
+++ b/src/data/heal_locations.h
@@ -0,0 +1,25 @@
+static const struct HealLocation sHealLocations[] =
+{
+ {MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), 4, 2},
+ {MAP_GROUP(LITTLEROOT_TOWN_MAYS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_2F), 4, 2},
+ {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 20, 17},
+ {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 19, 20},
+ {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 22, 6},
+ {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 16, 39},
+ {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 5, 7},
+ {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 24, 15},
+ {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 28, 17},
+ {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 43, 32},
+ {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 27, 49},
+ {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 5, 9},
+ {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 14, 9},
+ {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 6, 17},
+ {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 2, 11},
+ {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 9, 7},
+ {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 14, 8},
+ {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 16, 4},
+ {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 8, 16},
+ {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 18, 6},
+ {MAP_GROUP(SOUTHERN_ISLAND_EXTERIOR), MAP_NUM(SOUTHERN_ISLAND_EXTERIOR), 15, 20},
+ {MAP_GROUP(BATTLE_FRONTIER_OUTSIDE_EAST), MAP_NUM(BATTLE_FRONTIER_OUTSIDE_EAST), 3, 52},
+};
diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h
new file mode 100644
index 000000000..f8830c593
--- /dev/null
+++ b/src/data/text/move_descriptions.h
@@ -0,0 +1,714 @@
+static const u8 sNullMoveDescription[] = _("");
+static const u8 sPoundMoveDescription[] = _("Pounds the foe with\nforelegs or tail.");
+static const u8 sKarateChopMoveDescription[] = _("A chopping attack with a\nhigh critical-hit ratio.");
+static const u8 sDoubleSlapMoveDescription[] = _("Repeatedly slaps the foe\n2 to 5 times.");
+static const u8 sCometPunchMoveDescription[] = _("Repeatedly punches the foe\n2 to 5 times.");
+static const u8 sMegaPunchMoveDescription[] = _("A strong punch thrown with\nincredible power.");
+static const u8 sPayDayMoveDescription[] = _("Throws coins at the foe.\nMoney is recovered after.");
+static const u8 sFirePunchMoveDescription[] = _("A fiery punch that may burn\nthe foe.");
+static const u8 sIcePunchMoveDescription[] = _("An icy punch that may\nfreeze the foe.");
+static const u8 sThunderPunchMoveDescription[] = _("An electrified punch that\nmay paralyze the foe.");
+static const u8 sScratchMoveDescription[] = _("Scratches the foe with\nsharp claws.");
+static const u8 sViceGripMoveDescription[] = _("Grips the foe with large and\npowerful pincers.");
+static const u8 sGuillotineMoveDescription[] = _("A powerful pincer attack\nthat may cause fainting.");
+static const u8 sRazorWindMoveDescription[] = _("A 2-turn move that strikes\nthe foe on the 2nd turn.");
+static const u8 sSwordsDanceMoveDescription[] = _("A fighting dance that\nsharply raises ATTACK.");
+static const u8 sCutMoveDescription[] = _("Cuts the foe with sharp\nscythes, claws, etc.");
+static const u8 sGustMoveDescription[] = _("Strikes the foe with a gust\nof wind whipped up by wings.");
+static const u8 sWingAttackMoveDescription[] = _("Strikes the foe with wings\nspread wide.");
+static const u8 sWhirlwindMoveDescription[] = _("Blows away the foe with\nwind and ends the battle.");
+static const u8 sFlyMoveDescription[] = _("Flies up on the first turn,\nthen strikes the next turn.");
+static const u8 sBindMoveDescription[] = _("Binds and squeezes the foe\nfor 2 to 5 turns.");
+static const u8 sSlamMoveDescription[] = _("Slams the foe with a long\ntail, vine, etc.");
+static const u8 sVineWhipMoveDescription[] = _("Strikes the foe with\nslender, whiplike vines.");
+static const u8 sStompMoveDescription[] = _("Stomps the enemy with a big\nfoot. May cause flinching.");
+static const u8 sDoubleKickMoveDescription[] = _("A double-kicking attack\nthat strikes the foe twice.");
+static const u8 sMegaKickMoveDescription[] = _("An extremely powerful kick\nwith intense force.");
+static const u8 sJumpKickMoveDescription[] = _("A strong jumping kick. May\nmiss and hurt the kicker.");
+static const u8 sRollingKickMoveDescription[] = _("A fast kick delivered from\na rapid spin.");
+static const u8 sSandAttackMoveDescription[] = _("Reduces the foe’s accuracy\nby hurling sand in its face.");
+static const u8 sHeadbuttMoveDescription[] = _("A ramming attack that may\ncause flinching.");
+static const u8 sHornAttackMoveDescription[] = _("Jabs the foe with sharp\nhorns.");
+static const u8 sFuryAttackMoveDescription[] = _("Jabs the foe 2 to 5 times\nwith sharp horns, etc.");
+static const u8 sHornDrillMoveDescription[] = _("A one-hit KO attack that\nuses a horn like a drill.");
+static const u8 sTackleMoveDescription[] = _("Charges the foe with a full-\nbody tackle.");
+static const u8 sBodySlamMoveDescription[] = _("A full-body slam that may\ncause paralysis.");
+static const u8 sWrapMoveDescription[] = _("Wraps and squeezes the foe\n2 to 5 times with vines, etc.");
+static const u8 sTakeDownMoveDescription[] = _("A reckless charge attack\nthat also hurts the user.");
+static const u8 sThrashMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user.");
+static const u8 sDoubleEdgeMoveDescription[] = _("A life-risking tackle that\nalso hurts the user.");
+static const u8 sTailWhipMoveDescription[] = _("Wags the tail to lower the\nfoe’s DEFENSE.");
+static const u8 sPoisonStingMoveDescription[] = _("A toxic attack with barbs,\netc., that may poison.");
+static const u8 sTwineedleMoveDescription[] = _("Stingers on the forelegs\njab the foe twice.");
+static const u8 sPinMissileMoveDescription[] = _("Sharp pins are fired to\nstrike 2 to 5 times.");
+static const u8 sLeerMoveDescription[] = _("Frightens the foe with a\nleer to lower DEFENSE.");
+static const u8 sBiteMoveDescription[] = _("Bites with vicious fangs.\nMay cause flinching.");
+static const u8 sGrowlMoveDescription[] = _("Growls cutely to reduce the\nfoe’s ATTACK.");
+static const u8 sRoarMoveDescription[] = _("Makes the foe flee to end\nthe battle.");
+static const u8 sSingMoveDescription[] = _("A soothing song lulls the\nfoe into a deep slumber.");
+static const u8 sSupersonicMoveDescription[] = _("Emits bizarre sound waves\nthat may confuse the foe.");
+static const u8 sSonicBoomMoveDescription[] = _("Launches shock waves that\nalways inflict 20 HP damage.");
+static const u8 sDisableMoveDescription[] = _("Psychically disables one of\nthe foe’s moves.");
+static const u8 sAcidMoveDescription[] = _("Sprays a hide-melting acid.\nMay lower DEFENSE.");
+static const u8 sEmberMoveDescription[] = _("A weak fire attack that may\ninflict a burn.");
+static const u8 sFlamethrowerMoveDescription[] = _("A powerful fire attack that\nmay inflict a burn.");
+static const u8 sMistMoveDescription[] = _("Creates a mist that stops\nreduction of abilities.");
+static const u8 sWaterGunMoveDescription[] = _("Squirts water to attack\nthe foe.");
+static const u8 sHydroPumpMoveDescription[] = _("Blasts water at high power\nto strike the foe.");
+static const u8 sSurfMoveDescription[] = _("Creates a huge wave, then\ncrashes it down on the foe.");
+static const u8 sIceBeamMoveDescription[] = _("Blasts the foe with an icy\nbeam that may freeze it.");
+static const u8 sBlizzardMoveDescription[] = _("Hits the foe with an icy\nstorm that may freeze it.");
+static const u8 sPsybeamMoveDescription[] = _("Fires a peculiar ray that\nmay confuse the foe.");
+static const u8 sBubbleBeamMoveDescription[] = _("Forcefully sprays bubbles\nthat may lower SPEED.");
+static const u8 sAuroraBeamMoveDescription[] = _("Fires a rainbow-colored\nbeam that may lower ATTACK.");
+static const u8 sHyperBeamMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
+static const u8 sPeckMoveDescription[] = _("Attacks the foe with a\njabbing beak, etc.");
+static const u8 sDrillPeckMoveDescription[] = _("A corkscrewing attack with\nthe beak acting as a drill.");
+static const u8 sSubmissionMoveDescription[] = _("A reckless body slam that\nalso hurts the user.");
+static const u8 sLowKickMoveDescription[] = _("A kick that inflicts more\ndamage on heavier foes.");
+static const u8 sCounterMoveDescription[] = _("Retaliates any physical hit\nwith double the power.");
+static const u8 sSeismicTossMoveDescription[] = _("Inflicts damage identical\nto the user’s level.");
+static const u8 sStrengthMoveDescription[] = _("Builds enormous power,\nthen slams the foe.");
+static const u8 sAbsorbMoveDescription[] = _("An attack that absorbs\nhalf the damage inflicted.");
+static const u8 sMegaDrainMoveDescription[] = _("An attack that absorbs\nhalf the damage inflicted.");
+static const u8 sLeechSeedMoveDescription[] = _("Plants a seed on the foe to\nsteal HP on every turn.");
+static const u8 sGrowthMoveDescription[] = _("Forces the body to grow\nand heightens SP. ATK.");
+static const u8 sRazorLeafMoveDescription[] = _("Cuts the enemy with leaves.\nHigh critical-hit ratio.");
+static const u8 sSolarBeamMoveDescription[] = _("Absorbs light in one turn,\nthen attacks next turn.");
+static const u8 sPoisonPowderMoveDescription[] = _("Scatters a toxic powder\nthat may poison the foe.");
+static const u8 sStunSporeMoveDescription[] = _("Scatters a powder that may\nparalyze the foe.");
+static const u8 sSleepPowderMoveDescription[] = _("Scatters a powder that may\ncause the foe to sleep.");
+static const u8 sPetalDanceMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user.");
+static const u8 sStringShotMoveDescription[] = _("Binds the foe with string\nto reduce its SPEED.");
+static const u8 sDragonRageMoveDescription[] = _("Launches shock waves that\nalways inflict 40 HP damage.");
+static const u8 sFireSpinMoveDescription[] = _("Traps the foe in a ring of\nfire for 2 to 5 turns.");
+static const u8 sThunderShockMoveDescription[] = _("An electrical attack that\nmay paralyze the foe.");
+static const u8 sThunderboltMoveDescription[] = _("A strong electrical attack\nthat may paralyze the foe.");
+static const u8 sThunderWaveMoveDescription[] = _("A weak jolt of electricity\nthat paralyzes the foe.");
+static const u8 sThunderMoveDescription[] = _("A lightning attack that may\ncause paralysis.");
+static const u8 sRockThrowMoveDescription[] = _("Throws small rocks to\nstrike the foe.");
+static const u8 sEarthquakeMoveDescription[] = _("A powerful quake, but has\nno effect on flying foes.");
+static const u8 sFissureMoveDescription[] = _("A one-hit KO move that\ndrops the foe in a fissure.");
+static const u8 sDigMoveDescription[] = _("Digs underground the first\nturn and strikes next turn.");
+static const u8 sToxicMoveDescription[] = _("Poisons the foe with an\nintensifying toxin.");
+static const u8 sConfusionMoveDescription[] = _("A psychic attack that may\ncause confusion.");
+static const u8 sPsychicMoveDescription[] = _("A powerful psychic attack\nthat may lower SP. DEF.");
+static const u8 sHypnosisMoveDescription[] = _("A hypnotizing move that\nmay induce sleep.");
+static const u8 sMeditateMoveDescription[] = _("Meditates in a peaceful\nfashion to raise ATTACK.");
+static const u8 sAgilityMoveDescription[] = _("Relaxes the body to sharply\nboost SPEED.");
+static const u8 sQuickAttackMoveDescription[] = _("An extremely fast attack\nthat always strikes first.");
+static const u8 sRageMoveDescription[] = _("Raises the user’s ATTACK\nevery time it is hit.");
+static const u8 sTeleportMoveDescription[] = _("A psychic move for fleeing\nfrom battle instantly.");
+static const u8 sNightShadeMoveDescription[] = _("Inflicts damage identical\nto the user’s level.");
+static const u8 sMimicMoveDescription[] = _("Copies a move used by the\nfoe during one battle.");
+static const u8 sScreechMoveDescription[] = _("Emits a screech to sharply\nreduce the foe’s DEFENSE.");
+static const u8 sDoubleTeamMoveDescription[] = _("Creates illusory copies to\nraise evasiveness.");
+static const u8 sRecoverMoveDescription[] = _("Recovers up to half the\nuser’s maximum HP.");
+static const u8 sHardenMoveDescription[] = _("Stiffens the body’s \nmuscles to raise DEFENSE.");
+static const u8 sMinimizeMoveDescription[] = _("Minimizes the user’s size\nto raise evasiveness.");
+static const u8 sSmokescreenMoveDescription[] = _("Lowers the foe’s accuracy\nusing smoke, ink, etc.");
+static const u8 sConfuseRayMoveDescription[] = _("A sinister ray that\nconfuses the foe.");
+static const u8 sWithdrawMoveDescription[] = _("Withdraws the body into its\nhard shell to raise DEFENSE.");
+static const u8 sDefenseCurlMoveDescription[] = _("Curls up to conceal weak\nspots and raise DEFENSE.");
+static const u8 sBarrierMoveDescription[] = _("Creates a barrier that\nsharply raises DEFENSE.");
+static const u8 sLightScreenMoveDescription[] = _("Creates a wall of light that\nlowers SP. ATK damage.");
+static const u8 sHazeMoveDescription[] = _("Creates a black haze that\neliminates all stat changes.");
+static const u8 sReflectMoveDescription[] = _("Creates a wall of light that\nweakens physical attacks.");
+static const u8 sFocusEnergyMoveDescription[] = _("Focuses power to raise the\ncritical-hit ratio.");
+static const u8 sBideMoveDescription[] = _("Endures attack for 2\nturns to retaliate double.");
+static const u8 sMetronomeMoveDescription[] = _("Waggles a finger to use any\nPOKéMON move at random.");
+static const u8 sMirrorMoveMoveDescription[] = _("Counters the foe’s attack\nwith the same move.");
+static const u8 sSelfDestructMoveDescription[] = _("Inflicts severe damage but\nmakes the user faint.");
+static const u8 sEggBombMoveDescription[] = _("An egg is forcibly hurled at\nthe foe.");
+static const u8 sLickMoveDescription[] = _("Licks with a long tongue to\ninjure. May also paralyze.");
+static const u8 sSmogMoveDescription[] = _("An exhaust-gas attack\nthat may also poison.");
+static const u8 sSludgeMoveDescription[] = _("Sludge is hurled to inflict\ndamage. May also poison.");
+static const u8 sBoneClubMoveDescription[] = _("Clubs the foe with a bone.\nMay cause flinching.");
+static const u8 sFireBlastMoveDescription[] = _("Incinerates everything it\nstrikes. May cause a burn.");
+static const u8 sWaterfallMoveDescription[] = _("Charges the foe with speed\nto climb waterfalls.");
+static const u8 sClampMoveDescription[] = _("Traps and squeezes the\nfoe for 2 to 5 turns.");
+static const u8 sSwiftMoveDescription[] = _("Sprays star-shaped rays\nthat never miss.");
+static const u8 sSkullBashMoveDescription[] = _("Tucks in the head, then\nattacks on the next turn.");
+static const u8 sSpikeCannonMoveDescription[] = _("Launches sharp spikes that\nstrike 2 to 5 times.");
+static const u8 sConstrictMoveDescription[] = _("Constricts to inflict pain.\nMay lower SPEED.");
+static const u8 sAmnesiaMoveDescription[] = _("Forgets about something\nand sharply raises SP. DEF.");
+static const u8 sKinesisMoveDescription[] = _("Distracts the foe.\nMay lower accuracy.");
+static const u8 sSoftBoiledMoveDescription[] = _("Recovers up to half the\nuser’s maximum HP.");
+static const u8 sHiJumpKickMoveDescription[] = _("A jumping knee kick. If it\nmisses, the user is hurt.");
+static const u8 sGlareMoveDescription[] = _("Intimidates and frightens\nthe foe into paralysis.");
+static const u8 sDreamEaterMoveDescription[] = _("Takes one half the damage\ninflicted on a sleeping foe.");
+static const u8 sPoisonGasMoveDescription[] = _("Envelops the foe in a toxic\ngas that may poison.");
+static const u8 sBarrageMoveDescription[] = _("Hurls round objects at the\nfoe 2 to 5 times.");
+static const u8 sLeechLifeMoveDescription[] = _("An attack that steals half\nthe damage inflicted.");
+static const u8 sLovelyKissMoveDescription[] = _("Demands a kiss with a scary\nface that induces sleep.");
+static const u8 sSkyAttackMoveDescription[] = _("Searches out weak spots,\nthen strikes the next turn.");
+static const u8 sTransformMoveDescription[] = _("Alters the user’s cells to\nbecome a copy of the foe.");
+static const u8 sBubbleMoveDescription[] = _("An attack using bubbles.\nMay lower the foe’s SPEED.");
+static const u8 sDizzyPunchMoveDescription[] = _("A rhythmic punch that may\nconfuse the foe.");
+static const u8 sSporeMoveDescription[] = _("Scatters a cloud of spores\nthat always induce sleep.");
+static const u8 sFlashMoveDescription[] = _("Looses a powerful blast of\nlight that cuts accuracy.");
+static const u8 sPsywaveMoveDescription[] = _("Attacks with a psychic\nwave of varying intensity.");
+static const u8 sSplashMoveDescription[] = _("It’s just a splash...\nHas no effect whatsoever.");
+static const u8 sAcidArmorMoveDescription[] = _("Liquifies the user’s body\nto sharply raise DEFENSE.");
+static const u8 sCrabhammerMoveDescription[] = _("Hammers with a pincer. Has a\nhigh critical-hit ratio.");
+static const u8 sExplosionMoveDescription[] = _("Inflicts severe damage but\nmakes the user faint.");
+static const u8 sFurySwipesMoveDescription[] = _("Rakes the foe with sharp\nclaws, etc., 2 to 5 times.");
+static const u8 sBonemerangMoveDescription[] = _("Throws a bone boomerang\nthat strikes twice.");
+static const u8 sRestMoveDescription[] = _("The user sleeps for 2 turns,\nrestoring HP and status.");
+static const u8 sRockSlideMoveDescription[] = _("Large boulders are hurled.\nMay cause flinching.");
+static const u8 sHyperFangMoveDescription[] = _("Attacks with sharp fangs.\nMay cause flinching.");
+static const u8 sSharpenMoveDescription[] = _("Reduces the polygon count\nand raises ATTACK.");
+static const u8 sConversionMoveDescription[] = _("Changes the user’s type\ninto a known move’s type.");
+static const u8 sTriAttackMoveDescription[] = _("Fires three types of beams\nat the same time.");
+static const u8 sSuperFangMoveDescription[] = _("Attacks with sharp fangs\nand cuts half the foe’s HP.");
+static const u8 sSlashMoveDescription[] = _("Slashes with claws, etc. Has\na high critical-hit ratio.");
+static const u8 sSubstituteMoveDescription[] = _("Creates a decoy using 1/4\nof the user’s maximum HP.");
+static const u8 sStruggleMoveDescription[] = _("Used only if all PP are gone.\nAlso hurts the user a little.");
+static const u8 sSketchMoveDescription[] = _("Copies the foe’s last move\npermanently.");
+static const u8 sTripleKickMoveDescription[] = _("Kicks the foe 3 times in a\nrow with rising intensity.");
+static const u8 sThiefMoveDescription[] = _("While attacking, it may\nsteal the foe’s held item.");
+static const u8 sSpiderWebMoveDescription[] = _("Ensnares the foe to stop it\nfrom fleeing or switching.");
+static const u8 sMindReaderMoveDescription[] = _("Senses the foe’s action to\nensure the next move’s hit.");
+static const u8 sNightmareMoveDescription[] = _("Inflicts 1/4 damage on a\nsleeping foe every turn.");
+static const u8 sFlameWheelMoveDescription[] = _("A fiery charge attack that\nmay inflict a burn.");
+static const u8 sSnoreMoveDescription[] = _("A loud attack that can be\nused only while asleep.");
+static const u8 sCurseMoveDescription[] = _("A move that functions\ndifferently for GHOSTS.");
+static const u8 sFlailMoveDescription[] = _("Inflicts more damage when\nthe user’s HP is down.");
+static const u8 sConversion2MoveDescription[] = _("Makes the user resistant\nto the last attack’s type.");
+static const u8 sAeroblastMoveDescription[] = _("Launches a vacuumed blast.\nHigh critical-hit ratio.");
+static const u8 sCottonSporeMoveDescription[] = _("Spores cling to the foe,\nsharply reducing SPEED.");
+static const u8 sReversalMoveDescription[] = _("Inflicts more damage when\nthe user’s HP is down.");
+static const u8 sSpiteMoveDescription[] = _("Spitefully cuts the PP\nof the foe’s last move.");
+static const u8 sPowderSnowMoveDescription[] = _("Blasts the foe with a snowy\ngust. May cause freezing.");
+static const u8 sProtectMoveDescription[] = _("Evades attack, but may fail\nif used in succession.");
+static const u8 sMachPunchMoveDescription[] = _("A punch is thrown at wicked\nspeed to strike first.");
+static const u8 sScaryFaceMoveDescription[] = _("Frightens with a scary face\nto sharply reduce SPEED.");
+static const u8 sFaintAttackMoveDescription[] = _("Draws the foe close, then\nstrikes without fail.");
+static const u8 sSweetKissMoveDescription[] = _("Demands a kiss with a cute\nlook. May cause confusion.");
+static const u8 sBellyDrumMoveDescription[] = _("Maximizes ATTACK while\nsacrificing HP.");
+static const u8 sSludgeBombMoveDescription[] = _("Sludge is hurled to inflict\ndamage. May also poison.");
+static const u8 sMudSlapMoveDescription[] = _("Hurls mud in the foe’s face\nto reduce its accuracy.");
+static const u8 sOctazookaMoveDescription[] = _("Fires a lump of ink to\ndamage and cut accuracy.");
+static const u8 sSpikesMoveDescription[] = _("Sets spikes that hurt a \nfoe switching in.");
+static const u8 sZapCannonMoveDescription[] = _("Powerful and sure to cause\nparalysis, but inaccurate.");
+static const u8 sForesightMoveDescription[] = _("Negates the foe’s efforts\nto heighten evasiveness.");
+static const u8 sDestinyBondMoveDescription[] = _("If the user faints, the foe\nis also made to faint.");
+static const u8 sPerishSongMoveDescription[] = _("Any POKéMON hearing this\nsong faints in 3 turns.");
+static const u8 sIcyWindMoveDescription[] = _("A chilling attack that\nlowers the foe’s SPEED.");
+static const u8 sDetectMoveDescription[] = _("Evades attack, but may fail\nif used in succession.");
+static const u8 sBoneRushMoveDescription[] = _("Strikes the foe with a bone\nin hand 2 to 5 times.");
+static const u8 sLockOnMoveDescription[] = _("Locks on to the foe to\nensure the next move hits.");
+static const u8 sOutrageMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user.");
+static const u8 sSandstormMoveDescription[] = _("Causes a sandstorm that\nrages for several turns.");
+static const u8 sGigaDrainMoveDescription[] = _("An attack that steals half\nthe damage inflicted.");
+static const u8 sEndureMoveDescription[] = _("Endures any attack for\n1 turn, leaving at least 1HP.");
+static const u8 sCharmMoveDescription[] = _("Charms the foe and sharply\nreduces its ATTACK.");
+static const u8 sRolloutMoveDescription[] = _("An attack lasting 5 turns\nwith rising intensity.");
+static const u8 sFalseSwipeMoveDescription[] = _("An attack that leaves the\nfoe with at least 1 HP.");
+static const u8 sSwaggerMoveDescription[] = _("Confuses the foe, but also\nsharply raises ATTACK.");
+static const u8 sMilkDrinkMoveDescription[] = _("Recovers up to half the\nuser’s maximum HP.");
+static const u8 sSparkMoveDescription[] = _("An electrified tackle that\nmay paralyze the foe.");
+static const u8 sFuryCutterMoveDescription[] = _("An attack that intensifies\non each successive hit.");
+static const u8 sSteelWingMoveDescription[] = _("Strikes the foe with hard\nwings spread wide.");
+static const u8 sMeanLookMoveDescription[] = _("Fixes the foe with a mean\nlook that prevents escape.");
+static const u8 sAttractMoveDescription[] = _("Makes the opposite gender\nless likely to attack.");
+static const u8 sSleepTalkMoveDescription[] = _("Uses an available move\nrandomly while asleep.");
+static const u8 sHealBellMoveDescription[] = _("Chimes soothingly to heal\nall status abnormalities.");
+static const u8 sReturnMoveDescription[] = _("An attack that increases\nin power with friendship.");
+static const u8 sPresentMoveDescription[] = _("A gift in the form of a\nbomb. May restore HP.");
+static const u8 sFrustrationMoveDescription[] = _("An attack that is stronger\nif the TRAINER is disliked.");
+static const u8 sSafeguardMoveDescription[] = _("A mystical force prevents\nall status problems.");
+static const u8 sPainSplitMoveDescription[] = _("Adds the user and foe’s HP,\nthen shares them equally.");
+static const u8 sSacredFireMoveDescription[] = _("A mystical fire attack that\nmay inflict a burn.");
+static const u8 sMagnitudeMoveDescription[] = _("A ground-shaking attack\nof random intensity.");
+static const u8 sDynamicPunchMoveDescription[] = _("Powerful and sure to cause\nconfusion, but inaccurate.");
+static const u8 sMegahornMoveDescription[] = _("A brutal ramming attack\nusing out-thrust horns.");
+static const u8 sDragonBreathMoveDescription[] = _("Strikes the foe with an\nincredible blast of breath.");
+static const u8 sBatonPassMoveDescription[] = _("Switches out the user while\nkeeping effects in play.");
+static const u8 sEncoreMoveDescription[] = _("Makes the foe repeat its\nlast move over 2 to 6 turns.");
+static const u8 sPursuitMoveDescription[] = _("Inflicts bad damage if used\non a foe switching out.");
+static const u8 sRapidSpinMoveDescription[] = _("Spins the body at high\nspeed to strike the foe.");
+static const u8 sSweetScentMoveDescription[] = _("Allures the foe to reduce\nevasiveness.");
+static const u8 sIronTailMoveDescription[] = _("Attacks with a rock-hard\ntail. May lower DEFENSE.");
+static const u8 sMetalClawMoveDescription[] = _("A claw attack that may\nraise the user’s ATTACK.");
+static const u8 sVitalThrowMoveDescription[] = _("Makes the user’s move last,\nbut it never misses.");
+static const u8 sMorningSunMoveDescription[] = _("Restores HP. The amount\nvaries with the weather.");
+static const u8 sSynthesisMoveDescription[] = _("Restores HP. The amount\nvaries with the weather.");
+static const u8 sMoonlightMoveDescription[] = _("Restores HP. The amount\nvaries with the weather.");
+static const u8 sHiddenPowerMoveDescription[] = _("The effectiveness varies\nwith the user.");
+static const u8 sCrossChopMoveDescription[] = _("A double-chopping attack.\nHigh critical-hit ratio.");
+static const u8 sTwisterMoveDescription[] = _("Whips up a vicious twister\nto tear at the foe.");
+static const u8 sRainDanceMoveDescription[] = _("Boosts the power of WATER-\ntype moves for 5 turns.");
+static const u8 sSunnyDayMoveDescription[] = _("Boosts the power of FIRE-\ntype moves for 5 turns.");
+static const u8 sCrunchMoveDescription[] = _("Crunches with sharp fangs.\nMay lower SP. DEF.");
+static const u8 sMirrorCoatMoveDescription[] = _("Counters the foe’s special\nattack at double the power.");
+static const u8 sPsychUpMoveDescription[] = _("Copies the foe’s effect(s)\nand gives to the user.");
+static const u8 sExtremeSpeedMoveDescription[] = _("An extremely fast and\npowerful attack.");
+static const u8 sAncientPowerMoveDescription[] = _("An attack that may raise\nall stats.");
+static const u8 sShadowBallMoveDescription[] = _("Hurls a black blob that may\nlower the foe’s SP. DEF.");
+static const u8 sFutureSightMoveDescription[] = _("Heightens inner power to\nstrike 2 turns later.");
+static const u8 sRockSmashMoveDescription[] = _("A rock-crushing attack\nthat may lower DEFENSE.");
+static const u8 sWhirlpoolMoveDescription[] = _("Traps and hurts the foe in\na whirlpool for 2 to 5 turns.");
+static const u8 sBeatUpMoveDescription[] = _("Summons party POKéMON to\njoin in the attack.");
+static const u8 sFakeOutMoveDescription[] = _("A 1st-turn, 1st-strike move\nthat causes flinching.");
+static const u8 sUproarMoveDescription[] = _("Causes an uproar for 2 to 5\nturns and prevents sleep.");
+static const u8 sStockpileMoveDescription[] = _("Charges up power for up to\n3 turns.");
+static const u8 sSpitUpMoveDescription[] = _("Releases stockpiled power\n(the more the better).");
+static const u8 sSwallowMoveDescription[] = _("Absorbs stockpiled power\nand restores HP.");
+static const u8 sHeatWaveMoveDescription[] = _("Exhales a hot breath on the\nfoe. May inflict a burn.");
+static const u8 sHailMoveDescription[] = _("Summons a hailstorm that\nstrikes every turn.");
+static const u8 sTormentMoveDescription[] = _("Torments the foe and stops\nsuccessive use of a move.");
+static const u8 sFlatterMoveDescription[] = _("Confuses the foe, but\nraises its SP. ATK.");
+static const u8 sWillOWispMoveDescription[] = _("Inflicts a burn on the foe\nwith intense fire.");
+static const u8 sMementoMoveDescription[] = _("The user faints and lowers\nthe foe’s abilities.");
+static const u8 sFacadeMoveDescription[] = _("Boosts ATTACK when burned,\nparalyzed, or poisoned.");
+static const u8 sFocusPunchMoveDescription[] = _("A powerful loyalty attack.\nThe user flinches if hit.");
+static const u8 sSmellingSaltMoveDescription[] = _("Powerful against paralyzed\nfoes, but also heals them.");
+static const u8 sFollowMeMoveDescription[] = _("Draws attention to make\nfoes attack only the user.");
+static const u8 sNaturePowerMoveDescription[] = _("The type of attack varies\ndepending on the location.");
+static const u8 sChargeMoveDescription[] = _("Charges power to boost the\nelectric move used next.");
+static const u8 sTauntMoveDescription[] = _("Taunts the foe into only\nusing attack moves.");
+static const u8 sHelpingHandMoveDescription[] = _("Boosts the power of the\nrecipient’s moves.");
+static const u8 sTrickMoveDescription[] = _("Tricks the foe into trading\nheld items.");
+static const u8 sRolePlayMoveDescription[] = _("Mimics the target and\ncopies its special ability.");
+static const u8 sWishMoveDescription[] = _("A wish that restores HP.\nIt takes time to work.");
+static const u8 sAssistMoveDescription[] = _("Attacks randomly with one\nof the partner’s moves.");
+static const u8 sIngrainMoveDescription[] = _("Lays roots that restore HP.\nThe user can’t switch out.");
+static const u8 sSuperpowerMoveDescription[] = _("Boosts strength sharply,\nbut lowers abilities.");
+static const u8 sMagicCoatMoveDescription[] = _("Reflects special effects\nback to the attacker.");
+static const u8 sRecycleMoveDescription[] = _("Recycles a used item for\none more use.");
+static const u8 sRevengeMoveDescription[] = _("An attack that gains power\nif injured by the foe.");
+static const u8 sBrickBreakMoveDescription[] = _("Destroys barriers such as\nREFLECT and causes damage.");
+static const u8 sYawnMoveDescription[] = _("Lulls the foe into yawning,\nthen sleeping next turn.");
+static const u8 sKnockOffMoveDescription[] = _("Knocks down the foe’s held\nitem to prevent its use.");
+static const u8 sEndeavorMoveDescription[] = _("Gains power if the user’s HP\nis lower than the foe’s HP.");
+static const u8 sEruptionMoveDescription[] = _("The higher the user’s HP,\nthe more damage caused.");
+static const u8 sSkillSwapMoveDescription[] = _("The user swaps special\nabilities with the target.");
+static const u8 sImprisonMoveDescription[] = _("Prevents foes from using\nmoves known by the user.");
+static const u8 sRefreshMoveDescription[] = _("Heals poisoning, paralysis,\nor a burn.");
+static const u8 sGrudgeMoveDescription[] = _("If the user faints, deletes\nall PP of foe’s last move.");
+static const u8 sSnatchMoveDescription[] = _("Steals the effects of the\nmove the target uses next.");
+static const u8 sSecretPowerMoveDescription[] = _("An attack with effects\nthat vary by location.");
+static const u8 sDiveMoveDescription[] = _("Dives underwater the first\nturn and strikes next turn.");
+static const u8 sArmThrustMoveDescription[] = _("Straight-arm punches that\nstrike the foe 2 to 5 times.");
+static const u8 sCamouflageMoveDescription[] = _("Alters the POKéMON’s type\ndepending on the location.");
+static const u8 sTailGlowMoveDescription[] = _("Flashes a light that sharply\nraises SP. ATK.");
+static const u8 sLusterPurgeMoveDescription[] = _("Attacks with a burst of\nlight. May lower SP. DEF.");
+static const u8 sMistBallMoveDescription[] = _("Attacks with a flurry of\ndown. May lower SP. ATK.");
+static const u8 sFeatherDanceMoveDescription[] = _("Envelops the foe with down\nto sharply reduce ATTACK.");
+static const u8 sTeeterDanceMoveDescription[] = _("Confuses all POKéMON on\nthe scene.");
+static const u8 sBlazeKickMoveDescription[] = _("A kick with a high critical-\nhit ratio. May cause a burn.");
+static const u8 sMudSportMoveDescription[] = _("Covers the user in mud to\nraise electrical resistance.");
+static const u8 sIceBallMoveDescription[] = _("A 5-turn attack that gains\npower on successive hits.");
+static const u8 sNeedleArmMoveDescription[] = _("Attacks with thorny arms.\nMay cause flinching.");
+static const u8 sSlackOffMoveDescription[] = _("Slacks off and restores\nhalf the maximum HP.");
+static const u8 sHyperVoiceMoveDescription[] = _("A loud attack that uses\nsound waves to injure.");
+static const u8 sPoisonFangMoveDescription[] = _("A sharp-fanged attack.\nMay badly poison the foe.");
+static const u8 sCrushClawMoveDescription[] = _("Tears at the foe with sharp\nclaws. May lower DEFENSE.");
+static const u8 sBlastBurnMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
+static const u8 sHydroCannonMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
+static const u8 sMeteorMashMoveDescription[] = _("Fires a meteor-like punch.\nMay raise ATTACK.");
+static const u8 sAstonishMoveDescription[] = _("An attack that may shock\nthe foe into flinching.");
+static const u8 sWeatherBallMoveDescription[] = _("The move’s type and power\nchange with the weather.");
+static const u8 sAromatherapyMoveDescription[] = _("Heals all status problems\nwith a soothing scent.");
+static const u8 sFakeTearsMoveDescription[] = _("Feigns crying to sharply\nlower the foe’s SP. DEF.");
+static const u8 sAirCutterMoveDescription[] = _("Hacks with razorlike wind.\nHigh critical-hit ratio.");
+static const u8 sOverheatMoveDescription[] = _("Allows a full-power attack,\nbut sharply lowers SP. ATK.");
+static const u8 sOdorSleuthMoveDescription[] = _("Negates the foe’s efforts\nto heighten evasiveness.");
+static const u8 sRockTombMoveDescription[] = _("Stops the foe from moving\nwith rocks and cuts SPEED.");
+static const u8 sSilverWindMoveDescription[] = _("A powdery attack that may\nraise abilities.");
+static const u8 sMetalSoundMoveDescription[] = _("Emits a horrible screech\nthat sharply lowers SP. DEF.");
+static const u8 sGrassWhistleMoveDescription[] = _("Lulls the foe into sleep\nwith a pleasant melody.");
+static const u8 sTickleMoveDescription[] = _("Makes the foe laugh to\nlower ATTACK and DEFENSE.");
+static const u8 sCosmicPowerMoveDescription[] = _("Raises DEFENSE and SP. DEF\nwith a mystic power.");
+static const u8 sWaterSpoutMoveDescription[] = _("Inflicts more damage if the\nuser’s HP is high.");
+static const u8 sSignalBeamMoveDescription[] = _("A strange beam attack that\nmay confuse the foe.");
+static const u8 sShadowPunchMoveDescription[] = _("An unavoidable punch that\nis thrown from shadows.");
+static const u8 sExtrasensoryMoveDescription[] = _("Attacks with a peculiar\npower. May cause flinching.");
+static const u8 sSkyUppercutMoveDescription[] = _("An uppercut thrown as if\nleaping into the sky.");
+static const u8 sSandTombMoveDescription[] = _("Traps and hurts the foe in\nquicksand for 2 to 5 turns.");
+static const u8 sSheerColdMoveDescription[] = _("A chilling attack that\ncauses fainting if it hits.");
+static const u8 sMuddyWaterMoveDescription[] = _("Attacks with muddy water.\nMay lower accuracy.");
+static const u8 sBulletSeedMoveDescription[] = _("Shoots 2 to 5 seeds in a row\nto strike the foe.");
+static const u8 sAerialAceMoveDescription[] = _("An extremely speedy and\nunavoidable attack.");
+static const u8 sIcicleSpearMoveDescription[] = _("Attacks the foe by firing\n2 to 5 icicles in a row.");
+static const u8 sIronDefenseMoveDescription[] = _("Hardens the body’s surface\nto sharply raise DEFENSE.");
+static const u8 sBlockMoveDescription[] = _("Blocks the foe’s way to\nprevent escape.");
+static const u8 sHowlMoveDescription[] = _("Howls to raise the spirit\nand boosts ATTACK.");
+static const u8 sDragonClawMoveDescription[] = _("Slashes the foe with sharp\nclaws.");
+static const u8 sFrenzyPlantMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
+static const u8 sBulkUpMoveDescription[] = _("Bulks up the body to boost\nboth ATTACK and DEFENSE.");
+static const u8 sBounceMoveDescription[] = _("Bounces up, then down the\nnext turn. May paralyze.");
+static const u8 sMudShotMoveDescription[] = _("Hurls mud at the foe and\nreduces SPEED.");
+static const u8 sPoisonTailMoveDescription[] = _("Has a high critical-hit\nratio. May also poison.");
+static const u8 sCovetMoveDescription[] = _("Cutely begs to obtain an\nitem held by the foe.");
+static const u8 sVoltTackleMoveDescription[] = _("A life-risking tackle that\nslightly hurts the user.");
+static const u8 sMagicalLeafMoveDescription[] = _("Attacks with a strange leaf\nthat cannot be evaded.");
+static const u8 sWaterSportMoveDescription[] = _("The user becomes soaked to\nraise resistance to fire.");
+static const u8 sCalmMindMoveDescription[] = _("Raises SP. ATK and SP. DEF\nby focusing the mind.");
+static const u8 sLeafBladeMoveDescription[] = _("Slashes with a sharp leaf.\nHigh critical-hit ratio.");
+static const u8 sDragonDanceMoveDescription[] = _("A mystical dance that ups\nATTACK and SPEED.");
+static const u8 sRockBlastMoveDescription[] = _("Hurls boulders at the foe\n2 to 5 times in a row.");
+static const u8 sShockWaveMoveDescription[] = _("A fast and unavoidable\nelectric attack.");
+static const u8 sWaterPulseMoveDescription[] = _("Attacks with ultrasonic\nwaves. May confuse the foe.");
+static const u8 sDoomDesireMoveDescription[] = _("Summons strong sunlight to\nattack 2 turns later.");
+static const u8 sPsychoBoostMoveDescription[] = _("Allows a full-power attack,\nbut sharply lowers SP. ATK.");
+
+// MOVE_NONE is ignored in this table. Make sure to always subtract 1 before getting the right pointer.
+const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] =
+{
+ [MOVE_POUND - 1] = sPoundMoveDescription,
+ [MOVE_KARATE_CHOP - 1] = sKarateChopMoveDescription,
+ [MOVE_DOUBLE_SLAP - 1] = sDoubleSlapMoveDescription,
+ [MOVE_COMET_PUNCH - 1] = sCometPunchMoveDescription,
+ [MOVE_MEGA_PUNCH - 1] = sMegaPunchMoveDescription,
+ [MOVE_PAY_DAY - 1] = sPayDayMoveDescription,
+ [MOVE_FIRE_PUNCH - 1] = sFirePunchMoveDescription,
+ [MOVE_ICE_PUNCH - 1] = sIcePunchMoveDescription,
+ [MOVE_THUNDER_PUNCH - 1] = sThunderPunchMoveDescription,
+ [MOVE_SCRATCH - 1] = sScratchMoveDescription,
+ [MOVE_VICE_GRIP - 1] = sViceGripMoveDescription,
+ [MOVE_GUILLOTINE - 1] = sGuillotineMoveDescription,
+ [MOVE_RAZOR_WIND - 1] = sRazorWindMoveDescription,
+ [MOVE_SWORDS_DANCE - 1] = sSwordsDanceMoveDescription,
+ [MOVE_CUT - 1] = sCutMoveDescription,
+ [MOVE_GUST - 1] = sGustMoveDescription,
+ [MOVE_WING_ATTACK - 1] = sWingAttackMoveDescription,
+ [MOVE_WHIRLWIND - 1] = sWhirlwindMoveDescription,
+ [MOVE_FLY - 1] = sFlyMoveDescription,
+ [MOVE_BIND - 1] = sBindMoveDescription,
+ [MOVE_SLAM - 1] = sSlamMoveDescription,
+ [MOVE_VINE_WHIP - 1] = sVineWhipMoveDescription,
+ [MOVE_STOMP - 1] = sStompMoveDescription,
+ [MOVE_DOUBLE_KICK - 1] = sDoubleKickMoveDescription,
+ [MOVE_MEGA_KICK - 1] = sMegaKickMoveDescription,
+ [MOVE_JUMP_KICK - 1] = sJumpKickMoveDescription,
+ [MOVE_ROLLING_KICK - 1] = sRollingKickMoveDescription,
+ [MOVE_SAND_ATTACK - 1] = sSandAttackMoveDescription,
+ [MOVE_HEADBUTT - 1] = sHeadbuttMoveDescription,
+ [MOVE_HORN_ATTACK - 1] = sHornAttackMoveDescription,
+ [MOVE_FURY_ATTACK - 1] = sFuryAttackMoveDescription,
+ [MOVE_HORN_DRILL - 1] = sHornDrillMoveDescription,
+ [MOVE_TACKLE - 1] = sTackleMoveDescription,
+ [MOVE_BODY_SLAM - 1] = sBodySlamMoveDescription,
+ [MOVE_WRAP - 1] = sWrapMoveDescription,
+ [MOVE_TAKE_DOWN - 1] = sTakeDownMoveDescription,
+ [MOVE_THRASH - 1] = sThrashMoveDescription,
+ [MOVE_DOUBLE_EDGE - 1] = sDoubleEdgeMoveDescription,
+ [MOVE_TAIL_WHIP - 1] = sTailWhipMoveDescription,
+ [MOVE_POISON_STING - 1] = sPoisonStingMoveDescription,
+ [MOVE_TWINEEDLE - 1] = sTwineedleMoveDescription,
+ [MOVE_PIN_MISSILE - 1] = sPinMissileMoveDescription,
+ [MOVE_LEER - 1] = sLeerMoveDescription,
+ [MOVE_BITE - 1] = sBiteMoveDescription,
+ [MOVE_GROWL - 1] = sGrowlMoveDescription,
+ [MOVE_ROAR - 1] = sRoarMoveDescription,
+ [MOVE_SING - 1] = sSingMoveDescription,
+ [MOVE_SUPERSONIC - 1] = sSupersonicMoveDescription,
+ [MOVE_SONIC_BOOM - 1] = sSonicBoomMoveDescription,
+ [MOVE_DISABLE - 1] = sDisableMoveDescription,
+ [MOVE_ACID - 1] = sAcidMoveDescription,
+ [MOVE_EMBER - 1] = sEmberMoveDescription,
+ [MOVE_FLAMETHROWER - 1] = sFlamethrowerMoveDescription,
+ [MOVE_MIST - 1] = sMistMoveDescription,
+ [MOVE_WATER_GUN - 1] = sWaterGunMoveDescription,
+ [MOVE_HYDRO_PUMP - 1] = sHydroPumpMoveDescription,
+ [MOVE_SURF - 1] = sSurfMoveDescription,
+ [MOVE_ICE_BEAM - 1] = sIceBeamMoveDescription,
+ [MOVE_BLIZZARD - 1] = sBlizzardMoveDescription,
+ [MOVE_PSYBEAM - 1] = sPsybeamMoveDescription,
+ [MOVE_BUBBLE_BEAM - 1] = sBubbleBeamMoveDescription,
+ [MOVE_AURORA_BEAM - 1] = sAuroraBeamMoveDescription,
+ [MOVE_HYPER_BEAM - 1] = sHyperBeamMoveDescription,
+ [MOVE_PECK - 1] = sPeckMoveDescription,
+ [MOVE_DRILL_PECK - 1] = sDrillPeckMoveDescription,
+ [MOVE_SUBMISSION - 1] = sSubmissionMoveDescription,
+ [MOVE_LOW_KICK - 1] = sLowKickMoveDescription,
+ [MOVE_COUNTER - 1] = sCounterMoveDescription,
+ [MOVE_SEISMIC_TOSS - 1] = sSeismicTossMoveDescription,
+ [MOVE_STRENGTH - 1] = sStrengthMoveDescription,
+ [MOVE_ABSORB - 1] = sAbsorbMoveDescription,
+ [MOVE_MEGA_DRAIN - 1] = sMegaDrainMoveDescription,
+ [MOVE_LEECH_SEED - 1] = sLeechSeedMoveDescription,
+ [MOVE_GROWTH - 1] = sGrowthMoveDescription,
+ [MOVE_RAZOR_LEAF - 1] = sRazorLeafMoveDescription,
+ [MOVE_SOLAR_BEAM - 1] = sSolarBeamMoveDescription,
+ [MOVE_POISON_POWDER - 1] = sPoisonPowderMoveDescription,
+ [MOVE_STUN_SPORE - 1] = sStunSporeMoveDescription,
+ [MOVE_SLEEP_POWDER - 1] = sSleepPowderMoveDescription,
+ [MOVE_PETAL_DANCE - 1] = sPetalDanceMoveDescription,
+ [MOVE_STRING_SHOT - 1] = sStringShotMoveDescription,
+ [MOVE_DRAGON_RAGE - 1] = sDragonRageMoveDescription,
+ [MOVE_FIRE_SPIN - 1] = sFireSpinMoveDescription,
+ [MOVE_THUNDER_SHOCK - 1] = sThunderShockMoveDescription,
+ [MOVE_THUNDERBOLT - 1] = sThunderboltMoveDescription,
+ [MOVE_THUNDER_WAVE - 1] = sThunderWaveMoveDescription,
+ [MOVE_THUNDER - 1] = sThunderMoveDescription,
+ [MOVE_ROCK_THROW - 1] = sRockThrowMoveDescription,
+ [MOVE_EARTHQUAKE - 1] = sEarthquakeMoveDescription,
+ [MOVE_FISSURE - 1] = sFissureMoveDescription,
+ [MOVE_DIG - 1] = sDigMoveDescription,
+ [MOVE_TOXIC - 1] = sToxicMoveDescription,
+ [MOVE_CONFUSION - 1] = sConfusionMoveDescription,
+ [MOVE_PSYCHIC - 1] = sPsychicMoveDescription,
+ [MOVE_HYPNOSIS - 1] = sHypnosisMoveDescription,
+ [MOVE_MEDITATE - 1] = sMeditateMoveDescription,
+ [MOVE_AGILITY - 1] = sAgilityMoveDescription,
+ [MOVE_QUICK_ATTACK - 1] = sQuickAttackMoveDescription,
+ [MOVE_RAGE - 1] = sRageMoveDescription,
+ [MOVE_TELEPORT - 1] = sTeleportMoveDescription,
+ [MOVE_NIGHT_SHADE - 1] = sNightShadeMoveDescription,
+ [MOVE_MIMIC - 1] = sMimicMoveDescription,
+ [MOVE_SCREECH - 1] = sScreechMoveDescription,
+ [MOVE_DOUBLE_TEAM - 1] = sDoubleTeamMoveDescription,
+ [MOVE_RECOVER - 1] = sRecoverMoveDescription,
+ [MOVE_HARDEN - 1] = sHardenMoveDescription,
+ [MOVE_MINIMIZE - 1] = sMinimizeMoveDescription,
+ [MOVE_SMOKESCREEN - 1] = sSmokescreenMoveDescription,
+ [MOVE_CONFUSE_RAY - 1] = sConfuseRayMoveDescription,
+ [MOVE_WITHDRAW - 1] = sWithdrawMoveDescription,
+ [MOVE_DEFENSE_CURL - 1] = sDefenseCurlMoveDescription,
+ [MOVE_BARRIER - 1] = sBarrierMoveDescription,
+ [MOVE_LIGHT_SCREEN - 1] = sLightScreenMoveDescription,
+ [MOVE_HAZE - 1] = sHazeMoveDescription,
+ [MOVE_REFLECT - 1] = sReflectMoveDescription,
+ [MOVE_FOCUS_ENERGY - 1] = sFocusEnergyMoveDescription,
+ [MOVE_BIDE - 1] = sBideMoveDescription,
+ [MOVE_METRONOME - 1] = sMetronomeMoveDescription,
+ [MOVE_MIRROR_MOVE - 1] = sMirrorMoveMoveDescription,
+ [MOVE_SELF_DESTRUCT - 1] = sSelfDestructMoveDescription,
+ [MOVE_EGG_BOMB - 1] = sEggBombMoveDescription,
+ [MOVE_LICK - 1] = sLickMoveDescription,
+ [MOVE_SMOG - 1] = sSmogMoveDescription,
+ [MOVE_SLUDGE - 1] = sSludgeMoveDescription,
+ [MOVE_BONE_CLUB - 1] = sBoneClubMoveDescription,
+ [MOVE_FIRE_BLAST - 1] = sFireBlastMoveDescription,
+ [MOVE_WATERFALL - 1] = sWaterfallMoveDescription,
+ [MOVE_CLAMP - 1] = sClampMoveDescription,
+ [MOVE_SWIFT - 1] = sSwiftMoveDescription,
+ [MOVE_SKULL_BASH - 1] = sSkullBashMoveDescription,
+ [MOVE_SPIKE_CANNON - 1] = sSpikeCannonMoveDescription,
+ [MOVE_CONSTRICT - 1] = sConstrictMoveDescription,
+ [MOVE_AMNESIA - 1] = sAmnesiaMoveDescription,
+ [MOVE_KINESIS - 1] = sKinesisMoveDescription,
+ [MOVE_SOFT_BOILED - 1] = sSoftBoiledMoveDescription,
+ [MOVE_HI_JUMP_KICK - 1] = sHiJumpKickMoveDescription,
+ [MOVE_GLARE - 1] = sGlareMoveDescription,
+ [MOVE_DREAM_EATER - 1] = sDreamEaterMoveDescription,
+ [MOVE_POISON_GAS - 1] = sPoisonGasMoveDescription,
+ [MOVE_BARRAGE - 1] = sBarrageMoveDescription,
+ [MOVE_LEECH_LIFE - 1] = sLeechLifeMoveDescription,
+ [MOVE_LOVELY_KISS - 1] = sLovelyKissMoveDescription,
+ [MOVE_SKY_ATTACK - 1] = sSkyAttackMoveDescription,
+ [MOVE_TRANSFORM - 1] = sTransformMoveDescription,
+ [MOVE_BUBBLE - 1] = sBubbleMoveDescription,
+ [MOVE_DIZZY_PUNCH - 1] = sDizzyPunchMoveDescription,
+ [MOVE_SPORE - 1] = sSporeMoveDescription,
+ [MOVE_FLASH - 1] = sFlashMoveDescription,
+ [MOVE_PSYWAVE - 1] = sPsywaveMoveDescription,
+ [MOVE_SPLASH - 1] = sSplashMoveDescription,
+ [MOVE_ACID_ARMOR - 1] = sAcidArmorMoveDescription,
+ [MOVE_CRABHAMMER - 1] = sCrabhammerMoveDescription,
+ [MOVE_EXPLOSION - 1] = sExplosionMoveDescription,
+ [MOVE_FURY_SWIPES - 1] = sFurySwipesMoveDescription,
+ [MOVE_BONEMERANG - 1] = sBonemerangMoveDescription,
+ [MOVE_REST - 1] = sRestMoveDescription,
+ [MOVE_ROCK_SLIDE - 1] = sRockSlideMoveDescription,
+ [MOVE_HYPER_FANG - 1] = sHyperFangMoveDescription,
+ [MOVE_SHARPEN - 1] = sSharpenMoveDescription,
+ [MOVE_CONVERSION - 1] = sConversionMoveDescription,
+ [MOVE_TRI_ATTACK - 1] = sTriAttackMoveDescription,
+ [MOVE_SUPER_FANG - 1] = sSuperFangMoveDescription,
+ [MOVE_SLASH - 1] = sSlashMoveDescription,
+ [MOVE_SUBSTITUTE - 1] = sSubstituteMoveDescription,
+ [MOVE_STRUGGLE - 1] = sStruggleMoveDescription,
+ [MOVE_SKETCH - 1] = sSketchMoveDescription,
+ [MOVE_TRIPLE_KICK - 1] = sTripleKickMoveDescription,
+ [MOVE_THIEF - 1] = sThiefMoveDescription,
+ [MOVE_SPIDER_WEB - 1] = sSpiderWebMoveDescription,
+ [MOVE_MIND_READER - 1] = sMindReaderMoveDescription,
+ [MOVE_NIGHTMARE - 1] = sNightmareMoveDescription,
+ [MOVE_FLAME_WHEEL - 1] = sFlameWheelMoveDescription,
+ [MOVE_SNORE - 1] = sSnoreMoveDescription,
+ [MOVE_CURSE - 1] = sCurseMoveDescription,
+ [MOVE_FLAIL - 1] = sFlailMoveDescription,
+ [MOVE_CONVERSION_2 - 1] = sConversion2MoveDescription,
+ [MOVE_AEROBLAST - 1] = sAeroblastMoveDescription,
+ [MOVE_COTTON_SPORE - 1] = sCottonSporeMoveDescription,
+ [MOVE_REVERSAL - 1] = sReversalMoveDescription,
+ [MOVE_SPITE - 1] = sSpiteMoveDescription,
+ [MOVE_POWDER_SNOW - 1] = sPowderSnowMoveDescription,
+ [MOVE_PROTECT - 1] = sProtectMoveDescription,
+ [MOVE_MACH_PUNCH - 1] = sMachPunchMoveDescription,
+ [MOVE_SCARY_FACE - 1] = sScaryFaceMoveDescription,
+ [MOVE_FAINT_ATTACK - 1] = sFaintAttackMoveDescription,
+ [MOVE_SWEET_KISS - 1] = sSweetKissMoveDescription,
+ [MOVE_BELLY_DRUM - 1] = sBellyDrumMoveDescription,
+ [MOVE_SLUDGE_BOMB - 1] = sSludgeBombMoveDescription,
+ [MOVE_MUD_SLAP - 1] = sMudSlapMoveDescription,
+ [MOVE_OCTAZOOKA - 1] = sOctazookaMoveDescription,
+ [MOVE_SPIKES - 1] = sSpikesMoveDescription,
+ [MOVE_ZAP_CANNON - 1] = sZapCannonMoveDescription,
+ [MOVE_FORESIGHT - 1] = sForesightMoveDescription,
+ [MOVE_DESTINY_BOND - 1] = sDestinyBondMoveDescription,
+ [MOVE_PERISH_SONG - 1] = sPerishSongMoveDescription,
+ [MOVE_ICY_WIND - 1] = sIcyWindMoveDescription,
+ [MOVE_DETECT - 1] = sDetectMoveDescription,
+ [MOVE_BONE_RUSH - 1] = sBoneRushMoveDescription,
+ [MOVE_LOCK_ON - 1] = sLockOnMoveDescription,
+ [MOVE_OUTRAGE - 1] = sOutrageMoveDescription,
+ [MOVE_SANDSTORM - 1] = sSandstormMoveDescription,
+ [MOVE_GIGA_DRAIN - 1] = sGigaDrainMoveDescription,
+ [MOVE_ENDURE - 1] = sEndureMoveDescription,
+ [MOVE_CHARM - 1] = sCharmMoveDescription,
+ [MOVE_ROLLOUT - 1] = sRolloutMoveDescription,
+ [MOVE_FALSE_SWIPE - 1] = sFalseSwipeMoveDescription,
+ [MOVE_SWAGGER - 1] = sSwaggerMoveDescription,
+ [MOVE_MILK_DRINK - 1] = sMilkDrinkMoveDescription,
+ [MOVE_SPARK - 1] = sSparkMoveDescription,
+ [MOVE_FURY_CUTTER - 1] = sFuryCutterMoveDescription,
+ [MOVE_STEEL_WING - 1] = sSteelWingMoveDescription,
+ [MOVE_MEAN_LOOK - 1] = sMeanLookMoveDescription,
+ [MOVE_ATTRACT - 1] = sAttractMoveDescription,
+ [MOVE_SLEEP_TALK - 1] = sSleepTalkMoveDescription,
+ [MOVE_HEAL_BELL - 1] = sHealBellMoveDescription,
+ [MOVE_RETURN - 1] = sReturnMoveDescription,
+ [MOVE_PRESENT - 1] = sPresentMoveDescription,
+ [MOVE_FRUSTRATION - 1] = sFrustrationMoveDescription,
+ [MOVE_SAFEGUARD - 1] = sSafeguardMoveDescription,
+ [MOVE_PAIN_SPLIT - 1] = sPainSplitMoveDescription,
+ [MOVE_SACRED_FIRE - 1] = sSacredFireMoveDescription,
+ [MOVE_MAGNITUDE - 1] = sMagnitudeMoveDescription,
+ [MOVE_DYNAMIC_PUNCH - 1] = sDynamicPunchMoveDescription,
+ [MOVE_MEGAHORN - 1] = sMegahornMoveDescription,
+ [MOVE_DRAGON_BREATH - 1] = sDragonBreathMoveDescription,
+ [MOVE_BATON_PASS - 1] = sBatonPassMoveDescription,
+ [MOVE_ENCORE - 1] = sEncoreMoveDescription,
+ [MOVE_PURSUIT - 1] = sPursuitMoveDescription,
+ [MOVE_RAPID_SPIN - 1] = sRapidSpinMoveDescription,
+ [MOVE_SWEET_SCENT - 1] = sSweetScentMoveDescription,
+ [MOVE_IRON_TAIL - 1] = sIronTailMoveDescription,
+ [MOVE_METAL_CLAW - 1] = sMetalClawMoveDescription,
+ [MOVE_VITAL_THROW - 1] = sVitalThrowMoveDescription,
+ [MOVE_MORNING_SUN - 1] = sMorningSunMoveDescription,
+ [MOVE_SYNTHESIS - 1] = sSynthesisMoveDescription,
+ [MOVE_MOONLIGHT - 1] = sMoonlightMoveDescription,
+ [MOVE_HIDDEN_POWER - 1] = sHiddenPowerMoveDescription,
+ [MOVE_CROSS_CHOP - 1] = sCrossChopMoveDescription,
+ [MOVE_TWISTER - 1] = sTwisterMoveDescription,
+ [MOVE_RAIN_DANCE - 1] = sRainDanceMoveDescription,
+ [MOVE_SUNNY_DAY - 1] = sSunnyDayMoveDescription,
+ [MOVE_CRUNCH - 1] = sCrunchMoveDescription,
+ [MOVE_MIRROR_COAT - 1] = sMirrorCoatMoveDescription,
+ [MOVE_PSYCH_UP - 1] = sPsychUpMoveDescription,
+ [MOVE_EXTREME_SPEED - 1] = sExtremeSpeedMoveDescription,
+ [MOVE_ANCIENT_POWER - 1] = sAncientPowerMoveDescription,
+ [MOVE_SHADOW_BALL - 1] = sShadowBallMoveDescription,
+ [MOVE_FUTURE_SIGHT - 1] = sFutureSightMoveDescription,
+ [MOVE_ROCK_SMASH - 1] = sRockSmashMoveDescription,
+ [MOVE_WHIRLPOOL - 1] = sWhirlpoolMoveDescription,
+ [MOVE_BEAT_UP - 1] = sBeatUpMoveDescription,
+ [MOVE_FAKE_OUT - 1] = sFakeOutMoveDescription,
+ [MOVE_UPROAR - 1] = sUproarMoveDescription,
+ [MOVE_STOCKPILE - 1] = sStockpileMoveDescription,
+ [MOVE_SPIT_UP - 1] = sSpitUpMoveDescription,
+ [MOVE_SWALLOW - 1] = sSwallowMoveDescription,
+ [MOVE_HEAT_WAVE - 1] = sHeatWaveMoveDescription,
+ [MOVE_HAIL - 1] = sHailMoveDescription,
+ [MOVE_TORMENT - 1] = sTormentMoveDescription,
+ [MOVE_FLATTER - 1] = sFlatterMoveDescription,
+ [MOVE_WILL_O_WISP - 1] = sWillOWispMoveDescription,
+ [MOVE_MEMENTO - 1] = sMementoMoveDescription,
+ [MOVE_FACADE - 1] = sFacadeMoveDescription,
+ [MOVE_FOCUS_PUNCH - 1] = sFocusPunchMoveDescription,
+ [MOVE_SMELLING_SALT - 1] = sSmellingSaltMoveDescription,
+ [MOVE_FOLLOW_ME - 1] = sFollowMeMoveDescription,
+ [MOVE_NATURE_POWER - 1] = sNaturePowerMoveDescription,
+ [MOVE_CHARGE - 1] = sChargeMoveDescription,
+ [MOVE_TAUNT - 1] = sTauntMoveDescription,
+ [MOVE_HELPING_HAND - 1] = sHelpingHandMoveDescription,
+ [MOVE_TRICK - 1] = sTrickMoveDescription,
+ [MOVE_ROLE_PLAY - 1] = sRolePlayMoveDescription,
+ [MOVE_WISH - 1] = sWishMoveDescription,
+ [MOVE_ASSIST - 1] = sAssistMoveDescription,
+ [MOVE_INGRAIN - 1] = sIngrainMoveDescription,
+ [MOVE_SUPERPOWER - 1] = sSuperpowerMoveDescription,
+ [MOVE_MAGIC_COAT - 1] = sMagicCoatMoveDescription,
+ [MOVE_RECYCLE - 1] = sRecycleMoveDescription,
+ [MOVE_REVENGE - 1] = sRevengeMoveDescription,
+ [MOVE_BRICK_BREAK - 1] = sBrickBreakMoveDescription,
+ [MOVE_YAWN - 1] = sYawnMoveDescription,
+ [MOVE_KNOCK_OFF - 1] = sKnockOffMoveDescription,
+ [MOVE_ENDEAVOR - 1] = sEndeavorMoveDescription,
+ [MOVE_ERUPTION - 1] = sEruptionMoveDescription,
+ [MOVE_SKILL_SWAP - 1] = sSkillSwapMoveDescription,
+ [MOVE_IMPRISON - 1] = sImprisonMoveDescription,
+ [MOVE_REFRESH - 1] = sRefreshMoveDescription,
+ [MOVE_GRUDGE - 1] = sGrudgeMoveDescription,
+ [MOVE_SNATCH - 1] = sSnatchMoveDescription,
+ [MOVE_SECRET_POWER - 1] = sSecretPowerMoveDescription,
+ [MOVE_DIVE - 1] = sDiveMoveDescription,
+ [MOVE_ARM_THRUST - 1] = sArmThrustMoveDescription,
+ [MOVE_CAMOUFLAGE - 1] = sCamouflageMoveDescription,
+ [MOVE_TAIL_GLOW - 1] = sTailGlowMoveDescription,
+ [MOVE_LUSTER_PURGE - 1] = sLusterPurgeMoveDescription,
+ [MOVE_MIST_BALL - 1] = sMistBallMoveDescription,
+ [MOVE_FEATHER_DANCE - 1] = sFeatherDanceMoveDescription,
+ [MOVE_TEETER_DANCE - 1] = sTeeterDanceMoveDescription,
+ [MOVE_BLAZE_KICK - 1] = sBlazeKickMoveDescription,
+ [MOVE_MUD_SPORT - 1] = sMudSportMoveDescription,
+ [MOVE_ICE_BALL - 1] = sIceBallMoveDescription,
+ [MOVE_NEEDLE_ARM - 1] = sNeedleArmMoveDescription,
+ [MOVE_SLACK_OFF - 1] = sSlackOffMoveDescription,
+ [MOVE_HYPER_VOICE - 1] = sHyperVoiceMoveDescription,
+ [MOVE_POISON_FANG - 1] = sPoisonFangMoveDescription,
+ [MOVE_CRUSH_CLAW - 1] = sCrushClawMoveDescription,
+ [MOVE_BLAST_BURN - 1] = sBlastBurnMoveDescription,
+ [MOVE_HYDRO_CANNON - 1] = sHydroCannonMoveDescription,
+ [MOVE_METEOR_MASH - 1] = sMeteorMashMoveDescription,
+ [MOVE_ASTONISH - 1] = sAstonishMoveDescription,
+ [MOVE_WEATHER_BALL - 1] = sWeatherBallMoveDescription,
+ [MOVE_AROMATHERAPY - 1] = sAromatherapyMoveDescription,
+ [MOVE_FAKE_TEARS - 1] = sFakeTearsMoveDescription,
+ [MOVE_AIR_CUTTER - 1] = sAirCutterMoveDescription,
+ [MOVE_OVERHEAT - 1] = sOverheatMoveDescription,
+ [MOVE_ODOR_SLEUTH - 1] = sOdorSleuthMoveDescription,
+ [MOVE_ROCK_TOMB - 1] = sRockTombMoveDescription,
+ [MOVE_SILVER_WIND - 1] = sSilverWindMoveDescription,
+ [MOVE_METAL_SOUND - 1] = sMetalSoundMoveDescription,
+ [MOVE_GRASS_WHISTLE - 1] = sGrassWhistleMoveDescription,
+ [MOVE_TICKLE - 1] = sTickleMoveDescription,
+ [MOVE_COSMIC_POWER - 1] = sCosmicPowerMoveDescription,
+ [MOVE_WATER_SPOUT - 1] = sWaterSpoutMoveDescription,
+ [MOVE_SIGNAL_BEAM - 1] = sSignalBeamMoveDescription,
+ [MOVE_SHADOW_PUNCH - 1] = sShadowPunchMoveDescription,
+ [MOVE_EXTRASENSORY - 1] = sExtrasensoryMoveDescription,
+ [MOVE_SKY_UPPERCUT - 1] = sSkyUppercutMoveDescription,
+ [MOVE_SAND_TOMB - 1] = sSandTombMoveDescription,
+ [MOVE_SHEER_COLD - 1] = sSheerColdMoveDescription,
+ [MOVE_MUDDY_WATER - 1] = sMuddyWaterMoveDescription,
+ [MOVE_BULLET_SEED - 1] = sBulletSeedMoveDescription,
+ [MOVE_AERIAL_ACE - 1] = sAerialAceMoveDescription,
+ [MOVE_ICICLE_SPEAR - 1] = sIcicleSpearMoveDescription,
+ [MOVE_IRON_DEFENSE - 1] = sIronDefenseMoveDescription,
+ [MOVE_BLOCK - 1] = sBlockMoveDescription,
+ [MOVE_HOWL - 1] = sHowlMoveDescription,
+ [MOVE_DRAGON_CLAW - 1] = sDragonClawMoveDescription,
+ [MOVE_FRENZY_PLANT - 1] = sFrenzyPlantMoveDescription,
+ [MOVE_BULK_UP - 1] = sBulkUpMoveDescription,
+ [MOVE_BOUNCE - 1] = sBounceMoveDescription,
+ [MOVE_MUD_SHOT - 1] = sMudShotMoveDescription,
+ [MOVE_POISON_TAIL - 1] = sPoisonTailMoveDescription,
+ [MOVE_COVET - 1] = sCovetMoveDescription,
+ [MOVE_VOLT_TACKLE - 1] = sVoltTackleMoveDescription,
+ [MOVE_MAGICAL_LEAF - 1] = sMagicalLeafMoveDescription,
+ [MOVE_WATER_SPORT - 1] = sWaterSportMoveDescription,
+ [MOVE_CALM_MIND - 1] = sCalmMindMoveDescription,
+ [MOVE_LEAF_BLADE - 1] = sLeafBladeMoveDescription,
+ [MOVE_DRAGON_DANCE - 1] = sDragonDanceMoveDescription,
+ [MOVE_ROCK_BLAST - 1] = sRockBlastMoveDescription,
+ [MOVE_SHOCK_WAVE - 1] = sShockWaveMoveDescription,
+ [MOVE_WATER_PULSE - 1] = sWaterPulseMoveDescription,
+ [MOVE_DOOM_DESIRE - 1] = sDoomDesireMoveDescription,
+ [MOVE_PSYCHO_BOOST - 1] = sPsychoBoostMoveDescription,
+};
diff --git a/src/data/text/move_names.h b/src/data/text/move_names.h
new file mode 100644
index 000000000..9f540f1d6
--- /dev/null
+++ b/src/data/text/move_names.h
@@ -0,0 +1,358 @@
+const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] =
+{
+ [MOVE_NONE] = _("-"),
+ [MOVE_POUND] = _("POUND"),
+ [MOVE_KARATE_CHOP] = _("KARATE CHOP"),
+ [MOVE_DOUBLE_SLAP] = _("DOUBLESLAP"),
+ [MOVE_COMET_PUNCH] = _("COMET PUNCH"),
+ [MOVE_MEGA_PUNCH] = _("MEGA PUNCH"),
+ [MOVE_PAY_DAY] = _("PAY DAY"),
+ [MOVE_FIRE_PUNCH] = _("FIRE PUNCH"),
+ [MOVE_ICE_PUNCH] = _("ICE PUNCH"),
+ [MOVE_THUNDER_PUNCH] = _("THUNDERPUNCH"),
+ [MOVE_SCRATCH] = _("SCRATCH"),
+ [MOVE_VICE_GRIP] = _("VICEGRIP"),
+ [MOVE_GUILLOTINE] = _("GUILLOTINE"),
+ [MOVE_RAZOR_WIND] = _("RAZOR WIND"),
+ [MOVE_SWORDS_DANCE] = _("SWORDS DANCE"),
+ [MOVE_CUT] = _("CUT"),
+ [MOVE_GUST] = _("GUST"),
+ [MOVE_WING_ATTACK] = _("WING ATTACK"),
+ [MOVE_WHIRLWIND] = _("WHIRLWIND"),
+ [MOVE_FLY] = _("FLY"),
+ [MOVE_BIND] = _("BIND"),
+ [MOVE_SLAM] = _("SLAM"),
+ [MOVE_VINE_WHIP] = _("VINE WHIP"),
+ [MOVE_STOMP] = _("STOMP"),
+ [MOVE_DOUBLE_KICK] = _("DOUBLE KICK"),
+ [MOVE_MEGA_KICK] = _("MEGA KICK"),
+ [MOVE_JUMP_KICK] = _("JUMP KICK"),
+ [MOVE_ROLLING_KICK] = _("ROLLING KICK"),
+ [MOVE_SAND_ATTACK] = _("SAND-ATTACK"),
+ [MOVE_HEADBUTT] = _("HEADBUTT"),
+ [MOVE_HORN_ATTACK] = _("HORN ATTACK"),
+ [MOVE_FURY_ATTACK] = _("FURY ATTACK"),
+ [MOVE_HORN_DRILL] = _("HORN DRILL"),
+ [MOVE_TACKLE] = _("TACKLE"),
+ [MOVE_BODY_SLAM] = _("BODY SLAM"),
+ [MOVE_WRAP] = _("WRAP"),
+ [MOVE_TAKE_DOWN] = _("TAKE DOWN"),
+ [MOVE_THRASH] = _("THRASH"),
+ [MOVE_DOUBLE_EDGE] = _("DOUBLE-EDGE"),
+ [MOVE_TAIL_WHIP] = _("TAIL WHIP"),
+ [MOVE_POISON_STING] = _("POISON STING"),
+ [MOVE_TWINEEDLE] = _("TWINEEDLE"),
+ [MOVE_PIN_MISSILE] = _("PIN MISSILE"),
+ [MOVE_LEER] = _("LEER"),
+ [MOVE_BITE] = _("BITE"),
+ [MOVE_GROWL] = _("GROWL"),
+ [MOVE_ROAR] = _("ROAR"),
+ [MOVE_SING] = _("SING"),
+ [MOVE_SUPERSONIC] = _("SUPERSONIC"),
+ [MOVE_SONIC_BOOM] = _("SONICBOOM"),
+ [MOVE_DISABLE] = _("DISABLE"),
+ [MOVE_ACID] = _("ACID"),
+ [MOVE_EMBER] = _("EMBER"),
+ [MOVE_FLAMETHROWER] = _("FLAMETHROWER"),
+ [MOVE_MIST] = _("MIST"),
+ [MOVE_WATER_GUN] = _("WATER GUN"),
+ [MOVE_HYDRO_PUMP] = _("HYDRO PUMP"),
+ [MOVE_SURF] = _("SURF"),
+ [MOVE_ICE_BEAM] = _("ICE BEAM"),
+ [MOVE_BLIZZARD] = _("BLIZZARD"),
+ [MOVE_PSYBEAM] = _("PSYBEAM"),
+ [MOVE_BUBBLE_BEAM] = _("BUBBLEBEAM"),
+ [MOVE_AURORA_BEAM] = _("AURORA BEAM"),
+ [MOVE_HYPER_BEAM] = _("HYPER BEAM"),
+ [MOVE_PECK] = _("PECK"),
+ [MOVE_DRILL_PECK] = _("DRILL PECK"),
+ [MOVE_SUBMISSION] = _("SUBMISSION"),
+ [MOVE_LOW_KICK] = _("LOW KICK"),
+ [MOVE_COUNTER] = _("COUNTER"),
+ [MOVE_SEISMIC_TOSS] = _("SEISMIC TOSS"),
+ [MOVE_STRENGTH] = _("STRENGTH"),
+ [MOVE_ABSORB] = _("ABSORB"),
+ [MOVE_MEGA_DRAIN] = _("MEGA DRAIN"),
+ [MOVE_LEECH_SEED] = _("LEECH SEED"),
+ [MOVE_GROWTH] = _("GROWTH"),
+ [MOVE_RAZOR_LEAF] = _("RAZOR LEAF"),
+ [MOVE_SOLAR_BEAM] = _("SOLARBEAM"),
+ [MOVE_POISON_POWDER] = _("POISONPOWDER"),
+ [MOVE_STUN_SPORE] = _("STUN SPORE"),
+ [MOVE_SLEEP_POWDER] = _("SLEEP POWDER"),
+ [MOVE_PETAL_DANCE] = _("PETAL DANCE"),
+ [MOVE_STRING_SHOT] = _("STRING SHOT"),
+ [MOVE_DRAGON_RAGE] = _("DRAGON RAGE"),
+ [MOVE_FIRE_SPIN] = _("FIRE SPIN"),
+ [MOVE_THUNDER_SHOCK] = _("THUNDERSHOCK"),
+ [MOVE_THUNDERBOLT] = _("THUNDERBOLT"),
+ [MOVE_THUNDER_WAVE] = _("THUNDER WAVE"),
+ [MOVE_THUNDER] = _("THUNDER"),
+ [MOVE_ROCK_THROW] = _("ROCK THROW"),
+ [MOVE_EARTHQUAKE] = _("EARTHQUAKE"),
+ [MOVE_FISSURE] = _("FISSURE"),
+ [MOVE_DIG] = _("DIG"),
+ [MOVE_TOXIC] = _("TOXIC"),
+ [MOVE_CONFUSION] = _("CONFUSION"),
+ [MOVE_PSYCHIC] = _("PSYCHIC"),
+ [MOVE_HYPNOSIS] = _("HYPNOSIS"),
+ [MOVE_MEDITATE] = _("MEDITATE"),
+ [MOVE_AGILITY] = _("AGILITY"),
+ [MOVE_QUICK_ATTACK] = _("QUICK ATTACK"),
+ [MOVE_RAGE] = _("RAGE"),
+ [MOVE_TELEPORT] = _("TELEPORT"),
+ [MOVE_NIGHT_SHADE] = _("NIGHT SHADE"),
+ [MOVE_MIMIC] = _("MIMIC"),
+ [MOVE_SCREECH] = _("SCREECH"),
+ [MOVE_DOUBLE_TEAM] = _("DOUBLE TEAM"),
+ [MOVE_RECOVER] = _("RECOVER"),
+ [MOVE_HARDEN] = _("HARDEN"),
+ [MOVE_MINIMIZE] = _("MINIMIZE"),
+ [MOVE_SMOKESCREEN] = _("SMOKESCREEN"),
+ [MOVE_CONFUSE_RAY] = _("CONFUSE RAY"),
+ [MOVE_WITHDRAW] = _("WITHDRAW"),
+ [MOVE_DEFENSE_CURL] = _("DEFENSE CURL"),
+ [MOVE_BARRIER] = _("BARRIER"),
+ [MOVE_LIGHT_SCREEN] = _("LIGHT SCREEN"),
+ [MOVE_HAZE] = _("HAZE"),
+ [MOVE_REFLECT] = _("REFLECT"),
+ [MOVE_FOCUS_ENERGY] = _("FOCUS ENERGY"),
+ [MOVE_BIDE] = _("BIDE"),
+ [MOVE_METRONOME] = _("METRONOME"),
+ [MOVE_MIRROR_MOVE] = _("MIRROR MOVE"),
+ [MOVE_SELF_DESTRUCT] = _("SELFDESTRUCT"),
+ [MOVE_EGG_BOMB] = _("EGG BOMB"),
+ [MOVE_LICK] = _("LICK"),
+ [MOVE_SMOG] = _("SMOG"),
+ [MOVE_SLUDGE] = _("SLUDGE"),
+ [MOVE_BONE_CLUB] = _("BONE CLUB"),
+ [MOVE_FIRE_BLAST] = _("FIRE BLAST"),
+ [MOVE_WATERFALL] = _("WATERFALL"),
+ [MOVE_CLAMP] = _("CLAMP"),
+ [MOVE_SWIFT] = _("SWIFT"),
+ [MOVE_SKULL_BASH] = _("SKULL BASH"),
+ [MOVE_SPIKE_CANNON] = _("SPIKE CANNON"),
+ [MOVE_CONSTRICT] = _("CONSTRICT"),
+ [MOVE_AMNESIA] = _("AMNESIA"),
+ [MOVE_KINESIS] = _("KINESIS"),
+ [MOVE_SOFT_BOILED] = _("SOFTBOILED"),
+ [MOVE_HI_JUMP_KICK] = _("HI JUMP KICK"),
+ [MOVE_GLARE] = _("GLARE"),
+ [MOVE_DREAM_EATER] = _("DREAM EATER"),
+ [MOVE_POISON_GAS] = _("POISON GAS"),
+ [MOVE_BARRAGE] = _("BARRAGE"),
+ [MOVE_LEECH_LIFE] = _("LEECH LIFE"),
+ [MOVE_LOVELY_KISS] = _("LOVELY KISS"),
+ [MOVE_SKY_ATTACK] = _("SKY ATTACK"),
+ [MOVE_TRANSFORM] = _("TRANSFORM"),
+ [MOVE_BUBBLE] = _("BUBBLE"),
+ [MOVE_DIZZY_PUNCH] = _("DIZZY PUNCH"),
+ [MOVE_SPORE] = _("SPORE"),
+ [MOVE_FLASH] = _("FLASH"),
+ [MOVE_PSYWAVE] = _("PSYWAVE"),
+ [MOVE_SPLASH] = _("SPLASH"),
+ [MOVE_ACID_ARMOR] = _("ACID ARMOR"),
+ [MOVE_CRABHAMMER] = _("CRABHAMMER"),
+ [MOVE_EXPLOSION] = _("EXPLOSION"),
+ [MOVE_FURY_SWIPES] = _("FURY SWIPES"),
+ [MOVE_BONEMERANG] = _("BONEMERANG"),
+ [MOVE_REST] = _("REST"),
+ [MOVE_ROCK_SLIDE] = _("ROCK SLIDE"),
+ [MOVE_HYPER_FANG] = _("HYPER FANG"),
+ [MOVE_SHARPEN] = _("SHARPEN"),
+ [MOVE_CONVERSION] = _("CONVERSION"),
+ [MOVE_TRI_ATTACK] = _("TRI ATTACK"),
+ [MOVE_SUPER_FANG] = _("SUPER FANG"),
+ [MOVE_SLASH] = _("SLASH"),
+ [MOVE_SUBSTITUTE] = _("SUBSTITUTE"),
+ [MOVE_STRUGGLE] = _("STRUGGLE"),
+ [MOVE_SKETCH] = _("SKETCH"),
+ [MOVE_TRIPLE_KICK] = _("TRIPLE KICK"),
+ [MOVE_THIEF] = _("THIEF"),
+ [MOVE_SPIDER_WEB] = _("SPIDER WEB"),
+ [MOVE_MIND_READER] = _("MIND READER"),
+ [MOVE_NIGHTMARE] = _("NIGHTMARE"),
+ [MOVE_FLAME_WHEEL] = _("FLAME WHEEL"),
+ [MOVE_SNORE] = _("SNORE"),
+ [MOVE_CURSE] = _("CURSE"),
+ [MOVE_FLAIL] = _("FLAIL"),
+ [MOVE_CONVERSION_2] = _("CONVERSION 2"),
+ [MOVE_AEROBLAST] = _("AEROBLAST"),
+ [MOVE_COTTON_SPORE] = _("COTTON SPORE"),
+ [MOVE_REVERSAL] = _("REVERSAL"),
+ [MOVE_SPITE] = _("SPITE"),
+ [MOVE_POWDER_SNOW] = _("POWDER SNOW"),
+ [MOVE_PROTECT] = _("PROTECT"),
+ [MOVE_MACH_PUNCH] = _("MACH PUNCH"),
+ [MOVE_SCARY_FACE] = _("SCARY FACE"),
+ [MOVE_FAINT_ATTACK] = _("FAINT ATTACK"),
+ [MOVE_SWEET_KISS] = _("SWEET KISS"),
+ [MOVE_BELLY_DRUM] = _("BELLY DRUM"),
+ [MOVE_SLUDGE_BOMB] = _("SLUDGE BOMB"),
+ [MOVE_MUD_SLAP] = _("MUD-SLAP"),
+ [MOVE_OCTAZOOKA] = _("OCTAZOOKA"),
+ [MOVE_SPIKES] = _("SPIKES"),
+ [MOVE_ZAP_CANNON] = _("ZAP CANNON"),
+ [MOVE_FORESIGHT] = _("FORESIGHT"),
+ [MOVE_DESTINY_BOND] = _("DESTINY BOND"),
+ [MOVE_PERISH_SONG] = _("PERISH SONG"),
+ [MOVE_ICY_WIND] = _("ICY WIND"),
+ [MOVE_DETECT] = _("DETECT"),
+ [MOVE_BONE_RUSH] = _("BONE RUSH"),
+ [MOVE_LOCK_ON] = _("LOCK-ON"),
+ [MOVE_OUTRAGE] = _("OUTRAGE"),
+ [MOVE_SANDSTORM] = _("SANDSTORM"),
+ [MOVE_GIGA_DRAIN] = _("GIGA DRAIN"),
+ [MOVE_ENDURE] = _("ENDURE"),
+ [MOVE_CHARM] = _("CHARM"),
+ [MOVE_ROLLOUT] = _("ROLLOUT"),
+ [MOVE_FALSE_SWIPE] = _("FALSE SWIPE"),
+ [MOVE_SWAGGER] = _("SWAGGER"),
+ [MOVE_MILK_DRINK] = _("MILK DRINK"),
+ [MOVE_SPARK] = _("SPARK"),
+ [MOVE_FURY_CUTTER] = _("FURY CUTTER"),
+ [MOVE_STEEL_WING] = _("STEEL WING"),
+ [MOVE_MEAN_LOOK] = _("MEAN LOOK"),
+ [MOVE_ATTRACT] = _("ATTRACT"),
+ [MOVE_SLEEP_TALK] = _("SLEEP TALK"),
+ [MOVE_HEAL_BELL] = _("HEAL BELL"),
+ [MOVE_RETURN] = _("RETURN"),
+ [MOVE_PRESENT] = _("PRESENT"),
+ [MOVE_FRUSTRATION] = _("FRUSTRATION"),
+ [MOVE_SAFEGUARD] = _("SAFEGUARD"),
+ [MOVE_PAIN_SPLIT] = _("PAIN SPLIT"),
+ [MOVE_SACRED_FIRE] = _("SACRED FIRE"),
+ [MOVE_MAGNITUDE] = _("MAGNITUDE"),
+ [MOVE_DYNAMIC_PUNCH] = _("DYNAMICPUNCH"),
+ [MOVE_MEGAHORN] = _("MEGAHORN"),
+ [MOVE_DRAGON_BREATH] = _("DRAGONBREATH"),
+ [MOVE_BATON_PASS] = _("BATON PASS"),
+ [MOVE_ENCORE] = _("ENCORE"),
+ [MOVE_PURSUIT] = _("PURSUIT"),
+ [MOVE_RAPID_SPIN] = _("RAPID SPIN"),
+ [MOVE_SWEET_SCENT] = _("SWEET SCENT"),
+ [MOVE_IRON_TAIL] = _("IRON TAIL"),
+ [MOVE_METAL_CLAW] = _("METAL CLAW"),
+ [MOVE_VITAL_THROW] = _("VITAL THROW"),
+ [MOVE_MORNING_SUN] = _("MORNING SUN"),
+ [MOVE_SYNTHESIS] = _("SYNTHESIS"),
+ [MOVE_MOONLIGHT] = _("MOONLIGHT"),
+ [MOVE_HIDDEN_POWER] = _("HIDDEN POWER"),
+ [MOVE_CROSS_CHOP] = _("CROSS CHOP"),
+ [MOVE_TWISTER] = _("TWISTER"),
+ [MOVE_RAIN_DANCE] = _("RAIN DANCE"),
+ [MOVE_SUNNY_DAY] = _("SUNNY DAY"),
+ [MOVE_CRUNCH] = _("CRUNCH"),
+ [MOVE_MIRROR_COAT] = _("MIRROR COAT"),
+ [MOVE_PSYCH_UP] = _("PSYCH UP"),
+ [MOVE_EXTREME_SPEED] = _("EXTREMESPEED"),
+ [MOVE_ANCIENT_POWER] = _("ANCIENTPOWER"),
+ [MOVE_SHADOW_BALL] = _("SHADOW BALL"),
+ [MOVE_FUTURE_SIGHT] = _("FUTURE SIGHT"),
+ [MOVE_ROCK_SMASH] = _("ROCK SMASH"),
+ [MOVE_WHIRLPOOL] = _("WHIRLPOOL"),
+ [MOVE_BEAT_UP] = _("BEAT UP"),
+ [MOVE_FAKE_OUT] = _("FAKE OUT"),
+ [MOVE_UPROAR] = _("UPROAR"),
+ [MOVE_STOCKPILE] = _("STOCKPILE"),
+ [MOVE_SPIT_UP] = _("SPIT UP"),
+ [MOVE_SWALLOW] = _("SWALLOW"),
+ [MOVE_HEAT_WAVE] = _("HEAT WAVE"),
+ [MOVE_HAIL] = _("HAIL"),
+ [MOVE_TORMENT] = _("TORMENT"),
+ [MOVE_FLATTER] = _("FLATTER"),
+ [MOVE_WILL_O_WISP] = _("WILL-O-WISP"),
+ [MOVE_MEMENTO] = _("MEMENTO"),
+ [MOVE_FACADE] = _("FACADE"),
+ [MOVE_FOCUS_PUNCH] = _("FOCUS PUNCH"),
+ [MOVE_SMELLING_SALT] = _("SMELLINGSALT"),
+ [MOVE_FOLLOW_ME] = _("FOLLOW ME"),
+ [MOVE_NATURE_POWER] = _("NATURE POWER"),
+ [MOVE_CHARGE] = _("CHARGE"),
+ [MOVE_TAUNT] = _("TAUNT"),
+ [MOVE_HELPING_HAND] = _("HELPING HAND"),
+ [MOVE_TRICK] = _("TRICK"),
+ [MOVE_ROLE_PLAY] = _("ROLE PLAY"),
+ [MOVE_WISH] = _("WISH"),
+ [MOVE_ASSIST] = _("ASSIST"),
+ [MOVE_INGRAIN] = _("INGRAIN"),
+ [MOVE_SUPERPOWER] = _("SUPERPOWER"),
+ [MOVE_MAGIC_COAT] = _("MAGIC COAT"),
+ [MOVE_RECYCLE] = _("RECYCLE"),
+ [MOVE_REVENGE] = _("REVENGE"),
+ [MOVE_BRICK_BREAK] = _("BRICK BREAK"),
+ [MOVE_YAWN] = _("YAWN"),
+ [MOVE_KNOCK_OFF] = _("KNOCK OFF"),
+ [MOVE_ENDEAVOR] = _("ENDEAVOR"),
+ [MOVE_ERUPTION] = _("ERUPTION"),
+ [MOVE_SKILL_SWAP] = _("SKILL SWAP"),
+ [MOVE_IMPRISON] = _("IMPRISON"),
+ [MOVE_REFRESH] = _("REFRESH"),
+ [MOVE_GRUDGE] = _("GRUDGE"),
+ [MOVE_SNATCH] = _("SNATCH"),
+ [MOVE_SECRET_POWER] = _("SECRET POWER"),
+ [MOVE_DIVE] = _("DIVE"),
+ [MOVE_ARM_THRUST] = _("ARM THRUST"),
+ [MOVE_CAMOUFLAGE] = _("CAMOUFLAGE"),
+ [MOVE_TAIL_GLOW] = _("TAIL GLOW"),
+ [MOVE_LUSTER_PURGE] = _("LUSTER PURGE"),
+ [MOVE_MIST_BALL] = _("MIST BALL"),
+ [MOVE_FEATHER_DANCE] = _("FEATHERDANCE"),
+ [MOVE_TEETER_DANCE] = _("TEETER DANCE"),
+ [MOVE_BLAZE_KICK] = _("BLAZE KICK"),
+ [MOVE_MUD_SPORT] = _("MUD SPORT"),
+ [MOVE_ICE_BALL] = _("ICE BALL"),
+ [MOVE_NEEDLE_ARM] = _("NEEDLE ARM"),
+ [MOVE_SLACK_OFF] = _("SLACK OFF"),
+ [MOVE_HYPER_VOICE] = _("HYPER VOICE"),
+ [MOVE_POISON_FANG] = _("POISON FANG"),
+ [MOVE_CRUSH_CLAW] = _("CRUSH CLAW"),
+ [MOVE_BLAST_BURN] = _("BLAST BURN"),
+ [MOVE_HYDRO_CANNON] = _("HYDRO CANNON"),
+ [MOVE_METEOR_MASH] = _("METEOR MASH"),
+ [MOVE_ASTONISH] = _("ASTONISH"),
+ [MOVE_WEATHER_BALL] = _("WEATHER BALL"),
+ [MOVE_AROMATHERAPY] = _("AROMATHERAPY"),
+ [MOVE_FAKE_TEARS] = _("FAKE TEARS"),
+ [MOVE_AIR_CUTTER] = _("AIR CUTTER"),
+ [MOVE_OVERHEAT] = _("OVERHEAT"),
+ [MOVE_ODOR_SLEUTH] = _("ODOR SLEUTH"),
+ [MOVE_ROCK_TOMB] = _("ROCK TOMB"),
+ [MOVE_SILVER_WIND] = _("SILVER WIND"),
+ [MOVE_METAL_SOUND] = _("METAL SOUND"),
+ [MOVE_GRASS_WHISTLE] = _("GRASSWHISTLE"),
+ [MOVE_TICKLE] = _("TICKLE"),
+ [MOVE_COSMIC_POWER] = _("COSMIC POWER"),
+ [MOVE_WATER_SPOUT] = _("WATER SPOUT"),
+ [MOVE_SIGNAL_BEAM] = _("SIGNAL BEAM"),
+ [MOVE_SHADOW_PUNCH] = _("SHADOW PUNCH"),
+ [MOVE_EXTRASENSORY] = _("EXTRASENSORY"),
+ [MOVE_SKY_UPPERCUT] = _("SKY UPPERCUT"),
+ [MOVE_SAND_TOMB] = _("SAND TOMB"),
+ [MOVE_SHEER_COLD] = _("SHEER COLD"),
+ [MOVE_MUDDY_WATER] = _("MUDDY WATER"),
+ [MOVE_BULLET_SEED] = _("BULLET SEED"),
+ [MOVE_AERIAL_ACE] = _("AERIAL ACE"),
+ [MOVE_ICICLE_SPEAR] = _("ICICLE SPEAR"),
+ [MOVE_IRON_DEFENSE] = _("IRON DEFENSE"),
+ [MOVE_BLOCK] = _("BLOCK"),
+ [MOVE_HOWL] = _("HOWL"),
+ [MOVE_DRAGON_CLAW] = _("DRAGON CLAW"),
+ [MOVE_FRENZY_PLANT] = _("FRENZY PLANT"),
+ [MOVE_BULK_UP] = _("BULK UP"),
+ [MOVE_BOUNCE] = _("BOUNCE"),
+ [MOVE_MUD_SHOT] = _("MUD SHOT"),
+ [MOVE_POISON_TAIL] = _("POISON TAIL"),
+ [MOVE_COVET] = _("COVET"),
+ [MOVE_VOLT_TACKLE] = _("VOLT TACKLE"),
+ [MOVE_MAGICAL_LEAF] = _("MAGICAL LEAF"),
+ [MOVE_WATER_SPORT] = _("WATER SPORT"),
+ [MOVE_CALM_MIND] = _("CALM MIND"),
+ [MOVE_LEAF_BLADE] = _("LEAF BLADE"),
+ [MOVE_DRAGON_DANCE] = _("DRAGON DANCE"),
+ [MOVE_ROCK_BLAST] = _("ROCK BLAST"),
+ [MOVE_SHOCK_WAVE] = _("SHOCK WAVE"),
+ [MOVE_WATER_PULSE] = _("WATER PULSE"),
+ [MOVE_DOOM_DESIRE] = _("DOOM DESIRE"),
+ [MOVE_PSYCHO_BOOST] = _("PSYCHO BOOST"),
+};
diff --git a/src/data/text/species_names.h b/src/data/text/species_names.h
new file mode 100644
index 000000000..840beb22b
--- /dev/null
+++ b/src/data/text/species_names.h
@@ -0,0 +1,414 @@
+const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1] = {
+ [SPECIES_NONE] = _("??????????"),
+ [SPECIES_BULBASAUR] = _("BULBASAUR"),
+ [SPECIES_IVYSAUR] = _("IVYSAUR"),
+ [SPECIES_VENUSAUR] = _("VENUSAUR"),
+ [SPECIES_CHARMANDER] = _("CHARMANDER"),
+ [SPECIES_CHARMELEON] = _("CHARMELEON"),
+ [SPECIES_CHARIZARD] = _("CHARIZARD"),
+ [SPECIES_SQUIRTLE] = _("SQUIRTLE"),
+ [SPECIES_WARTORTLE] = _("WARTORTLE"),
+ [SPECIES_BLASTOISE] = _("BLASTOISE"),
+ [SPECIES_CATERPIE] = _("CATERPIE"),
+ [SPECIES_METAPOD] = _("METAPOD"),
+ [SPECIES_BUTTERFREE] = _("BUTTERFREE"),
+ [SPECIES_WEEDLE] = _("WEEDLE"),
+ [SPECIES_KAKUNA] = _("KAKUNA"),
+ [SPECIES_BEEDRILL] = _("BEEDRILL"),
+ [SPECIES_PIDGEY] = _("PIDGEY"),
+ [SPECIES_PIDGEOTTO] = _("PIDGEOTTO"),
+ [SPECIES_PIDGEOT] = _("PIDGEOT"),
+ [SPECIES_RATTATA] = _("RATTATA"),
+ [SPECIES_RATICATE] = _("RATICATE"),
+ [SPECIES_SPEAROW] = _("SPEAROW"),
+ [SPECIES_FEAROW] = _("FEAROW"),
+ [SPECIES_EKANS] = _("EKANS"),
+ [SPECIES_ARBOK] = _("ARBOK"),
+ [SPECIES_PIKACHU] = _("PIKACHU"),
+ [SPECIES_RAICHU] = _("RAICHU"),
+ [SPECIES_SANDSHREW] = _("SANDSHREW"),
+ [SPECIES_SANDSLASH] = _("SANDSLASH"),
+ [SPECIES_NIDORAN_F] = _("NIDORAN♀"),
+ [SPECIES_NIDORINA] = _("NIDORINA"),
+ [SPECIES_NIDOQUEEN] = _("NIDOQUEEN"),
+ [SPECIES_NIDORAN_M] = _("NIDORAN♂"),
+ [SPECIES_NIDORINO] = _("NIDORINO"),
+ [SPECIES_NIDOKING] = _("NIDOKING"),
+ [SPECIES_CLEFAIRY] = _("CLEFAIRY"),
+ [SPECIES_CLEFABLE] = _("CLEFABLE"),
+ [SPECIES_VULPIX] = _("VULPIX"),
+ [SPECIES_NINETALES] = _("NINETALES"),
+ [SPECIES_JIGGLYPUFF] = _("JIGGLYPUFF"),
+ [SPECIES_WIGGLYTUFF] = _("WIGGLYTUFF"),
+ [SPECIES_ZUBAT] = _("ZUBAT"),
+ [SPECIES_GOLBAT] = _("GOLBAT"),
+ [SPECIES_ODDISH] = _("ODDISH"),
+ [SPECIES_GLOOM] = _("GLOOM"),
+ [SPECIES_VILEPLUME] = _("VILEPLUME"),
+ [SPECIES_PARAS] = _("PARAS"),
+ [SPECIES_PARASECT] = _("PARASECT"),
+ [SPECIES_VENONAT] = _("VENONAT"),
+ [SPECIES_VENOMOTH] = _("VENOMOTH"),
+ [SPECIES_DIGLETT] = _("DIGLETT"),
+ [SPECIES_DUGTRIO] = _("DUGTRIO"),
+ [SPECIES_MEOWTH] = _("MEOWTH"),
+ [SPECIES_PERSIAN] = _("PERSIAN"),
+ [SPECIES_PSYDUCK] = _("PSYDUCK"),
+ [SPECIES_GOLDUCK] = _("GOLDUCK"),
+ [SPECIES_MANKEY] = _("MANKEY"),
+ [SPECIES_PRIMEAPE] = _("PRIMEAPE"),
+ [SPECIES_GROWLITHE] = _("GROWLITHE"),
+ [SPECIES_ARCANINE] = _("ARCANINE"),
+ [SPECIES_POLIWAG] = _("POLIWAG"),
+ [SPECIES_POLIWHIRL] = _("POLIWHIRL"),
+ [SPECIES_POLIWRATH] = _("POLIWRATH"),
+ [SPECIES_ABRA] = _("ABRA"),
+ [SPECIES_KADABRA] = _("KADABRA"),
+ [SPECIES_ALAKAZAM] = _("ALAKAZAM"),
+ [SPECIES_MACHOP] = _("MACHOP"),
+ [SPECIES_MACHOKE] = _("MACHOKE"),
+ [SPECIES_MACHAMP] = _("MACHAMP"),
+ [SPECIES_BELLSPROUT] = _("BELLSPROUT"),
+ [SPECIES_WEEPINBELL] = _("WEEPINBELL"),
+ [SPECIES_VICTREEBEL] = _("VICTREEBEL"),
+ [SPECIES_TENTACOOL] = _("TENTACOOL"),
+ [SPECIES_TENTACRUEL] = _("TENTACRUEL"),
+ [SPECIES_GEODUDE] = _("GEODUDE"),
+ [SPECIES_GRAVELER] = _("GRAVELER"),
+ [SPECIES_GOLEM] = _("GOLEM"),
+ [SPECIES_PONYTA] = _("PONYTA"),
+ [SPECIES_RAPIDASH] = _("RAPIDASH"),
+ [SPECIES_SLOWPOKE] = _("SLOWPOKE"),
+ [SPECIES_SLOWBRO] = _("SLOWBRO"),
+ [SPECIES_MAGNEMITE] = _("MAGNEMITE"),
+ [SPECIES_MAGNETON] = _("MAGNETON"),
+ [SPECIES_FARFETCHD] = _("FARFETCH’D"),
+ [SPECIES_DODUO] = _("DODUO"),
+ [SPECIES_DODRIO] = _("DODRIO"),
+ [SPECIES_SEEL] = _("SEEL"),
+ [SPECIES_DEWGONG] = _("DEWGONG"),
+ [SPECIES_GRIMER] = _("GRIMER"),
+ [SPECIES_MUK] = _("MUK"),
+ [SPECIES_SHELLDER] = _("SHELLDER"),
+ [SPECIES_CLOYSTER] = _("CLOYSTER"),
+ [SPECIES_GASTLY] = _("GASTLY"),
+ [SPECIES_HAUNTER] = _("HAUNTER"),
+ [SPECIES_GENGAR] = _("GENGAR"),
+ [SPECIES_ONIX] = _("ONIX"),
+ [SPECIES_DROWZEE] = _("DROWZEE"),
+ [SPECIES_HYPNO] = _("HYPNO"),
+ [SPECIES_KRABBY] = _("KRABBY"),
+ [SPECIES_KINGLER] = _("KINGLER"),
+ [SPECIES_VOLTORB] = _("VOLTORB"),
+ [SPECIES_ELECTRODE] = _("ELECTRODE"),
+ [SPECIES_EXEGGCUTE] = _("EXEGGCUTE"),
+ [SPECIES_EXEGGUTOR] = _("EXEGGUTOR"),
+ [SPECIES_CUBONE] = _("CUBONE"),
+ [SPECIES_MAROWAK] = _("MAROWAK"),
+ [SPECIES_HITMONLEE] = _("HITMONLEE"),
+ [SPECIES_HITMONCHAN] = _("HITMONCHAN"),
+ [SPECIES_LICKITUNG] = _("LICKITUNG"),
+ [SPECIES_KOFFING] = _("KOFFING"),
+ [SPECIES_WEEZING] = _("WEEZING"),
+ [SPECIES_RHYHORN] = _("RHYHORN"),
+ [SPECIES_RHYDON] = _("RHYDON"),
+ [SPECIES_CHANSEY] = _("CHANSEY"),
+ [SPECIES_TANGELA] = _("TANGELA"),
+ [SPECIES_KANGASKHAN] = _("KANGASKHAN"),
+ [SPECIES_HORSEA] = _("HORSEA"),
+ [SPECIES_SEADRA] = _("SEADRA"),
+ [SPECIES_GOLDEEN] = _("GOLDEEN"),
+ [SPECIES_SEAKING] = _("SEAKING"),
+ [SPECIES_STARYU] = _("STARYU"),
+ [SPECIES_STARMIE] = _("STARMIE"),
+ [SPECIES_MR_MIME] = _("MR. MIME"),
+ [SPECIES_SCYTHER] = _("SCYTHER"),
+ [SPECIES_JYNX] = _("JYNX"),
+ [SPECIES_ELECTABUZZ] = _("ELECTABUZZ"),
+ [SPECIES_MAGMAR] = _("MAGMAR"),
+ [SPECIES_PINSIR] = _("PINSIR"),
+ [SPECIES_TAUROS] = _("TAUROS"),
+ [SPECIES_MAGIKARP] = _("MAGIKARP"),
+ [SPECIES_GYARADOS] = _("GYARADOS"),
+ [SPECIES_LAPRAS] = _("LAPRAS"),
+ [SPECIES_DITTO] = _("DITTO"),
+ [SPECIES_EEVEE] = _("EEVEE"),
+ [SPECIES_VAPOREON] = _("VAPOREON"),
+ [SPECIES_JOLTEON] = _("JOLTEON"),
+ [SPECIES_FLAREON] = _("FLAREON"),
+ [SPECIES_PORYGON] = _("PORYGON"),
+ [SPECIES_OMANYTE] = _("OMANYTE"),
+ [SPECIES_OMASTAR] = _("OMASTAR"),
+ [SPECIES_KABUTO] = _("KABUTO"),
+ [SPECIES_KABUTOPS] = _("KABUTOPS"),
+ [SPECIES_AERODACTYL] = _("AERODACTYL"),
+ [SPECIES_SNORLAX] = _("SNORLAX"),
+ [SPECIES_ARTICUNO] = _("ARTICUNO"),
+ [SPECIES_ZAPDOS] = _("ZAPDOS"),
+ [SPECIES_MOLTRES] = _("MOLTRES"),
+ [SPECIES_DRATINI] = _("DRATINI"),
+ [SPECIES_DRAGONAIR] = _("DRAGONAIR"),
+ [SPECIES_DRAGONITE] = _("DRAGONITE"),
+ [SPECIES_MEWTWO] = _("MEWTWO"),
+ [SPECIES_MEW] = _("MEW"),
+ [SPECIES_CHIKORITA] = _("CHIKORITA"),
+ [SPECIES_BAYLEEF] = _("BAYLEEF"),
+ [SPECIES_MEGANIUM] = _("MEGANIUM"),
+ [SPECIES_CYNDAQUIL] = _("CYNDAQUIL"),
+ [SPECIES_QUILAVA] = _("QUILAVA"),
+ [SPECIES_TYPHLOSION] = _("TYPHLOSION"),
+ [SPECIES_TOTODILE] = _("TOTODILE"),
+ [SPECIES_CROCONAW] = _("CROCONAW"),
+ [SPECIES_FERALIGATR] = _("FERALIGATR"),
+ [SPECIES_SENTRET] = _("SENTRET"),
+ [SPECIES_FURRET] = _("FURRET"),
+ [SPECIES_HOOTHOOT] = _("HOOTHOOT"),
+ [SPECIES_NOCTOWL] = _("NOCTOWL"),
+ [SPECIES_LEDYBA] = _("LEDYBA"),
+ [SPECIES_LEDIAN] = _("LEDIAN"),
+ [SPECIES_SPINARAK] = _("SPINARAK"),
+ [SPECIES_ARIADOS] = _("ARIADOS"),
+ [SPECIES_CROBAT] = _("CROBAT"),
+ [SPECIES_CHINCHOU] = _("CHINCHOU"),
+ [SPECIES_LANTURN] = _("LANTURN"),
+ [SPECIES_PICHU] = _("PICHU"),
+ [SPECIES_CLEFFA] = _("CLEFFA"),
+ [SPECIES_IGGLYBUFF] = _("IGGLYBUFF"),
+ [SPECIES_TOGEPI] = _("TOGEPI"),
+ [SPECIES_TOGETIC] = _("TOGETIC"),
+ [SPECIES_NATU] = _("NATU"),
+ [SPECIES_XATU] = _("XATU"),
+ [SPECIES_MAREEP] = _("MAREEP"),
+ [SPECIES_FLAAFFY] = _("FLAAFFY"),
+ [SPECIES_AMPHAROS] = _("AMPHAROS"),
+ [SPECIES_BELLOSSOM] = _("BELLOSSOM"),
+ [SPECIES_MARILL] = _("MARILL"),
+ [SPECIES_AZUMARILL] = _("AZUMARILL"),
+ [SPECIES_SUDOWOODO] = _("SUDOWOODO"),
+ [SPECIES_POLITOED] = _("POLITOED"),
+ [SPECIES_HOPPIP] = _("HOPPIP"),
+ [SPECIES_SKIPLOOM] = _("SKIPLOOM"),
+ [SPECIES_JUMPLUFF] = _("JUMPLUFF"),
+ [SPECIES_AIPOM] = _("AIPOM"),
+ [SPECIES_SUNKERN] = _("SUNKERN"),
+ [SPECIES_SUNFLORA] = _("SUNFLORA"),
+ [SPECIES_YANMA] = _("YANMA"),
+ [SPECIES_WOOPER] = _("WOOPER"),
+ [SPECIES_QUAGSIRE] = _("QUAGSIRE"),
+ [SPECIES_ESPEON] = _("ESPEON"),
+ [SPECIES_UMBREON] = _("UMBREON"),
+ [SPECIES_MURKROW] = _("MURKROW"),
+ [SPECIES_SLOWKING] = _("SLOWKING"),
+ [SPECIES_MISDREAVUS] = _("MISDREAVUS"),
+ [SPECIES_UNOWN] = _("UNOWN"),
+ [SPECIES_WOBBUFFET] = _("WOBBUFFET"),
+ [SPECIES_GIRAFARIG] = _("GIRAFARIG"),
+ [SPECIES_PINECO] = _("PINECO"),
+ [SPECIES_FORRETRESS] = _("FORRETRESS"),
+ [SPECIES_DUNSPARCE] = _("DUNSPARCE"),
+ [SPECIES_GLIGAR] = _("GLIGAR"),
+ [SPECIES_STEELIX] = _("STEELIX"),
+ [SPECIES_SNUBBULL] = _("SNUBBULL"),
+ [SPECIES_GRANBULL] = _("GRANBULL"),
+ [SPECIES_QWILFISH] = _("QWILFISH"),
+ [SPECIES_SCIZOR] = _("SCIZOR"),
+ [SPECIES_SHUCKLE] = _("SHUCKLE"),
+ [SPECIES_HERACROSS] = _("HERACROSS"),
+ [SPECIES_SNEASEL] = _("SNEASEL"),
+ [SPECIES_TEDDIURSA] = _("TEDDIURSA"),
+ [SPECIES_URSARING] = _("URSARING"),
+ [SPECIES_SLUGMA] = _("SLUGMA"),
+ [SPECIES_MAGCARGO] = _("MAGCARGO"),
+ [SPECIES_SWINUB] = _("SWINUB"),
+ [SPECIES_PILOSWINE] = _("PILOSWINE"),
+ [SPECIES_CORSOLA] = _("CORSOLA"),
+ [SPECIES_REMORAID] = _("REMORAID"),
+ [SPECIES_OCTILLERY] = _("OCTILLERY"),
+ [SPECIES_DELIBIRD] = _("DELIBIRD"),
+ [SPECIES_MANTINE] = _("MANTINE"),
+ [SPECIES_SKARMORY] = _("SKARMORY"),
+ [SPECIES_HOUNDOUR] = _("HOUNDOUR"),
+ [SPECIES_HOUNDOOM] = _("HOUNDOOM"),
+ [SPECIES_KINGDRA] = _("KINGDRA"),
+ [SPECIES_PHANPY] = _("PHANPY"),
+ [SPECIES_DONPHAN] = _("DONPHAN"),
+ [SPECIES_PORYGON2] = _("PORYGON2"),
+ [SPECIES_STANTLER] = _("STANTLER"),
+ [SPECIES_SMEARGLE] = _("SMEARGLE"),
+ [SPECIES_TYROGUE] = _("TYROGUE"),
+ [SPECIES_HITMONTOP] = _("HITMONTOP"),
+ [SPECIES_SMOOCHUM] = _("SMOOCHUM"),
+ [SPECIES_ELEKID] = _("ELEKID"),
+ [SPECIES_MAGBY] = _("MAGBY"),
+ [SPECIES_MILTANK] = _("MILTANK"),
+ [SPECIES_BLISSEY] = _("BLISSEY"),
+ [SPECIES_RAIKOU] = _("RAIKOU"),
+ [SPECIES_ENTEI] = _("ENTEI"),
+ [SPECIES_SUICUNE] = _("SUICUNE"),
+ [SPECIES_LARVITAR] = _("LARVITAR"),
+ [SPECIES_PUPITAR] = _("PUPITAR"),
+ [SPECIES_TYRANITAR] = _("TYRANITAR"),
+ [SPECIES_LUGIA] = _("LUGIA"),
+ [SPECIES_HO_OH] = _("HO-OH"),
+ [SPECIES_CELEBI] = _("CELEBI"),
+ [SPECIES_OLD_UNOWN_B] = _("?"),
+ [SPECIES_OLD_UNOWN_C] = _("?"),
+ [SPECIES_OLD_UNOWN_D] = _("?"),
+ [SPECIES_OLD_UNOWN_E] = _("?"),
+ [SPECIES_OLD_UNOWN_F] = _("?"),
+ [SPECIES_OLD_UNOWN_G] = _("?"),
+ [SPECIES_OLD_UNOWN_H] = _("?"),
+ [SPECIES_OLD_UNOWN_I] = _("?"),
+ [SPECIES_OLD_UNOWN_J] = _("?"),
+ [SPECIES_OLD_UNOWN_K] = _("?"),
+ [SPECIES_OLD_UNOWN_L] = _("?"),
+ [SPECIES_OLD_UNOWN_M] = _("?"),
+ [SPECIES_OLD_UNOWN_N] = _("?"),
+ [SPECIES_OLD_UNOWN_O] = _("?"),
+ [SPECIES_OLD_UNOWN_P] = _("?"),
+ [SPECIES_OLD_UNOWN_Q] = _("?"),
+ [SPECIES_OLD_UNOWN_R] = _("?"),
+ [SPECIES_OLD_UNOWN_S] = _("?"),
+ [SPECIES_OLD_UNOWN_T] = _("?"),
+ [SPECIES_OLD_UNOWN_U] = _("?"),
+ [SPECIES_OLD_UNOWN_V] = _("?"),
+ [SPECIES_OLD_UNOWN_W] = _("?"),
+ [SPECIES_OLD_UNOWN_X] = _("?"),
+ [SPECIES_OLD_UNOWN_Y] = _("?"),
+ [SPECIES_OLD_UNOWN_Z] = _("?"),
+ [SPECIES_TREECKO] = _("TREECKO"),
+ [SPECIES_GROVYLE] = _("GROVYLE"),
+ [SPECIES_SCEPTILE] = _("SCEPTILE"),
+ [SPECIES_TORCHIC] = _("TORCHIC"),
+ [SPECIES_COMBUSKEN] = _("COMBUSKEN"),
+ [SPECIES_BLAZIKEN] = _("BLAZIKEN"),
+ [SPECIES_MUDKIP] = _("MUDKIP"),
+ [SPECIES_MARSHTOMP] = _("MARSHTOMP"),
+ [SPECIES_SWAMPERT] = _("SWAMPERT"),
+ [SPECIES_POOCHYENA] = _("POOCHYENA"),
+ [SPECIES_MIGHTYENA] = _("MIGHTYENA"),
+ [SPECIES_ZIGZAGOON] = _("ZIGZAGOON"),
+ [SPECIES_LINOONE] = _("LINOONE"),
+ [SPECIES_WURMPLE] = _("WURMPLE"),
+ [SPECIES_SILCOON] = _("SILCOON"),
+ [SPECIES_BEAUTIFLY] = _("BEAUTIFLY"),
+ [SPECIES_CASCOON] = _("CASCOON"),
+ [SPECIES_DUSTOX] = _("DUSTOX"),
+ [SPECIES_LOTAD] = _("LOTAD"),
+ [SPECIES_LOMBRE] = _("LOMBRE"),
+ [SPECIES_LUDICOLO] = _("LUDICOLO"),
+ [SPECIES_SEEDOT] = _("SEEDOT"),
+ [SPECIES_NUZLEAF] = _("NUZLEAF"),
+ [SPECIES_SHIFTRY] = _("SHIFTRY"),
+ [SPECIES_NINCADA] = _("NINCADA"),
+ [SPECIES_NINJASK] = _("NINJASK"),
+ [SPECIES_SHEDINJA] = _("SHEDINJA"),
+ [SPECIES_TAILLOW] = _("TAILLOW"),
+ [SPECIES_SWELLOW] = _("SWELLOW"),
+ [SPECIES_SHROOMISH] = _("SHROOMISH"),
+ [SPECIES_BRELOOM] = _("BRELOOM"),
+ [SPECIES_SPINDA] = _("SPINDA"),
+ [SPECIES_WINGULL] = _("WINGULL"),
+ [SPECIES_PELIPPER] = _("PELIPPER"),
+ [SPECIES_SURSKIT] = _("SURSKIT"),
+ [SPECIES_MASQUERAIN] = _("MASQUERAIN"),
+ [SPECIES_WAILMER] = _("WAILMER"),
+ [SPECIES_WAILORD] = _("WAILORD"),
+ [SPECIES_SKITTY] = _("SKITTY"),
+ [SPECIES_DELCATTY] = _("DELCATTY"),
+ [SPECIES_KECLEON] = _("KECLEON"),
+ [SPECIES_BALTOY] = _("BALTOY"),
+ [SPECIES_CLAYDOL] = _("CLAYDOL"),
+ [SPECIES_NOSEPASS] = _("NOSEPASS"),
+ [SPECIES_TORKOAL] = _("TORKOAL"),
+ [SPECIES_SABLEYE] = _("SABLEYE"),
+ [SPECIES_BARBOACH] = _("BARBOACH"),
+ [SPECIES_WHISCASH] = _("WHISCASH"),
+ [SPECIES_LUVDISC] = _("LUVDISC"),
+ [SPECIES_CORPHISH] = _("CORPHISH"),
+ [SPECIES_CRAWDAUNT] = _("CRAWDAUNT"),
+ [SPECIES_FEEBAS] = _("FEEBAS"),
+ [SPECIES_MILOTIC] = _("MILOTIC"),
+ [SPECIES_CARVANHA] = _("CARVANHA"),
+ [SPECIES_SHARPEDO] = _("SHARPEDO"),
+ [SPECIES_TRAPINCH] = _("TRAPINCH"),
+ [SPECIES_VIBRAVA] = _("VIBRAVA"),
+ [SPECIES_FLYGON] = _("FLYGON"),
+ [SPECIES_MAKUHITA] = _("MAKUHITA"),
+ [SPECIES_HARIYAMA] = _("HARIYAMA"),
+ [SPECIES_ELECTRIKE] = _("ELECTRIKE"),
+ [SPECIES_MANECTRIC] = _("MANECTRIC"),
+ [SPECIES_NUMEL] = _("NUMEL"),
+ [SPECIES_CAMERUPT] = _("CAMERUPT"),
+ [SPECIES_SPHEAL] = _("SPHEAL"),
+ [SPECIES_SEALEO] = _("SEALEO"),
+ [SPECIES_WALREIN] = _("WALREIN"),
+ [SPECIES_CACNEA] = _("CACNEA"),
+ [SPECIES_CACTURNE] = _("CACTURNE"),
+ [SPECIES_SNORUNT] = _("SNORUNT"),
+ [SPECIES_GLALIE] = _("GLALIE"),
+ [SPECIES_LUNATONE] = _("LUNATONE"),
+ [SPECIES_SOLROCK] = _("SOLROCK"),
+ [SPECIES_AZURILL] = _("AZURILL"),
+ [SPECIES_SPOINK] = _("SPOINK"),
+ [SPECIES_GRUMPIG] = _("GRUMPIG"),
+ [SPECIES_PLUSLE] = _("PLUSLE"),
+ [SPECIES_MINUN] = _("MINUN"),
+ [SPECIES_MAWILE] = _("MAWILE"),
+ [SPECIES_MEDITITE] = _("MEDITITE"),
+ [SPECIES_MEDICHAM] = _("MEDICHAM"),
+ [SPECIES_SWABLU] = _("SWABLU"),
+ [SPECIES_ALTARIA] = _("ALTARIA"),
+ [SPECIES_WYNAUT] = _("WYNAUT"),
+ [SPECIES_DUSKULL] = _("DUSKULL"),
+ [SPECIES_DUSCLOPS] = _("DUSCLOPS"),
+ [SPECIES_ROSELIA] = _("ROSELIA"),
+ [SPECIES_SLAKOTH] = _("SLAKOTH"),
+ [SPECIES_VIGOROTH] = _("VIGOROTH"),
+ [SPECIES_SLAKING] = _("SLAKING"),
+ [SPECIES_GULPIN] = _("GULPIN"),
+ [SPECIES_SWALOT] = _("SWALOT"),
+ [SPECIES_TROPIUS] = _("TROPIUS"),
+ [SPECIES_WHISMUR] = _("WHISMUR"),
+ [SPECIES_LOUDRED] = _("LOUDRED"),
+ [SPECIES_EXPLOUD] = _("EXPLOUD"),
+ [SPECIES_CLAMPERL] = _("CLAMPERL"),
+ [SPECIES_HUNTAIL] = _("HUNTAIL"),
+ [SPECIES_GOREBYSS] = _("GOREBYSS"),
+ [SPECIES_ABSOL] = _("ABSOL"),
+ [SPECIES_SHUPPET] = _("SHUPPET"),
+ [SPECIES_BANETTE] = _("BANETTE"),
+ [SPECIES_SEVIPER] = _("SEVIPER"),
+ [SPECIES_ZANGOOSE] = _("ZANGOOSE"),
+ [SPECIES_RELICANTH] = _("RELICANTH"),
+ [SPECIES_ARON] = _("ARON"),
+ [SPECIES_LAIRON] = _("LAIRON"),
+ [SPECIES_AGGRON] = _("AGGRON"),
+ [SPECIES_CASTFORM] = _("CASTFORM"),
+ [SPECIES_VOLBEAT] = _("VOLBEAT"),
+ [SPECIES_ILLUMISE] = _("ILLUMISE"),
+ [SPECIES_LILEEP] = _("LILEEP"),
+ [SPECIES_CRADILY] = _("CRADILY"),
+ [SPECIES_ANORITH] = _("ANORITH"),
+ [SPECIES_ARMALDO] = _("ARMALDO"),
+ [SPECIES_RALTS] = _("RALTS"),
+ [SPECIES_KIRLIA] = _("KIRLIA"),
+ [SPECIES_GARDEVOIR] = _("GARDEVOIR"),
+ [SPECIES_BAGON] = _("BAGON"),
+ [SPECIES_SHELGON] = _("SHELGON"),
+ [SPECIES_SALAMENCE] = _("SALAMENCE"),
+ [SPECIES_BELDUM] = _("BELDUM"),
+ [SPECIES_METANG] = _("METANG"),
+ [SPECIES_METAGROSS] = _("METAGROSS"),
+ [SPECIES_REGIROCK] = _("REGIROCK"),
+ [SPECIES_REGICE] = _("REGICE"),
+ [SPECIES_REGISTEEL] = _("REGISTEEL"),
+ [SPECIES_KYOGRE] = _("KYOGRE"),
+ [SPECIES_GROUDON] = _("GROUDON"),
+ [SPECIES_RAYQUAZA] = _("RAYQUAZA"),
+ [SPECIES_LATIAS] = _("LATIAS"),
+ [SPECIES_LATIOS] = _("LATIOS"),
+ [SPECIES_JIRACHI] = _("JIRACHI"),
+ [SPECIES_DEOXYS] = _("DEOXYS"),
+ [SPECIES_CHIMECHO] = _("CHIMECHO"),
+};
diff --git a/src/data/text/trainer_class_names.h b/src/data/text/trainer_class_names.h
new file mode 100644
index 000000000..7a126a128
--- /dev/null
+++ b/src/data/text/trainer_class_names.h
@@ -0,0 +1,73 @@
+#ifndef GUARD_TRAINER_CLASS_NAMES_H
+#define GUARD_TRAINER_CLASS_NAMES_H
+
+const u8 gTrainerClassNames[][13] = {
+ _("{PKMN} TRAINER"),
+ _("{PKMN} TRAINER"),
+ _("HIKER"),
+ _("TEAM AQUA"),
+ _("{PKMN} BREEDER"),
+ _("COOLTRAINER"),
+ _("BIRD KEEPER"),
+ _("COLLECTOR"),
+ _("SWIMMER♂"),
+ _("TEAM MAGMA"),
+ _("EXPERT"),
+ _("AQUA ADMIN"),
+ _("BLACK BELT"),
+ _("AQUA LEADER"),
+ _("HEX MANIAC"),
+ _("AROMA LADY"),
+ _("RUIN MANIAC"),
+ _("INTERVIEWER"),
+ _("TUBER"),
+ _("TUBER"),
+ _("LADY"),
+ _("BEAUTY"),
+ _("RICH BOY"),
+ _("POKéMANIAC"),
+ _("GUITARIST"),
+ _("KINDLER"),
+ _("CAMPER"),
+ _("PICNICKER"),
+ _("BUG MANIAC"),
+ _("PSYCHIC"),
+ _("GENTLEMAN"),
+ _("ELITE FOUR"),
+ _("LEADER"),
+ _("SCHOOL KID"),
+ _("SR. AND JR."),
+ _("WINSTRATE"),
+ _("POKéFAN"),
+ _("YOUNGSTER"),
+ _("CHAMPION"),
+ _("FISHERMAN"),
+ _("TRIATHLETE"),
+ _("DRAGON TAMER"),
+ _("NINJA BOY"),
+ _("BATTLE GIRL"),
+ _("PARASOL LADY"),
+ _("SWIMMER♀"),
+ _("TWINS"),
+ _("SAILOR"),
+ _("COOLTRAINER"),
+ _("MAGMA ADMIN"),
+ _("{PKMN} TRAINER"),
+ _("BUG CATCHER"),
+ _("{PKMN} RANGER"),
+ _("MAGMA LEADER"),
+ _("LASS"),
+ _("YOUNG COUPLE"),
+ _("OLD COUPLE"),
+ _("SIS AND BRO"),
+ _("SALON MAIDEN"),
+ _("DOME ACE"),
+ _("PALACE MAVEN"),
+ _("ARENA TYCOON"),
+ _("FACTORY HEAD"),
+ _("PIKE QUEEN"),
+ _("PYRAMID KING"),
+ _("{PKMN} TRAINER"),
+};
+
+#endif
diff --git a/src/data/trainer_parties.h b/src/data/trainer_parties.h
new file mode 100644
index 000000000..4993186d2
--- /dev/null
+++ b/src/data/trainer_parties.h
@@ -0,0 +1,12437 @@
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer1[] = {
+ {
+ .iv = 0,
+ .lvl = 21,
+ .species = SPECIES_GEODUDE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt1[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_POOCHYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt2[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_ZUBAT,
+ },
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt3[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt4[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt5[] = {
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_POOCHYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt6[] = {
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt7[] = {
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle1[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_SKITTY,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_POOCHYENA,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_LOTAD,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_SEEDOT,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_TAILLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt8[] = {
+ {
+ .iv = 0,
+ .lvl = 9,
+ .species = SPECIES_POOCHYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marcel[] = {
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_SHIFTRY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alberto[] = {
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_XATU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ed[] = {
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_ZANGOOSE,
+ },
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_SEVIPER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt9[] = {
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Declan[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_GYARADOS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt10[] = {
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_POOCHYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt11[] = {
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_ZUBAT,
+ },
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_POOCHYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt12[] = {
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_POOCHYENA,
+ },
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt13[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_POOCHYENA,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_ZUBAT,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt14[] = {
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt15[] = {
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_ZUBAT,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt16[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt17[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt18[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt19[] = {
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_POOCHYENA,
+ },
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt20[] = {
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt21[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt22[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fredrick[] = {
+ {
+ .iv = 100,
+ .lvl = 30,
+ .species = SPECIES_MAKUHITA,
+ },
+ {
+ .iv = 100,
+ .lvl = 30,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Matt[] = {
+ {
+ .iv = 50,
+ .lvl = 34,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 50,
+ .lvl = 34,
+ .species = SPECIES_GOLBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Zander[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelly1[] = {
+ {
+ .iv = 50,
+ .lvl = 28,
+ .species = SPECIES_CARVANHA,
+ },
+ {
+ .iv = 50,
+ .lvl = 28,
+ .species = SPECIES_MIGHTYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelly2[] = {
+ {
+ .iv = 100,
+ .lvl = 37,
+ .species = SPECIES_SHARPEDO,
+ },
+ {
+ .iv = 100,
+ .lvl = 37,
+ .species = SPECIES_MIGHTYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Archie[] = {
+ {
+ .iv = 150,
+ .lvl = 41,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 150,
+ .lvl = 41,
+ .species = SPECIES_CROBAT,
+ },
+ {
+ .iv = 150,
+ .lvl = 43,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leah[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_SPOINK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Daisy[] = {
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose1[] = {
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_ROSELIA,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Felix[] = {
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_MEDICHAM,
+ .moves = MOVE_PSYCHIC, MOVE_NONE, MOVE_NONE, MOVE_NONE
+ },
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_CLAYDOL,
+ .moves = MOVE_SKILL_SWAP, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Violet[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_ROSELIA,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_GLOOM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose2[] = {
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose3[] = {
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_GLOOM,
+ },
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose4[] = {
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_GLOOM,
+ },
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose5[] = {
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_BRELOOM,
+ },
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_GLOOM,
+ },
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty1[] = {
+ {
+ .iv = 50,
+ .lvl = 23,
+ .species = SPECIES_SANDSLASH,
+ .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Chip[] = {
+ {
+ .iv = 50,
+ .lvl = 27,
+ .species = SPECIES_BALTOY,
+ .moves = MOVE_PSYBEAM, MOVE_SELF_DESTRUCT, MOVE_SANDSTORM, MOVE_ANCIENT_POWER
+ },
+ {
+ .iv = 50,
+ .lvl = 27,
+ .species = SPECIES_SANDSHREW,
+ .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING
+ },
+ {
+ .iv = 50,
+ .lvl = 27,
+ .species = SPECIES_SANDSLASH,
+ .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Foster[] = {
+ {
+ .iv = 100,
+ .lvl = 25,
+ .species = SPECIES_SANDSHREW,
+ .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING
+ },
+ {
+ .iv = 100,
+ .lvl = 25,
+ .species = SPECIES_SANDSLASH,
+ .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty2[] = {
+ {
+ .iv = 60,
+ .lvl = 27,
+ .species = SPECIES_SANDSLASH,
+ .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty3[] = {
+ {
+ .iv = 70,
+ .lvl = 30,
+ .species = SPECIES_SANDSLASH,
+ .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty4[] = {
+ {
+ .iv = 80,
+ .lvl = 33,
+ .species = SPECIES_SANDSLASH,
+ .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty5[] = {
+ {
+ .iv = 90,
+ .lvl = 36,
+ .species = SPECIES_SANDSLASH,
+ .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy1[] = {
+ {
+ .iv = 50,
+ .lvl = 17,
+ .species = SPECIES_MAGNEMITE,
+ },
+ {
+ .iv = 50,
+ .lvl = 17,
+ .species = SPECIES_WHISMUR,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy2[] = {
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_MAGNEMITE,
+ },
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_LOUDRED,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy3[] = {
+ {
+ .iv = 150,
+ .lvl = 30,
+ .species = SPECIES_MAGNETON,
+ },
+ {
+ .iv = 150,
+ .lvl = 30,
+ .species = SPECIES_LOUDRED,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy4[] = {
+ {
+ .iv = 200,
+ .lvl = 33,
+ .species = SPECIES_MAGNETON,
+ },
+ {
+ .iv = 200,
+ .lvl = 33,
+ .species = SPECIES_LOUDRED,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy5[] = {
+ {
+ .iv = 250,
+ .lvl = 36,
+ .species = SPECIES_MAGNETON,
+ },
+ {
+ .iv = 250,
+ .lvl = 36,
+ .species = SPECIES_LOUDRED,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_GabbyAndTy6[] = {
+ {
+ .iv = 250,
+ .lvl = 39,
+ .species = SPECIES_MAGNETON,
+ .moves = MOVE_SONIC_BOOM, MOVE_THUNDER_WAVE, MOVE_METAL_SOUND, MOVE_THUNDERBOLT
+ },
+ {
+ .iv = 250,
+ .lvl = 39,
+ .species = SPECIES_EXPLOUD,
+ .moves = MOVE_ASTONISH, MOVE_STOMP, MOVE_SUPERSONIC, MOVE_HYPER_VOICE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola1[] = {
+ {
+ .iv = 10,
+ .lvl = 12,
+ .species = SPECIES_AZURILL,
+ },
+ {
+ .iv = 10,
+ .lvl = 12,
+ .species = SPECIES_AZURILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Austina[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gwen[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola2[] = {
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola3[] = {
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola4[] = {
+ {
+ .iv = 30,
+ .lvl = 32,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 30,
+ .lvl = 32,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola5[] = {
+ {
+ .iv = 40,
+ .lvl = 35,
+ .species = SPECIES_AZUMARILL,
+ },
+ {
+ .iv = 40,
+ .lvl = 35,
+ .species = SPECIES_AZUMARILL,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky1[] = {
+ {
+ .iv = 10,
+ .lvl = 13,
+ .species = SPECIES_ZIGZAGOON,
+ .moves = MOVE_SAND_ATTACK, MOVE_HEADBUTT, MOVE_TAIL_WHIP, MOVE_SURF
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Simon[] = {
+ {
+ .iv = 0,
+ .lvl = 12,
+ .species = SPECIES_AZURILL,
+ },
+ {
+ .iv = 0,
+ .lvl = 12,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Charlie[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky2[] = {
+ {
+ .iv = 10,
+ .lvl = 27,
+ .species = SPECIES_LINOONE,
+ .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky3[] = {
+ {
+ .iv = 20,
+ .lvl = 30,
+ .species = SPECIES_LINOONE,
+ .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky4[] = {
+ {
+ .iv = 30,
+ .lvl = 33,
+ .species = SPECIES_LINOONE,
+ .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky5[] = {
+ {
+ .iv = 40,
+ .lvl = 36,
+ .species = SPECIES_LINOONE,
+ .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Randall[] = {
+ {
+ .iv = 255,
+ .lvl = 26,
+ .species = SPECIES_SWELLOW,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_QUICK_ATTACK, MOVE_AGILITY, MOVE_WING_ATTACK, MOVE_NONE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Parker[] = {
+ {
+ .iv = 255,
+ .lvl = 26,
+ .species = SPECIES_SPINDA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TEETER_DANCE, MOVE_DIZZY_PUNCH, MOVE_FOCUS_PUNCH, MOVE_NONE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_George[] = {
+ {
+ .iv = 255,
+ .lvl = 26,
+ .species = SPECIES_SLAKOTH,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SLACK_OFF, MOVE_COUNTER, MOVE_SHADOW_BALL, MOVE_NONE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Berke[] = {
+ {
+ .iv = 255,
+ .lvl = 26,
+ .species = SPECIES_VIGOROTH,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FOCUS_ENERGY, MOVE_SLASH, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Braxton[] = {
+ {
+ .iv = 100,
+ .lvl = 28,
+ .species = SPECIES_SWELLOW,
+ .moves = MOVE_FOCUS_ENERGY, MOVE_QUICK_ATTACK, MOVE_WING_ATTACK, MOVE_ENDEAVOR
+ },
+ {
+ .iv = 100,
+ .lvl = 28,
+ .species = SPECIES_TRAPINCH,
+ .moves = MOVE_BITE, MOVE_DIG, MOVE_FAINT_ATTACK, MOVE_SAND_TOMB
+ },
+ {
+ .iv = 100,
+ .lvl = 28,
+ .species = SPECIES_WAILMER,
+ .moves = MOVE_ROLLOUT, MOVE_WHIRLPOOL, MOVE_ASTONISH, MOVE_WATER_PULSE
+ },
+ {
+ .iv = 100,
+ .lvl = 28,
+ .species = SPECIES_MAGNETON,
+ .moves = MOVE_THUNDERBOLT, MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SONIC_BOOM
+ },
+ {
+ .iv = 100,
+ .lvl = 28,
+ .species = SPECIES_SHIFTRY,
+ .moves = MOVE_GIGA_DRAIN, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_SWAGGER
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vincent[] = {
+ {
+ .iv = 100,
+ .lvl = 44,
+ .species = SPECIES_SABLEYE,
+ },
+ {
+ .iv = 100,
+ .lvl = 44,
+ .species = SPECIES_MEDICHAM,
+ },
+ {
+ .iv = 100,
+ .lvl = 44,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leroy[] = {
+ {
+ .iv = 100,
+ .lvl = 46,
+ .species = SPECIES_MAWILE,
+ },
+ {
+ .iv = 100,
+ .lvl = 46,
+ .species = SPECIES_STARMIE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton1[] = {
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_ELECTRIKE,
+ },
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edgar[] = {
+ {
+ .iv = 100,
+ .lvl = 43,
+ .species = SPECIES_CACTURNE,
+ },
+ {
+ .iv = 100,
+ .lvl = 43,
+ .species = SPECIES_PELIPPER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Albert[] = {
+ {
+ .iv = 100,
+ .lvl = 43,
+ .species = SPECIES_MAGNETON,
+ },
+ {
+ .iv = 100,
+ .lvl = 43,
+ .species = SPECIES_MUK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Samuel[] = {
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_MAWILE,
+ },
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_KADABRA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vito[] = {
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_DODRIO,
+ },
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_KADABRA,
+ },
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_ELECTRODE,
+ },
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_SHIFTRY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Owen[] = {
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_KECLEON,
+ },
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_GRAVELER,
+ },
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_WAILORD,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton2[] = {
+ {
+ .iv = 110,
+ .lvl = 26,
+ .species = SPECIES_ELECTRIKE,
+ },
+ {
+ .iv = 110,
+ .lvl = 26,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 110,
+ .lvl = 26,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton3[] = {
+ {
+ .iv = 120,
+ .lvl = 29,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 120,
+ .lvl = 29,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 120,
+ .lvl = 29,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton4[] = {
+ {
+ .iv = 130,
+ .lvl = 32,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 130,
+ .lvl = 32,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 130,
+ .lvl = 32,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton5[] = {
+ {
+ .iv = 140,
+ .lvl = 35,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 140,
+ .lvl = 35,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 140,
+ .lvl = 35,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Warren[] = {
+ {
+ .iv = 100,
+ .lvl = 33,
+ .species = SPECIES_GRAVELER,
+ },
+ {
+ .iv = 100,
+ .lvl = 33,
+ .species = SPECIES_LUDICOLO,
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Mary[] = {
+ {
+ .iv = 255,
+ .lvl = 26,
+ .species = SPECIES_DELCATTY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FAINT_ATTACK, MOVE_SHOCK_WAVE, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Alexia[] = {
+ {
+ .iv = 255,
+ .lvl = 26,
+ .species = SPECIES_WIGGLYTUFF,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_NONE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Jody[] = {
+ {
+ .iv = 255,
+ .lvl = 26,
+ .species = SPECIES_ZANGOOSE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SWORDS_DANCE, MOVE_SLASH, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Wendy[] = {
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_MAWILE,
+ .moves = MOVE_BATON_PASS, MOVE_FAINT_ATTACK, MOVE_FAKE_TEARS, MOVE_BITE
+ },
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_ROSELIA,
+ .moves = MOVE_MEGA_DRAIN, MOVE_MAGICAL_LEAF, MOVE_GRASS_WHISTLE, MOVE_LEECH_SEED
+ },
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_PELIPPER,
+ .moves = MOVE_FLY, MOVE_WATER_GUN, MOVE_MIST, MOVE_PROTECT
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Keira[] = {
+ {
+ .iv = 100,
+ .lvl = 45,
+ .species = SPECIES_LAIRON,
+ },
+ {
+ .iv = 100,
+ .lvl = 45,
+ .species = SPECIES_MANECTRIC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke1[] = {
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jennifer[] = {
+ {
+ .iv = 200,
+ .lvl = 30,
+ .species = SPECIES_SABLEYE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hope[] = {
+ {
+ .iv = 100,
+ .lvl = 45,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shannon[] = {
+ {
+ .iv = 100,
+ .lvl = 45,
+ .species = SPECIES_CLAYDOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Michelle[] = {
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_TORKOAL,
+ },
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_MEDICHAM,
+ },
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_LUDICOLO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Caroline[] = {
+ {
+ .iv = 100,
+ .lvl = 43,
+ .species = SPECIES_SKARMORY,
+ },
+ {
+ .iv = 100,
+ .lvl = 43,
+ .species = SPECIES_SABLEYE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Julie[] = {
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_SANDSLASH,
+ },
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_NINETALES,
+ },
+ {
+ .iv = 100,
+ .lvl = 42,
+ .species = SPECIES_TROPIUS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke2[] = {
+ {
+ .iv = 110,
+ .lvl = 26,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 110,
+ .lvl = 26,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 110,
+ .lvl = 26,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke3[] = {
+ {
+ .iv = 120,
+ .lvl = 29,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 120,
+ .lvl = 29,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 120,
+ .lvl = 29,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke4[] = {
+ {
+ .iv = 130,
+ .lvl = 32,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 130,
+ .lvl = 32,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 130,
+ .lvl = 32,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke5[] = {
+ {
+ .iv = 140,
+ .lvl = 34,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 140,
+ .lvl = 34,
+ .species = SPECIES_CAMERUPT,
+ },
+ {
+ .iv = 140,
+ .lvl = 34,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Patricia[] = {
+ {
+ .iv = 0,
+ .lvl = 41,
+ .species = SPECIES_BANETTE,
+ },
+ {
+ .iv = 0,
+ .lvl = 41,
+ .species = SPECIES_LUNATONE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kindra[] = {
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_DUSKULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_SHUPPET,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tammy[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_DUSKULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_SHUPPET,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie1[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_SABLEYE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tasha[] = {
+ {
+ .iv = 50,
+ .lvl = 32,
+ .species = SPECIES_SHUPPET,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie2[] = {
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_SABLEYE,
+ },
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_SPOINK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie3[] = {
+ {
+ .iv = 20,
+ .lvl = 35,
+ .species = SPECIES_SPOINK,
+ },
+ {
+ .iv = 20,
+ .lvl = 35,
+ .species = SPECIES_SABLEYE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie4[] = {
+ {
+ .iv = 30,
+ .lvl = 40,
+ .species = SPECIES_SPOINK,
+ },
+ {
+ .iv = 30,
+ .lvl = 40,
+ .species = SPECIES_SABLEYE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie5[] = {
+ {
+ .iv = 40,
+ .lvl = 42,
+ .species = SPECIES_DUSKULL,
+ },
+ {
+ .iv = 40,
+ .lvl = 42,
+ .species = SPECIES_SABLEYE,
+ },
+ {
+ .iv = 40,
+ .lvl = 42,
+ .species = SPECIES_GRUMPIG,
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy1[] = {
+ {
+ .iv = 0,
+ .lvl = 7,
+ .species = SPECIES_ZIGZAGOON,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Daphne[] = {
+ {
+ .iv = 100,
+ .lvl = 39,
+ .species = SPECIES_LUVDISC,
+ .heldItem = ITEM_NUGGET,
+ .moves = MOVE_ATTRACT, MOVE_SWEET_KISS, MOVE_FLAIL, MOVE_WATER_PULSE
+ },
+ {
+ .iv = 100,
+ .lvl = 39,
+ .species = SPECIES_LUVDISC,
+ .heldItem = ITEM_NUGGET,
+ .moves = MOVE_ATTRACT, MOVE_SAFEGUARD, MOVE_TAKE_DOWN, MOVE_WATER_PULSE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt23[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Cindy2[] = {
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_ZIGZAGOON,
+ .heldItem = ITEM_NUGGET,
+ .moves = MOVE_TACKLE, MOVE_TAIL_WHIP, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Brianna[] = {
+ {
+ .iv = 150,
+ .lvl = 40,
+ .species = SPECIES_SEAKING,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Naomi[] = {
+ {
+ .iv = 100,
+ .lvl = 45,
+ .species = SPECIES_ROSELIA,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy3[] = {
+ {
+ .iv = 10,
+ .lvl = 27,
+ .species = SPECIES_LINOONE,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy4[] = {
+ {
+ .iv = 20,
+ .lvl = 30,
+ .species = SPECIES_LINOONE,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy5[] = {
+ {
+ .iv = 30,
+ .lvl = 33,
+ .species = SPECIES_LINOONE,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Cindy6[] = {
+ {
+ .iv = 40,
+ .lvl = 36,
+ .species = SPECIES_LINOONE,
+ .heldItem = ITEM_NUGGET,
+ .moves = MOVE_FURY_SWIPES, MOVE_MUD_SPORT, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Melissa[] = {
+ {
+ .iv = 0,
+ .lvl = 21,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sheila[] = {
+ {
+ .iv = 0,
+ .lvl = 21,
+ .species = SPECIES_SHROOMISH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shirley[] = {
+ {
+ .iv = 0,
+ .lvl = 21,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica1[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_KECLEON,
+ .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_SEVIPER,
+ .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Connie[] = {
+ {
+ .iv = 100,
+ .lvl = 40,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bridget[] = {
+ {
+ .iv = 150,
+ .lvl = 40,
+ .species = SPECIES_AZUMARILL,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Olivia[] = {
+ {
+ .iv = 100,
+ .lvl = 35,
+ .species = SPECIES_CLAMPERL,
+ .moves = MOVE_IRON_DEFENSE, MOVE_WHIRLPOOL, MOVE_RAIN_DANCE, MOVE_WATER_PULSE
+ },
+ {
+ .iv = 100,
+ .lvl = 37,
+ .species = SPECIES_CORPHISH,
+ .moves = MOVE_TAUNT, MOVE_CRABHAMMER, MOVE_WATER_PULSE, MOVE_NONE
+ },
+ {
+ .iv = 100,
+ .lvl = 39,
+ .species = SPECIES_LOMBRE,
+ .moves = MOVE_UPROAR, MOVE_FURY_SWIPES, MOVE_FAKE_OUT, MOVE_WATER_PULSE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tiffany[] = {
+ {
+ .iv = 100,
+ .lvl = 39,
+ .species = SPECIES_CARVANHA,
+ },
+ {
+ .iv = 100,
+ .lvl = 39,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica2[] = {
+ {
+ .iv = 10,
+ .lvl = 35,
+ .species = SPECIES_KECLEON,
+ .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 10,
+ .lvl = 35,
+ .species = SPECIES_SEVIPER,
+ .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica3[] = {
+ {
+ .iv = 20,
+ .lvl = 38,
+ .species = SPECIES_KECLEON,
+ .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 20,
+ .lvl = 38,
+ .species = SPECIES_SEVIPER,
+ .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica4[] = {
+ {
+ .iv = 30,
+ .lvl = 41,
+ .species = SPECIES_KECLEON,
+ .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 30,
+ .lvl = 41,
+ .species = SPECIES_SEVIPER,
+ .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica5[] = {
+ {
+ .iv = 40,
+ .lvl = 44,
+ .species = SPECIES_KECLEON,
+ .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 40,
+ .lvl = 44,
+ .species = SPECIES_SEVIPER,
+ .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Winston1[] = {
+ {
+ .iv = 0,
+ .lvl = 7,
+ .species = SPECIES_ZIGZAGOON,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mollie[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_WHISCASH,
+ },
+ {
+ .iv = 200,
+ .lvl = 33,
+ .species = SPECIES_MEDITITE,
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Garret[] = {
+ {
+ .iv = 0,
+ .lvl = 45,
+ .species = SPECIES_AZUMARILL,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Winston2[] = {
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_LINOONE,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Winston3[] = {
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_LINOONE,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Winston4[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_LINOONE,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Winston5[] = {
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_LINOONE,
+ .heldItem = ITEM_NUGGET,
+ .moves = MOVE_FURY_SWIPES, MOVE_MUD_SPORT, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve1[] = {
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_ARON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia1[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_HORSEA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mark[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_RHYHORN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt24[] = {
+ {
+ .iv = 0,
+ .lvl = 20,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve2[] = {
+ {
+ .iv = 10,
+ .lvl = 27,
+ .species = SPECIES_LAIRON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve3[] = {
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_LAIRON,
+ },
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_RHYHORN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve4[] = {
+ {
+ .iv = 30,
+ .lvl = 32,
+ .species = SPECIES_LAIRON,
+ },
+ {
+ .iv = 30,
+ .lvl = 32,
+ .species = SPECIES_RHYHORN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve5[] = {
+ {
+ .iv = 40,
+ .lvl = 35,
+ .species = SPECIES_AGGRON,
+ },
+ {
+ .iv = 40,
+ .lvl = 35,
+ .species = SPECIES_RHYDON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Luis[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dominik[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Douglas[] = {
+ {
+ .iv = 10,
+ .lvl = 24,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 10,
+ .lvl = 24,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darrin[] = {
+ {
+ .iv = 10,
+ .lvl = 24,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 10,
+ .lvl = 24,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 10,
+ .lvl = 24,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony1[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerome[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_TENTACRUEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Matthew[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_David[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Spencer[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_WINGULL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Roland[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nolen[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_TENTACRUEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Stan[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_HORSEA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Barry[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_GYARADOS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dean[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_CARVANHA,
+ },
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rodney[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_GYARADOS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Richard[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_PELIPPER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Herman[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_TENTACRUEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Santiago[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_TENTACRUEL,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gilbert[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Franklin[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_SEALEO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kevin[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_SPHEAL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jack[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_GYARADOS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dudley[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_TENTACRUEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chad[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony2[] = {
+ {
+ .iv = 10,
+ .lvl = 30,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony3[] = {
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony4[] = {
+ {
+ .iv = 30,
+ .lvl = 34,
+ .species = SPECIES_STARYU,
+ },
+ {
+ .iv = 30,
+ .lvl = 36,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony5[] = {
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_STARMIE,
+ },
+ {
+ .iv = 40,
+ .lvl = 39,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Takao[] = {
+ {
+ .iv = 127,
+ .lvl = 13,
+ .species = SPECIES_MACHOP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hitoshi[] = {
+ {
+ .iv = 50,
+ .lvl = 32,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 200,
+ .lvl = 32,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kiyo[] = {
+ {
+ .iv = 100,
+ .lvl = 34,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koichi[] = {
+ {
+ .iv = 100,
+ .lvl = 24,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 150,
+ .lvl = 28,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob1[] = {
+ {
+ .iv = 100,
+ .lvl = 19,
+ .species = SPECIES_MACHOP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob2[] = {
+ {
+ .iv = 110,
+ .lvl = 27,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob3[] = {
+ {
+ .iv = 120,
+ .lvl = 29,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 120,
+ .lvl = 29,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob4[] = {
+ {
+ .iv = 130,
+ .lvl = 31,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 130,
+ .lvl = 31,
+ .species = SPECIES_MACHOKE,
+ },
+ {
+ .iv = 130,
+ .lvl = 31,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Nob5[] = {
+ {
+ .iv = 140,
+ .lvl = 33,
+ .species = SPECIES_MACHOP,
+ .heldItem = ITEM_NONE
+ },
+ {
+ .iv = 140,
+ .lvl = 33,
+ .species = SPECIES_MACHOKE,
+ .heldItem = ITEM_NONE
+ },
+ {
+ .iv = 140,
+ .lvl = 33,
+ .species = SPECIES_MACHOKE,
+ .heldItem = ITEM_NONE
+ },
+ {
+ .iv = 140,
+ .lvl = 33,
+ .species = SPECIES_MACHAMP,
+ .heldItem = ITEM_BLACK_BELT
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Yuji[] = {
+ {
+ .iv = 100,
+ .lvl = 26,
+ .species = SPECIES_MAKUHITA,
+ },
+ {
+ .iv = 100,
+ .lvl = 26,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Daisuke[] = {
+ {
+ .iv = 100,
+ .lvl = 19,
+ .species = SPECIES_MACHOP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Atsushi[] = {
+ {
+ .iv = 100,
+ .lvl = 32,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Kirk[] = {
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_ELECTRIKE,
+ .moves = MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_SPARK, MOVE_LEER
+ },
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_VOLTORB,
+ .moves = MOVE_CHARGE, MOVE_SHOCK_WAVE, MOVE_SCREECH, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt25[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_POOCHYENA,
+ },
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt26[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shawn[] = {
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_VOLTORB,
+ },
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando1[] = {
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_ELECTRIKE,
+ },
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_LOUDRED,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton1[] = {
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_MAGNEMITE,
+ },
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_WHISMUR,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton2[] = {
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_MAGNEMITE,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_WHISMUR,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton3[] = {
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_MAGNEMITE,
+ },
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_LOUDRED,
+ },
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton4[] = {
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_MAGNETON,
+ },
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_LOUDRED,
+ },
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_MAGNETON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton5[] = {
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_MAGNETON,
+ },
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_EXPLOUD,
+ },
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_MAGNETON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cole[] = {
+ {
+ .iv = 100,
+ .lvl = 23,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeff[] = {
+ {
+ .iv = 100,
+ .lvl = 22,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 100,
+ .lvl = 22,
+ .species = SPECIES_SLUGMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Axle[] = {
+ {
+ .iv = 100,
+ .lvl = 23,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jace[] = {
+ {
+ .iv = 100,
+ .lvl = 23,
+ .species = SPECIES_SLUGMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Keegan[] = {
+ {
+ .iv = 120,
+ .lvl = 23,
+ .species = SPECIES_SLUGMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie1[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_WINGULL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie2[] = {
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_WINGULL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie3[] = {
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_PELIPPER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie4[] = {
+ {
+ .iv = 30,
+ .lvl = 32,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 30,
+ .lvl = 32,
+ .species = SPECIES_PELIPPER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie5[] = {
+ {
+ .iv = 40,
+ .lvl = 35,
+ .species = SPECIES_MAGCARGO,
+ },
+ {
+ .iv = 40,
+ .lvl = 35,
+ .species = SPECIES_PELIPPER,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Drew[] = {
+ {
+ .iv = 0,
+ .lvl = 23,
+ .species = SPECIES_SANDSHREW,
+ .moves = MOVE_DIG, MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Beau[] = {
+ {
+ .iv = 0,
+ .lvl = 21,
+ .species = SPECIES_BALTOY,
+ .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB
+ },
+ {
+ .iv = 0,
+ .lvl = 21,
+ .species = SPECIES_SANDSHREW,
+ .moves = MOVE_POISON_STING, MOVE_SAND_ATTACK, MOVE_SCRATCH, MOVE_DIG
+ },
+ {
+ .iv = 0,
+ .lvl = 21,
+ .species = SPECIES_BALTOY,
+ .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Larry[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_NUZLEAF,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shane[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_SANDSHREW,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_NUZLEAF,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Justin[] = {
+ {
+ .iv = 0,
+ .lvl = 24,
+ .species = SPECIES_KECLEON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan1[] = {
+ {
+ .iv = 0,
+ .lvl = 20,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 0,
+ .lvl = 20,
+ .species = SPECIES_TAILLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Autumn[] = {
+ {
+ .iv = 0,
+ .lvl = 21,
+ .species = SPECIES_SHROOMISH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Travis[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_SANDSHREW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan2[] = {
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_TAILLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan3[] = {
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_LINOONE,
+ },
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_SWELLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan4[] = {
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_SANDSHREW,
+ },
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_LINOONE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan5[] = {
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_SANDSLASH,
+ },
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_LINOONE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brent[] = {
+ {
+ .iv = 100,
+ .lvl = 26,
+ .species = SPECIES_SURSKIT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Donald[] = {
+ {
+ .iv = 100,
+ .lvl = 24,
+ .species = SPECIES_WURMPLE,
+ },
+ {
+ .iv = 100,
+ .lvl = 24,
+ .species = SPECIES_SILCOON,
+ },
+ {
+ .iv = 100,
+ .lvl = 24,
+ .species = SPECIES_BEAUTIFLY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Taylor[] = {
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_WURMPLE,
+ },
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_CASCOON,
+ },
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_DUSTOX,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey1[] = {
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_SURSKIT,
+ },
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_SURSKIT,
+ },
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_SURSKIT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Derek[] = {
+ {
+ .iv = 150,
+ .lvl = 16,
+ .species = SPECIES_DUSTOX,
+ },
+ {
+ .iv = 150,
+ .lvl = 16,
+ .species = SPECIES_BEAUTIFLY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey2[] = {
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_SURSKIT,
+ },
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_SURSKIT,
+ },
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_SURSKIT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey3[] = {
+ {
+ .iv = 20,
+ .lvl = 34,
+ .species = SPECIES_SURSKIT,
+ },
+ {
+ .iv = 20,
+ .lvl = 34,
+ .species = SPECIES_SURSKIT,
+ },
+ {
+ .iv = 20,
+ .lvl = 34,
+ .species = SPECIES_MASQUERAIN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey4[] = {
+ {
+ .iv = 30,
+ .lvl = 36,
+ .species = SPECIES_SURSKIT,
+ },
+ {
+ .iv = 30,
+ .lvl = 36,
+ .species = SPECIES_WURMPLE,
+ },
+ {
+ .iv = 30,
+ .lvl = 36,
+ .species = SPECIES_SURSKIT,
+ },
+ {
+ .iv = 30,
+ .lvl = 36,
+ .species = SPECIES_MASQUERAIN,
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Jeffrey5[] = {
+ {
+ .iv = 40,
+ .lvl = 38,
+ .species = SPECIES_SURSKIT,
+ .heldItem = ITEM_NONE
+ },
+ {
+ .iv = 40,
+ .lvl = 38,
+ .species = SPECIES_DUSTOX,
+ .heldItem = ITEM_NONE
+ },
+ {
+ .iv = 40,
+ .lvl = 38,
+ .species = SPECIES_SURSKIT,
+ .heldItem = ITEM_NONE
+ },
+ {
+ .iv = 40,
+ .lvl = 38,
+ .species = SPECIES_MASQUERAIN,
+ .heldItem = ITEM_SILVER_POWDER
+ },
+ {
+ .iv = 40,
+ .lvl = 38,
+ .species = SPECIES_BEAUTIFLY,
+ .heldItem = ITEM_NONE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Edward[] = {
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_ABRA,
+ .moves = MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Preston[] = {
+ {
+ .iv = 100,
+ .lvl = 36,
+ .species = SPECIES_KIRLIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Virgil[] = {
+ {
+ .iv = 100,
+ .lvl = 36,
+ .species = SPECIES_RALTS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Blake[] = {
+ {
+ .iv = 100,
+ .lvl = 36,
+ .species = SPECIES_GIRAFARIG,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_William[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_RALTS,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_RALTS,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_KIRLIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joshua[] = {
+ {
+ .iv = 0,
+ .lvl = 41,
+ .species = SPECIES_KADABRA,
+ },
+ {
+ .iv = 0,
+ .lvl = 41,
+ .species = SPECIES_SOLROCK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron1[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_SOLROCK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron2[] = {
+ {
+ .iv = 10,
+ .lvl = 33,
+ .species = SPECIES_KADABRA,
+ },
+ {
+ .iv = 10,
+ .lvl = 33,
+ .species = SPECIES_SOLROCK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron3[] = {
+ {
+ .iv = 20,
+ .lvl = 38,
+ .species = SPECIES_KADABRA,
+ },
+ {
+ .iv = 20,
+ .lvl = 38,
+ .species = SPECIES_SOLROCK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron4[] = {
+ {
+ .iv = 30,
+ .lvl = 41,
+ .species = SPECIES_KADABRA,
+ },
+ {
+ .iv = 30,
+ .lvl = 41,
+ .species = SPECIES_SOLROCK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron5[] = {
+ {
+ .iv = 40,
+ .lvl = 45,
+ .species = SPECIES_SOLROCK,
+ },
+ {
+ .iv = 40,
+ .lvl = 45,
+ .species = SPECIES_ALAKAZAM,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Jaclyn[] = {
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_ABRA,
+ .moves = MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hannah[] = {
+ {
+ .iv = 100,
+ .lvl = 36,
+ .species = SPECIES_KIRLIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Samantha[] = {
+ {
+ .iv = 100,
+ .lvl = 36,
+ .species = SPECIES_XATU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maura[] = {
+ {
+ .iv = 100,
+ .lvl = 36,
+ .species = SPECIES_KADABRA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kayla[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_WOBBUFFET,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_NATU,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_KADABRA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alexis[] = {
+ {
+ .iv = 0,
+ .lvl = 41,
+ .species = SPECIES_KIRLIA,
+ },
+ {
+ .iv = 0,
+ .lvl = 41,
+ .species = SPECIES_XATU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki1[] = {
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_KADABRA,
+ },
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_LUNATONE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki2[] = {
+ {
+ .iv = 10,
+ .lvl = 34,
+ .species = SPECIES_KADABRA,
+ },
+ {
+ .iv = 10,
+ .lvl = 34,
+ .species = SPECIES_LUNATONE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki3[] = {
+ {
+ .iv = 20,
+ .lvl = 37,
+ .species = SPECIES_KADABRA,
+ },
+ {
+ .iv = 20,
+ .lvl = 37,
+ .species = SPECIES_LUNATONE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki4[] = {
+ {
+ .iv = 30,
+ .lvl = 40,
+ .species = SPECIES_KADABRA,
+ },
+ {
+ .iv = 30,
+ .lvl = 40,
+ .species = SPECIES_LUNATONE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki5[] = {
+ {
+ .iv = 40,
+ .lvl = 43,
+ .species = SPECIES_LUNATONE,
+ },
+ {
+ .iv = 40,
+ .lvl = 43,
+ .species = SPECIES_ALAKAZAM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Walter1[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_MANECTRIC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Micah[] = {
+ {
+ .iv = 0,
+ .lvl = 44,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 0,
+ .lvl = 44,
+ .species = SPECIES_MANECTRIC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thomas[] = {
+ {
+ .iv = 0,
+ .lvl = 45,
+ .species = SPECIES_ZANGOOSE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Walter2[] = {
+ {
+ .iv = 10,
+ .lvl = 34,
+ .species = SPECIES_MANECTRIC,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter3[] = {
+ {
+ .iv = 20,
+ .lvl = 36,
+ .species = SPECIES_LINOONE,
+ .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES
+ },
+ {
+ .iv = 20,
+ .lvl = 36,
+ .species = SPECIES_MANECTRIC,
+ .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_ROAR
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter4[] = {
+ {
+ .iv = 30,
+ .lvl = 39,
+ .species = SPECIES_LINOONE,
+ .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES
+ },
+ {
+ .iv = 30,
+ .lvl = 39,
+ .species = SPECIES_MANECTRIC,
+ .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter5[] = {
+ {
+ .iv = 40,
+ .lvl = 41,
+ .species = SPECIES_LINOONE,
+ .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES
+ },
+ {
+ .iv = 40,
+ .lvl = 41,
+ .species = SPECIES_GOLDUCK,
+ .moves = MOVE_FURY_SWIPES, MOVE_DISABLE, MOVE_CONFUSION, MOVE_PSYCH_UP
+ },
+ {
+ .iv = 40,
+ .lvl = 41,
+ .species = SPECIES_MANECTRIC,
+ .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_ROAR
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Sidney[] = {
+ {
+ .iv = 250,
+ .lvl = 46,
+ .species = SPECIES_MIGHTYENA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ROAR, MOVE_DOUBLE_EDGE, MOVE_SAND_ATTACK, MOVE_CRUNCH
+ },
+ {
+ .iv = 250,
+ .lvl = 48,
+ .species = SPECIES_SHIFTRY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TORMENT, MOVE_DOUBLE_TEAM, MOVE_SWAGGER, MOVE_EXTRASENSORY
+ },
+ {
+ .iv = 250,
+ .lvl = 46,
+ .species = SPECIES_CACTURNE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_LEECH_SEED, MOVE_FAINT_ATTACK, MOVE_NEEDLE_ARM, MOVE_COTTON_SPORE
+ },
+ {
+ .iv = 250,
+ .lvl = 48,
+ .species = SPECIES_CRAWDAUNT,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SURF, MOVE_SWORDS_DANCE, MOVE_STRENGTH, MOVE_FACADE
+ },
+ {
+ .iv = 255,
+ .lvl = 49,
+ .species = SPECIES_ABSOL,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_SLASH
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Phoebe[] = {
+ {
+ .iv = 250,
+ .lvl = 48,
+ .species = SPECIES_DUSCLOPS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SHADOW_PUNCH, MOVE_CONFUSE_RAY, MOVE_CURSE, MOVE_PROTECT
+ },
+ {
+ .iv = 250,
+ .lvl = 49,
+ .species = SPECIES_BANETTE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SHADOW_BALL, MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 250,
+ .lvl = 50,
+ .species = SPECIES_SABLEYE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SHADOW_BALL, MOVE_DOUBLE_TEAM, MOVE_NIGHT_SHADE, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 250,
+ .lvl = 49,
+ .species = SPECIES_BANETTE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SHADOW_BALL, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_FACADE
+ },
+ {
+ .iv = 255,
+ .lvl = 51,
+ .species = SPECIES_DUSCLOPS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SHADOW_BALL, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Glacia[] = {
+ {
+ .iv = 250,
+ .lvl = 50,
+ .species = SPECIES_SEALEO,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ENCORE, MOVE_BODY_SLAM, MOVE_HAIL, MOVE_ICE_BALL
+ },
+ {
+ .iv = 250,
+ .lvl = 50,
+ .species = SPECIES_GLALIE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_LIGHT_SCREEN, MOVE_CRUNCH, MOVE_ICY_WIND, MOVE_ICE_BEAM
+ },
+ {
+ .iv = 250,
+ .lvl = 52,
+ .species = SPECIES_SEALEO,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ATTRACT, MOVE_DOUBLE_EDGE, MOVE_HAIL, MOVE_BLIZZARD
+ },
+ {
+ .iv = 250,
+ .lvl = 52,
+ .species = SPECIES_GLALIE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SHADOW_BALL, MOVE_EXPLOSION, MOVE_HAIL, MOVE_ICE_BEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_WALREIN,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SURF, MOVE_BODY_SLAM, MOVE_ICE_BEAM, MOVE_SHEER_COLD
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Drake[] = {
+ {
+ .iv = 250,
+ .lvl = 52,
+ .species = SPECIES_SHELGON,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ROCK_TOMB, MOVE_DRAGON_CLAW, MOVE_PROTECT, MOVE_DOUBLE_EDGE
+ },
+ {
+ .iv = 250,
+ .lvl = 54,
+ .species = SPECIES_ALTARIA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_DOUBLE_EDGE, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 250,
+ .lvl = 53,
+ .species = SPECIES_KINGDRA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SMOKESCREEN, MOVE_DRAGON_DANCE, MOVE_SURF, MOVE_BODY_SLAM
+ },
+ {
+ .iv = 250,
+ .lvl = 53,
+ .species = SPECIES_FLYGON,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FLAMETHROWER, MOVE_CRUNCH, MOVE_DRAGON_BREATH, MOVE_EARTHQUAKE
+ },
+ {
+ .iv = 255,
+ .lvl = 55,
+ .species = SPECIES_SALAMENCE,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_ROCK_SLIDE, MOVE_CRUNCH
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne1[] = {
+ {
+ .iv = 100,
+ .lvl = 12,
+ .species = SPECIES_GEODUDE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_ROCK_THROW, MOVE_ROCK_TOMB
+ },
+ {
+ .iv = 100,
+ .lvl = 12,
+ .species = SPECIES_GEODUDE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_ROCK_THROW, MOVE_ROCK_TOMB
+ },
+ {
+ .iv = 200,
+ .lvl = 15,
+ .species = SPECIES_NOSEPASS,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = MOVE_BLOCK, MOVE_HARDEN, MOVE_TACKLE, MOVE_ROCK_TOMB
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Brawly1[] = {
+ {
+ .iv = 100,
+ .lvl = 16,
+ .species = SPECIES_MACHOP,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_KARATE_CHOP, MOVE_LOW_KICK, MOVE_SEISMIC_TOSS, MOVE_BULK_UP
+ },
+ {
+ .iv = 100,
+ .lvl = 16,
+ .species = SPECIES_MEDITITE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_BULK_UP
+ },
+ {
+ .iv = 200,
+ .lvl = 19,
+ .species = SPECIES_MAKUHITA,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_ARM_THRUST, MOVE_VITAL_THROW, MOVE_REVERSAL, MOVE_BULK_UP
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Wattson1[] = {
+ {
+ .iv = 200,
+ .lvl = 20,
+ .species = SPECIES_VOLTORB,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ROLLOUT, MOVE_SPARK, MOVE_SELF_DESTRUCT, MOVE_SHOCK_WAVE
+ },
+ {
+ .iv = 200,
+ .lvl = 20,
+ .species = SPECIES_ELECTRIKE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SHOCK_WAVE, MOVE_LEER, MOVE_QUICK_ATTACK, MOVE_HOWL
+ },
+ {
+ .iv = 220,
+ .lvl = 22,
+ .species = SPECIES_MAGNETON,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SUPERSONIC, MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_SONIC_BOOM
+ },
+ {
+ .iv = 250,
+ .lvl = 24,
+ .species = SPECIES_MANECTRIC,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_SHOCK_WAVE, MOVE_HOWL
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Flannery1[] = {
+ {
+ .iv = 200,
+ .lvl = 24,
+ .species = SPECIES_NUMEL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_OVERHEAT, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY
+ },
+ {
+ .iv = 200,
+ .lvl = 24,
+ .species = SPECIES_SLUGMA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_OVERHEAT, MOVE_SMOG, MOVE_LIGHT_SCREEN, MOVE_SUNNY_DAY
+ },
+ {
+ .iv = 250,
+ .lvl = 26,
+ .species = SPECIES_CAMERUPT,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_OVERHEAT, MOVE_TACKLE, MOVE_SUNNY_DAY, MOVE_ATTRACT
+ },
+ {
+ .iv = 250,
+ .lvl = 29,
+ .species = SPECIES_TORKOAL,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_BODY_SLAM, MOVE_ATTRACT
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Norman1[] = {
+ {
+ .iv = 200,
+ .lvl = 27,
+ .species = SPECIES_SPINDA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TEETER_DANCE, MOVE_PSYBEAM, MOVE_FACADE, MOVE_ENCORE
+ },
+ {
+ .iv = 200,
+ .lvl = 27,
+ .species = SPECIES_VIGOROTH,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SLASH, MOVE_FACADE, MOVE_ENCORE, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 200,
+ .lvl = 29,
+ .species = SPECIES_LINOONE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SLASH, MOVE_BELLY_DRUM, MOVE_FACADE, MOVE_HEADBUTT
+ },
+ {
+ .iv = 250,
+ .lvl = 31,
+ .species = SPECIES_SLAKING,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_COUNTER, MOVE_YAWN, MOVE_FACADE, MOVE_FAINT_ATTACK
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Winona1[] = {
+ {
+ .iv = 210,
+ .lvl = 29,
+ .species = SPECIES_SWABLU,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PERISH_SONG, MOVE_MIRROR_MOVE, MOVE_SAFEGUARD, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 210,
+ .lvl = 29,
+ .species = SPECIES_TROPIUS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_SYNTHESIS
+ },
+ {
+ .iv = 210,
+ .lvl = 30,
+ .species = SPECIES_PELIPPER,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WATER_GUN, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 220,
+ .lvl = 31,
+ .species = SPECIES_SKARMORY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SAND_ATTACK, MOVE_FURY_ATTACK, MOVE_STEEL_WING, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 255,
+ .lvl = 33,
+ .species = SPECIES_ALTARIA,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE, MOVE_AERIAL_ACE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza1[] = {
+ {
+ .iv = 250,
+ .lvl = 41,
+ .species = SPECIES_CLAYDOL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN
+ },
+ {
+ .iv = 250,
+ .lvl = 41,
+ .species = SPECIES_XATU,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PSYCHIC, MOVE_SUNNY_DAY, MOVE_CONFUSE_RAY, MOVE_CALM_MIND
+ },
+ {
+ .iv = 250,
+ .lvl = 42,
+ .species = SPECIES_LUNATONE,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_CALM_MIND
+ },
+ {
+ .iv = 250,
+ .lvl = 42,
+ .species = SPECIES_SOLROCK,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Juan1[] = {
+ {
+ .iv = 200,
+ .lvl = 41,
+ .species = SPECIES_LUVDISC,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WATER_PULSE, MOVE_ATTRACT, MOVE_SWEET_KISS, MOVE_FLAIL
+ },
+ {
+ .iv = 200,
+ .lvl = 41,
+ .species = SPECIES_WHISCASH,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_AMNESIA, MOVE_EARTHQUAKE
+ },
+ {
+ .iv = 200,
+ .lvl = 43,
+ .species = SPECIES_SEALEO,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ENCORE, MOVE_BODY_SLAM, MOVE_AURORA_BEAM, MOVE_WATER_PULSE
+ },
+ {
+ .iv = 200,
+ .lvl = 43,
+ .species = SPECIES_CRAWDAUNT,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WATER_PULSE, MOVE_CRABHAMMER, MOVE_TAUNT, MOVE_LEER
+ },
+ {
+ .iv = 250,
+ .lvl = 46,
+ .species = SPECIES_KINGDRA,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry1[] = {
+ {
+ .iv = 10,
+ .lvl = 9,
+ .species = SPECIES_RALTS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ted[] = {
+ {
+ .iv = 10,
+ .lvl = 17,
+ .species = SPECIES_RALTS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paul[] = {
+ {
+ .iv = 10,
+ .lvl = 15,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 10,
+ .lvl = 15,
+ .species = SPECIES_ODDISH,
+ },
+ {
+ .iv = 10,
+ .lvl = 15,
+ .species = SPECIES_WINGULL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry2[] = {
+ {
+ .iv = 20,
+ .lvl = 26,
+ .species = SPECIES_RALTS,
+ },
+ {
+ .iv = 20,
+ .lvl = 26,
+ .species = SPECIES_MEDITITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry3[] = {
+ {
+ .iv = 30,
+ .lvl = 29,
+ .species = SPECIES_KIRLIA,
+ },
+ {
+ .iv = 30,
+ .lvl = 29,
+ .species = SPECIES_MEDITITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry4[] = {
+ {
+ .iv = 40,
+ .lvl = 32,
+ .species = SPECIES_KIRLIA,
+ },
+ {
+ .iv = 40,
+ .lvl = 32,
+ .species = SPECIES_MEDICHAM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry5[] = {
+ {
+ .iv = 50,
+ .lvl = 34,
+ .species = SPECIES_KIRLIA,
+ },
+ {
+ .iv = 50,
+ .lvl = 34,
+ .species = SPECIES_BANETTE,
+ },
+ {
+ .iv = 50,
+ .lvl = 34,
+ .species = SPECIES_MEDICHAM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen1[] = {
+ {
+ .iv = 10,
+ .lvl = 9,
+ .species = SPECIES_SHROOMISH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Georgia[] = {
+ {
+ .iv = 10,
+ .lvl = 16,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 10,
+ .lvl = 16,
+ .species = SPECIES_BEAUTIFLY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen2[] = {
+ {
+ .iv = 20,
+ .lvl = 26,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 20,
+ .lvl = 26,
+ .species = SPECIES_WHISMUR,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen3[] = {
+ {
+ .iv = 30,
+ .lvl = 29,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 30,
+ .lvl = 29,
+ .species = SPECIES_LOUDRED,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen4[] = {
+ {
+ .iv = 40,
+ .lvl = 32,
+ .species = SPECIES_BRELOOM,
+ },
+ {
+ .iv = 40,
+ .lvl = 32,
+ .species = SPECIES_LOUDRED,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen5[] = {
+ {
+ .iv = 50,
+ .lvl = 35,
+ .species = SPECIES_BRELOOM,
+ },
+ {
+ .iv = 50,
+ .lvl = 35,
+ .species = SPECIES_EXPLOUD,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_KateAndJoy[] = {
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_SPINDA,
+ .moves = MOVE_HYPNOSIS, MOVE_PSYBEAM, MOVE_DIZZY_PUNCH, MOVE_TEETER_DANCE
+ },
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_SLAKING,
+ .moves = MOVE_FOCUS_PUNCH, MOVE_YAWN, MOVE_SLACK_OFF, MOVE_FAINT_ATTACK
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg1[] = {
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_ZIGZAGOON,
+ .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH
+ },
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_MAKUHITA,
+ .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg2[] = {
+ {
+ .iv = 10,
+ .lvl = 28,
+ .species = SPECIES_ZIGZAGOON,
+ .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH
+ },
+ {
+ .iv = 10,
+ .lvl = 30,
+ .species = SPECIES_MAKUHITA,
+ .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg3[] = {
+ {
+ .iv = 20,
+ .lvl = 31,
+ .species = SPECIES_ZIGZAGOON,
+ .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH
+ },
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_MAKUHITA,
+ .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg4[] = {
+ {
+ .iv = 30,
+ .lvl = 34,
+ .species = SPECIES_LINOONE,
+ .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH
+ },
+ {
+ .iv = 30,
+ .lvl = 36,
+ .species = SPECIES_MAKUHITA,
+ .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg5[] = {
+ {
+ .iv = 40,
+ .lvl = 36,
+ .species = SPECIES_LINOONE,
+ .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH
+ },
+ {
+ .iv = 40,
+ .lvl = 38,
+ .species = SPECIES_HARIYAMA,
+ .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Victor[] = {
+ {
+ .iv = 25,
+ .lvl = 16,
+ .species = SPECIES_TAILLOW,
+ .heldItem = ITEM_ORAN_BERRY
+ },
+ {
+ .iv = 25,
+ .lvl = 16,
+ .species = SPECIES_ZIGZAGOON,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel1[] = {
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_SKITTY,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Colton[] = {
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_SKITTY,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL
+ },
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_SKITTY,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL
+ },
+ {
+ .iv = 0,
+ .lvl = 40,
+ .species = SPECIES_SKITTY,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL
+ },
+ {
+ .iv = 0,
+ .lvl = 12,
+ .species = SPECIES_SKITTY,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL
+ },
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_SKITTY,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL
+ },
+ {
+ .iv = 0,
+ .lvl = 42,
+ .species = SPECIES_DELCATTY,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel2[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_SKITTY,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel3[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_SKITTY,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel4[] = {
+ {
+ .iv = 0,
+ .lvl = 35,
+ .species = SPECIES_DELCATTY,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel5[] = {
+ {
+ .iv = 0,
+ .lvl = 38,
+ .species = SPECIES_DELCATTY,
+ .heldItem = ITEM_SITRUS_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Victoria[] = {
+ {
+ .iv = 50,
+ .lvl = 17,
+ .species = SPECIES_ROSELIA,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Vanessa[] = {
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_PIKACHU,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Bethany[] = {
+ {
+ .iv = 100,
+ .lvl = 35,
+ .species = SPECIES_AZURILL,
+ .heldItem = ITEM_ORAN_BERRY
+ },
+ {
+ .iv = 100,
+ .lvl = 37,
+ .species = SPECIES_MARILL,
+ .heldItem = ITEM_ORAN_BERRY
+ },
+ {
+ .iv = 100,
+ .lvl = 39,
+ .species = SPECIES_AZUMARILL,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel1[] = {
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_PLUSLE,
+ .heldItem = ITEM_ORAN_BERRY
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_MINUN,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel2[] = {
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_PLUSLE,
+ .heldItem = ITEM_ORAN_BERRY
+ },
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_MINUN,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel3[] = {
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_PLUSLE,
+ .heldItem = ITEM_ORAN_BERRY
+ },
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_MINUN,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel4[] = {
+ {
+ .iv = 30,
+ .lvl = 32,
+ .species = SPECIES_PLUSLE,
+ .heldItem = ITEM_ORAN_BERRY
+ },
+ {
+ .iv = 30,
+ .lvl = 32,
+ .species = SPECIES_MINUN,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel5[] = {
+ {
+ .iv = 40,
+ .lvl = 35,
+ .species = SPECIES_PLUSLE,
+ .heldItem = ITEM_SITRUS_BERRY
+ },
+ {
+ .iv = 40,
+ .lvl = 35,
+ .species = SPECIES_MINUN,
+ .heldItem = ITEM_SITRUS_BERRY
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Timothy1[] = {
+ {
+ .iv = 200,
+ .lvl = 27,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy2[] = {
+ {
+ .iv = 210,
+ .lvl = 33,
+ .species = SPECIES_HARIYAMA,
+ .moves = MOVE_ARM_THRUST, MOVE_KNOCK_OFF, MOVE_SAND_ATTACK, MOVE_DIG
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy3[] = {
+ {
+ .iv = 220,
+ .lvl = 36,
+ .species = SPECIES_HARIYAMA,
+ .moves = MOVE_ARM_THRUST, MOVE_KNOCK_OFF, MOVE_SAND_ATTACK, MOVE_DIG
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy4[] = {
+ {
+ .iv = 230,
+ .lvl = 39,
+ .species = SPECIES_HARIYAMA,
+ .moves = MOVE_ARM_THRUST, MOVE_BELLY_DRUM, MOVE_SAND_ATTACK, MOVE_DIG
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy5[] = {
+ {
+ .iv = 240,
+ .lvl = 42,
+ .species = SPECIES_HARIYAMA,
+ .moves = MOVE_ARM_THRUST, MOVE_BELLY_DRUM, MOVE_SAND_ATTACK, MOVE_DIG
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Vicky[] = {
+ {
+ .iv = 200,
+ .lvl = 18,
+ .species = SPECIES_MEDITITE,
+ .moves = MOVE_HI_JUMP_KICK, MOVE_MEDITATE, MOVE_CONFUSION, MOVE_DETECT
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby1[] = {
+ {
+ .iv = 200,
+ .lvl = 21,
+ .species = SPECIES_MEDITITE,
+ },
+ {
+ .iv = 200,
+ .lvl = 21,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby2[] = {
+ {
+ .iv = 210,
+ .lvl = 30,
+ .species = SPECIES_MEDITITE,
+ },
+ {
+ .iv = 210,
+ .lvl = 30,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby3[] = {
+ {
+ .iv = 220,
+ .lvl = 33,
+ .species = SPECIES_MEDICHAM,
+ },
+ {
+ .iv = 220,
+ .lvl = 33,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby4[] = {
+ {
+ .iv = 230,
+ .lvl = 36,
+ .species = SPECIES_MEDICHAM,
+ },
+ {
+ .iv = 230,
+ .lvl = 36,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby5[] = {
+ {
+ .iv = 240,
+ .lvl = 39,
+ .species = SPECIES_MEDICHAM,
+ },
+ {
+ .iv = 240,
+ .lvl = 39,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin1[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_POOCHYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Billy[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 0,
+ .lvl = 7,
+ .species = SPECIES_SEEDOT,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Josh[] = {
+ {
+ .iv = 100,
+ .lvl = 10,
+ .species = SPECIES_GEODUDE,
+ .moves = MOVE_TACKLE, MOVE_NONE, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tommy[] = {
+ {
+ .iv = 110,
+ .lvl = 8,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 120,
+ .lvl = 8,
+ .species = SPECIES_GEODUDE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joey[] = {
+ {
+ .iv = 0,
+ .lvl = 9,
+ .species = SPECIES_MACHOP,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Ben[] = {
+ {
+ .iv = 150,
+ .lvl = 17,
+ .species = SPECIES_ZIGZAGOON,
+ .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_GROWL, MOVE_THUNDERBOLT
+ },
+ {
+ .iv = 150,
+ .lvl = 17,
+ .species = SPECIES_GULPIN,
+ .moves = MOVE_AMNESIA, MOVE_SLUDGE, MOVE_YAWN, MOVE_POUND
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Quincy[] = {
+ {
+ .iv = 100,
+ .lvl = 43,
+ .species = SPECIES_SLAKING,
+ .moves = MOVE_ATTRACT, MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER
+ },
+ {
+ .iv = 100,
+ .lvl = 43,
+ .species = SPECIES_DUSCLOPS,
+ .moves = MOVE_SKILL_SWAP, MOVE_PROTECT, MOVE_WILL_O_WISP, MOVE_TOXIC
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Katelynn[] = {
+ {
+ .iv = 100,
+ .lvl = 43,
+ .species = SPECIES_GARDEVOIR,
+ .moves = MOVE_SKILL_SWAP, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_CALM_MIND
+ },
+ {
+ .iv = 100,
+ .lvl = 43,
+ .species = SPECIES_SLAKING,
+ .moves = MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jaylen[] = {
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_TRAPINCH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dillon[] = {
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_ARON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin2[] = {
+ {
+ .iv = 10,
+ .lvl = 27,
+ .species = SPECIES_MIGHTYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin3[] = {
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 20,
+ .lvl = 30,
+ .species = SPECIES_MIGHTYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin4[] = {
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 30,
+ .lvl = 29,
+ .species = SPECIES_LINOONE,
+ },
+ {
+ .iv = 30,
+ .lvl = 33,
+ .species = SPECIES_MIGHTYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin5[] = {
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 40,
+ .lvl = 32,
+ .species = SPECIES_LINOONE,
+ },
+ {
+ .iv = 40,
+ .lvl = 36,
+ .species = SPECIES_MIGHTYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eddie[] = {
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_ZIGZAGOON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Allen[] = {
+ {
+ .iv = 0,
+ .lvl = 4,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 0,
+ .lvl = 3,
+ .species = SPECIES_TAILLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Timmy[] = {
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_ARON,
+ },
+ {
+ .iv = 0,
+ .lvl = 13,
+ .species = SPECIES_ELECTRIKE,
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Wallace[] = {
+ {
+ .iv = 255,
+ .lvl = 57,
+ .species = SPECIES_WAILORD,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_RAIN_DANCE, MOVE_WATER_SPOUT, MOVE_DOUBLE_EDGE, MOVE_BLIZZARD
+ },
+ {
+ .iv = 255,
+ .lvl = 55,
+ .species = SPECIES_TENTACRUEL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TOXIC, MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_ICE_BEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 56,
+ .species = SPECIES_LUDICOLO,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_GIGA_DRAIN, MOVE_SURF, MOVE_LEECH_SEED, MOVE_DOUBLE_TEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 56,
+ .species = SPECIES_WHISCASH,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_EARTHQUAKE, MOVE_SURF, MOVE_AMNESIA, MOVE_HYPER_BEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 56,
+ .species = SPECIES_GYARADOS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE, MOVE_HYPER_BEAM, MOVE_SURF
+ },
+ {
+ .iv = 255,
+ .lvl = 58,
+ .species = SPECIES_MILOTIC,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_RECOVER, MOVE_SURF, MOVE_ICE_BEAM, MOVE_TOXIC
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andrew[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_MAGIKARP,
+ },
+ {
+ .iv = 0,
+ .lvl = 10,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_MAGIKARP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ivan[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_MAGIKARP,
+ },
+ {
+ .iv = 0,
+ .lvl = 6,
+ .species = SPECIES_MAGIKARP,
+ },
+ {
+ .iv = 0,
+ .lvl = 7,
+ .species = SPECIES_MAGIKARP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Claude[] = {
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_MAGIKARP,
+ },
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_GOLDEEN,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_BARBOACH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot1[] = {
+ {
+ .iv = 0,
+ .lvl = 10,
+ .species = SPECIES_MAGIKARP,
+ },
+ {
+ .iv = 0,
+ .lvl = 7,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 10,
+ .species = SPECIES_MAGIKARP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ned[] = {
+ {
+ .iv = 10,
+ .lvl = 11,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dale[] = {
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nolan[] = {
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_BARBOACH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Barny[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wade[] = {
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carter[] = {
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_TENTACRUEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot2[] = {
+ {
+ .iv = 10,
+ .lvl = 24,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 10,
+ .lvl = 27,
+ .species = SPECIES_GYARADOS,
+ },
+ {
+ .iv = 10,
+ .lvl = 27,
+ .species = SPECIES_GYARADOS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot3[] = {
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_GYARADOS,
+ },
+ {
+ .iv = 20,
+ .lvl = 26,
+ .species = SPECIES_CARVANHA,
+ },
+ {
+ .iv = 20,
+ .lvl = 26,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_GYARADOS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot4[] = {
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_GYARADOS,
+ },
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_CARVANHA,
+ },
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_TENTACRUEL,
+ },
+ {
+ .iv = 31,
+ .lvl = 31,
+ .species = SPECIES_GYARADOS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot5[] = {
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_GYARADOS,
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_SHARPEDO,
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_GYARADOS,
+ },
+ {
+ .iv = 40,
+ .lvl = 35,
+ .species = SPECIES_TENTACRUEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ronald[] = {
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_MAGIKARP,
+ },
+ {
+ .iv = 0,
+ .lvl = 21,
+ .species = SPECIES_GYARADOS,
+ },
+ {
+ .iv = 0,
+ .lvl = 23,
+ .species = SPECIES_GYARADOS,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_GYARADOS,
+ },
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_GYARADOS,
+ },
+ {
+ .iv = 0,
+ .lvl = 35,
+ .species = SPECIES_GYARADOS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacob[] = {
+ {
+ .iv = 20,
+ .lvl = 6,
+ .species = SPECIES_VOLTORB,
+ },
+ {
+ .iv = 20,
+ .lvl = 6,
+ .species = SPECIES_VOLTORB,
+ },
+ {
+ .iv = 200,
+ .lvl = 14,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Anthony[] = {
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_MAGNEMITE,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin1[] = {
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin2[] = {
+ {
+ .iv = 10,
+ .lvl = 30,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin3[] = {
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin4[] = {
+ {
+ .iv = 30,
+ .lvl = 36,
+ .species = SPECIES_MAGNETON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin5[] = {
+ {
+ .iv = 40,
+ .lvl = 39,
+ .species = SPECIES_MAGNETON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail1[] = {
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jasmine[] = {
+ {
+ .iv = 80,
+ .lvl = 14,
+ .species = SPECIES_MAGNEMITE,
+ },
+ {
+ .iv = 80,
+ .lvl = 14,
+ .species = SPECIES_MAGNEMITE,
+ },
+ {
+ .iv = 0,
+ .lvl = 6,
+ .species = SPECIES_VOLTORB,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail2[] = {
+ {
+ .iv = 10,
+ .lvl = 28,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail3[] = {
+ {
+ .iv = 20,
+ .lvl = 31,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail4[] = {
+ {
+ .iv = 30,
+ .lvl = 34,
+ .species = SPECIES_MAGNETON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail5[] = {
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_MAGNETON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan1[] = {
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_DODUO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan2[] = {
+ {
+ .iv = 10,
+ .lvl = 28,
+ .species = SPECIES_DODUO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan3[] = {
+ {
+ .iv = 20,
+ .lvl = 31,
+ .species = SPECIES_DODUO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan4[] = {
+ {
+ .iv = 30,
+ .lvl = 34,
+ .species = SPECIES_DODRIO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan5[] = {
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_DODRIO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria1[] = {
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_DODUO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria2[] = {
+ {
+ .iv = 10,
+ .lvl = 28,
+ .species = SPECIES_DODUO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria3[] = {
+ {
+ .iv = 20,
+ .lvl = 31,
+ .species = SPECIES_DODUO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria4[] = {
+ {
+ .iv = 30,
+ .lvl = 34,
+ .species = SPECIES_DODRIO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria5[] = {
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_DODRIO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Camden[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_STARYU,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Demetrius[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_ELECTRIKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah1[] = {
+ {
+ .iv = 0,
+ .lvl = 35,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo1[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_STARYU,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chase[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 80,
+ .lvl = 34,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah2[] = {
+ {
+ .iv = 10,
+ .lvl = 39,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah3[] = {
+ {
+ .iv = 20,
+ .lvl = 42,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah4[] = {
+ {
+ .iv = 30,
+ .lvl = 45,
+ .species = SPECIES_STARMIE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah5[] = {
+ {
+ .iv = 40,
+ .lvl = 48,
+ .species = SPECIES_STARMIE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isobel[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Donny[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 160,
+ .lvl = 34,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Talia[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn1[] = {
+ {
+ .iv = 0,
+ .lvl = 35,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Allison[] = {
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 240,
+ .lvl = 33,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn2[] = {
+ {
+ .iv = 10,
+ .lvl = 39,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn3[] = {
+ {
+ .iv = 20,
+ .lvl = 42,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn4[] = {
+ {
+ .iv = 30,
+ .lvl = 45,
+ .species = SPECIES_STARMIE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn5[] = {
+ {
+ .iv = 40,
+ .lvl = 48,
+ .species = SPECIES_STARMIE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas1[] = {
+ {
+ .iv = 100,
+ .lvl = 37,
+ .species = SPECIES_ALTARIA,
+ },
+ {
+ .iv = 100,
+ .lvl = 37,
+ .species = SPECIES_ALTARIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas2[] = {
+ {
+ .iv = 110,
+ .lvl = 41,
+ .species = SPECIES_ALTARIA,
+ },
+ {
+ .iv = 110,
+ .lvl = 41,
+ .species = SPECIES_ALTARIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas3[] = {
+ {
+ .iv = 120,
+ .lvl = 44,
+ .species = SPECIES_ALTARIA,
+ },
+ {
+ .iv = 120,
+ .lvl = 44,
+ .species = SPECIES_ALTARIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas4[] = {
+ {
+ .iv = 130,
+ .lvl = 46,
+ .species = SPECIES_BAGON,
+ },
+ {
+ .iv = 130,
+ .lvl = 46,
+ .species = SPECIES_ALTARIA,
+ },
+ {
+ .iv = 130,
+ .lvl = 46,
+ .species = SPECIES_ALTARIA,
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Nicolas5[] = {
+ {
+ .iv = 140,
+ .lvl = 49,
+ .species = SPECIES_ALTARIA,
+ .heldItem = ITEM_NONE
+ },
+ {
+ .iv = 140,
+ .lvl = 49,
+ .species = SPECIES_ALTARIA,
+ .heldItem = ITEM_NONE
+ },
+ {
+ .iv = 140,
+ .lvl = 49,
+ .species = SPECIES_SHELGON,
+ .heldItem = ITEM_DRAGON_FANG
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Aaron[] = {
+ {
+ .iv = 255,
+ .lvl = 34,
+ .species = SPECIES_BAGON,
+ .moves = MOVE_DRAGON_BREATH, MOVE_HEADBUTT, MOVE_FOCUS_ENERGY, MOVE_EMBER
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Perry[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_WINGULL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hugh[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_TROPIUS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Phil[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_SWELLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jared[] = {
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_DODUO,
+ },
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_SKARMORY,
+ },
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_TROPIUS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Humberto[] = {
+ {
+ .iv = 250,
+ .lvl = 30,
+ .species = SPECIES_SKARMORY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Presley[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_TROPIUS,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_XATU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwardo[] = {
+ {
+ .iv = 150,
+ .lvl = 29,
+ .species = SPECIES_DODUO,
+ },
+ {
+ .iv = 150,
+ .lvl = 29,
+ .species = SPECIES_PELIPPER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Colin[] = {
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_NATU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert1[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_SWABLU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benny[] = {
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_XATU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chester[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_TAILLOW,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_SWELLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert2[] = {
+ {
+ .iv = 10,
+ .lvl = 32,
+ .species = SPECIES_NATU,
+ },
+ {
+ .iv = 10,
+ .lvl = 32,
+ .species = SPECIES_SWABLU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert3[] = {
+ {
+ .iv = 20,
+ .lvl = 35,
+ .species = SPECIES_NATU,
+ },
+ {
+ .iv = 20,
+ .lvl = 35,
+ .species = SPECIES_ALTARIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert4[] = {
+ {
+ .iv = 30,
+ .lvl = 38,
+ .species = SPECIES_NATU,
+ },
+ {
+ .iv = 30,
+ .lvl = 38,
+ .species = SPECIES_ALTARIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert5[] = {
+ {
+ .iv = 40,
+ .lvl = 41,
+ .species = SPECIES_ALTARIA,
+ },
+ {
+ .iv = 40,
+ .lvl = 41,
+ .species = SPECIES_XATU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alex[] = {
+ {
+ .iv = 150,
+ .lvl = 33,
+ .species = SPECIES_NATU,
+ },
+ {
+ .iv = 150,
+ .lvl = 33,
+ .species = SPECIES_SWELLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beck[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_TROPIUS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Yasu[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_NINJASK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Takashi[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_NINJASK,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_KOFFING,
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Dianne[] = {
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_CLAYDOL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SKILL_SWAP, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE
+ },
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_LANTURN,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jani[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao1[] = {
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SMOG, MOVE_SELF_DESTRUCT
+ },
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SMOG, MOVE_SELF_DESTRUCT
+ },
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lung[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_KOFFING,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_NINJASK,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao2[] = {
+ {
+ .iv = 0,
+ .lvl = 24,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT
+ },
+ {
+ .iv = 0,
+ .lvl = 24,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE
+ },
+ {
+ .iv = 0,
+ .lvl = 24,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao3[] = {
+ {
+ .iv = 20,
+ .lvl = 27,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT
+ },
+ {
+ .iv = 20,
+ .lvl = 27,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT
+ },
+ {
+ .iv = 20,
+ .lvl = 27,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE
+ },
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao4[] = {
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE
+ },
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE
+ },
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE
+ },
+ {
+ .iv = 30,
+ .lvl = 32,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Lao5[] = {
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_KOFFING,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_KOFFING,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_KOFFING,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT
+ },
+ {
+ .iv = 40,
+ .lvl = 35,
+ .species = SPECIES_WEEZING,
+ .heldItem = ITEM_SMOKE_BALL,
+ .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jocelyn[] = {
+ {
+ .iv = 127,
+ .lvl = 13,
+ .species = SPECIES_MEDITITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Laura[] = {
+ {
+ .iv = 150,
+ .lvl = 13,
+ .species = SPECIES_MEDITITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy1[] = {
+ {
+ .iv = 100,
+ .lvl = 18,
+ .species = SPECIES_MEDITITE,
+ },
+ {
+ .iv = 100,
+ .lvl = 18,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cora[] = {
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_MEDITITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paula[] = {
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_BRELOOM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy2[] = {
+ {
+ .iv = 110,
+ .lvl = 26,
+ .species = SPECIES_MEDITITE,
+ },
+ {
+ .iv = 110,
+ .lvl = 26,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy3[] = {
+ {
+ .iv = 120,
+ .lvl = 29,
+ .species = SPECIES_MEDITITE,
+ },
+ {
+ .iv = 120,
+ .lvl = 29,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy4[] = {
+ {
+ .iv = 130,
+ .lvl = 32,
+ .species = SPECIES_MEDICHAM,
+ },
+ {
+ .iv = 130,
+ .lvl = 32,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy5[] = {
+ {
+ .iv = 140,
+ .lvl = 35,
+ .species = SPECIES_MEDICHAM,
+ },
+ {
+ .iv = 140,
+ .lvl = 35,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline1[] = {
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_NUMEL,
+ .moves = MOVE_EMBER, MOVE_TACKLE, MOVE_MAGNITUDE, MOVE_SUNNY_DAY
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clarissa[] = {
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_ROSELIA,
+ },
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Angelica[] = {
+ {
+ .iv = 50,
+ .lvl = 30,
+ .species = SPECIES_CASTFORM,
+ .moves = MOVE_RAIN_DANCE, MOVE_WEATHER_BALL, MOVE_THUNDER, MOVE_WATER_PULSE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline2[] = {
+ {
+ .iv = 10,
+ .lvl = 29,
+ .species = SPECIES_NUMEL,
+ .moves = MOVE_EMBER, MOVE_TACKLE, MOVE_MAGNITUDE, MOVE_SUNNY_DAY
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline3[] = {
+ {
+ .iv = 20,
+ .lvl = 32,
+ .species = SPECIES_NUMEL,
+ .moves = MOVE_EMBER, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline4[] = {
+ {
+ .iv = 30,
+ .lvl = 34,
+ .species = SPECIES_ROSELIA,
+ .moves = MOVE_LEECH_SEED, MOVE_MEGA_DRAIN, MOVE_GRASS_WHISTLE, MOVE_SUNNY_DAY
+ },
+ {
+ .iv = 30,
+ .lvl = 34,
+ .species = SPECIES_NUMEL,
+ .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline5[] = {
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_ROSELIA,
+ .moves = MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY
+ },
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_CAMERUPT,
+ .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_EARTHQUAKE, MOVE_SUNNY_DAY
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beverly[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Imani[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kyla[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Denise[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beth[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tara[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_HORSEA,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Missy[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alice[] = {
+ {
+ .iv = 0,
+ .lvl = 24,
+ .species = SPECIES_GOLDEEN,
+ },
+ {
+ .iv = 0,
+ .lvl = 24,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 24,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny1[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grace[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tanya[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_LUVDISC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sharon[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_SEAKING,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nikki[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_SPHEAL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brenda[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katie[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_GOLDEEN,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_SPHEAL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Susie[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_LUVDISC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kara[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_SEAKING,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dana[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_AZUMARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sienna[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_LUVDISC,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_LUVDISC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Debra[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_SEAKING,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Linda[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_HORSEA,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_SEADRA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kaylee[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_LANTURN,
+ },
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_PELIPPER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Laurel[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_LUVDISC,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_LUVDISC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carlee[] = {
+ {
+ .iv = 0,
+ .lvl = 35,
+ .species = SPECIES_SEAKING,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny2[] = {
+ {
+ .iv = 0,
+ .lvl = 38,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny3[] = {
+ {
+ .iv = 0,
+ .lvl = 41,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny4[] = {
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_STARYU,
+ },
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny5[] = {
+ {
+ .iv = 0,
+ .lvl = 45,
+ .species = SPECIES_LUVDISC,
+ },
+ {
+ .iv = 0,
+ .lvl = 45,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 0,
+ .lvl = 45,
+ .species = SPECIES_STARMIE,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Heidi[] = {
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_SANDSHREW,
+ .moves = MOVE_DIG, MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH
+ },
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_BALTOY,
+ .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Becky[] = {
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_SANDSHREW,
+ .moves = MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH, MOVE_DIG
+ },
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_MARILL,
+ .moves = MOVE_ROLLOUT, MOVE_BUBBLE_BEAM, MOVE_TAIL_WHIP, MOVE_DEFENSE_CURL
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carol[] = {
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_TAILLOW,
+ },
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_LOMBRE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nancy[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_LOMBRE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Martha[] = {
+ {
+ .iv = 0,
+ .lvl = 23,
+ .species = SPECIES_SKITTY,
+ },
+ {
+ .iv = 0,
+ .lvl = 23,
+ .species = SPECIES_SWABLU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana1[] = {
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_ODDISH,
+ },
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_SWABLU,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Cedric[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_WOBBUFFET,
+ .moves = MOVE_DESTINY_BOND, MOVE_SAFEGUARD, MOVE_COUNTER, MOVE_MIRROR_COAT
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Irene[] = {
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana2[] = {
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_GLOOM,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_SWABLU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana3[] = {
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_BRELOOM,
+ },
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_GLOOM,
+ },
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_SWABLU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana4[] = {
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_BRELOOM,
+ },
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_GLOOM,
+ },
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_SWABLU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana5[] = {
+ {
+ .iv = 40,
+ .lvl = 40,
+ .species = SPECIES_BRELOOM,
+ },
+ {
+ .iv = 40,
+ .lvl = 40,
+ .species = SPECIES_VILEPLUME,
+ },
+ {
+ .iv = 40,
+ .lvl = 40,
+ .species = SPECIES_ALTARIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv1[] = {
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_PLUSLE,
+ },
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_MINUN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv2[] = {
+ {
+ .iv = 10,
+ .lvl = 27,
+ .species = SPECIES_PLUSLE,
+ },
+ {
+ .iv = 10,
+ .lvl = 27,
+ .species = SPECIES_MINUN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_GinaAndMia1[] = {
+ {
+ .iv = 0,
+ .lvl = 6,
+ .species = SPECIES_SEEDOT,
+ },
+ {
+ .iv = 0,
+ .lvl = 6,
+ .species = SPECIES_LOTAD,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_MiuAndYuki[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_BEAUTIFLY,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_DUSTOX,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv3[] = {
+ {
+ .iv = 0,
+ .lvl = 9,
+ .species = SPECIES_PLUSLE,
+ },
+ {
+ .iv = 0,
+ .lvl = 9,
+ .species = SPECIES_MINUN,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_GinaAndMia2[] = {
+ {
+ .iv = 0,
+ .lvl = 10,
+ .species = SPECIES_DUSKULL,
+ .moves = MOVE_NIGHT_SHADE, MOVE_DISABLE, MOVE_NONE, MOVE_NONE
+ },
+ {
+ .iv = 0,
+ .lvl = 10,
+ .species = SPECIES_SHROOMISH,
+ .moves = MOVE_ABSORB, MOVE_LEECH_SEED, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv4[] = {
+ {
+ .iv = 20,
+ .lvl = 30,
+ .species = SPECIES_PLUSLE,
+ },
+ {
+ .iv = 20,
+ .lvl = 30,
+ .species = SPECIES_MINUN,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_AmyAndLiv5[] = {
+ {
+ .iv = 30,
+ .lvl = 33,
+ .species = SPECIES_PLUSLE,
+ .moves = MOVE_SPARK, MOVE_CHARGE, MOVE_FAKE_TEARS, MOVE_HELPING_HAND
+ },
+ {
+ .iv = 30,
+ .lvl = 33,
+ .species = SPECIES_MINUN,
+ .moves = MOVE_SPARK, MOVE_CHARGE, MOVE_CHARM, MOVE_HELPING_HAND
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_AmyAndLiv6[] = {
+ {
+ .iv = 40,
+ .lvl = 36,
+ .species = SPECIES_PLUSLE,
+ .moves = MOVE_THUNDER, MOVE_CHARGE, MOVE_FAKE_TEARS, MOVE_HELPING_HAND
+ },
+ {
+ .iv = 40,
+ .lvl = 36,
+ .species = SPECIES_MINUN,
+ .moves = MOVE_THUNDER, MOVE_CHARGE, MOVE_CHARM, MOVE_HELPING_HAND
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Huey[] = {
+ {
+ .iv = 10,
+ .lvl = 12,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 10,
+ .lvl = 12,
+ .species = SPECIES_MACHOP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edmond[] = {
+ {
+ .iv = 0,
+ .lvl = 13,
+ .species = SPECIES_WINGULL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest1[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dwayne[] = {
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Phillip[] = {
+ {
+ .iv = 0,
+ .lvl = 44,
+ .species = SPECIES_TENTACRUEL,
+ },
+ {
+ .iv = 0,
+ .lvl = 44,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leonard[] = {
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Duncan[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_SPHEAL,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest2[] = {
+ {
+ .iv = 10,
+ .lvl = 36,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 10,
+ .lvl = 36,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 10,
+ .lvl = 36,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest3[] = {
+ {
+ .iv = 20,
+ .lvl = 39,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 20,
+ .lvl = 39,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 20,
+ .lvl = 39,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest4[] = {
+ {
+ .iv = 30,
+ .lvl = 42,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 30,
+ .lvl = 42,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 30,
+ .lvl = 42,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest5[] = {
+ {
+ .iv = 40,
+ .lvl = 45,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 40,
+ .lvl = 45,
+ .species = SPECIES_MACHOKE,
+ },
+ {
+ .iv = 40,
+ .lvl = 45,
+ .species = SPECIES_TENTACRUEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eli[] = {
+ {
+ .iv = 100,
+ .lvl = 23,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Annika[] = {
+ {
+ .iv = 100,
+ .lvl = 39,
+ .species = SPECIES_FEEBAS,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = MOVE_FLAIL, MOVE_WATER_PULSE, MOVE_RETURN, MOVE_ATTRACT
+ },
+ {
+ .iv = 100,
+ .lvl = 39,
+ .species = SPECIES_FEEBAS,
+ .heldItem = ITEM_ORAN_BERRY,
+ .moves = MOVE_FLAIL, MOVE_WATER_PULSE, MOVE_RETURN, MOVE_ATTRACT
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jazmyn[] = {
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_ABSOL,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Jonas[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_TOXIC, MOVE_THUNDER, MOVE_SELF_DESTRUCT, MOVE_SLUDGE_BOMB
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Kayley[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_CASTFORM,
+ .moves = MOVE_SUNNY_DAY, MOVE_WEATHER_BALL, MOVE_FLAMETHROWER, MOVE_SOLAR_BEAM
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Auron[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_MACHAMP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kelvin[] = {
+ {
+ .iv = 150,
+ .lvl = 33,
+ .species = SPECIES_MACHOKE,
+ },
+ {
+ .iv = 150,
+ .lvl = 33,
+ .species = SPECIES_SPHEAL,
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Marley[] = {
+ {
+ .iv = 255,
+ .lvl = 34,
+ .species = SPECIES_MANECTRIC,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_BITE, MOVE_ROAR, MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Reyna[] = {
+ {
+ .iv = 50,
+ .lvl = 33,
+ .species = SPECIES_MEDITITE,
+ },
+ {
+ .iv = 200,
+ .lvl = 33,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hudson[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Conor[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_CHINCHOU,
+ },
+ {
+ .iv = 200,
+ .lvl = 33,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin1[] = {
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_NUZLEAF,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hector[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_ZANGOOSE,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_SEVIPER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha1[] = {
+ {
+ .iv = 100,
+ .lvl = 36,
+ .species = SPECIES_CAMERUPT,
+ },
+ {
+ .iv = 100,
+ .lvl = 38,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 100,
+ .lvl = 40,
+ .species = SPECIES_GOLBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin2[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_NUZLEAF,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin3[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_NUZLEAF,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin4[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_NUZLEAF,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin5[] = {
+ {
+ .iv = 0,
+ .lvl = 35,
+ .species = SPECIES_LUDICOLO,
+ },
+ {
+ .iv = 0,
+ .lvl = 35,
+ .species = SPECIES_SHIFTRY,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally1[] = {
+ {
+ .iv = 150,
+ .lvl = 44,
+ .species = SPECIES_ALTARIA,
+ .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE
+ },
+ {
+ .iv = 150,
+ .lvl = 43,
+ .species = SPECIES_DELCATTY,
+ .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 150,
+ .lvl = 44,
+ .species = SPECIES_ROSELIA,
+ .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC
+ },
+ {
+ .iv = 150,
+ .lvl = 41,
+ .species = SPECIES_MAGNETON,
+ .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH
+ },
+ {
+ .iv = 250,
+ .lvl = 45,
+ .species = SPECIES_GARDEVOIR,
+ .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan1[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_TREECKO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan2[] = {
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 100,
+ .lvl = 20,
+ .species = SPECIES_GROVYLE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan3[] = {
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_GROVYLE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan4[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_TORCHIC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan5[] = {
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 100,
+ .lvl = 20,
+ .species = SPECIES_COMBUSKEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan6[] = {
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_COMBUSKEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan7[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_MUDKIP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan8[] = {
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 100,
+ .lvl = 20,
+ .species = SPECIES_MARSHTOMP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan9[] = {
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_MARSHTOMP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May1[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_TREECKO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May2[] = {
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 100,
+ .lvl = 20,
+ .species = SPECIES_GROVYLE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May3[] = {
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_GROVYLE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May4[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_TORCHIC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May5[] = {
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 100,
+ .lvl = 20,
+ .species = SPECIES_COMBUSKEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May6[] = {
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_COMBUSKEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May7[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_MUDKIP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May8[] = {
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 100,
+ .lvl = 20,
+ .species = SPECIES_MARSHTOMP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May9[] = {
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_MARSHTOMP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac1[] = {
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_WHISMUR,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_ARON,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_POOCHYENA,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_TAILLOW,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Davis[] = {
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_PINSIR,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Mitchell[] = {
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_LUNATONE,
+ .moves = MOVE_EXPLOSION, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_PSYCHIC
+ },
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_SOLROCK,
+ .moves = MOVE_EXPLOSION, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_SHADOW_BALL
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac2[] = {
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_LOUDRED,
+ },
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_LINOONE,
+ },
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_ARON,
+ },
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac3[] = {
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_LOUDRED,
+ },
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_LINOONE,
+ },
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_ARON,
+ },
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac4[] = {
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_LOUDRED,
+ },
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_LINOONE,
+ },
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_ARON,
+ },
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac5[] = {
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_LOUDRED,
+ },
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_LINOONE,
+ },
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_LAIRON,
+ },
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_HARIYAMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia1[] = {
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_ROSELIA,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_SKITTY,
+ },
+ {
+ .iv = 0,
+ .lvl = 11,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Halle[] = {
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_SABLEYE,
+ },
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_ABSOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Garrison[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_SANDSLASH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia2[] = {
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_ROSELIA,
+ },
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_SKITTY,
+ },
+ {
+ .iv = 10,
+ .lvl = 22,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia3[] = {
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_BRELOOM,
+ },
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_ROSELIA,
+ },
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_DELCATTY,
+ },
+ {
+ .iv = 20,
+ .lvl = 25,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia4[] = {
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_BRELOOM,
+ },
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_ROSELIA,
+ },
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_DELCATTY,
+ },
+ {
+ .iv = 30,
+ .lvl = 28,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia5[] = {
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_BRELOOM,
+ },
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_AZUMARILL,
+ },
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_ROSELIA,
+ },
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_DELCATTY,
+ },
+ {
+ .iv = 40,
+ .lvl = 31,
+ .species = SPECIES_SEAKING,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson1[] = {
+ {
+ .iv = 50,
+ .lvl = 27,
+ .species = SPECIES_BRELOOM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lorenzo[] = {
+ {
+ .iv = 50,
+ .lvl = 28,
+ .species = SPECIES_SEEDOT,
+ },
+ {
+ .iv = 50,
+ .lvl = 28,
+ .species = SPECIES_NUZLEAF,
+ },
+ {
+ .iv = 50,
+ .lvl = 28,
+ .species = SPECIES_LOMBRE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sebastian[] = {
+ {
+ .iv = 50,
+ .lvl = 39,
+ .species = SPECIES_CACTURNE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson2[] = {
+ {
+ .iv = 60,
+ .lvl = 31,
+ .species = SPECIES_BRELOOM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson3[] = {
+ {
+ .iv = 70,
+ .lvl = 34,
+ .species = SPECIES_BRELOOM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson4[] = {
+ {
+ .iv = 80,
+ .lvl = 37,
+ .species = SPECIES_BRELOOM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson5[] = {
+ {
+ .iv = 90,
+ .lvl = 39,
+ .species = SPECIES_KECLEON,
+ },
+ {
+ .iv = 90,
+ .lvl = 39,
+ .species = SPECIES_BRELOOM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine1[] = {
+ {
+ .iv = 50,
+ .lvl = 26,
+ .species = SPECIES_GLOOM,
+ },
+ {
+ .iv = 50,
+ .lvl = 26,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenna[] = {
+ {
+ .iv = 50,
+ .lvl = 28,
+ .species = SPECIES_LOTAD,
+ },
+ {
+ .iv = 50,
+ .lvl = 28,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 50,
+ .lvl = 28,
+ .species = SPECIES_NUZLEAF,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sophia[] = {
+ {
+ .iv = 50,
+ .lvl = 38,
+ .species = SPECIES_SWABLU,
+ },
+ {
+ .iv = 50,
+ .lvl = 38,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine2[] = {
+ {
+ .iv = 60,
+ .lvl = 30,
+ .species = SPECIES_GLOOM,
+ },
+ {
+ .iv = 60,
+ .lvl = 30,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine3[] = {
+ {
+ .iv = 70,
+ .lvl = 33,
+ .species = SPECIES_GLOOM,
+ },
+ {
+ .iv = 70,
+ .lvl = 33,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine4[] = {
+ {
+ .iv = 80,
+ .lvl = 36,
+ .species = SPECIES_GLOOM,
+ },
+ {
+ .iv = 80,
+ .lvl = 36,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine5[] = {
+ {
+ .iv = 90,
+ .lvl = 39,
+ .species = SPECIES_BELLOSSOM,
+ },
+ {
+ .iv = 90,
+ .lvl = 39,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Julio[] = {
+ {
+ .iv = 0,
+ .lvl = 21,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt27[] = {
+ {
+ .iv = 50,
+ .lvl = 35,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 50,
+ .lvl = 35,
+ .species = SPECIES_GOLBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt28[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt29[] = {
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt30[] = {
+ {
+ .iv = 50,
+ .lvl = 22,
+ .species = SPECIES_POOCHYENA,
+ },
+ {
+ .iv = 50,
+ .lvl = 22,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marc[] = {
+ {
+ .iv = 120,
+ .lvl = 8,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 130,
+ .lvl = 8,
+ .species = SPECIES_GEODUDE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brenden[] = {
+ {
+ .iv = 100,
+ .lvl = 13,
+ .species = SPECIES_MACHOP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lilith[] = {
+ {
+ .iv = 150,
+ .lvl = 13,
+ .species = SPECIES_MEDITITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristian[] = {
+ {
+ .iv = 200,
+ .lvl = 13,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sylvia[] = {
+ {
+ .iv = 100,
+ .lvl = 36,
+ .species = SPECIES_MEDITITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leonardo[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Athena[] = {
+ {
+ .iv = 100,
+ .lvl = 32,
+ .species = SPECIES_MANECTRIC,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK, MOVE_NONE
+ },
+ {
+ .iv = 100,
+ .lvl = 32,
+ .species = SPECIES_LINOONE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SURF, MOVE_THIEF, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Harrison[] = {
+ {
+ .iv = 0,
+ .lvl = 35,
+ .species = SPECIES_TENTACRUEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt31[] = {
+ {
+ .iv = 0,
+ .lvl = 20,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clarence[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Terry[] = {
+ {
+ .iv = 0,
+ .lvl = 37,
+ .species = SPECIES_GIRAFARIG,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nate[] = {
+ {
+ .iv = 100,
+ .lvl = 36,
+ .species = SPECIES_SPOINK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kathleen[] = {
+ {
+ .iv = 100,
+ .lvl = 36,
+ .species = SPECIES_KADABRA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clifford[] = {
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_GIRAFARIG,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicholas[] = {
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_WOBBUFFET,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt32[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_ZUBAT,
+ },
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_POOCHYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt33[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_BALTOY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt34[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt35[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_MIGHTYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt36[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_BALTOY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Macey[] = {
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_NATU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan10[] = {
+ {
+ .iv = 25,
+ .lvl = 13,
+ .species = SPECIES_LOTAD,
+ },
+ {
+ .iv = 50,
+ .lvl = 15,
+ .species = SPECIES_TORCHIC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan11[] = {
+ {
+ .iv = 25,
+ .lvl = 13,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 50,
+ .lvl = 15,
+ .species = SPECIES_TREECKO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paxton[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_BRELOOM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isabella[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt37[] = {
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_ZUBAT,
+ },
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_POOCHYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha2[] = {
+ {
+ .iv = 50,
+ .lvl = 18,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 50,
+ .lvl = 20,
+ .species = SPECIES_POOCHYENA,
+ },
+ {
+ .iv = 50,
+ .lvl = 22,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 50,
+ .lvl = 22,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jonathan[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_KECLEON,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_LOUDRED,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan12[] = {
+ {
+ .iv = 25,
+ .lvl = 13,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 50,
+ .lvl = 15,
+ .species = SPECIES_MUDKIP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May10[] = {
+ {
+ .iv = 25,
+ .lvl = 13,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 50,
+ .lvl = 15,
+ .species = SPECIES_TREECKO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie1[] = {
+ {
+ .iv = 150,
+ .lvl = 37,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 150,
+ .lvl = 38,
+ .species = SPECIES_CROBAT,
+ },
+ {
+ .iv = 150,
+ .lvl = 39,
+ .species = SPECIES_CAMERUPT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie2[] = {
+ {
+ .iv = 150,
+ .lvl = 24,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 150,
+ .lvl = 24,
+ .species = SPECIES_ZUBAT,
+ },
+ {
+ .iv = 150,
+ .lvl = 25,
+ .species = SPECIES_CAMERUPT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tiana[] = {
+ {
+ .iv = 0,
+ .lvl = 4,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 0,
+ .lvl = 4,
+ .species = SPECIES_SHROOMISH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley1[] = {
+ {
+ .iv = 0,
+ .lvl = 6,
+ .species = SPECIES_LOTAD,
+ },
+ {
+ .iv = 0,
+ .lvl = 6,
+ .species = SPECIES_SHROOMISH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Janice[] = {
+ {
+ .iv = 0,
+ .lvl = 9,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vivi[] = {
+ {
+ .iv = 100,
+ .lvl = 15,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 100,
+ .lvl = 15,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 100,
+ .lvl = 15,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley2[] = {
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_SHROOMISH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley3[] = {
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_BRELOOM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley4[] = {
+ {
+ .iv = 30,
+ .lvl = 32,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 30,
+ .lvl = 32,
+ .species = SPECIES_BRELOOM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley5[] = {
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 40,
+ .lvl = 34,
+ .species = SPECIES_BRELOOM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sally[] = {
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_ODDISH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robin[] = {
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_SKITTY,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andrea[] = {
+ {
+ .iv = 100,
+ .lvl = 40,
+ .species = SPECIES_LUVDISC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Crissy[] = {
+ {
+ .iv = 100,
+ .lvl = 39,
+ .species = SPECIES_GOLDEEN,
+ },
+ {
+ .iv = 100,
+ .lvl = 39,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rick[] = {
+ {
+ .iv = 0,
+ .lvl = 4,
+ .species = SPECIES_WURMPLE,
+ },
+ {
+ .iv = 0,
+ .lvl = 4,
+ .species = SPECIES_WURMPLE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lyle[] = {
+ {
+ .iv = 0,
+ .lvl = 3,
+ .species = SPECIES_WURMPLE,
+ },
+ {
+ .iv = 0,
+ .lvl = 3,
+ .species = SPECIES_WURMPLE,
+ },
+ {
+ .iv = 0,
+ .lvl = 3,
+ .species = SPECIES_WURMPLE,
+ },
+ {
+ .iv = 0,
+ .lvl = 3,
+ .species = SPECIES_WURMPLE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jose[] = {
+ {
+ .iv = 50,
+ .lvl = 8,
+ .species = SPECIES_WURMPLE,
+ },
+ {
+ .iv = 50,
+ .lvl = 8,
+ .species = SPECIES_NINCADA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Doug[] = {
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_NINCADA,
+ },
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_NINJASK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Greg[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_VOLBEAT,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_ILLUMISE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kent[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_NINJASK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_James1[] = {
+ {
+ .iv = 0,
+ .lvl = 6,
+ .species = SPECIES_NINCADA,
+ },
+ {
+ .iv = 0,
+ .lvl = 6,
+ .species = SPECIES_NINCADA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_James2[] = {
+ {
+ .iv = 10,
+ .lvl = 27,
+ .species = SPECIES_NINJASK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_James3[] = {
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_DUSTOX,
+ },
+ {
+ .iv = 20,
+ .lvl = 29,
+ .species = SPECIES_NINJASK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_James4[] = {
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_SURSKIT,
+ },
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_DUSTOX,
+ },
+ {
+ .iv = 30,
+ .lvl = 31,
+ .species = SPECIES_NINJASK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_James5[] = {
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_SURSKIT,
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_NINJASK,
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_DUSTOX,
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_NINJASK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brice[] = {
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_MACHOP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent1[] = {
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_GEODUDE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lenny[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_MACHOP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lucas1[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alan[] = {
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_NOSEPASS,
+ },
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_GRAVELER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clark[] = {
+ {
+ .iv = 0,
+ .lvl = 8,
+ .species = SPECIES_GEODUDE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eric[] = {
+ {
+ .iv = 0,
+ .lvl = 20,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 0,
+ .lvl = 20,
+ .species = SPECIES_BALTOY,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Lucas2[] = {
+ {
+ .iv = 0,
+ .lvl = 9,
+ .species = SPECIES_WAILMER,
+ .moves = MOVE_SPLASH, MOVE_WATER_GUN, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Mike1[] = {
+ {
+ .iv = 0,
+ .lvl = 10,
+ .species = SPECIES_PELIPPER,
+ .moves = MOVE_GUST, MOVE_GROWL, MOVE_NONE, MOVE_NONE
+ },
+ {
+ .iv = 0,
+ .lvl = 10,
+ .species = SPECIES_POOCHYENA,
+ .moves = MOVE_BITE, MOVE_SCARY_FACE, MOVE_NONE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mike2[] = {
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 0,
+ .lvl = 16,
+ .species = SPECIES_MACHOP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent2[] = {
+ {
+ .iv = 10,
+ .lvl = 24,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 10,
+ .lvl = 24,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 10,
+ .lvl = 24,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 10,
+ .lvl = 24,
+ .species = SPECIES_GRAVELER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent3[] = {
+ {
+ .iv = 20,
+ .lvl = 27,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 20,
+ .lvl = 27,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 20,
+ .lvl = 27,
+ .species = SPECIES_GRAVELER,
+ },
+ {
+ .iv = 20,
+ .lvl = 27,
+ .species = SPECIES_GRAVELER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent4[] = {
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_GRAVELER,
+ },
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_GRAVELER,
+ },
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_GRAVELER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent5[] = {
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_GRAVELER,
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_GRAVELER,
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_GRAVELER,
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_GOLEM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_DezAndLuke[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_DELCATTY,
+ },
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_MANECTRIC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_LeaAndJed[] = {
+ {
+ .iv = 0,
+ .lvl = 45,
+ .species = SPECIES_LUVDISC,
+ },
+ {
+ .iv = 0,
+ .lvl = 45,
+ .species = SPECIES_LUVDISC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan1[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_VOLBEAT,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_ILLUMISE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan2[] = {
+ {
+ .iv = 10,
+ .lvl = 30,
+ .species = SPECIES_VOLBEAT,
+ },
+ {
+ .iv = 10,
+ .lvl = 30,
+ .species = SPECIES_ILLUMISE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan3[] = {
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_VOLBEAT,
+ },
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_ILLUMISE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan4[] = {
+ {
+ .iv = 30,
+ .lvl = 36,
+ .species = SPECIES_VOLBEAT,
+ },
+ {
+ .iv = 30,
+ .lvl = 36,
+ .species = SPECIES_ILLUMISE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan5[] = {
+ {
+ .iv = 40,
+ .lvl = 39,
+ .species = SPECIES_VOLBEAT,
+ },
+ {
+ .iv = 40,
+ .lvl = 39,
+ .species = SPECIES_ILLUMISE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Johanna[] = {
+ {
+ .iv = 0,
+ .lvl = 13,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Gerald[] = {
+ {
+ .iv = 100,
+ .lvl = 23,
+ .species = SPECIES_KECLEON,
+ .moves = MOVE_FLAMETHROWER, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK, MOVE_BIND
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Vivian[] = {
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_MEDITITE,
+ .moves = MOVE_BIDE, MOVE_DETECT, MOVE_CONFUSION, MOVE_THUNDER_PUNCH
+ },
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_MEDITITE,
+ .moves = MOVE_THUNDER_PUNCH, MOVE_DETECT, MOVE_CONFUSION, MOVE_MEDITATE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Danielle[] = {
+ {
+ .iv = 100,
+ .lvl = 23,
+ .species = SPECIES_MEDITITE,
+ .moves = MOVE_BIDE, MOVE_DETECT, MOVE_CONFUSION, MOVE_FIRE_PUNCH
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Hideo[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_TACKLE, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_TACKLE, MOVE_POISON_GAS, MOVE_SLUDGE, MOVE_SMOKESCREEN
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Keigo[] = {
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_POISON_GAS, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN
+ },
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_NINJASK,
+ .moves = MOVE_SAND_ATTACK, MOVE_DOUBLE_TEAM, MOVE_FURY_CUTTER, MOVE_SWORDS_DANCE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Riley[] = {
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_NINCADA,
+ .moves = MOVE_LEECH_LIFE, MOVE_FURY_SWIPES, MOVE_MIND_READER, MOVE_DIG
+ },
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_KOFFING,
+ .moves = MOVE_TACKLE, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Flint[] = {
+ {
+ .iv = 150,
+ .lvl = 29,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 150,
+ .lvl = 29,
+ .species = SPECIES_XATU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ashley[] = {
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_SWABLU,
+ },
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_SWABLU,
+ },
+ {
+ .iv = 100,
+ .lvl = 27,
+ .species = SPECIES_SWABLU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wally2[] = {
+ {
+ .iv = 30,
+ .lvl = 16,
+ .species = SPECIES_RALTS,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally3[] = {
+ {
+ .iv = 150,
+ .lvl = 47,
+ .species = SPECIES_ALTARIA,
+ .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE
+ },
+ {
+ .iv = 150,
+ .lvl = 46,
+ .species = SPECIES_DELCATTY,
+ .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 150,
+ .lvl = 47,
+ .species = SPECIES_ROSELIA,
+ .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC
+ },
+ {
+ .iv = 150,
+ .lvl = 44,
+ .species = SPECIES_MAGNETON,
+ .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH
+ },
+ {
+ .iv = 250,
+ .lvl = 48,
+ .species = SPECIES_GARDEVOIR,
+ .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally4[] = {
+ {
+ .iv = 150,
+ .lvl = 50,
+ .species = SPECIES_ALTARIA,
+ .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE
+ },
+ {
+ .iv = 150,
+ .lvl = 49,
+ .species = SPECIES_DELCATTY,
+ .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 150,
+ .lvl = 50,
+ .species = SPECIES_ROSELIA,
+ .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC
+ },
+ {
+ .iv = 150,
+ .lvl = 47,
+ .species = SPECIES_MAGNETON,
+ .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH
+ },
+ {
+ .iv = 250,
+ .lvl = 51,
+ .species = SPECIES_GARDEVOIR,
+ .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally5[] = {
+ {
+ .iv = 150,
+ .lvl = 53,
+ .species = SPECIES_ALTARIA,
+ .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE
+ },
+ {
+ .iv = 150,
+ .lvl = 52,
+ .species = SPECIES_DELCATTY,
+ .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 150,
+ .lvl = 53,
+ .species = SPECIES_ROSELIA,
+ .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC
+ },
+ {
+ .iv = 150,
+ .lvl = 50,
+ .species = SPECIES_MAGNETON,
+ .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH
+ },
+ {
+ .iv = 250,
+ .lvl = 54,
+ .species = SPECIES_GARDEVOIR,
+ .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally6[] = {
+ {
+ .iv = 150,
+ .lvl = 56,
+ .species = SPECIES_ALTARIA,
+ .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE
+ },
+ {
+ .iv = 150,
+ .lvl = 55,
+ .species = SPECIES_DELCATTY,
+ .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK
+ },
+ {
+ .iv = 150,
+ .lvl = 56,
+ .species = SPECIES_ROSELIA,
+ .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC
+ },
+ {
+ .iv = 150,
+ .lvl = 53,
+ .species = SPECIES_MAGNETON,
+ .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH
+ },
+ {
+ .iv = 250,
+ .lvl = 57,
+ .species = SPECIES_GARDEVOIR,
+ .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan13[] = {
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_TROPIUS,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 200,
+ .lvl = 34,
+ .species = SPECIES_GROVYLE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan14[] = {
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_TROPIUS,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_LUDICOLO,
+ },
+ {
+ .iv = 200,
+ .lvl = 34,
+ .species = SPECIES_COMBUSKEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan15[] = {
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_TROPIUS,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_LUDICOLO,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 200,
+ .lvl = 34,
+ .species = SPECIES_MARSHTOMP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May11[] = {
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_TROPIUS,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 200,
+ .lvl = 34,
+ .species = SPECIES_GROVYLE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May12[] = {
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_TROPIUS,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_LUDICOLO,
+ },
+ {
+ .iv = 200,
+ .lvl = 34,
+ .species = SPECIES_COMBUSKEN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May13[] = {
+ {
+ .iv = 150,
+ .lvl = 31,
+ .species = SPECIES_TROPIUS,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_LUDICOLO,
+ },
+ {
+ .iv = 150,
+ .lvl = 32,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 200,
+ .lvl = 34,
+ .species = SPECIES_MARSHTOMP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jonah[] = {
+ {
+ .iv = 0,
+ .lvl = 30,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Henry[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_CARVANHA,
+ },
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_TENTACRUEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Roger[] = {
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_MAGIKARP,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_MAGIKARP,
+ },
+ {
+ .iv = 0,
+ .lvl = 35,
+ .species = SPECIES_GYARADOS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alexa[] = {
+ {
+ .iv = 100,
+ .lvl = 34,
+ .species = SPECIES_GLOOM,
+ },
+ {
+ .iv = 100,
+ .lvl = 34,
+ .species = SPECIES_AZUMARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ruben[] = {
+ {
+ .iv = 100,
+ .lvl = 34,
+ .species = SPECIES_SHIFTRY,
+ },
+ {
+ .iv = 100,
+ .lvl = 34,
+ .species = SPECIES_NOSEPASS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji1[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wayne[] = {
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 31,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 36,
+ .species = SPECIES_WAILMER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Aidan[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_SKARMORY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Reed[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_SPHEAL,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tisha[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_CHINCHOU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_ToriAndTia[] = {
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_SPINDA,
+ },
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_SPINDA,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_KimAndIris[] = {
+ {
+ .iv = 0,
+ .lvl = 32,
+ .species = SPECIES_SWABLU,
+ .moves = MOVE_SING, MOVE_FURY_ATTACK, MOVE_SAFEGUARD, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 0,
+ .lvl = 35,
+ .species = SPECIES_NUMEL,
+ .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_REST, MOVE_EARTHQUAKE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_TyraAndIvy[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_ROSELIA,
+ .moves = MOVE_GROWTH, MOVE_STUN_SPORE, MOVE_MEGA_DRAIN, MOVE_LEECH_SEED
+ },
+ {
+ .iv = 0,
+ .lvl = 20,
+ .species = SPECIES_GRAVELER,
+ .moves = MOVE_DEFENSE_CURL, MOVE_ROLLOUT, MOVE_MUD_SPORT, MOVE_ROCK_THROW
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_MelAndPaul[] = {
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_DUSTOX,
+ .moves = MOVE_GUST, MOVE_PSYBEAM, MOVE_TOXIC, MOVE_PROTECT
+ },
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_BEAUTIFLY,
+ .moves = MOVE_GUST, MOVE_MEGA_DRAIN, MOVE_ATTRACT, MOVE_STUN_SPORE
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay1[] = {
+ {
+ .iv = 200,
+ .lvl = 39,
+ .species = SPECIES_MEDICHAM,
+ .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT
+ },
+ {
+ .iv = 200,
+ .lvl = 39,
+ .species = SPECIES_HARIYAMA,
+ .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay2[] = {
+ {
+ .iv = 210,
+ .lvl = 43,
+ .species = SPECIES_MEDICHAM,
+ .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT
+ },
+ {
+ .iv = 210,
+ .lvl = 43,
+ .species = SPECIES_HARIYAMA,
+ .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay3[] = {
+ {
+ .iv = 220,
+ .lvl = 46,
+ .species = SPECIES_MEDICHAM,
+ .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT
+ },
+ {
+ .iv = 220,
+ .lvl = 46,
+ .species = SPECIES_HARIYAMA,
+ .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay4[] = {
+ {
+ .iv = 230,
+ .lvl = 49,
+ .species = SPECIES_MEDICHAM,
+ .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT
+ },
+ {
+ .iv = 230,
+ .lvl = 49,
+ .species = SPECIES_HARIYAMA,
+ .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay5[] = {
+ {
+ .iv = 240,
+ .lvl = 52,
+ .species = SPECIES_MEDICHAM,
+ .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT
+ },
+ {
+ .iv = 240,
+ .lvl = 52,
+ .species = SPECIES_HARIYAMA,
+ .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_ReliAndIan[] = {
+ {
+ .iv = 0,
+ .lvl = 35,
+ .species = SPECIES_AZUMARILL,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_WINGULL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy1[] = {
+ {
+ .iv = 0,
+ .lvl = 34,
+ .species = SPECIES_CHINCHOU,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy2[] = {
+ {
+ .iv = 0,
+ .lvl = 42,
+ .species = SPECIES_CHINCHOU,
+ },
+ {
+ .iv = 0,
+ .lvl = 40,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy3[] = {
+ {
+ .iv = 0,
+ .lvl = 45,
+ .species = SPECIES_LANTURN,
+ },
+ {
+ .iv = 0,
+ .lvl = 43,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy4[] = {
+ {
+ .iv = 0,
+ .lvl = 48,
+ .species = SPECIES_LANTURN,
+ },
+ {
+ .iv = 0,
+ .lvl = 46,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy5[] = {
+ {
+ .iv = 0,
+ .lvl = 51,
+ .species = SPECIES_LANTURN,
+ },
+ {
+ .iv = 0,
+ .lvl = 49,
+ .species = SPECIES_SHARPEDO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_LisaAndRay[] = {
+ {
+ .iv = 0,
+ .lvl = 27,
+ .species = SPECIES_GOLDEEN,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chris[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_MAGIKARP,
+ },
+ {
+ .iv = 0,
+ .lvl = 20,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_FEEBAS,
+ },
+ {
+ .iv = 0,
+ .lvl = 23,
+ .species = SPECIES_CARVANHA,
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Dawson[] = {
+ {
+ .iv = 0,
+ .lvl = 8,
+ .species = SPECIES_ZIGZAGOON,
+ .heldItem = ITEM_NUGGET
+ },
+ {
+ .iv = 0,
+ .lvl = 8,
+ .species = SPECIES_POOCHYENA,
+ .heldItem = ITEM_NONE
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Sarah[] = {
+ {
+ .iv = 0,
+ .lvl = 8,
+ .species = SPECIES_LOTAD,
+ .heldItem = ITEM_NONE
+ },
+ {
+ .iv = 0,
+ .lvl = 8,
+ .species = SPECIES_ZIGZAGOON,
+ .heldItem = ITEM_NUGGET
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darian[] = {
+ {
+ .iv = 0,
+ .lvl = 9,
+ .species = SPECIES_MAGIKARP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hailey[] = {
+ {
+ .iv = 0,
+ .lvl = 13,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chandler[] = {
+ {
+ .iv = 0,
+ .lvl = 12,
+ .species = SPECIES_TENTACOOL,
+ },
+ {
+ .iv = 0,
+ .lvl = 12,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonItemDefaultMoves gTrainerParty_Kaleb[] = {
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_MINUN,
+ .heldItem = ITEM_ORAN_BERRY
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_PLUSLE,
+ .heldItem = ITEM_ORAN_BERRY
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joseph[] = {
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_ELECTRIKE,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_VOLTORB,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alyssa[] = {
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_MAGNEMITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marcos[] = {
+ {
+ .iv = 100,
+ .lvl = 15,
+ .species = SPECIES_VOLTORB,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rhett[] = {
+ {
+ .iv = 100,
+ .lvl = 15,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tyron[] = {
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_SANDSHREW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Celina[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bianca[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_SHROOMISH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hayden[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sophie[] = {
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_LOMBRE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Coby[] = {
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_SKARMORY,
+ },
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_SWELLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lawrence[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_BALTOY,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_SANDSHREW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wyatt[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_ARON,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_ARON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Angelina[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kai[] = {
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_BARBOACH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Charlotte[] = {
+ {
+ .iv = 0,
+ .lvl = 19,
+ .species = SPECIES_NUZLEAF,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Deandre[] = {
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_ARON,
+ },
+ {
+ .iv = 0,
+ .lvl = 14,
+ .species = SPECIES_ELECTRIKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt38[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt39[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_POOCHYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt40[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt41[] = {
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_BALTOY,
+ },
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt42[] = {
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_BALTOY,
+ },
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt43[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_MIGHTYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt44[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt45[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_POOCHYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt46[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt47[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_MIGHTYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt48[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_BALTOY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt49[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt50[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_ZUBAT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt51[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_MIGHTYENA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt52[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt53[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_BALTOY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha3[] = {
+ {
+ .iv = 75,
+ .lvl = 26,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 75,
+ .lvl = 28,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 75,
+ .lvl = 30,
+ .species = SPECIES_ZUBAT,
+ },
+ {
+ .iv = 75,
+ .lvl = 33,
+ .species = SPECIES_CAMERUPT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darcy[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_CAMERUPT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie3[] = {
+ {
+ .iv = 150,
+ .lvl = 42,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 150,
+ .lvl = 43,
+ .species = SPECIES_CROBAT,
+ },
+ {
+ .iv = 150,
+ .lvl = 44,
+ .species = SPECIES_CAMERUPT,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pete[] = {
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isabelle[] = {
+ {
+ .iv = 0,
+ .lvl = 15,
+ .species = SPECIES_MARILL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres1[] = {
+ {
+ .iv = 50,
+ .lvl = 25,
+ .species = SPECIES_SANDSHREW,
+ },
+ {
+ .iv = 50,
+ .lvl = 25,
+ .species = SPECIES_SANDSHREW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Josue[] = {
+ {
+ .iv = 50,
+ .lvl = 25,
+ .species = SPECIES_TAILLOW,
+ },
+ {
+ .iv = 50,
+ .lvl = 25,
+ .species = SPECIES_WINGULL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Camron[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory1[] = {
+ {
+ .iv = 0,
+ .lvl = 24,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 0,
+ .lvl = 24,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 0,
+ .lvl = 24,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carolina[] = {
+ {
+ .iv = 50,
+ .lvl = 24,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 50,
+ .lvl = 24,
+ .species = SPECIES_SWELLOW,
+ },
+ {
+ .iv = 50,
+ .lvl = 24,
+ .species = SPECIES_MANECTRIC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elijah[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_SKARMORY,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_SKARMORY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Celia[] = {
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_LOMBRE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bryan[] = {
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_SANDSHREW,
+ },
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_SANDSLASH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Branden[] = {
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_TAILLOW,
+ },
+ {
+ .iv = 0,
+ .lvl = 22,
+ .species = SPECIES_NUZLEAF,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bryant[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_SLUGMA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shayla[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_ROSELIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kyra[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_DODUO,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_DODRIO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jaiden[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_NINJASK,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_GULPIN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alix[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_KADABRA,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_KIRLIA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Helene[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_MEDITITE,
+ },
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marlene[] = {
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_MEDITITE,
+ },
+ {
+ .iv = 0,
+ .lvl = 18,
+ .species = SPECIES_SPOINK,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Devan[] = {
+ {
+ .iv = 0,
+ .lvl = 8,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 0,
+ .lvl = 8,
+ .species = SPECIES_GEODUDE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Johnson[] = {
+ {
+ .iv = 0,
+ .lvl = 8,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 0,
+ .lvl = 8,
+ .species = SPECIES_LOTAD,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Melina[] = {
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_DODUO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brandi[] = {
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_RALTS,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Aisha[] = {
+ {
+ .iv = 0,
+ .lvl = 17,
+ .species = SPECIES_MEDITITE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Makayla[] = {
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_ROSELIA,
+ },
+ {
+ .iv = 0,
+ .lvl = 33,
+ .species = SPECIES_MEDICHAM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fabian[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_MANECTRIC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dayton[] = {
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_SLUGMA,
+ },
+ {
+ .iv = 0,
+ .lvl = 25,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rachel[] = {
+ {
+ .iv = 0,
+ .lvl = 26,
+ .species = SPECIES_GOLDEEN,
+ }
+};
+
+const struct TrainerMonNoItemCustomMoves gTrainerParty_Leonel[] = {
+ {
+ .iv = 100,
+ .lvl = 30,
+ .species = SPECIES_MANECTRIC,
+ .moves = MOVE_THUNDER, MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Callie[] = {
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_MEDITITE,
+ },
+ {
+ .iv = 0,
+ .lvl = 28,
+ .species = SPECIES_MAKUHITA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cale[] = {
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_DUSTOX,
+ },
+ {
+ .iv = 0,
+ .lvl = 29,
+ .species = SPECIES_BEAUTIFLY,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Myles[] = {
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_MAKUHITA,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_TROPIUS,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_ELECTRIKE,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pat[] = {
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_POOCHYENA,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_SHROOMISH,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_ELECTRIKE,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_MARILL,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_SANDSHREW,
+ },
+ {
+ .iv = 10,
+ .lvl = 25,
+ .species = SPECIES_GULPIN,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin1[] = {
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_LOUDRED,
+ },
+ {
+ .iv = 100,
+ .lvl = 29,
+ .species = SPECIES_VIGOROTH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May14[] = {
+ {
+ .iv = 25,
+ .lvl = 13,
+ .species = SPECIES_LOTAD,
+ },
+ {
+ .iv = 50,
+ .lvl = 15,
+ .species = SPECIES_TORCHIC,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May15[] = {
+ {
+ .iv = 25,
+ .lvl = 13,
+ .species = SPECIES_TORKOAL,
+ },
+ {
+ .iv = 50,
+ .lvl = 15,
+ .species = SPECIES_MUDKIP,
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne2[] = {
+ {
+ .iv = 255,
+ .lvl = 32,
+ .species = SPECIES_GOLEM,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_MAGNITUDE, MOVE_EXPLOSION
+ },
+ {
+ .iv = 255,
+ .lvl = 35,
+ .species = SPECIES_KABUTO,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 35,
+ .species = SPECIES_ONIX,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 37,
+ .species = SPECIES_NOSEPASS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne3[] = {
+ {
+ .iv = 255,
+ .lvl = 37,
+ .species = SPECIES_OMANYTE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF
+ },
+ {
+ .iv = 255,
+ .lvl = 37,
+ .species = SPECIES_GOLEM,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_MAGNITUDE, MOVE_EXPLOSION
+ },
+ {
+ .iv = 255,
+ .lvl = 40,
+ .species = SPECIES_KABUTOPS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 40,
+ .species = SPECIES_ONIX,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 42,
+ .species = SPECIES_NOSEPASS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne4[] = {
+ {
+ .iv = 255,
+ .lvl = 42,
+ .species = SPECIES_OMASTAR,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF
+ },
+ {
+ .iv = 255,
+ .lvl = 42,
+ .species = SPECIES_GOLEM,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_EARTHQUAKE, MOVE_EXPLOSION
+ },
+ {
+ .iv = 255,
+ .lvl = 45,
+ .species = SPECIES_KABUTOPS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 45,
+ .species = SPECIES_ONIX,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 47,
+ .species = SPECIES_NOSEPASS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne5[] = {
+ {
+ .iv = 255,
+ .lvl = 47,
+ .species = SPECIES_AERODACTYL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ROCK_SLIDE, MOVE_HYPER_BEAM, MOVE_SUPERSONIC, MOVE_PROTECT
+ },
+ {
+ .iv = 255,
+ .lvl = 47,
+ .species = SPECIES_GOLEM,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FOCUS_PUNCH, MOVE_ROLLOUT, MOVE_EARTHQUAKE, MOVE_EXPLOSION
+ },
+ {
+ .iv = 255,
+ .lvl = 47,
+ .species = SPECIES_OMASTAR,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF
+ },
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_KABUTOPS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_STEELIX,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 52,
+ .species = SPECIES_NOSEPASS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Brawly2[] = {
+ {
+ .iv = 255,
+ .lvl = 33,
+ .species = SPECIES_MACHAMP,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP
+ },
+ {
+ .iv = 255,
+ .lvl = 33,
+ .species = SPECIES_MEDITITE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PSYCHIC, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_FOCUS_PUNCH
+ },
+ {
+ .iv = 255,
+ .lvl = 35,
+ .species = SPECIES_HITMONTOP,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK
+ },
+ {
+ .iv = 255,
+ .lvl = 37,
+ .species = SPECIES_HARIYAMA,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Brawly3[] = {
+ {
+ .iv = 255,
+ .lvl = 38,
+ .species = SPECIES_MACHAMP,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP
+ },
+ {
+ .iv = 255,
+ .lvl = 38,
+ .species = SPECIES_MEDICHAM,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PSYCHIC, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_FOCUS_PUNCH
+ },
+ {
+ .iv = 255,
+ .lvl = 40,
+ .species = SPECIES_HITMONTOP,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK
+ },
+ {
+ .iv = 255,
+ .lvl = 42,
+ .species = SPECIES_HARIYAMA,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Brawly4[] = {
+ {
+ .iv = 255,
+ .lvl = 40,
+ .species = SPECIES_HITMONCHAN,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SKY_UPPERCUT, MOVE_PROTECT, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH
+ },
+ {
+ .iv = 255,
+ .lvl = 43,
+ .species = SPECIES_MACHAMP,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP
+ },
+ {
+ .iv = 255,
+ .lvl = 43,
+ .species = SPECIES_MEDICHAM,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_PSYCHIC
+ },
+ {
+ .iv = 255,
+ .lvl = 45,
+ .species = SPECIES_HITMONTOP,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK
+ },
+ {
+ .iv = 255,
+ .lvl = 47,
+ .species = SPECIES_HARIYAMA,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Brawly5[] = {
+ {
+ .iv = 255,
+ .lvl = 46,
+ .species = SPECIES_HITMONLEE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_MEGA_KICK, MOVE_FOCUS_PUNCH, MOVE_EARTHQUAKE, MOVE_BULK_UP
+ },
+ {
+ .iv = 255,
+ .lvl = 46,
+ .species = SPECIES_HITMONCHAN,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SKY_UPPERCUT, MOVE_PROTECT, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH
+ },
+ {
+ .iv = 255,
+ .lvl = 48,
+ .species = SPECIES_MACHAMP,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP
+ },
+ {
+ .iv = 255,
+ .lvl = 48,
+ .species = SPECIES_MEDICHAM,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_PSYCHIC
+ },
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_HITMONTOP,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK
+ },
+ {
+ .iv = 255,
+ .lvl = 52,
+ .species = SPECIES_HARIYAMA,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Wattson2[] = {
+ {
+ .iv = 255,
+ .lvl = 36,
+ .species = SPECIES_MAREEP,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN
+ },
+ {
+ .iv = 255,
+ .lvl = 36,
+ .species = SPECIES_ELECTRODE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE
+ },
+ {
+ .iv = 255,
+ .lvl = 38,
+ .species = SPECIES_MAGNETON,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE
+ },
+ {
+ .iv = 255,
+ .lvl = 40,
+ .species = SPECIES_MANECTRIC,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Wattson3[] = {
+ {
+ .iv = 255,
+ .lvl = 39,
+ .species = SPECIES_PIKACHU,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_SHOCK_WAVE
+ },
+ {
+ .iv = 255,
+ .lvl = 41,
+ .species = SPECIES_FLAAFFY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN
+ },
+ {
+ .iv = 255,
+ .lvl = 41,
+ .species = SPECIES_ELECTRODE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE
+ },
+ {
+ .iv = 255,
+ .lvl = 43,
+ .species = SPECIES_MAGNETON,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE
+ },
+ {
+ .iv = 255,
+ .lvl = 45,
+ .species = SPECIES_MANECTRIC,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Wattson4[] = {
+ {
+ .iv = 255,
+ .lvl = 44,
+ .species = SPECIES_RAICHU,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_PROTECT
+ },
+ {
+ .iv = 255,
+ .lvl = 46,
+ .species = SPECIES_AMPHAROS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN
+ },
+ {
+ .iv = 255,
+ .lvl = 46,
+ .species = SPECIES_ELECTRODE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE
+ },
+ {
+ .iv = 255,
+ .lvl = 48,
+ .species = SPECIES_MAGNETON,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE
+ },
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_MANECTRIC,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Wattson5[] = {
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_ELECTABUZZ,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SWIFT, MOVE_FOCUS_PUNCH, MOVE_THUNDER_PUNCH, MOVE_LIGHT_SCREEN
+ },
+ {
+ .iv = 255,
+ .lvl = 51,
+ .species = SPECIES_RAICHU,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_PROTECT
+ },
+ {
+ .iv = 255,
+ .lvl = 51,
+ .species = SPECIES_AMPHAROS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN
+ },
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_ELECTRODE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE
+ },
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_MAGNETON,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE
+ },
+ {
+ .iv = 255,
+ .lvl = 55,
+ .species = SPECIES_MANECTRIC,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Flannery2[] = {
+ {
+ .iv = 255,
+ .lvl = 38,
+ .species = SPECIES_MAGCARGO,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 36,
+ .species = SPECIES_PONYTA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE
+ },
+ {
+ .iv = 255,
+ .lvl = 38,
+ .species = SPECIES_CAMERUPT,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT
+ },
+ {
+ .iv = 255,
+ .lvl = 40,
+ .species = SPECIES_TORKOAL,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Flannery3[] = {
+ {
+ .iv = 255,
+ .lvl = 41,
+ .species = SPECIES_GROWLITHE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_ROAR, MOVE_SUNNY_DAY
+ },
+ {
+ .iv = 255,
+ .lvl = 43,
+ .species = SPECIES_MAGCARGO,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 41,
+ .species = SPECIES_PONYTA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE
+ },
+ {
+ .iv = 255,
+ .lvl = 43,
+ .species = SPECIES_CAMERUPT,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT
+ },
+ {
+ .iv = 255,
+ .lvl = 45,
+ .species = SPECIES_TORKOAL,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Flannery4[] = {
+ {
+ .iv = 255,
+ .lvl = 46,
+ .species = SPECIES_HOUNDOUR,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ROAR, MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_SUNNY_DAY
+ },
+ {
+ .iv = 255,
+ .lvl = 46,
+ .species = SPECIES_GROWLITHE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_ROAR
+ },
+ {
+ .iv = 255,
+ .lvl = 48,
+ .species = SPECIES_MAGCARGO,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 46,
+ .species = SPECIES_RAPIDASH,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE
+ },
+ {
+ .iv = 255,
+ .lvl = 48,
+ .species = SPECIES_CAMERUPT,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT
+ },
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_TORKOAL,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Flannery5[] = {
+ {
+ .iv = 255,
+ .lvl = 51,
+ .species = SPECIES_ARCANINE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_ROAR
+ },
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_MAGCARGO,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE
+ },
+ {
+ .iv = 255,
+ .lvl = 51,
+ .species = SPECIES_HOUNDOOM,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_ROAR, MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_SUNNY_DAY
+ },
+ {
+ .iv = 255,
+ .lvl = 51,
+ .species = SPECIES_RAPIDASH,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE
+ },
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_CAMERUPT,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT
+ },
+ {
+ .iv = 255,
+ .lvl = 55,
+ .species = SPECIES_TORKOAL,
+ .heldItem = ITEM_WHITE_HERB,
+ .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Norman2[] = {
+ {
+ .iv = 255,
+ .lvl = 42,
+ .species = SPECIES_CHANSEY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH
+ },
+ {
+ .iv = 255,
+ .lvl = 42,
+ .species = SPECIES_SLAKING,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST
+ },
+ {
+ .iv = 255,
+ .lvl = 43,
+ .species = SPECIES_SPINDA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS
+ },
+ {
+ .iv = 255,
+ .lvl = 45,
+ .species = SPECIES_SLAKING,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Norman3[] = {
+ {
+ .iv = 255,
+ .lvl = 47,
+ .species = SPECIES_SLAKING,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST
+ },
+ {
+ .iv = 255,
+ .lvl = 47,
+ .species = SPECIES_CHANSEY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH
+ },
+ {
+ .iv = 255,
+ .lvl = 45,
+ .species = SPECIES_KANGASKHAN,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL
+ },
+ {
+ .iv = 255,
+ .lvl = 48,
+ .species = SPECIES_SPINDA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS
+ },
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_SLAKING,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Norman4[] = {
+ {
+ .iv = 255,
+ .lvl = 52,
+ .species = SPECIES_SLAKING,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST
+ },
+ {
+ .iv = 255,
+ .lvl = 52,
+ .species = SPECIES_BLISSEY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH
+ },
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_KANGASKHAN,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL
+ },
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_SPINDA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS
+ },
+ {
+ .iv = 255,
+ .lvl = 55,
+ .species = SPECIES_SLAKING,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Norman5[] = {
+ {
+ .iv = 255,
+ .lvl = 57,
+ .species = SPECIES_SLAKING,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST
+ },
+ {
+ .iv = 255,
+ .lvl = 57,
+ .species = SPECIES_BLISSEY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_PROTECT, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH
+ },
+ {
+ .iv = 255,
+ .lvl = 55,
+ .species = SPECIES_KANGASKHAN,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL
+ },
+ {
+ .iv = 255,
+ .lvl = 57,
+ .species = SPECIES_TAUROS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TAKE_DOWN, MOVE_PROTECT, MOVE_FIRE_BLAST, MOVE_EARTHQUAKE
+ },
+ {
+ .iv = 255,
+ .lvl = 58,
+ .species = SPECIES_SPINDA,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS
+ },
+ {
+ .iv = 255,
+ .lvl = 60,
+ .species = SPECIES_SLAKING,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Winona2[] = {
+ {
+ .iv = 255,
+ .lvl = 40,
+ .species = SPECIES_DRATINI,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 38,
+ .species = SPECIES_TROPIUS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE
+ },
+ {
+ .iv = 255,
+ .lvl = 41,
+ .species = SPECIES_PELIPPER,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 255,
+ .lvl = 43,
+ .species = SPECIES_SKARMORY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 255,
+ .lvl = 45,
+ .species = SPECIES_ALTARIA,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Winona3[] = {
+ {
+ .iv = 255,
+ .lvl = 43,
+ .species = SPECIES_HOOTHOOT,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER
+ },
+ {
+ .iv = 255,
+ .lvl = 43,
+ .species = SPECIES_TROPIUS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE
+ },
+ {
+ .iv = 255,
+ .lvl = 45,
+ .species = SPECIES_DRAGONAIR,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 46,
+ .species = SPECIES_PELIPPER,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 255,
+ .lvl = 48,
+ .species = SPECIES_SKARMORY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_ALTARIA,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Winona4[] = {
+ {
+ .iv = 255,
+ .lvl = 48,
+ .species = SPECIES_NOCTOWL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER
+ },
+ {
+ .iv = 255,
+ .lvl = 49,
+ .species = SPECIES_TROPIUS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE
+ },
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_DRAGONAIR,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 51,
+ .species = SPECIES_PELIPPER,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_SKARMORY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 255,
+ .lvl = 55,
+ .species = SPECIES_ALTARIA,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Winona5[] = {
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_NOCTOWL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER
+ },
+ {
+ .iv = 255,
+ .lvl = 54,
+ .species = SPECIES_TROPIUS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE
+ },
+ {
+ .iv = 255,
+ .lvl = 55,
+ .species = SPECIES_PELIPPER,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 255,
+ .lvl = 55,
+ .species = SPECIES_DRAGONITE,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_HYPER_BEAM, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_ICE_BEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 58,
+ .species = SPECIES_SKARMORY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE
+ },
+ {
+ .iv = 255,
+ .lvl = 60,
+ .species = SPECIES_ALTARIA,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_SKY_ATTACK, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza2[] = {
+ {
+ .iv = 255,
+ .lvl = 48,
+ .species = SPECIES_SLOWPOKE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT
+ },
+ {
+ .iv = 255,
+ .lvl = 49,
+ .species = SPECIES_CLAYDOL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN
+ },
+ {
+ .iv = 255,
+ .lvl = 49,
+ .species = SPECIES_XATU,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND
+ },
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_LUNATONE,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND
+ },
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_SOLROCK,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza3[] = {
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_DROWZEE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT
+ },
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_SLOWPOKE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT
+ },
+ {
+ .iv = 255,
+ .lvl = 54,
+ .species = SPECIES_CLAYDOL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN
+ },
+ {
+ .iv = 255,
+ .lvl = 54,
+ .species = SPECIES_XATU,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND
+ },
+ {
+ .iv = 255,
+ .lvl = 55,
+ .species = SPECIES_LUNATONE,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND
+ },
+ {
+ .iv = 255,
+ .lvl = 55,
+ .species = SPECIES_SOLROCK,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza4[] = {
+ {
+ .iv = 255,
+ .lvl = 58,
+ .species = SPECIES_HYPNO,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT
+ },
+ {
+ .iv = 255,
+ .lvl = 59,
+ .species = SPECIES_CLAYDOL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN
+ },
+ {
+ .iv = 255,
+ .lvl = 58,
+ .species = SPECIES_SLOWPOKE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT
+ },
+ {
+ .iv = 255,
+ .lvl = 59,
+ .species = SPECIES_XATU,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND
+ },
+ {
+ .iv = 255,
+ .lvl = 60,
+ .species = SPECIES_LUNATONE,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND
+ },
+ {
+ .iv = 255,
+ .lvl = 60,
+ .species = SPECIES_SOLROCK,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza5[] = {
+ {
+ .iv = 255,
+ .lvl = 63,
+ .species = SPECIES_HYPNO,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT
+ },
+ {
+ .iv = 255,
+ .lvl = 64,
+ .species = SPECIES_CLAYDOL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN
+ },
+ {
+ .iv = 255,
+ .lvl = 63,
+ .species = SPECIES_SLOWKING,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT
+ },
+ {
+ .iv = 255,
+ .lvl = 64,
+ .species = SPECIES_XATU,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND
+ },
+ {
+ .iv = 255,
+ .lvl = 65,
+ .species = SPECIES_LUNATONE,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND
+ },
+ {
+ .iv = 255,
+ .lvl = 65,
+ .species = SPECIES_SOLROCK,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Juan2[] = {
+ {
+ .iv = 255,
+ .lvl = 46,
+ .species = SPECIES_POLIWAG,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP
+ },
+ {
+ .iv = 255,
+ .lvl = 46,
+ .species = SPECIES_WHISCASH,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE
+ },
+ {
+ .iv = 255,
+ .lvl = 48,
+ .species = SPECIES_WALREIN,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 48,
+ .species = SPECIES_CRAWDAUNT,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_REST, MOVE_CRABHAMMER, MOVE_TAUNT, MOVE_DOUBLE_TEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 51,
+ .species = SPECIES_KINGDRA,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Juan3[] = {
+ {
+ .iv = 255,
+ .lvl = 50,
+ .species = SPECIES_POLIWHIRL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP
+ },
+ {
+ .iv = 255,
+ .lvl = 51,
+ .species = SPECIES_WHISCASH,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE
+ },
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_WALREIN,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 53,
+ .species = SPECIES_CRAWDAUNT,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 56,
+ .species = SPECIES_KINGDRA,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Juan4[] = {
+ {
+ .iv = 255,
+ .lvl = 56,
+ .species = SPECIES_LAPRAS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYDRO_PUMP, MOVE_PERISH_SONG, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY
+ },
+ {
+ .iv = 255,
+ .lvl = 58,
+ .species = SPECIES_WHISCASH,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE
+ },
+ {
+ .iv = 255,
+ .lvl = 56,
+ .species = SPECIES_POLIWHIRL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP
+ },
+ {
+ .iv = 255,
+ .lvl = 58,
+ .species = SPECIES_WALREIN,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 58,
+ .species = SPECIES_CRAWDAUNT,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 61,
+ .species = SPECIES_KINGDRA,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Juan5[] = {
+ {
+ .iv = 255,
+ .lvl = 61,
+ .species = SPECIES_LAPRAS,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYDRO_PUMP, MOVE_PERISH_SONG, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY
+ },
+ {
+ .iv = 255,
+ .lvl = 63,
+ .species = SPECIES_WHISCASH,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE
+ },
+ {
+ .iv = 255,
+ .lvl = 61,
+ .species = SPECIES_POLITOED,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_HYDRO_PUMP, MOVE_PERISH_SONG
+ },
+ {
+ .iv = 255,
+ .lvl = 63,
+ .species = SPECIES_WALREIN,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_SHEER_COLD
+ },
+ {
+ .iv = 255,
+ .lvl = 63,
+ .species = SPECIES_CRAWDAUNT,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM
+ },
+ {
+ .iv = 255,
+ .lvl = 66,
+ .species = SPECIES_KINGDRA,
+ .heldItem = ITEM_CHESTO_BERRY,
+ .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Angelo[] = {
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_ILLUMISE,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SHOCK_WAVE, MOVE_QUICK_ATTACK, MOVE_CHARM, MOVE_NONE
+ },
+ {
+ .iv = 100,
+ .lvl = 17,
+ .species = SPECIES_VOLBEAT,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_SHOCK_WAVE, MOVE_QUICK_ATTACK, MOVE_CONFUSE_RAY, MOVE_NONE
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darius[] = {
+ {
+ .iv = 200,
+ .lvl = 30,
+ .species = SPECIES_TROPIUS,
+ }
+};
+
+const struct TrainerMonItemCustomMoves gTrainerParty_Steven[] = {
+ {
+ .iv = 255,
+ .lvl = 77,
+ .species = SPECIES_SKARMORY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_SPIKES, MOVE_STEEL_WING
+ },
+ {
+ .iv = 255,
+ .lvl = 75,
+ .species = SPECIES_CLAYDOL,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_ANCIENT_POWER, MOVE_EARTHQUAKE
+ },
+ {
+ .iv = 255,
+ .lvl = 76,
+ .species = SPECIES_AGGRON,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_THUNDER, MOVE_EARTHQUAKE, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW
+ },
+ {
+ .iv = 255,
+ .lvl = 76,
+ .species = SPECIES_CRADILY,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_GIGA_DRAIN, MOVE_ANCIENT_POWER, MOVE_INGRAIN, MOVE_CONFUSE_RAY
+ },
+ {
+ .iv = 255,
+ .lvl = 76,
+ .species = SPECIES_ARMALDO,
+ .heldItem = ITEM_NONE,
+ .moves = MOVE_WATER_PULSE, MOVE_ANCIENT_POWER, MOVE_AERIAL_ACE, MOVE_SLASH
+ },
+ {
+ .iv = 255,
+ .lvl = 78,
+ .species = SPECIES_METAGROSS,
+ .heldItem = ITEM_SITRUS_BERRY,
+ .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_METEOR_MASH, MOVE_SHADOW_BALL
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Anabel[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_BELDUM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tucker[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_BELDUM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Spenser[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_BELDUM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Greta[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_BELDUM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Noland[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_BELDUM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lucy[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_BELDUM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brandon[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_BELDUM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres2[] = {
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_SANDSHREW,
+ },
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_SANDSHREW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres3[] = {
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_NOSEPASS,
+ },
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_SANDSHREW,
+ },
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_SANDSHREW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres4[] = {
+ {
+ .iv = 30,
+ .lvl = 35,
+ .species = SPECIES_NOSEPASS,
+ },
+ {
+ .iv = 30,
+ .lvl = 35,
+ .species = SPECIES_SANDSHREW,
+ },
+ {
+ .iv = 30,
+ .lvl = 35,
+ .species = SPECIES_SANDSHREW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres5[] = {
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_NOSEPASS,
+ },
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_SANDSLASH,
+ },
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_SANDSLASH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory2[] = {
+ {
+ .iv = 10,
+ .lvl = 30,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 10,
+ .lvl = 30,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 10,
+ .lvl = 30,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory3[] = {
+ {
+ .iv = 20,
+ .lvl = 32,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 20,
+ .lvl = 32,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 20,
+ .lvl = 32,
+ .species = SPECIES_TENTACOOL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory4[] = {
+ {
+ .iv = 30,
+ .lvl = 34,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 30,
+ .lvl = 34,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 30,
+ .lvl = 34,
+ .species = SPECIES_TENTACRUEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory5[] = {
+ {
+ .iv = 40,
+ .lvl = 36,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 40,
+ .lvl = 36,
+ .species = SPECIES_MACHOKE,
+ },
+ {
+ .iv = 40,
+ .lvl = 36,
+ .species = SPECIES_TENTACRUEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo2[] = {
+ {
+ .iv = 10,
+ .lvl = 37,
+ .species = SPECIES_STARYU,
+ },
+ {
+ .iv = 10,
+ .lvl = 37,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo3[] = {
+ {
+ .iv = 20,
+ .lvl = 39,
+ .species = SPECIES_WINGULL,
+ },
+ {
+ .iv = 20,
+ .lvl = 39,
+ .species = SPECIES_STARYU,
+ },
+ {
+ .iv = 20,
+ .lvl = 39,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo4[] = {
+ {
+ .iv = 30,
+ .lvl = 41,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 30,
+ .lvl = 41,
+ .species = SPECIES_STARYU,
+ },
+ {
+ .iv = 30,
+ .lvl = 41,
+ .species = SPECIES_STARYU,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo5[] = {
+ {
+ .iv = 40,
+ .lvl = 43,
+ .species = SPECIES_PELIPPER,
+ },
+ {
+ .iv = 40,
+ .lvl = 43,
+ .species = SPECIES_STARMIE,
+ },
+ {
+ .iv = 40,
+ .lvl = 43,
+ .species = SPECIES_STARMIE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji2[] = {
+ {
+ .iv = 10,
+ .lvl = 37,
+ .species = SPECIES_MACHOKE,
+ },
+ {
+ .iv = 10,
+ .lvl = 37,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji3[] = {
+ {
+ .iv = 20,
+ .lvl = 39,
+ .species = SPECIES_MAKUHITA,
+ },
+ {
+ .iv = 20,
+ .lvl = 39,
+ .species = SPECIES_MACHOKE,
+ },
+ {
+ .iv = 20,
+ .lvl = 39,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji4[] = {
+ {
+ .iv = 30,
+ .lvl = 41,
+ .species = SPECIES_HARIYAMA,
+ },
+ {
+ .iv = 30,
+ .lvl = 41,
+ .species = SPECIES_MACHOKE,
+ },
+ {
+ .iv = 30,
+ .lvl = 41,
+ .species = SPECIES_MACHOKE,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji5[] = {
+ {
+ .iv = 40,
+ .lvl = 43,
+ .species = SPECIES_HARIYAMA,
+ },
+ {
+ .iv = 40,
+ .lvl = 43,
+ .species = SPECIES_MACHAMP,
+ },
+ {
+ .iv = 40,
+ .lvl = 43,
+ .species = SPECIES_MACHAMP,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin2[] = {
+ {
+ .iv = 110,
+ .lvl = 35,
+ .species = SPECIES_LOUDRED,
+ },
+ {
+ .iv = 110,
+ .lvl = 35,
+ .species = SPECIES_VIGOROTH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin3[] = {
+ {
+ .iv = 120,
+ .lvl = 37,
+ .species = SPECIES_SPINDA,
+ },
+ {
+ .iv = 120,
+ .lvl = 37,
+ .species = SPECIES_LOUDRED,
+ },
+ {
+ .iv = 120,
+ .lvl = 37,
+ .species = SPECIES_VIGOROTH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin4[] = {
+ {
+ .iv = 130,
+ .lvl = 39,
+ .species = SPECIES_SPINDA,
+ },
+ {
+ .iv = 130,
+ .lvl = 39,
+ .species = SPECIES_LOUDRED,
+ },
+ {
+ .iv = 100,
+ .lvl = 39,
+ .species = SPECIES_VIGOROTH,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin5[] = {
+ {
+ .iv = 140,
+ .lvl = 41,
+ .species = SPECIES_SPINDA,
+ },
+ {
+ .iv = 140,
+ .lvl = 41,
+ .species = SPECIES_EXPLOUD,
+ },
+ {
+ .iv = 140,
+ .lvl = 41,
+ .species = SPECIES_SLAKING,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando2[] = {
+ {
+ .iv = 10,
+ .lvl = 35,
+ .species = SPECIES_ELECTRIKE,
+ },
+ {
+ .iv = 10,
+ .lvl = 35,
+ .species = SPECIES_ELECTRIKE,
+ },
+ {
+ .iv = 10,
+ .lvl = 35,
+ .species = SPECIES_LOUDRED,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando3[] = {
+ {
+ .iv = 20,
+ .lvl = 37,
+ .species = SPECIES_ELECTRIKE,
+ },
+ {
+ .iv = 20,
+ .lvl = 37,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 20,
+ .lvl = 37,
+ .species = SPECIES_LOUDRED,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando4[] = {
+ {
+ .iv = 30,
+ .lvl = 39,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 30,
+ .lvl = 39,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 30,
+ .lvl = 39,
+ .species = SPECIES_LOUDRED,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando5[] = {
+ {
+ .iv = 40,
+ .lvl = 41,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 40,
+ .lvl = 41,
+ .species = SPECIES_MANECTRIC,
+ },
+ {
+ .iv = 40,
+ .lvl = 41,
+ .species = SPECIES_EXPLOUD,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer2[] = {
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_GEODUDE,
+ },
+ {
+ .iv = 10,
+ .lvl = 26,
+ .species = SPECIES_NUMEL,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer3[] = {
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 20,
+ .lvl = 28,
+ .species = SPECIES_GRAVELER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer4[] = {
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_MACHOP,
+ },
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_NUMEL,
+ },
+ {
+ .iv = 30,
+ .lvl = 30,
+ .species = SPECIES_GRAVELER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer5[] = {
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_MACHOKE,
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_CAMERUPT,
+ },
+ {
+ .iv = 40,
+ .lvl = 33,
+ .species = SPECIES_GOLEM,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle2[] = {
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_SKITTY,
+ },
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_ZIGZAGOON,
+ },
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_LOTAD,
+ },
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_SEEDOT,
+ },
+ {
+ .iv = 10,
+ .lvl = 31,
+ .species = SPECIES_TAILLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle3[] = {
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_SKITTY,
+ },
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_LINOONE,
+ },
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_NUZLEAF,
+ },
+ {
+ .iv = 20,
+ .lvl = 33,
+ .species = SPECIES_TAILLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle4[] = {
+ {
+ .iv = 30,
+ .lvl = 35,
+ .species = SPECIES_DELCATTY,
+ },
+ {
+ .iv = 30,
+ .lvl = 35,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 30,
+ .lvl = 35,
+ .species = SPECIES_LINOONE,
+ },
+ {
+ .iv = 30,
+ .lvl = 35,
+ .species = SPECIES_LOMBRE,
+ },
+ {
+ .iv = 30,
+ .lvl = 35,
+ .species = SPECIES_NUZLEAF,
+ },
+ {
+ .iv = 30,
+ .lvl = 35,
+ .species = SPECIES_SWELLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle5[] = {
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_DELCATTY,
+ },
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_MIGHTYENA,
+ },
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_LINOONE,
+ },
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_LUDICOLO,
+ },
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_SHIFTRY,
+ },
+ {
+ .iv = 40,
+ .lvl = 37,
+ .species = SPECIES_SWELLOW,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia2[] = {
+ {
+ .iv = 10,
+ .lvl = 34,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 10,
+ .lvl = 34,
+ .species = SPECIES_HORSEA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia3[] = {
+ {
+ .iv = 20,
+ .lvl = 36,
+ .species = SPECIES_LUVDISC,
+ },
+ {
+ .iv = 20,
+ .lvl = 36,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 20,
+ .lvl = 36,
+ .species = SPECIES_SEADRA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia4[] = {
+ {
+ .iv = 30,
+ .lvl = 38,
+ .species = SPECIES_LUVDISC,
+ },
+ {
+ .iv = 30,
+ .lvl = 38,
+ .species = SPECIES_WAILMER,
+ },
+ {
+ .iv = 30,
+ .lvl = 38,
+ .species = SPECIES_SEADRA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia5[] = {
+ {
+ .iv = 40,
+ .lvl = 40,
+ .species = SPECIES_LUVDISC,
+ },
+ {
+ .iv = 40,
+ .lvl = 40,
+ .species = SPECIES_WAILORD,
+ },
+ {
+ .iv = 40,
+ .lvl = 40,
+ .species = SPECIES_KINGDRA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mariela[] = {
+ {
+ .iv = 0,
+ .lvl = 41,
+ .species = SPECIES_CHIMECHO,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alvaro[] = {
+ {
+ .iv = 0,
+ .lvl = 41,
+ .species = SPECIES_BANETTE,
+ },
+ {
+ .iv = 0,
+ .lvl = 41,
+ .species = SPECIES_KADABRA,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Everett[] = {
+ {
+ .iv = 0,
+ .lvl = 41,
+ .species = SPECIES_WOBBUFFET,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Red[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_CHARMANDER,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leaf[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_BULBASAUR,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan16[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_GROUDON,
+ }
+};
+
+const struct TrainerMonNoItemDefaultMoves gTrainerParty_May16[] = {
+ {
+ .iv = 0,
+ .lvl = 5,
+ .species = SPECIES_KYOGRE,
+ }
+};
+
diff --git a/src/data/trainers.h b/src/data/trainers.h
new file mode 100644
index 000000000..19e210acc
--- /dev/null
+++ b/src/data/trainers.h
@@ -0,0 +1,11971 @@
+const struct Trainer gTrainers[] = {
+ [TRAINER_NONE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _(""),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 0,
+ .party = {.NoItemDefaultMoves = NULL }
+ },
+
+ [TRAINER_SAWYER_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("SAWYER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer1 }
+ },
+
+ [TRAINER_GRUNT_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt1 }
+ },
+
+ [TRAINER_GRUNT_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt2 }
+ },
+
+ [TRAINER_GRUNT_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt3 }
+ },
+
+ [TRAINER_GRUNT_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt4 }
+ },
+
+ [TRAINER_GRUNT_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt5 }
+ },
+
+ [TRAINER_GRUNT_6] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt6 }
+ },
+
+ [TRAINER_GRUNT_7] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt7 }
+ },
+
+ [TRAINER_GABRIELLE_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F,
+ .trainerName = _("GABRIELLE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle1 }
+ },
+
+ [TRAINER_GRUNT_8] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt8 }
+ },
+
+ [TRAINER_MARCEL] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("MARCEL"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Marcel }
+ },
+
+ [TRAINER_ALBERTO] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("ALBERTO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Alberto }
+ },
+
+ [TRAINER_ED] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_COLLECTOR,
+ .trainerName = _("ED"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ed }
+ },
+
+ [TRAINER_GRUNT_9] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt9 }
+ },
+
+ [TRAINER_DECLAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("DECLAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Declan }
+ },
+
+ [TRAINER_GRUNT_10] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt10 }
+ },
+
+ [TRAINER_GRUNT_11] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt11 }
+ },
+
+ [TRAINER_GRUNT_12] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt12 }
+ },
+
+ [TRAINER_GRUNT_13] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt13 }
+ },
+
+ [TRAINER_GRUNT_14] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt14 }
+ },
+
+ [TRAINER_GRUNT_15] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt15 }
+ },
+
+ [TRAINER_GRUNT_16] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt16 }
+ },
+
+ [TRAINER_GRUNT_17] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt17 }
+ },
+
+ [TRAINER_GRUNT_18] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt18 }
+ },
+
+ [TRAINER_GRUNT_19] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt19 }
+ },
+
+ [TRAINER_GRUNT_20] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt20 }
+ },
+
+ [TRAINER_GRUNT_21] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt21 }
+ },
+
+ [TRAINER_GRUNT_22] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt22 }
+ },
+
+ [TRAINER_FREDRICK] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_M,
+ .trainerName = _("FREDRICK"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Fredrick }
+ },
+
+ [TRAINER_MATT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AQUA_ADMIN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_ADMIN_M,
+ .trainerName = _("MATT"),
+ .items = {ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Matt }
+ },
+
+ [TRAINER_ZANDER] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("ZANDER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Zander }
+ },
+
+ [TRAINER_SHELLY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AQUA_ADMIN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_ADMIN_F,
+ .trainerName = _("SHELLY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shelly1 }
+ },
+
+ [TRAINER_SHELLY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AQUA_ADMIN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_ADMIN_F,
+ .trainerName = _("SHELLY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shelly2 }
+ },
+
+ [TRAINER_ARCHIE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AQUA_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_LEADER_ARCHIE,
+ .trainerName = _("ARCHIE"),
+ .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Archie }
+ },
+
+ [TRAINER_LEAH] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("LEAH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Leah }
+ },
+
+ [TRAINER_DAISY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_AROMA_LADY,
+ .trainerName = _("DAISY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Daisy }
+ },
+
+ [TRAINER_ROSE_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_AROMA_LADY,
+ .trainerName = _("ROSE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Rose1 }
+ },
+
+ [TRAINER_FELIX] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("FELIX"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Felix }
+ },
+
+ [TRAINER_VIOLET] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_AROMA_LADY,
+ .trainerName = _("VIOLET"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Violet }
+ },
+
+ [TRAINER_ROSE_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_AROMA_LADY,
+ .trainerName = _("ROSE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Rose2 }
+ },
+
+ [TRAINER_ROSE_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_AROMA_LADY,
+ .trainerName = _("ROSE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Rose3 }
+ },
+
+ [TRAINER_ROSE_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_AROMA_LADY,
+ .trainerName = _("ROSE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Rose4 }
+ },
+
+ [TRAINER_ROSE_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_AROMA_LADY,
+ .trainerName = _("ROSE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Rose5 }
+ },
+
+ [TRAINER_DUSTY_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("DUSTY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Dusty1 }
+ },
+
+ [TRAINER_CHIP] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("CHIP"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemCustomMoves = gTrainerParty_Chip }
+ },
+
+ [TRAINER_FOSTER] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("FOSTER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Foster }
+ },
+
+ [TRAINER_DUSTY_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("DUSTY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Dusty2 }
+ },
+
+ [TRAINER_DUSTY_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("DUSTY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Dusty3 }
+ },
+
+ [TRAINER_DUSTY_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("DUSTY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Dusty4 }
+ },
+
+ [TRAINER_DUSTY_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("DUSTY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Dusty5 }
+ },
+
+ [TRAINER_GABBY_AND_TY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_INTERVIEWER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER,
+ .trainerPic = TRAINER_PIC_INTERVIEWER,
+ .trainerName = _("GABBY & TY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy1 }
+ },
+
+ [TRAINER_GABBY_AND_TY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_INTERVIEWER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER,
+ .trainerPic = TRAINER_PIC_INTERVIEWER,
+ .trainerName = _("GABBY & TY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy2 }
+ },
+
+ [TRAINER_GABBY_AND_TY_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_INTERVIEWER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER,
+ .trainerPic = TRAINER_PIC_INTERVIEWER,
+ .trainerName = _("GABBY & TY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy3 }
+ },
+
+ [TRAINER_GABBY_AND_TY_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_INTERVIEWER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER,
+ .trainerPic = TRAINER_PIC_INTERVIEWER,
+ .trainerName = _("GABBY & TY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy4 }
+ },
+
+ [TRAINER_GABBY_AND_TY_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_INTERVIEWER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER,
+ .trainerPic = TRAINER_PIC_INTERVIEWER,
+ .trainerName = _("GABBY & TY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy5 }
+ },
+
+ [TRAINER_GABBY_AND_TY_6] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_INTERVIEWER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTERVIEWER,
+ .trainerPic = TRAINER_PIC_INTERVIEWER,
+ .trainerName = _("GABBY & TY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_GabbyAndTy6 }
+ },
+
+ [TRAINER_LOLA_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_F,
+ .trainerName = _("LOLA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lola1 }
+ },
+
+ [TRAINER_AUSTINA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_F,
+ .trainerName = _("AUSTINA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Austina }
+ },
+
+ [TRAINER_GWEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_F,
+ .trainerName = _("GWEN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Gwen }
+ },
+
+ [TRAINER_LOLA_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_F,
+ .trainerName = _("LOLA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lola2 }
+ },
+
+ [TRAINER_LOLA_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_F,
+ .trainerName = _("LOLA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lola3 }
+ },
+
+ [TRAINER_LOLA_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_F,
+ .trainerName = _("LOLA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lola4 }
+ },
+
+ [TRAINER_LOLA_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_F,
+ .trainerName = _("LOLA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lola5 }
+ },
+
+ [TRAINER_RICKY_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_TUBER_2,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_M,
+ .trainerName = _("RICKY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Ricky1 }
+ },
+
+ [TRAINER_SIMON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_2,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_M,
+ .trainerName = _("SIMON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Simon }
+ },
+
+ [TRAINER_CHARLIE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_2,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_M,
+ .trainerName = _("CHARLIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Charlie }
+ },
+
+ [TRAINER_RICKY_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_TUBER_2,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_M,
+ .trainerName = _("RICKY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Ricky2 }
+ },
+
+ [TRAINER_RICKY_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_TUBER_2,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_M,
+ .trainerName = _("RICKY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Ricky3 }
+ },
+
+ [TRAINER_RICKY_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_TUBER_2,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_M,
+ .trainerName = _("RICKY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Ricky4 }
+ },
+
+ [TRAINER_RICKY_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_TUBER_2,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_M,
+ .trainerName = _("RICKY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Ricky5 }
+ },
+
+ [TRAINER_RANDALL] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("RANDALL"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.ItemCustomMoves = gTrainerParty_Randall }
+ },
+
+ [TRAINER_PARKER] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("PARKER"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.ItemCustomMoves = gTrainerParty_Parker }
+ },
+
+ [TRAINER_GEORGE] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("GEORGE"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.ItemCustomMoves = gTrainerParty_George }
+ },
+
+ [TRAINER_BERKE] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("BERKE"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.ItemCustomMoves = gTrainerParty_Berke }
+ },
+
+ [TRAINER_BRAXTON] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("BRAXTON"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.NoItemCustomMoves = gTrainerParty_Braxton }
+ },
+
+ [TRAINER_VINCENT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("VINCENT"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Vincent }
+ },
+
+ [TRAINER_LEROY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("LEROY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Leroy }
+ },
+
+ [TRAINER_WILTON_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("WILTON"),
+ .items = {ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Wilton1 }
+ },
+
+ [TRAINER_EDGAR] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("EDGAR"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Edgar }
+ },
+
+ [TRAINER_ALBERT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("ALBERT"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Albert }
+ },
+
+ [TRAINER_SAMUEL] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("SAMUEL"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Samuel }
+ },
+
+ [TRAINER_VITO] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("VITO"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Vito }
+ },
+
+ [TRAINER_OWEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("OWEN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Owen }
+ },
+
+ [TRAINER_WILTON_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("WILTON"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Wilton2 }
+ },
+
+ [TRAINER_WILTON_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("WILTON"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Wilton3 }
+ },
+
+ [TRAINER_WILTON_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("WILTON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Wilton4 }
+ },
+
+ [TRAINER_WILTON_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("WILTON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Wilton5 }
+ },
+
+ [TRAINER_WARREN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("WARREN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Warren }
+ },
+
+ [TRAINER_MARY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("MARY"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.ItemCustomMoves = gTrainerParty_Mary }
+ },
+
+ [TRAINER_ALEXIA] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("ALEXIA"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.ItemCustomMoves = gTrainerParty_Alexia }
+ },
+
+ [TRAINER_JODY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("JODY"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 1,
+ .party = {.ItemCustomMoves = gTrainerParty_Jody }
+ },
+
+ [TRAINER_WENDY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("WENDY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 3,
+ .party = {.NoItemCustomMoves = gTrainerParty_Wendy }
+ },
+
+ [TRAINER_KEIRA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("KEIRA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Keira }
+ },
+
+ [TRAINER_BROOKE_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("BROOKE"),
+ .items = {ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brooke1 }
+ },
+
+ [TRAINER_JENNIFER] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("JENNIFER"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jennifer }
+ },
+
+ [TRAINER_HOPE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("HOPE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Hope }
+ },
+
+ [TRAINER_SHANNON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("SHANNON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shannon }
+ },
+
+ [TRAINER_MICHELLE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("MICHELLE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Michelle }
+ },
+
+ [TRAINER_CAROLINE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("CAROLINE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Caroline }
+ },
+
+ [TRAINER_JULIE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("JULIE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Julie }
+ },
+
+ [TRAINER_BROOKE_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("BROOKE"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brooke2 }
+ },
+
+ [TRAINER_BROOKE_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("BROOKE"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brooke3 }
+ },
+
+ [TRAINER_BROOKE_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("BROOKE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brooke4 }
+ },
+
+ [TRAINER_BROOKE_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("BROOKE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brooke5 }
+ },
+
+ [TRAINER_PATRICIA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("PATRICIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Patricia }
+ },
+
+ [TRAINER_KINDRA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("KINDRA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kindra }
+ },
+
+ [TRAINER_TAMMY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("TAMMY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tammy }
+ },
+
+ [TRAINER_VALERIE_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("VALERIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Valerie1 }
+ },
+
+ [TRAINER_TASHA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("TASHA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tasha }
+ },
+
+ [TRAINER_VALERIE_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("VALERIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Valerie2 }
+ },
+
+ [TRAINER_VALERIE_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("VALERIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Valerie3 }
+ },
+
+ [TRAINER_VALERIE_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("VALERIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Valerie4 }
+ },
+
+ [TRAINER_VALERIE_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("VALERIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Valerie5 }
+ },
+
+ [TRAINER_CINDY_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LADY,
+ .trainerName = _("CINDY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Cindy1 }
+ },
+
+ [TRAINER_DAPHNE] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LADY,
+ .trainerName = _("DAPHNE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.ItemCustomMoves = gTrainerParty_Daphne }
+ },
+
+ [TRAINER_GRUNT_23] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt23 }
+ },
+
+ [TRAINER_CINDY_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LADY,
+ .trainerName = _("CINDY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemCustomMoves = gTrainerParty_Cindy2 }
+ },
+
+ [TRAINER_BRIANNA] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LADY,
+ .trainerName = _("BRIANNA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Brianna }
+ },
+
+ [TRAINER_NAOMI] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LADY,
+ .trainerName = _("NAOMI"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Naomi }
+ },
+
+ [TRAINER_CINDY_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LADY,
+ .trainerName = _("CINDY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Cindy3 }
+ },
+
+ [TRAINER_CINDY_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LADY,
+ .trainerName = _("CINDY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Cindy4 }
+ },
+
+ [TRAINER_CINDY_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LADY,
+ .trainerName = _("CINDY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Cindy5 }
+ },
+
+ [TRAINER_CINDY_6] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LADY,
+ .trainerName = _("CINDY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemCustomMoves = gTrainerParty_Cindy6 }
+ },
+
+ [TRAINER_MELISSA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("MELISSA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Melissa }
+ },
+
+ [TRAINER_SHEILA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("SHEILA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sheila }
+ },
+
+ [TRAINER_SHIRLEY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("SHIRLEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shirley }
+ },
+
+ [TRAINER_JESSICA_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("JESSICA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Jessica1 }
+ },
+
+ [TRAINER_CONNIE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("CONNIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Connie }
+ },
+
+ [TRAINER_BRIDGET] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("BRIDGET"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Bridget }
+ },
+
+ [TRAINER_OLIVIA] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("OLIVIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemCustomMoves = gTrainerParty_Olivia }
+ },
+
+ [TRAINER_TIFFANY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("TIFFANY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tiffany }
+ },
+
+ [TRAINER_JESSICA_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("JESSICA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Jessica2 }
+ },
+
+ [TRAINER_JESSICA_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("JESSICA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Jessica3 }
+ },
+
+ [TRAINER_JESSICA_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("JESSICA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Jessica4 }
+ },
+
+ [TRAINER_JESSICA_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("JESSICA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Jessica5 }
+ },
+
+ [TRAINER_WINSTON_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_RICH_BOY,
+ .trainerName = _("WINSTON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Winston1 }
+ },
+
+ [TRAINER_MOLLIE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_F,
+ .trainerName = _("MOLLIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Mollie }
+ },
+
+ [TRAINER_GARRET] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_RICH_BOY,
+ .trainerName = _("GARRET"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Garret }
+ },
+
+ [TRAINER_WINSTON_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_RICH_BOY,
+ .trainerName = _("WINSTON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Winston2 }
+ },
+
+ [TRAINER_WINSTON_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_RICH_BOY,
+ .trainerName = _("WINSTON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Winston3 }
+ },
+
+ [TRAINER_WINSTON_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_RICH_BOY,
+ .trainerName = _("WINSTON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Winston4 }
+ },
+
+ [TRAINER_WINSTON_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_RICH_BOY,
+ .trainerName = _("WINSTON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemCustomMoves = gTrainerParty_Winston5 }
+ },
+
+ [TRAINER_STEVE_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_POKEMANIAC,
+ .trainerName = _("STEVE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Steve1 }
+ },
+
+ [TRAINER_THALIA_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("THALIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Thalia1 }
+ },
+
+ [TRAINER_MARK] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_POKEMANIAC,
+ .trainerName = _("MARK"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Mark }
+ },
+
+ [TRAINER_GRUNT_24] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt24 }
+ },
+
+ [TRAINER_STEVE_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_POKEMANIAC,
+ .trainerName = _("STEVE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Steve2 }
+ },
+
+ [TRAINER_STEVE_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_POKEMANIAC,
+ .trainerName = _("STEVE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Steve3 }
+ },
+
+ [TRAINER_STEVE_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_POKEMANIAC,
+ .trainerName = _("STEVE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Steve4 }
+ },
+
+ [TRAINER_STEVE_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_POKEMANIAC,
+ .trainerName = _("STEVE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Steve5 }
+ },
+
+ [TRAINER_LUIS] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("LUIS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Luis }
+ },
+
+ [TRAINER_DOMINIK] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("DOMINIK"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dominik }
+ },
+
+ [TRAINER_DOUGLAS] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("DOUGLAS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Douglas }
+ },
+
+ [TRAINER_DARRIN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("DARRIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Darrin }
+ },
+
+ [TRAINER_TONY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("TONY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tony1 }
+ },
+
+ [TRAINER_JEROME] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("JEROME"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jerome }
+ },
+
+ [TRAINER_MATTHEW] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("MATTHEW"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Matthew }
+ },
+
+ [TRAINER_DAVID] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("DAVID"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_David }
+ },
+
+ [TRAINER_SPENCER] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("SPENCER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Spencer }
+ },
+
+ [TRAINER_ROLAND] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("ROLAND"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Roland }
+ },
+
+ [TRAINER_NOLEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("NOLEN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nolen }
+ },
+
+ [TRAINER_STAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("STAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Stan }
+ },
+
+ [TRAINER_BARRY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("BARRY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Barry }
+ },
+
+ [TRAINER_DEAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("DEAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dean }
+ },
+
+ [TRAINER_RODNEY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("RODNEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Rodney }
+ },
+
+ [TRAINER_RICHARD] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("RICHARD"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Richard }
+ },
+
+ [TRAINER_HERMAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("HERMAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Herman }
+ },
+
+ [TRAINER_SANTIAGO] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("SANTIAGO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Santiago }
+ },
+
+ [TRAINER_GILBERT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("GILBERT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Gilbert }
+ },
+
+ [TRAINER_FRANKLIN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("FRANKLIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Franklin }
+ },
+
+ [TRAINER_KEVIN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("KEVIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kevin }
+ },
+
+ [TRAINER_JACK] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("JACK"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jack }
+ },
+
+ [TRAINER_DUDLEY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("DUDLEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dudley }
+ },
+
+ [TRAINER_CHAD] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("CHAD"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Chad }
+ },
+
+ [TRAINER_TONY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("TONY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tony2 }
+ },
+
+ [TRAINER_TONY_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("TONY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tony3 }
+ },
+
+ [TRAINER_TONY_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("TONY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tony4 }
+ },
+
+ [TRAINER_TONY_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("TONY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tony5 }
+ },
+
+ [TRAINER_TAKAO] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("TAKAO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Takao }
+ },
+
+ [TRAINER_HITOSHI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("HITOSHI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Hitoshi }
+ },
+
+ [TRAINER_KIYO] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("KIYO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kiyo }
+ },
+
+ [TRAINER_KOICHI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("KOICHI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Koichi }
+ },
+
+ [TRAINER_NOB_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("NOB"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nob1 }
+ },
+
+ [TRAINER_NOB_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("NOB"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nob2 }
+ },
+
+ [TRAINER_NOB_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("NOB"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nob3 }
+ },
+
+ [TRAINER_NOB_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("NOB"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nob4 }
+ },
+
+ [TRAINER_NOB_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("NOB"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.ItemDefaultMoves = gTrainerParty_Nob5 }
+ },
+
+ [TRAINER_YUJI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("YUJI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Yuji }
+ },
+
+ [TRAINER_DAISUKE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("DAISUKE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Daisuke }
+ },
+
+ [TRAINER_ATSUSHI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("ATSUSHI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Atsushi }
+ },
+
+ [TRAINER_KIRK] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("KIRK"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Kirk }
+ },
+
+ [TRAINER_GRUNT_25] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt25 }
+ },
+
+ [TRAINER_GRUNT_26] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt26 }
+ },
+
+ [TRAINER_SHAWN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("SHAWN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shawn }
+ },
+
+ [TRAINER_FERNANDO_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("FERNANDO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Fernando1 }
+ },
+
+ [TRAINER_DALTON_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("DALTON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dalton1 }
+ },
+
+ [TRAINER_DALTON_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("DALTON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dalton2 }
+ },
+
+ [TRAINER_DALTON_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("DALTON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dalton3 }
+ },
+
+ [TRAINER_DALTON_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("DALTON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dalton4 }
+ },
+
+ [TRAINER_DALTON_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("DALTON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dalton5 }
+ },
+
+ [TRAINER_COLE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("COLE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cole }
+ },
+
+ [TRAINER_JEFF] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("JEFF"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jeff }
+ },
+
+ [TRAINER_AXLE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("AXLE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Axle }
+ },
+
+ [TRAINER_JACE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("JACE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jace }
+ },
+
+ [TRAINER_KEEGAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("KEEGAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Keegan }
+ },
+
+ [TRAINER_BERNIE_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("BERNIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Bernie1 }
+ },
+
+ [TRAINER_BERNIE_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("BERNIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Bernie2 }
+ },
+
+ [TRAINER_BERNIE_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("BERNIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Bernie3 }
+ },
+
+ [TRAINER_BERNIE_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("BERNIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Bernie4 }
+ },
+
+ [TRAINER_BERNIE_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("BERNIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Bernie5 }
+ },
+
+ [TRAINER_DREW] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("DREW"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Drew }
+ },
+
+ [TRAINER_BEAU] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("BEAU"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemCustomMoves = gTrainerParty_Beau }
+ },
+
+ [TRAINER_LARRY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("LARRY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Larry }
+ },
+
+ [TRAINER_SHANE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("SHANE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shane }
+ },
+
+ [TRAINER_JUSTIN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("JUSTIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Justin }
+ },
+
+ [TRAINER_ETHAN_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("ETHAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ethan1 }
+ },
+
+ [TRAINER_AUTUMN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("AUTUMN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Autumn }
+ },
+
+ [TRAINER_TRAVIS] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("TRAVIS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Travis }
+ },
+
+ [TRAINER_ETHAN_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("ETHAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ethan2 }
+ },
+
+ [TRAINER_ETHAN_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("ETHAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ethan3 }
+ },
+
+ [TRAINER_ETHAN_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("ETHAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ethan4 }
+ },
+
+ [TRAINER_ETHAN_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("ETHAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ethan5 }
+ },
+
+ [TRAINER_BRENT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_BUG_MANIAC,
+ .trainerName = _("BRENT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brent }
+ },
+
+ [TRAINER_DONALD] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_BUG_MANIAC,
+ .trainerName = _("DONALD"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Donald }
+ },
+
+ [TRAINER_TAYLOR] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_BUG_MANIAC,
+ .trainerName = _("TAYLOR"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Taylor }
+ },
+
+ [TRAINER_JEFFREY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_BUG_MANIAC,
+ .trainerName = _("JEFFREY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey1 }
+ },
+
+ [TRAINER_DEREK] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_BUG_MANIAC,
+ .trainerName = _("DEREK"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Derek }
+ },
+
+ [TRAINER_JEFFREY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_BUG_MANIAC,
+ .trainerName = _("JEFFREY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey2 }
+ },
+
+ [TRAINER_JEFFREY_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_BUG_MANIAC,
+ .trainerName = _("JEFFREY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey3 }
+ },
+
+ [TRAINER_JEFFREY_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_BUG_MANIAC,
+ .trainerName = _("JEFFREY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey4 }
+ },
+
+ [TRAINER_JEFFREY_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_BUG_MANIAC,
+ .trainerName = _("JEFFREY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 5,
+ .party = {.ItemDefaultMoves = gTrainerParty_Jeffrey5 }
+ },
+
+ [TRAINER_EDWARD] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("EDWARD"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Edward }
+ },
+
+ [TRAINER_PRESTON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("PRESTON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Preston }
+ },
+
+ [TRAINER_VIRGIL] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("VIRGIL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Virgil }
+ },
+
+ [TRAINER_BLAKE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("BLAKE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Blake }
+ },
+
+ [TRAINER_WILLIAM] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("WILLIAM"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_William }
+ },
+
+ [TRAINER_JOSHUA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("JOSHUA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Joshua }
+ },
+
+ [TRAINER_CAMERON_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("CAMERON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cameron1 }
+ },
+
+ [TRAINER_CAMERON_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("CAMERON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cameron2 }
+ },
+
+ [TRAINER_CAMERON_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("CAMERON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cameron3 }
+ },
+
+ [TRAINER_CAMERON_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("CAMERON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cameron4 }
+ },
+
+ [TRAINER_CAMERON_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("CAMERON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cameron5 }
+ },
+
+ [TRAINER_JACLYN] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("JACLYN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Jaclyn }
+ },
+
+ [TRAINER_HANNAH] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("HANNAH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Hannah }
+ },
+
+ [TRAINER_SAMANTHA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("SAMANTHA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Samantha }
+ },
+
+ [TRAINER_MAURA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("MAURA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Maura }
+ },
+
+ [TRAINER_KAYLA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("KAYLA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kayla }
+ },
+
+ [TRAINER_ALEXIS] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("ALEXIS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Alexis }
+ },
+
+ [TRAINER_JACKI_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("JACKI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jacki1 }
+ },
+
+ [TRAINER_JACKI_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("JACKI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jacki2 }
+ },
+
+ [TRAINER_JACKI_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("JACKI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jacki3 }
+ },
+
+ [TRAINER_JACKI_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("JACKI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jacki4 }
+ },
+
+ [TRAINER_JACKI_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("JACKI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jacki5 }
+ },
+
+ [TRAINER_WALTER_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_GENTLEMAN,
+ .trainerName = _("WALTER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Walter1 }
+ },
+
+ [TRAINER_MICAH] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_GENTLEMAN,
+ .trainerName = _("MICAH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Micah }
+ },
+
+ [TRAINER_THOMAS] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_GENTLEMAN,
+ .trainerName = _("THOMAS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Thomas }
+ },
+
+ [TRAINER_WALTER_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_GENTLEMAN,
+ .trainerName = _("WALTER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Walter2 }
+ },
+
+ [TRAINER_WALTER_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_GENTLEMAN,
+ .trainerName = _("WALTER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Walter3 }
+ },
+
+ [TRAINER_WALTER_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_GENTLEMAN,
+ .trainerName = _("WALTER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Walter4 }
+ },
+
+ [TRAINER_WALTER_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_GENTLEMAN,
+ .trainerName = _("WALTER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemCustomMoves = gTrainerParty_Walter5 }
+ },
+
+ [TRAINER_SIDNEY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_ELITE_FOUR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR,
+ .trainerPic = TRAINER_PIC_ELITE_FOUR_SIDNEY,
+ .trainerName = _("SIDNEY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xf,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Sidney }
+ },
+
+ [TRAINER_PHOEBE] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_ELITE_FOUR,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR,
+ .trainerPic = TRAINER_PIC_ELITE_FOUR_PHOEBE,
+ .trainerName = _("PHOEBE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Phoebe }
+ },
+
+ [TRAINER_GLACIA] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_ELITE_FOUR,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR,
+ .trainerPic = TRAINER_PIC_ELITE_FOUR_GLACIA,
+ .trainerName = _("GLACIA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Glacia }
+ },
+
+ [TRAINER_DRAKE] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_ELITE_FOUR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR,
+ .trainerPic = TRAINER_PIC_ELITE_FOUR_DRAKE,
+ .trainerName = _("DRAKE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Drake }
+ },
+
+ [TRAINER_ROXANNE_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_ROXANNE,
+ .trainerName = _("ROXANNE"),
+ .items = {ITEM_POTION, ITEM_POTION, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.ItemCustomMoves = gTrainerParty_Roxanne1 }
+ },
+
+ [TRAINER_BRAWLY_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_BRAWLY,
+ .trainerName = _("BRAWLY"),
+ .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.ItemCustomMoves = gTrainerParty_Brawly1 }
+ },
+
+ [TRAINER_WATTSON_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_WATTSON,
+ .trainerName = _("WATTSON"),
+ .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.ItemCustomMoves = gTrainerParty_Wattson1 }
+ },
+
+ [TRAINER_FLANNERY_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_FLANNERY,
+ .trainerName = _("FLANNERY"),
+ .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.ItemCustomMoves = gTrainerParty_Flannery1 }
+ },
+
+ [TRAINER_NORMAN_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_NORMAN,
+ .trainerName = _("NORMAN"),
+ .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.ItemCustomMoves = gTrainerParty_Norman1 }
+ },
+
+ [TRAINER_WINONA_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_WINONA,
+ .trainerName = _("WINONA"),
+ .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x17,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Winona1 }
+ },
+
+ [TRAINER_TATE_AND_LIZA_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_TATE_AND_LIZA,
+ .trainerName = _("TATE&LIZA"),
+ .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_HYPER_POTION},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza1 }
+ },
+
+ [TRAINER_JUAN_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_JUAN,
+ .trainerName = _("JUAN"),
+ .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Juan1 }
+ },
+
+ [TRAINER_JERRY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_M,
+ .trainerName = _("JERRY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jerry1 }
+ },
+
+ [TRAINER_TED] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_M,
+ .trainerName = _("TED"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ted }
+ },
+
+ [TRAINER_PAUL] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_M,
+ .trainerName = _("PAUL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Paul }
+ },
+
+ [TRAINER_JERRY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_M,
+ .trainerName = _("JERRY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jerry2 }
+ },
+
+ [TRAINER_JERRY_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_M,
+ .trainerName = _("JERRY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jerry3 }
+ },
+
+ [TRAINER_JERRY_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_M,
+ .trainerName = _("JERRY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jerry4 }
+ },
+
+ [TRAINER_JERRY_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_M,
+ .trainerName = _("JERRY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jerry5 }
+ },
+
+ [TRAINER_KAREN_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_F,
+ .trainerName = _("KAREN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Karen1 }
+ },
+
+ [TRAINER_GEORGIA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_F,
+ .trainerName = _("GEORGIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Georgia }
+ },
+
+ [TRAINER_KAREN_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_F,
+ .trainerName = _("KAREN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Karen2 }
+ },
+
+ [TRAINER_KAREN_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_F,
+ .trainerName = _("KAREN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Karen3 }
+ },
+
+ [TRAINER_KAREN_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_F,
+ .trainerName = _("KAREN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Karen4 }
+ },
+
+ [TRAINER_KAREN_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SCHOOL_KID,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_SCHOOL_KID_F,
+ .trainerName = _("KAREN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Karen5 }
+ },
+
+ [TRAINER_KATE_AND_JOY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_SR_AND_JR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_SR_AND_JR,
+ .trainerName = _("KATE & JOY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_KateAndJoy }
+ },
+
+ [TRAINER_ANNA_AND_MEG_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_SR_AND_JR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_SR_AND_JR,
+ .trainerName = _("ANNA & MEG"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg1 }
+ },
+
+ [TRAINER_ANNA_AND_MEG_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_SR_AND_JR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_SR_AND_JR,
+ .trainerName = _("ANNA & MEG"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg2 }
+ },
+
+ [TRAINER_ANNA_AND_MEG_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_SR_AND_JR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_SR_AND_JR,
+ .trainerName = _("ANNA & MEG"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg3 }
+ },
+
+ [TRAINER_ANNA_AND_MEG_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_SR_AND_JR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_SR_AND_JR,
+ .trainerName = _("ANNA & MEG"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg4 }
+ },
+
+ [TRAINER_ANNA_AND_MEG_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_SR_AND_JR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_SR_AND_JR,
+ .trainerName = _("ANNA & MEG"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg5 }
+ },
+
+ [TRAINER_VICTOR] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_WINSTRATE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_M,
+ .trainerName = _("VICTOR"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.ItemDefaultMoves = gTrainerParty_Victor }
+ },
+
+ [TRAINER_MIGUEL_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_M,
+ .trainerName = _("MIGUEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Miguel1 }
+ },
+
+ [TRAINER_COLTON] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_M,
+ .trainerName = _("COLTON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Colton }
+ },
+
+ [TRAINER_MIGUEL_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_M,
+ .trainerName = _("MIGUEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Miguel2 }
+ },
+
+ [TRAINER_MIGUEL_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_M,
+ .trainerName = _("MIGUEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Miguel3 }
+ },
+
+ [TRAINER_MIGUEL_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_M,
+ .trainerName = _("MIGUEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Miguel4 }
+ },
+
+ [TRAINER_MIGUEL_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_M,
+ .trainerName = _("MIGUEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Miguel5 }
+ },
+
+ [TRAINER_VICTORIA] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_WINSTRATE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_F,
+ .trainerName = _("VICTORIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x3,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Victoria }
+ },
+
+ [TRAINER_VANESSA] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_F,
+ .trainerName = _("VANESSA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.ItemDefaultMoves = gTrainerParty_Vanessa }
+ },
+
+ [TRAINER_BETHANY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_F,
+ .trainerName = _("BETHANY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.ItemDefaultMoves = gTrainerParty_Bethany }
+ },
+
+ [TRAINER_ISABEL_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_F,
+ .trainerName = _("ISABEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.ItemDefaultMoves = gTrainerParty_Isabel1 }
+ },
+
+ [TRAINER_ISABEL_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_F,
+ .trainerName = _("ISABEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.ItemDefaultMoves = gTrainerParty_Isabel2 }
+ },
+
+ [TRAINER_ISABEL_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_F,
+ .trainerName = _("ISABEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.ItemDefaultMoves = gTrainerParty_Isabel3 }
+ },
+
+ [TRAINER_ISABEL_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_F,
+ .trainerName = _("ISABEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.ItemDefaultMoves = gTrainerParty_Isabel4 }
+ },
+
+ [TRAINER_ISABEL_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_F,
+ .trainerName = _("ISABEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.ItemDefaultMoves = gTrainerParty_Isabel5 }
+ },
+
+ [TRAINER_TIMOTHY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_M,
+ .trainerName = _("TIMOTHY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Timothy1 }
+ },
+
+ [TRAINER_TIMOTHY_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_M,
+ .trainerName = _("TIMOTHY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Timothy2 }
+ },
+
+ [TRAINER_TIMOTHY_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_M,
+ .trainerName = _("TIMOTHY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Timothy3 }
+ },
+
+ [TRAINER_TIMOTHY_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_M,
+ .trainerName = _("TIMOTHY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Timothy4 }
+ },
+
+ [TRAINER_TIMOTHY_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_M,
+ .trainerName = _("TIMOTHY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Timothy5 }
+ },
+
+ [TRAINER_VICKY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_WINSTRATE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_F,
+ .trainerName = _("VICKY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Vicky }
+ },
+
+ [TRAINER_SHELBY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_F,
+ .trainerName = _("SHELBY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shelby1 }
+ },
+
+ [TRAINER_SHELBY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_F,
+ .trainerName = _("SHELBY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shelby2 }
+ },
+
+ [TRAINER_SHELBY_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_F,
+ .trainerName = _("SHELBY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shelby3 }
+ },
+
+ [TRAINER_SHELBY_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_F,
+ .trainerName = _("SHELBY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shelby4 }
+ },
+
+ [TRAINER_SHELBY_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_F,
+ .trainerName = _("SHELBY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shelby5 }
+ },
+
+ [TRAINER_CALVIN_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("CALVIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Calvin1 }
+ },
+
+ [TRAINER_BILLY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("BILLY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Billy }
+ },
+
+ [TRAINER_JOSH] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("JOSH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Josh }
+ },
+
+ [TRAINER_TOMMY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("TOMMY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tommy }
+ },
+
+ [TRAINER_JOEY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("JOEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Joey }
+ },
+
+ [TRAINER_BEN] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("BEN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Ben }
+ },
+
+ [TRAINER_QUINCY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("QUINCY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Quincy }
+ },
+
+ [TRAINER_KATELYNN] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("KATELYNN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Katelynn }
+ },
+
+ [TRAINER_JAYLEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("JAYLEN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jaylen }
+ },
+
+ [TRAINER_DILLON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("DILLON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dillon }
+ },
+
+ [TRAINER_CALVIN_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("CALVIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Calvin2 }
+ },
+
+ [TRAINER_CALVIN_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("CALVIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Calvin3 }
+ },
+
+ [TRAINER_CALVIN_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("CALVIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Calvin4 }
+ },
+
+ [TRAINER_CALVIN_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("CALVIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Calvin5 }
+ },
+
+ [TRAINER_EDDIE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("EDDIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Eddie }
+ },
+
+ [TRAINER_ALLEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("ALLEN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Allen }
+ },
+
+ [TRAINER_TIMMY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("TIMMY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Timmy }
+ },
+
+ [TRAINER_WALLACE] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_CHAMPION,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CHAMPION_WALLACE,
+ .trainerName = _("WALLACE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Wallace }
+ },
+
+ [TRAINER_ANDREW] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("ANDREW"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Andrew }
+ },
+
+ [TRAINER_IVAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("IVAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ivan }
+ },
+
+ [TRAINER_CLAUDE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("CLAUDE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Claude }
+ },
+
+ [TRAINER_ELLIOT_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("ELLIOT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Elliot1 }
+ },
+
+ [TRAINER_NED] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("NED"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ned }
+ },
+
+ [TRAINER_DALE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("DALE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dale }
+ },
+
+ [TRAINER_NOLAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("NOLAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nolan }
+ },
+
+ [TRAINER_BARNY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("BARNY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Barny }
+ },
+
+ [TRAINER_WADE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("WADE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Wade }
+ },
+
+ [TRAINER_CARTER] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("CARTER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Carter }
+ },
+
+ [TRAINER_ELLIOT_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("ELLIOT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Elliot2 }
+ },
+
+ [TRAINER_ELLIOT_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("ELLIOT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Elliot3 }
+ },
+
+ [TRAINER_ELLIOT_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("ELLIOT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Elliot4 }
+ },
+
+ [TRAINER_ELLIOT_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("ELLIOT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x3,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Elliot5 }
+ },
+
+ [TRAINER_RONALD] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("RONALD"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ronald }
+ },
+
+ [TRAINER_JACOB] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M,
+ .trainerName = _("JACOB"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jacob }
+ },
+
+ [TRAINER_ANTHONY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M,
+ .trainerName = _("ANTHONY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Anthony }
+ },
+
+ [TRAINER_BENJAMIN_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M,
+ .trainerName = _("BENJAMIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin1 }
+ },
+
+ [TRAINER_BENJAMIN_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M,
+ .trainerName = _("BENJAMIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin2 }
+ },
+
+ [TRAINER_BENJAMIN_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M,
+ .trainerName = _("BENJAMIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin3 }
+ },
+
+ [TRAINER_BENJAMIN_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M,
+ .trainerName = _("BENJAMIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin4 }
+ },
+
+ [TRAINER_BENJAMIN_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M,
+ .trainerName = _("BENJAMIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin5 }
+ },
+
+ [TRAINER_ABIGAIL_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F,
+ .trainerName = _("ABIGAIL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Abigail1 }
+ },
+
+ [TRAINER_JASMINE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F,
+ .trainerName = _("JASMINE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jasmine }
+ },
+
+ [TRAINER_ABIGAIL_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F,
+ .trainerName = _("ABIGAIL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Abigail2 }
+ },
+
+ [TRAINER_ABIGAIL_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F,
+ .trainerName = _("ABIGAIL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Abigail3 }
+ },
+
+ [TRAINER_ABIGAIL_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F,
+ .trainerName = _("ABIGAIL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Abigail4 }
+ },
+
+ [TRAINER_ABIGAIL_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F,
+ .trainerName = _("ABIGAIL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Abigail5 }
+ },
+
+ [TRAINER_DYLAN_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_M,
+ .trainerName = _("DYLAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dylan1 }
+ },
+
+ [TRAINER_DYLAN_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_M,
+ .trainerName = _("DYLAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dylan2 }
+ },
+
+ [TRAINER_DYLAN_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_M,
+ .trainerName = _("DYLAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dylan3 }
+ },
+
+ [TRAINER_DYLAN_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_M,
+ .trainerName = _("DYLAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dylan4 }
+ },
+
+ [TRAINER_DYLAN_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_M,
+ .trainerName = _("DYLAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dylan5 }
+ },
+
+ [TRAINER_MARIA_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F,
+ .trainerName = _("MARIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Maria1 }
+ },
+
+ [TRAINER_MARIA_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F,
+ .trainerName = _("MARIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Maria2 }
+ },
+
+ [TRAINER_MARIA_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F,
+ .trainerName = _("MARIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Maria3 }
+ },
+
+ [TRAINER_MARIA_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F,
+ .trainerName = _("MARIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Maria4 }
+ },
+
+ [TRAINER_MARIA_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F,
+ .trainerName = _("MARIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Maria5 }
+ },
+
+ [TRAINER_CAMDEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("CAMDEN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Camden }
+ },
+
+ [TRAINER_DEMETRIUS] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("DEMETRIUS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Demetrius }
+ },
+
+ [TRAINER_ISAIAH_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("ISAIAH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah1 }
+ },
+
+ [TRAINER_PABLO_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("PABLO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Pablo1 }
+ },
+
+ [TRAINER_CHASE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("CHASE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Chase }
+ },
+
+ [TRAINER_ISAIAH_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("ISAIAH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah2 }
+ },
+
+ [TRAINER_ISAIAH_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("ISAIAH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah3 }
+ },
+
+ [TRAINER_ISAIAH_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("ISAIAH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah4 }
+ },
+
+ [TRAINER_ISAIAH_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("ISAIAH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah5 }
+ },
+
+ [TRAINER_ISOBEL] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F,
+ .trainerName = _("ISOBEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isobel }
+ },
+
+ [TRAINER_DONNY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F,
+ .trainerName = _("DONNY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Donny }
+ },
+
+ [TRAINER_TALIA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F,
+ .trainerName = _("TALIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Talia }
+ },
+
+ [TRAINER_KATELYN_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F,
+ .trainerName = _("KATELYN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn1 }
+ },
+
+ [TRAINER_ALLISON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F,
+ .trainerName = _("ALLISON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Allison }
+ },
+
+ [TRAINER_KATELYN_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F,
+ .trainerName = _("KATELYN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn2 }
+ },
+
+ [TRAINER_KATELYN_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F,
+ .trainerName = _("KATELYN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn3 }
+ },
+
+ [TRAINER_KATELYN_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F,
+ .trainerName = _("KATELYN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn4 }
+ },
+
+ [TRAINER_KATELYN_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F,
+ .trainerName = _("KATELYN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn5 }
+ },
+
+ [TRAINER_NICOLAS_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_DRAGON_TAMER,
+ .trainerName = _("NICOLAS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas1 }
+ },
+
+ [TRAINER_NICOLAS_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_DRAGON_TAMER,
+ .trainerName = _("NICOLAS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas2 }
+ },
+
+ [TRAINER_NICOLAS_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_DRAGON_TAMER,
+ .trainerName = _("NICOLAS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas3 }
+ },
+
+ [TRAINER_NICOLAS_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_DRAGON_TAMER,
+ .trainerName = _("NICOLAS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas4 }
+ },
+
+ [TRAINER_NICOLAS_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_DRAGON_TAMER,
+ .trainerName = _("NICOLAS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.ItemDefaultMoves = gTrainerParty_Nicolas5 }
+ },
+
+ [TRAINER_AARON] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_DRAGON_TAMER,
+ .trainerName = _("AARON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Aaron }
+ },
+
+ [TRAINER_PERRY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("PERRY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Perry }
+ },
+
+ [TRAINER_HUGH] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("HUGH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Hugh }
+ },
+
+ [TRAINER_PHIL] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("PHIL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Phil }
+ },
+
+ [TRAINER_JARED] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("JARED"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jared }
+ },
+
+ [TRAINER_HUMBERTO] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("HUMBERTO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Humberto }
+ },
+
+ [TRAINER_PRESLEY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("PRESLEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Presley }
+ },
+
+ [TRAINER_EDWARDO] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("EDWARDO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Edwardo }
+ },
+
+ [TRAINER_COLIN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("COLIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Colin }
+ },
+
+ [TRAINER_ROBERT_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("ROBERT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Robert1 }
+ },
+
+ [TRAINER_BENNY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("BENNY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Benny }
+ },
+
+ [TRAINER_CHESTER] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("CHESTER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Chester }
+ },
+
+ [TRAINER_ROBERT_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("ROBERT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Robert2 }
+ },
+
+ [TRAINER_ROBERT_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("ROBERT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Robert3 }
+ },
+
+ [TRAINER_ROBERT_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("ROBERT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Robert4 }
+ },
+
+ [TRAINER_ROBERT_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("ROBERT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Robert5 }
+ },
+
+ [TRAINER_ALEX] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("ALEX"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Alex }
+ },
+
+ [TRAINER_BECK] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("BECK"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Beck }
+ },
+
+ [TRAINER_YASU] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("YASU"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x3,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Yasu }
+ },
+
+ [TRAINER_TAKASHI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("TAKASHI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x3,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Takashi }
+ },
+
+ [TRAINER_DIANNE] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("DIANNE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 2,
+ .party = {.ItemCustomMoves = gTrainerParty_Dianne }
+ },
+
+ [TRAINER_JANI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_F,
+ .trainerName = _("JANI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jani }
+ },
+
+ [TRAINER_LAO_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("LAO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 3,
+ .party = {.NoItemCustomMoves = gTrainerParty_Lao1 }
+ },
+
+ [TRAINER_LUNG] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("LUNG"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lung }
+ },
+
+ [TRAINER_LAO_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("LAO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 4,
+ .party = {.NoItemCustomMoves = gTrainerParty_Lao2 }
+ },
+
+ [TRAINER_LAO_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("LAO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 4,
+ .party = {.NoItemCustomMoves = gTrainerParty_Lao3 }
+ },
+
+ [TRAINER_LAO_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("LAO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 4,
+ .party = {.NoItemCustomMoves = gTrainerParty_Lao4 }
+ },
+
+ [TRAINER_LAO_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("LAO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 4,
+ .party = {.ItemCustomMoves = gTrainerParty_Lao5 }
+ },
+
+ [TRAINER_JOCELYN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("JOCELYN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jocelyn }
+ },
+
+ [TRAINER_LAURA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("LAURA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Laura }
+ },
+
+ [TRAINER_CYNDY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("CYNDY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy1 }
+ },
+
+ [TRAINER_CORA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("CORA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cora }
+ },
+
+ [TRAINER_PAULA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("PAULA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Paula }
+ },
+
+ [TRAINER_CYNDY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("CYNDY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy2 }
+ },
+
+ [TRAINER_CYNDY_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("CYNDY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy3 }
+ },
+
+ [TRAINER_CYNDY_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("CYNDY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy4 }
+ },
+
+ [TRAINER_CYNDY_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("CYNDY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy5 }
+ },
+
+ [TRAINER_MADELINE_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_PARASOL_LADY,
+ .trainerName = _("MADELINE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Madeline1 }
+ },
+
+ [TRAINER_CLARISSA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_PARASOL_LADY,
+ .trainerName = _("CLARISSA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Clarissa }
+ },
+
+ [TRAINER_ANGELICA] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_PARASOL_LADY,
+ .trainerName = _("ANGELICA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Angelica }
+ },
+
+ [TRAINER_MADELINE_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_PARASOL_LADY,
+ .trainerName = _("MADELINE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Madeline2 }
+ },
+
+ [TRAINER_MADELINE_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_PARASOL_LADY,
+ .trainerName = _("MADELINE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Madeline3 }
+ },
+
+ [TRAINER_MADELINE_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_PARASOL_LADY,
+ .trainerName = _("MADELINE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Madeline4 }
+ },
+
+ [TRAINER_MADELINE_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_PARASOL_LADY,
+ .trainerName = _("MADELINE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Madeline5 }
+ },
+
+ [TRAINER_BEVERLY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("BEVERLY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Beverly }
+ },
+
+ [TRAINER_IMANI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("IMANI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Imani }
+ },
+
+ [TRAINER_KYLA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("KYLA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kyla }
+ },
+
+ [TRAINER_DENISE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("DENISE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Denise }
+ },
+
+ [TRAINER_BETH] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("BETH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Beth }
+ },
+
+ [TRAINER_TARA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("TARA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tara }
+ },
+
+ [TRAINER_MISSY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("MISSY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Missy }
+ },
+
+ [TRAINER_ALICE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("ALICE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Alice }
+ },
+
+ [TRAINER_JENNY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("JENNY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jenny1 }
+ },
+
+ [TRAINER_GRACE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("GRACE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grace }
+ },
+
+ [TRAINER_TANYA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("TANYA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tanya }
+ },
+
+ [TRAINER_SHARON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("SHARON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sharon }
+ },
+
+ [TRAINER_NIKKI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("NIKKI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nikki }
+ },
+
+ [TRAINER_BRENDA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("BRENDA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brenda }
+ },
+
+ [TRAINER_KATIE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("KATIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Katie }
+ },
+
+ [TRAINER_SUSIE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("SUSIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Susie }
+ },
+
+ [TRAINER_KARA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("KARA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kara }
+ },
+
+ [TRAINER_DANA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("DANA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dana }
+ },
+
+ [TRAINER_SIENNA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("SIENNA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sienna }
+ },
+
+ [TRAINER_DEBRA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("DEBRA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Debra }
+ },
+
+ [TRAINER_LINDA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("LINDA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Linda }
+ },
+
+ [TRAINER_KAYLEE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("KAYLEE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kaylee }
+ },
+
+ [TRAINER_LAUREL] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("LAUREL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Laurel }
+ },
+
+ [TRAINER_CARLEE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("CARLEE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Carlee }
+ },
+
+ [TRAINER_JENNY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("JENNY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jenny2 }
+ },
+
+ [TRAINER_JENNY_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("JENNY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jenny3 }
+ },
+
+ [TRAINER_JENNY_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("JENNY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jenny4 }
+ },
+
+ [TRAINER_JENNY_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("JENNY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jenny5 }
+ },
+
+ [TRAINER_HEIDI] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("HEIDI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Heidi }
+ },
+
+ [TRAINER_BECKY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("BECKY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Becky }
+ },
+
+ [TRAINER_CAROL] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("CAROL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Carol }
+ },
+
+ [TRAINER_NANCY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("NANCY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nancy }
+ },
+
+ [TRAINER_MARTHA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("MARTHA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Martha }
+ },
+
+ [TRAINER_DIANA_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("DIANA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Diana1 }
+ },
+
+ [TRAINER_CEDRIC] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("CEDRIC"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Cedric }
+ },
+
+ [TRAINER_IRENE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("IRENE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Irene }
+ },
+
+ [TRAINER_DIANA_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("DIANA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Diana2 }
+ },
+
+ [TRAINER_DIANA_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("DIANA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Diana3 }
+ },
+
+ [TRAINER_DIANA_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("DIANA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Diana4 }
+ },
+
+ [TRAINER_DIANA_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("DIANA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Diana5 }
+ },
+
+ [TRAINER_AMY_AND_LIV_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TWINS,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_TWINS,
+ .trainerName = _("AMY & LIV"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv1 }
+ },
+
+ [TRAINER_AMY_AND_LIV_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TWINS,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_TWINS,
+ .trainerName = _("AMY & LIV"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv2 }
+ },
+
+ [TRAINER_GINA_AND_MIA_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TWINS,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_TWINS,
+ .trainerName = _("GINA & MIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_GinaAndMia1 }
+ },
+
+ [TRAINER_MIU_AND_YUKI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TWINS,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_TWINS,
+ .trainerName = _("MIU & YUKI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_MiuAndYuki }
+ },
+
+ [TRAINER_AMY_AND_LIV_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TWINS,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_TWINS,
+ .trainerName = _("AMY & LIV"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv3 }
+ },
+
+ [TRAINER_GINA_AND_MIA_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_TWINS,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_TWINS,
+ .trainerName = _("GINA & MIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_GinaAndMia2 }
+ },
+
+ [TRAINER_AMY_AND_LIV_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TWINS,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_TWINS,
+ .trainerName = _("AMY & LIV"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv4 }
+ },
+
+ [TRAINER_AMY_AND_LIV_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_TWINS,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_TWINS,
+ .trainerName = _("AMY & LIV"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_AmyAndLiv5 }
+ },
+
+ [TRAINER_AMY_AND_LIV_6] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_TWINS,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_TWINS,
+ .trainerName = _("AMY & LIV"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_AmyAndLiv6 }
+ },
+
+ [TRAINER_HUEY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("HUEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Huey }
+ },
+
+ [TRAINER_EDMOND] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("EDMOND"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Edmond }
+ },
+
+ [TRAINER_ERNEST_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("ERNEST"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ernest1 }
+ },
+
+ [TRAINER_DWAYNE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("DWAYNE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dwayne }
+ },
+
+ [TRAINER_PHILLIP] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("PHILLIP"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Phillip }
+ },
+
+ [TRAINER_LEONARD] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("LEONARD"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Leonard }
+ },
+
+ [TRAINER_DUNCAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("DUNCAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Duncan }
+ },
+
+ [TRAINER_ERNEST_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("ERNEST"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ernest2 }
+ },
+
+ [TRAINER_ERNEST_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("ERNEST"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ernest3 }
+ },
+
+ [TRAINER_ERNEST_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("ERNEST"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ernest4 }
+ },
+
+ [TRAINER_ERNEST_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("ERNEST"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ernest5 }
+ },
+
+ [TRAINER_ELI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("ELI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Eli }
+ },
+
+ [TRAINER_ANNIKA] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_F,
+ .trainerName = _("ANNIKA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.ItemCustomMoves = gTrainerParty_Annika }
+ },
+
+ [TRAINER_JAZMYN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_2,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("JAZMYN"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jazmyn }
+ },
+
+ [TRAINER_JONAS] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("JONAS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Jonas }
+ },
+
+ [TRAINER_KAYLEY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_PARASOL_LADY,
+ .trainerName = _("KAYLEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Kayley }
+ },
+
+ [TRAINER_AURON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_M,
+ .trainerName = _("AURON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Auron }
+ },
+
+ [TRAINER_KELVIN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("KELVIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kelvin }
+ },
+
+ [TRAINER_MARLEY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("MARLEY"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.ItemCustomMoves = gTrainerParty_Marley }
+ },
+
+ [TRAINER_REYNA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("REYNA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Reyna }
+ },
+
+ [TRAINER_HUDSON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("HUDSON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Hudson }
+ },
+
+ [TRAINER_CONOR] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_M,
+ .trainerName = _("CONOR"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Conor }
+ },
+
+ [TRAINER_EDWIN_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_COLLECTOR,
+ .trainerName = _("EDWIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Edwin1 }
+ },
+
+ [TRAINER_HECTOR] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_COLLECTOR,
+ .trainerName = _("HECTOR"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Hector }
+ },
+
+ [TRAINER_TABITHA_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_MAGMA_ADMIN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_ADMIN,
+ .trainerName = _("TABITHA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tabitha1 }
+ },
+
+ [TRAINER_EDWIN_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_COLLECTOR,
+ .trainerName = _("EDWIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Edwin2 }
+ },
+
+ [TRAINER_EDWIN_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_COLLECTOR,
+ .trainerName = _("EDWIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Edwin3 }
+ },
+
+ [TRAINER_EDWIN_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_COLLECTOR,
+ .trainerName = _("EDWIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Edwin4 }
+ },
+
+ [TRAINER_EDWIN_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_COLLECTOR,
+ .trainerName = _("EDWIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Edwin5 }
+ },
+
+ [TRAINER_WALLY_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_WALLY,
+ .trainerName = _("WALLY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.NoItemCustomMoves = gTrainerParty_Wally1 }
+ },
+
+ [TRAINER_BRENDAN_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan1 }
+ },
+
+ [TRAINER_BRENDAN_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan2 }
+ },
+
+ [TRAINER_BRENDAN_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan3 }
+ },
+
+ [TRAINER_BRENDAN_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan4 }
+ },
+
+ [TRAINER_BRENDAN_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan5 }
+ },
+
+ [TRAINER_BRENDAN_6] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan6 }
+ },
+
+ [TRAINER_BRENDAN_7] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan7 }
+ },
+
+ [TRAINER_BRENDAN_8] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan8 }
+ },
+
+ [TRAINER_BRENDAN_9] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan9 }
+ },
+
+ [TRAINER_MAY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May1 }
+ },
+
+ [TRAINER_MAY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May2 }
+ },
+
+ [TRAINER_MAY_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May3 }
+ },
+
+ [TRAINER_MAY_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May4 }
+ },
+
+ [TRAINER_MAY_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May5 }
+ },
+
+ [TRAINER_MAY_6] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May6 }
+ },
+
+ [TRAINER_MAY_7] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May7 }
+ },
+
+ [TRAINER_MAY_8] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May8 }
+ },
+
+ [TRAINER_MAY_9] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May9 }
+ },
+
+ [TRAINER_ISAAC_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M,
+ .trainerName = _("ISAAC"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isaac1 }
+ },
+
+ [TRAINER_DAVIS] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("DAVIS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Davis }
+ },
+
+ [TRAINER_MITCHELL] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("MITCHELL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Mitchell }
+ },
+
+ [TRAINER_ISAAC_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M,
+ .trainerName = _("ISAAC"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isaac2 }
+ },
+
+ [TRAINER_ISAAC_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M,
+ .trainerName = _("ISAAC"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isaac3 }
+ },
+
+ [TRAINER_ISAAC_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M,
+ .trainerName = _("ISAAC"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isaac4 }
+ },
+
+ [TRAINER_ISAAC_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M,
+ .trainerName = _("ISAAC"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isaac5 }
+ },
+
+ [TRAINER_LYDIA_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F,
+ .trainerName = _("LYDIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lydia1 }
+ },
+
+ [TRAINER_HALLE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("HALLE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Halle }
+ },
+
+ [TRAINER_GARRISON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("GARRISON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Garrison }
+ },
+
+ [TRAINER_LYDIA_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F,
+ .trainerName = _("LYDIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lydia2 }
+ },
+
+ [TRAINER_LYDIA_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F,
+ .trainerName = _("LYDIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lydia3 }
+ },
+
+ [TRAINER_LYDIA_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F,
+ .trainerName = _("LYDIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lydia4 }
+ },
+
+ [TRAINER_LYDIA_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F,
+ .trainerName = _("LYDIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lydia5 }
+ },
+
+ [TRAINER_JACKSON_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_M,
+ .trainerName = _("JACKSON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jackson1 }
+ },
+
+ [TRAINER_LORENZO] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_M,
+ .trainerName = _("LORENZO"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lorenzo }
+ },
+
+ [TRAINER_SEBASTIAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_M,
+ .trainerName = _("SEBASTIAN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sebastian }
+ },
+
+ [TRAINER_JACKSON_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_M,
+ .trainerName = _("JACKSON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jackson2 }
+ },
+
+ [TRAINER_JACKSON_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_M,
+ .trainerName = _("JACKSON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jackson3 }
+ },
+
+ [TRAINER_JACKSON_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_M,
+ .trainerName = _("JACKSON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jackson4 }
+ },
+
+ [TRAINER_JACKSON_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_M,
+ .trainerName = _("JACKSON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jackson5 }
+ },
+
+ [TRAINER_CATHERINE_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_F,
+ .trainerName = _("CATHERINE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Catherine1 }
+ },
+
+ [TRAINER_JENNA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_F,
+ .trainerName = _("JENNA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jenna }
+ },
+
+ [TRAINER_SOPHIA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_F,
+ .trainerName = _("SOPHIA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sophia }
+ },
+
+ [TRAINER_CATHERINE_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_F,
+ .trainerName = _("CATHERINE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Catherine2 }
+ },
+
+ [TRAINER_CATHERINE_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_F,
+ .trainerName = _("CATHERINE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Catherine3 }
+ },
+
+ [TRAINER_CATHERINE_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_F,
+ .trainerName = _("CATHERINE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Catherine4 }
+ },
+
+ [TRAINER_CATHERINE_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_RANGER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_POKEMON_RANGER_F,
+ .trainerName = _("CATHERINE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Catherine5 }
+ },
+
+ [TRAINER_JULIO] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_M,
+ .trainerName = _("JULIO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Julio }
+ },
+
+ [TRAINER_GRUNT_27] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt27 }
+ },
+
+ [TRAINER_GRUNT_28] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt28 }
+ },
+
+ [TRAINER_GRUNT_29] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt29 }
+ },
+
+ [TRAINER_GRUNT_30] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt30 }
+ },
+
+ [TRAINER_MARC] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("MARC"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Marc }
+ },
+
+ [TRAINER_BRENDEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("BRENDEN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brenden }
+ },
+
+ [TRAINER_LILITH] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("LILITH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lilith }
+ },
+
+ [TRAINER_CRISTIAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("CRISTIAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cristian }
+ },
+
+ [TRAINER_SYLVIA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("SYLVIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sylvia }
+ },
+
+ [TRAINER_LEONARDO] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("LEONARDO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Leonardo }
+ },
+
+ [TRAINER_ATHENA] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("ATHENA"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.ItemCustomMoves = gTrainerParty_Athena }
+ },
+
+ [TRAINER_HARRISON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("HARRISON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Harrison }
+ },
+
+ [TRAINER_GRUNT_31] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt31 }
+ },
+
+ [TRAINER_CLARENCE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("CLARENCE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Clarence }
+ },
+
+ [TRAINER_TERRY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("TERRY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Terry }
+ },
+
+ [TRAINER_NATE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_GENTLEMAN,
+ .trainerName = _("NATE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nate }
+ },
+
+ [TRAINER_KATHLEEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_HEX_MANIAC,
+ .trainerName = _("KATHLEEN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kathleen }
+ },
+
+ [TRAINER_CLIFFORD] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_GENTLEMAN,
+ .trainerName = _("CLIFFORD"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Clifford }
+ },
+
+ [TRAINER_NICHOLAS] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("NICHOLAS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Nicholas }
+ },
+
+ [TRAINER_GRUNT_32] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt32 }
+ },
+
+ [TRAINER_GRUNT_33] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt33 }
+ },
+
+ [TRAINER_GRUNT_34] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt34 }
+ },
+
+ [TRAINER_GRUNT_35] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt35 }
+ },
+
+ [TRAINER_GRUNT_36] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt36 }
+ },
+
+ [TRAINER_MACEY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("MACEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Macey }
+ },
+
+ [TRAINER_BRENDAN_10] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan10 }
+ },
+
+ [TRAINER_BRENDAN_11] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan11 }
+ },
+
+ [TRAINER_PAXTON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_M,
+ .trainerName = _("PAXTON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Paxton }
+ },
+
+ [TRAINER_ISABELLA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_F,
+ .trainerName = _("ISABELLA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isabella }
+ },
+
+ [TRAINER_GRUNT_37] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_AQUA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA,
+ .trainerPic = TRAINER_PIC_AQUA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt37 }
+ },
+
+ [TRAINER_TABITHA_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_MAGMA_ADMIN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_ADMIN,
+ .trainerName = _("TABITHA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tabitha2 }
+ },
+
+ [TRAINER_JONATHAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("JONATHAN"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jonathan }
+ },
+
+ [TRAINER_BRENDAN_12] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan12 }
+ },
+
+ [TRAINER_MAY_10] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0xb,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May10 }
+ },
+
+ [TRAINER_MAXIE_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_MAGMA_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_LEADER_MAXIE,
+ .trainerName = _("MAXIE"),
+ .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Maxie1 }
+ },
+
+ [TRAINER_MAXIE_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_MAGMA_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_LEADER_MAXIE,
+ .trainerName = _("MAXIE"),
+ .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Maxie2 }
+ },
+
+ [TRAINER_TIANA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_LASS,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("TIANA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tiana }
+ },
+
+ [TRAINER_HALEY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_LASS,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("HALEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Haley1 }
+ },
+
+ [TRAINER_JANICE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_LASS,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("JANICE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Janice }
+ },
+
+ [TRAINER_VIVI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_WINSTRATE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("VIVI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Vivi }
+ },
+
+ [TRAINER_HALEY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_LASS,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("HALEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Haley2 }
+ },
+
+ [TRAINER_HALEY_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_LASS,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("HALEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Haley3 }
+ },
+
+ [TRAINER_HALEY_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_LASS,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("HALEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Haley4 }
+ },
+
+ [TRAINER_HALEY_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_LASS,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("HALEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Haley5 }
+ },
+
+ [TRAINER_SALLY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_LASS,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("SALLY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sally }
+ },
+
+ [TRAINER_ROBIN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_LASS,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("ROBIN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Robin }
+ },
+
+ [TRAINER_ANDREA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_LASS,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("ANDREA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Andrea }
+ },
+
+ [TRAINER_CRISSY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_LASS,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LASS,
+ .trainerName = _("CRISSY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Crissy }
+ },
+
+ [TRAINER_RICK] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("RICK"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Rick }
+ },
+
+ [TRAINER_LYLE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("LYLE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lyle }
+ },
+
+ [TRAINER_JOSE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("JOSE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jose }
+ },
+
+ [TRAINER_DOUG] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("DOUG"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Doug }
+ },
+
+ [TRAINER_GREG] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("GREG"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Greg }
+ },
+
+ [TRAINER_KENT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("KENT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kent }
+ },
+
+ [TRAINER_JAMES_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("JAMES"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_James1 }
+ },
+
+ [TRAINER_JAMES_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("JAMES"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_James2 }
+ },
+
+ [TRAINER_JAMES_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("JAMES"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_James3 }
+ },
+
+ [TRAINER_JAMES_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("JAMES"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_James4 }
+ },
+
+ [TRAINER_JAMES_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BUG_CATCHER,
+ .trainerName = _("JAMES"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_James5 }
+ },
+
+ [TRAINER_BRICE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("BRICE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brice }
+ },
+
+ [TRAINER_TRENT_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("TRENT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Trent1 }
+ },
+
+ [TRAINER_LENNY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("LENNY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lenny }
+ },
+
+ [TRAINER_LUCAS_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("LUCAS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lucas1 }
+ },
+
+ [TRAINER_ALAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("ALAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Alan }
+ },
+
+ [TRAINER_CLARK] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("CLARK"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Clark }
+ },
+
+ [TRAINER_ERIC] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("ERIC"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Eric }
+ },
+
+ [TRAINER_LUCAS_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("LUCAS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Lucas2 }
+ },
+
+ [TRAINER_MIKE_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("MIKE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Mike1 }
+ },
+
+ [TRAINER_MIKE_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("MIKE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Mike2 }
+ },
+
+ [TRAINER_TRENT_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("TRENT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Trent2 }
+ },
+
+ [TRAINER_TRENT_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("TRENT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Trent3 }
+ },
+
+ [TRAINER_TRENT_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("TRENT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Trent4 }
+ },
+
+ [TRAINER_TRENT_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("TRENT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Trent5 }
+ },
+
+ [TRAINER_DEZ_AND_LUKE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNG_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_YOUNG_COUPLE,
+ .trainerName = _("DEZ & LUKE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_DezAndLuke }
+ },
+
+ [TRAINER_LEA_AND_JED] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNG_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_YOUNG_COUPLE,
+ .trainerName = _("LEA & JED"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_LeaAndJed }
+ },
+
+ [TRAINER_KIRA_AND_DAN_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNG_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_YOUNG_COUPLE,
+ .trainerName = _("KIRA & DAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan1 }
+ },
+
+ [TRAINER_KIRA_AND_DAN_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNG_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_YOUNG_COUPLE,
+ .trainerName = _("KIRA & DAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan2 }
+ },
+
+ [TRAINER_KIRA_AND_DAN_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNG_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_YOUNG_COUPLE,
+ .trainerName = _("KIRA & DAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan3 }
+ },
+
+ [TRAINER_KIRA_AND_DAN_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNG_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_YOUNG_COUPLE,
+ .trainerName = _("KIRA & DAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan4 }
+ },
+
+ [TRAINER_KIRA_AND_DAN_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNG_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_YOUNG_COUPLE,
+ .trainerName = _("KIRA & DAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan5 }
+ },
+
+ [TRAINER_JOHANNA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("JOHANNA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Johanna }
+ },
+
+ [TRAINER_GERALD] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("GERALD"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Gerald }
+ },
+
+ [TRAINER_VIVIAN] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("VIVIAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Vivian }
+ },
+
+ [TRAINER_DANIELLE] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("DANIELLE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Danielle }
+ },
+
+ [TRAINER_HIDEO] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("HIDEO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x3,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Hideo }
+ },
+
+ [TRAINER_KEIGO] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("KEIGO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x3,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Keigo }
+ },
+
+ [TRAINER_RILEY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("RILEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x3,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_Riley }
+ },
+
+ [TRAINER_FLINT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("FLINT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Flint }
+ },
+
+ [TRAINER_ASHLEY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("ASHLEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ashley }
+ },
+
+ [TRAINER_WALLY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_WALLY,
+ .trainerName = _("WALLY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Wally2 }
+ },
+
+ [TRAINER_WALLY_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_WALLY,
+ .trainerName = _("WALLY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.NoItemCustomMoves = gTrainerParty_Wally3 }
+ },
+
+ [TRAINER_WALLY_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_WALLY,
+ .trainerName = _("WALLY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.NoItemCustomMoves = gTrainerParty_Wally4 }
+ },
+
+ [TRAINER_WALLY_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_WALLY,
+ .trainerName = _("WALLY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.NoItemCustomMoves = gTrainerParty_Wally5 }
+ },
+
+ [TRAINER_WALLY_6] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_WALLY,
+ .trainerName = _("WALLY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.NoItemCustomMoves = gTrainerParty_Wally6 }
+ },
+
+ [TRAINER_BRENDAN_13] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan13 }
+ },
+
+ [TRAINER_BRENDAN_14] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan14 }
+ },
+
+ [TRAINER_BRENDAN_15] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan15 }
+ },
+
+ [TRAINER_MAY_11] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May11 }
+ },
+
+ [TRAINER_MAY_12] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May12 }
+ },
+
+ [TRAINER_MAY_13] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May13 }
+ },
+
+ [TRAINER_JONAH] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("JONAH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jonah }
+ },
+
+ [TRAINER_HENRY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("HENRY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Henry }
+ },
+
+ [TRAINER_ROGER] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("ROGER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Roger }
+ },
+
+ [TRAINER_ALEXA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("ALEXA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Alexa }
+ },
+
+ [TRAINER_RUBEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("RUBEN"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Ruben }
+ },
+
+ [TRAINER_KOJI_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("KOJI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Koji1 }
+ },
+
+ [TRAINER_WAYNE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("WAYNE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Wayne }
+ },
+
+ [TRAINER_AIDAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("AIDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Aidan }
+ },
+
+ [TRAINER_REED] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("REED"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Reed }
+ },
+
+ [TRAINER_TISHA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("TISHA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tisha }
+ },
+
+ [TRAINER_TORI_AND_TIA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TWINS,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_TWINS,
+ .trainerName = _("TORI & TIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_ToriAndTia }
+ },
+
+ [TRAINER_KIM_AND_IRIS] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_SR_AND_JR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_SR_AND_JR,
+ .trainerName = _("KIM & IRIS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_KimAndIris }
+ },
+
+ [TRAINER_TYRA_AND_IVY] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_SR_AND_JR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_SR_AND_JR,
+ .trainerName = _("TYRA & IVY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_TyraAndIvy }
+ },
+
+ [TRAINER_MEL_AND_PAUL] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_YOUNG_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_YOUNG_COUPLE,
+ .trainerName = _("MEL & PAUL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_MelAndPaul }
+ },
+
+ [TRAINER_JOHN_AND_JAY_1] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_OLD_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_OLD_COUPLE,
+ .trainerName = _("JOHN & JAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay1 }
+ },
+
+ [TRAINER_JOHN_AND_JAY_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_OLD_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_OLD_COUPLE,
+ .trainerName = _("JOHN & JAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay2 }
+ },
+
+ [TRAINER_JOHN_AND_JAY_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_OLD_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_OLD_COUPLE,
+ .trainerName = _("JOHN & JAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay3 }
+ },
+
+ [TRAINER_JOHN_AND_JAY_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_OLD_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_OLD_COUPLE,
+ .trainerName = _("JOHN & JAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0xb,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay4 }
+ },
+
+ [TRAINER_JOHN_AND_JAY_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_OLD_COUPLE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_OLD_COUPLE,
+ .trainerName = _("JOHN & JAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay5 }
+ },
+
+ [TRAINER_RELI_AND_IAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SIS_AND_BRO,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SIS_AND_BRO,
+ .trainerName = _("RELI & IAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_ReliAndIan }
+ },
+
+ [TRAINER_LILA_AND_ROY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SIS_AND_BRO,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SIS_AND_BRO,
+ .trainerName = _("LILA & ROY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy1 }
+ },
+
+ [TRAINER_LILA_AND_ROY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SIS_AND_BRO,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SIS_AND_BRO,
+ .trainerName = _("LILA & ROY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy2 }
+ },
+
+ [TRAINER_LILA_AND_ROY_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SIS_AND_BRO,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SIS_AND_BRO,
+ .trainerName = _("LILA & ROY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy3 }
+ },
+
+ [TRAINER_LILA_AND_ROY_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SIS_AND_BRO,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SIS_AND_BRO,
+ .trainerName = _("LILA & ROY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy4 }
+ },
+
+ [TRAINER_LILA_AND_ROY_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SIS_AND_BRO,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SIS_AND_BRO,
+ .trainerName = _("LILA & ROY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy5 }
+ },
+
+ [TRAINER_LISA_AND_RAY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SIS_AND_BRO,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SIS_AND_BRO,
+ .trainerName = _("LISA & RAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_LisaAndRay }
+ },
+
+ [TRAINER_CHRIS] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("CHRIS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Chris }
+ },
+
+ [TRAINER_DAWSON] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_RICH_BOY,
+ .trainerName = _("DAWSON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.ItemDefaultMoves = gTrainerParty_Dawson }
+ },
+
+ [TRAINER_SARAH] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LADY,
+ .trainerName = _("SARAH"),
+ .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.ItemDefaultMoves = gTrainerParty_Sarah }
+ },
+
+ [TRAINER_DARIAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("DARIAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Darian }
+ },
+
+ [TRAINER_HAILEY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_F,
+ .trainerName = _("HAILEY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Hailey }
+ },
+
+ [TRAINER_CHANDLER] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TUBER_2,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_TUBER_M,
+ .trainerName = _("CHANDLER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Chandler }
+ },
+
+ [TRAINER_KALEB] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM,
+ .trainerClass = TRAINER_CLASS_POKEFAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS,
+ .trainerPic = TRAINER_PIC_WINSTRATE_M,
+ .trainerName = _("KALEB"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.ItemDefaultMoves = gTrainerParty_Kaleb }
+ },
+
+ [TRAINER_JOSEPH] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("JOSEPH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Joseph }
+ },
+
+ [TRAINER_ALYSSA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_CYCLING_TRIATHLETE_F,
+ .trainerName = _("ALYSSA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Alyssa }
+ },
+
+ [TRAINER_MARCOS] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("MARCOS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Marcos }
+ },
+
+ [TRAINER_RHETT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("RHETT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Rhett }
+ },
+
+ [TRAINER_TYRON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("TYRON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tyron }
+ },
+
+ [TRAINER_CELINA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_AROMA_LADY,
+ .trainerName = _("CELINA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Celina }
+ },
+
+ [TRAINER_BIANCA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("BIANCA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Bianca }
+ },
+
+ [TRAINER_HAYDEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("HAYDEN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Hayden }
+ },
+
+ [TRAINER_SOPHIE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("SOPHIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sophie }
+ },
+
+ [TRAINER_COBY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("COBY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Coby }
+ },
+
+ [TRAINER_LAWRENCE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("LAWRENCE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lawrence }
+ },
+
+ [TRAINER_WYATT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_POKEMANIAC,
+ .trainerName = _("WYATT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Wyatt }
+ },
+
+ [TRAINER_ANGELINA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("ANGELINA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Angelina }
+ },
+
+ [TRAINER_KAI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_FISHERMAN,
+ .trainerName = _("KAI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kai }
+ },
+
+ [TRAINER_CHARLOTTE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("CHARLOTTE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Charlotte }
+ },
+
+ [TRAINER_DEANDRE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("DEANDRE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Deandre }
+ },
+
+ [TRAINER_GRUNT_38] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt38 }
+ },
+
+ [TRAINER_GRUNT_39] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt39 }
+ },
+
+ [TRAINER_GRUNT_40] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt40 }
+ },
+
+ [TRAINER_GRUNT_41] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt41 }
+ },
+
+ [TRAINER_GRUNT_42] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt42 }
+ },
+
+ [TRAINER_GRUNT_43] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt43 }
+ },
+
+ [TRAINER_GRUNT_44] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt44 }
+ },
+
+ [TRAINER_GRUNT_45] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt45 }
+ },
+
+ [TRAINER_GRUNT_46] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt46 }
+ },
+
+ [TRAINER_GRUNT_47] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt47 }
+ },
+
+ [TRAINER_GRUNT_48] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt48 }
+ },
+
+ [TRAINER_GRUNT_49] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt49 }
+ },
+
+ [TRAINER_GRUNT_50] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_M,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt50 }
+ },
+
+ [TRAINER_GRUNT_51] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt51 }
+ },
+
+ [TRAINER_GRUNT_52] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt52 }
+ },
+
+ [TRAINER_GRUNT_53] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TEAM_MAGMA,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_GRUNT_F,
+ .trainerName = _("GRUNT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Grunt53 }
+ },
+
+ [TRAINER_TABITHA_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_MAGMA_ADMIN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_ADMIN,
+ .trainerName = _("TABITHA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 4,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tabitha3 }
+ },
+
+ [TRAINER_DARCY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("DARCY"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Darcy }
+ },
+
+ [TRAINER_MAXIE_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_MAGMA_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MAGMA,
+ .trainerPic = TRAINER_PIC_MAGMA_LEADER_MAXIE,
+ .trainerName = _("MAXIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Maxie3 }
+ },
+
+ [TRAINER_PETE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_M,
+ .trainerName = _("PETE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Pete }
+ },
+
+ [TRAINER_ISABELLE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMER_F,
+ .trainerName = _("ISABELLE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Isabelle }
+ },
+
+ [TRAINER_ANDRES_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("ANDRES"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Andres1 }
+ },
+
+ [TRAINER_JOSUE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("JOSUE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Josue }
+ },
+
+ [TRAINER_CAMRON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("CAMRON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Camron }
+ },
+
+ [TRAINER_CORY_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("CORY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cory1 }
+ },
+
+ [TRAINER_CAROLINA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("CAROLINA"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Carolina }
+ },
+
+ [TRAINER_ELIJAH] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("ELIJAH"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Elijah }
+ },
+
+ [TRAINER_CELIA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PICNICKER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL,
+ .trainerPic = TRAINER_PIC_PICNICKER,
+ .trainerName = _("CELIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Celia }
+ },
+
+ [TRAINER_BRYAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("BRYAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Bryan }
+ },
+
+ [TRAINER_BRANDEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_CAMPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_CAMPER,
+ .trainerName = _("BRANDEN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Branden }
+ },
+
+ [TRAINER_BRYANT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("BRYANT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Bryant }
+ },
+
+ [TRAINER_SHAYLA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_AROMA_LADY,
+ .trainerName = _("SHAYLA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Shayla }
+ },
+
+ [TRAINER_KYRA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F,
+ .trainerName = _("KYRA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Kyra }
+ },
+
+ [TRAINER_JAIDEN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_NINJA_BOY,
+ .trainerName = _("JAIDEN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Jaiden }
+ },
+
+ [TRAINER_ALIX] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("ALIX"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Alix }
+ },
+
+ [TRAINER_HELENE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("HELENE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Helene }
+ },
+
+ [TRAINER_MARLENE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("MARLENE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Marlene }
+ },
+
+ [TRAINER_DEVAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("DEVAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Devan }
+ },
+
+ [TRAINER_JOHNSON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_YOUNGSTER,
+ .trainerName = _("JOHNSON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Johnson }
+ },
+
+ [TRAINER_MELINA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_RUNNING_TRIATHLETE_F,
+ .trainerName = _("MELINA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Melina }
+ },
+
+ [TRAINER_BRANDI] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("BRANDI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brandi }
+ },
+
+ [TRAINER_AISHA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("AISHA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Aisha }
+ },
+
+ [TRAINER_MAKAYLA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_EXPERT,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_EXPERT_F,
+ .trainerName = _("MAKAYLA"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Makayla }
+ },
+
+ [TRAINER_FABIAN] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("FABIAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Fabian }
+ },
+
+ [TRAINER_DAYTON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_KINDLER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_KINDLER,
+ .trainerName = _("DAYTON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Dayton }
+ },
+
+ [TRAINER_RACHEL] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_PARASOL_LADY,
+ .trainerName = _("RACHEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Rachel }
+ },
+
+ [TRAINER_LEONEL] =
+ {
+ .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_M,
+ .trainerName = _("LEONEL"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemCustomMoves = gTrainerParty_Leonel }
+ },
+
+ [TRAINER_CALLIE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BATTLE_GIRL,
+ .trainerName = _("CALLIE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Callie }
+ },
+
+ [TRAINER_CALE] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_BUG_MANIAC,
+ .trainerName = _("CALE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cale }
+ },
+
+ [TRAINER_MYLES] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_M,
+ .trainerName = _("MYLES"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Myles }
+ },
+
+ [TRAINER_PAT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F,
+ .trainerName = _("PAT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Pat }
+ },
+
+ [TRAINER_CRISTIN_1] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("CRISTIN"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cristin1 }
+ },
+
+ [TRAINER_MAY_14] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May14 }
+ },
+
+ [TRAINER_MAY_15] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May15 }
+ },
+
+ [TRAINER_ROXANNE_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_ROXANNE,
+ .trainerName = _("ROXANNE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.ItemCustomMoves = gTrainerParty_Roxanne2 }
+ },
+
+ [TRAINER_ROXANNE_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_ROXANNE,
+ .trainerName = _("ROXANNE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Roxanne3 }
+ },
+
+ [TRAINER_ROXANNE_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_ROXANNE,
+ .trainerName = _("ROXANNE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Roxanne4 }
+ },
+
+ [TRAINER_ROXANNE_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_ROXANNE,
+ .trainerName = _("ROXANNE"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Roxanne5 }
+ },
+
+ [TRAINER_BRAWLY_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_BRAWLY,
+ .trainerName = _("BRAWLY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.ItemCustomMoves = gTrainerParty_Brawly2 }
+ },
+
+ [TRAINER_BRAWLY_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_BRAWLY,
+ .trainerName = _("BRAWLY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.ItemCustomMoves = gTrainerParty_Brawly3 }
+ },
+
+ [TRAINER_BRAWLY_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_BRAWLY,
+ .trainerName = _("BRAWLY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Brawly4 }
+ },
+
+ [TRAINER_BRAWLY_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_BRAWLY,
+ .trainerName = _("BRAWLY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Brawly5 }
+ },
+
+ [TRAINER_WATTSON_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_WATTSON,
+ .trainerName = _("WATTSON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.ItemCustomMoves = gTrainerParty_Wattson2 }
+ },
+
+ [TRAINER_WATTSON_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_WATTSON,
+ .trainerName = _("WATTSON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Wattson3 }
+ },
+
+ [TRAINER_WATTSON_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_WATTSON,
+ .trainerName = _("WATTSON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Wattson4 }
+ },
+
+ [TRAINER_WATTSON_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_WATTSON,
+ .trainerName = _("WATTSON"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Wattson5 }
+ },
+
+ [TRAINER_FLANNERY_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_FLANNERY,
+ .trainerName = _("FLANNERY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.ItemCustomMoves = gTrainerParty_Flannery2 }
+ },
+
+ [TRAINER_FLANNERY_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_FLANNERY,
+ .trainerName = _("FLANNERY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Flannery3 }
+ },
+
+ [TRAINER_FLANNERY_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_FLANNERY,
+ .trainerName = _("FLANNERY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Flannery4 }
+ },
+
+ [TRAINER_FLANNERY_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_FLANNERY,
+ .trainerName = _("FLANNERY"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Flannery5 }
+ },
+
+ [TRAINER_NORMAN_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_NORMAN,
+ .trainerName = _("NORMAN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 4,
+ .party = {.ItemCustomMoves = gTrainerParty_Norman2 }
+ },
+
+ [TRAINER_NORMAN_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_NORMAN,
+ .trainerName = _("NORMAN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Norman3 }
+ },
+
+ [TRAINER_NORMAN_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_NORMAN,
+ .trainerName = _("NORMAN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Norman4 }
+ },
+
+ [TRAINER_NORMAN_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_NORMAN,
+ .trainerName = _("NORMAN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Norman5 }
+ },
+
+ [TRAINER_WINONA_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_WINONA,
+ .trainerName = _("WINONA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x17,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Winona2 }
+ },
+
+ [TRAINER_WINONA_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_WINONA,
+ .trainerName = _("WINONA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x17,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Winona3 }
+ },
+
+ [TRAINER_WINONA_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_WINONA,
+ .trainerName = _("WINONA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x17,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Winona4 }
+ },
+
+ [TRAINER_WINONA_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_WINONA,
+ .trainerName = _("WINONA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x17,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Winona5 }
+ },
+
+ [TRAINER_TATE_AND_LIZA_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_TATE_AND_LIZA,
+ .trainerName = _("TATE&LIZA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza2 }
+ },
+
+ [TRAINER_TATE_AND_LIZA_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_TATE_AND_LIZA,
+ .trainerName = _("TATE&LIZA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza3 }
+ },
+
+ [TRAINER_TATE_AND_LIZA_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_TATE_AND_LIZA,
+ .trainerName = _("TATE&LIZA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza4 }
+ },
+
+ [TRAINER_TATE_AND_LIZA_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_LEADER_TATE_AND_LIZA,
+ .trainerName = _("TATE&LIZA"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza5 }
+ },
+
+ [TRAINER_JUAN_2] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_JUAN,
+ .trainerName = _("JUAN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Juan2 }
+ },
+
+ [TRAINER_JUAN_3] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_JUAN,
+ .trainerName = _("JUAN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 5,
+ .party = {.ItemCustomMoves = gTrainerParty_Juan3 }
+ },
+
+ [TRAINER_JUAN_4] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_JUAN,
+ .trainerName = _("JUAN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Juan4 }
+ },
+
+ [TRAINER_JUAN_5] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_LEADER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEADER_JUAN,
+ .trainerName = _("JUAN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE},
+ .doubleBattle = TRUE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Juan5 }
+ },
+
+ [TRAINER_ANGELO] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS,
+ .trainerPic = TRAINER_PIC_BUG_MANIAC,
+ .trainerName = _("ANGELO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.ItemCustomMoves = gTrainerParty_Angelo }
+ },
+
+ [TRAINER_DARIUS] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_BIRD_KEEPER,
+ .trainerName = _("DARIUS"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Darius }
+ },
+
+ [TRAINER_STEVEN] =
+ {
+ .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_STEVEN,
+ .trainerName = _("STEVEN"),
+ .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 6,
+ .party = {.ItemCustomMoves = gTrainerParty_Steven }
+ },
+
+ [TRAINER_ANABEL] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SALON_MAIDEN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SALON_MAIDEN_ANABEL,
+ .trainerName = _("ANABEL"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Anabel }
+ },
+
+ [TRAINER_TUCKER] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_DOME_ACE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_DOME_ACE_TUCKER,
+ .trainerName = _("TUCKER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Tucker }
+ },
+
+ [TRAINER_SPENSER] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PALACE_MAVEN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_PALACE_MAVEN_SPENSER,
+ .trainerName = _("SPENSER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Spenser }
+ },
+
+ [TRAINER_GRETA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_ARENA_TYCOON,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_ARENA_TYCOON_GRETA,
+ .trainerName = _("GRETA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Greta }
+ },
+
+ [TRAINER_NOLAND] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_FACTORY_HEAD,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_FACTORY_HEAD_NOLAND,
+ .trainerName = _("NOLAND"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Noland }
+ },
+
+ [TRAINER_LUCY] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PIKE_QUEEN,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_PIKE_QUEEN_LUCY,
+ .trainerName = _("LUCY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Lucy }
+ },
+
+ [TRAINER_BRANDON] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PYRAMID_KING,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_PYRAMID_KING_BRANDON,
+ .trainerName = _("BRANDON"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brandon }
+ },
+
+ [TRAINER_ANDRES_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("ANDRES"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Andres2 }
+ },
+
+ [TRAINER_ANDRES_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("ANDRES"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Andres3 }
+ },
+
+ [TRAINER_ANDRES_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("ANDRES"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Andres4 }
+ },
+
+ [TRAINER_ANDRES_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_RUIN_MANIAC,
+ .trainerName = _("ANDRES"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Andres5 }
+ },
+
+ [TRAINER_CORY_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("CORY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cory2 }
+ },
+
+ [TRAINER_CORY_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("CORY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cory3 }
+ },
+
+ [TRAINER_CORY_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("CORY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cory4 }
+ },
+
+ [TRAINER_CORY_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_SAILOR,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_SAILOR,
+ .trainerName = _("CORY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cory5 }
+ },
+
+ [TRAINER_PABLO_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("PABLO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Pablo2 }
+ },
+
+ [TRAINER_PABLO_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("PABLO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Pablo3 }
+ },
+
+ [TRAINER_PABLO_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("PABLO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Pablo4 }
+ },
+
+ [TRAINER_PABLO_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_TRIATHLETE,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_SWIMMER,
+ .trainerPic = TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ .trainerName = _("PABLO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Pablo5 }
+ },
+
+ [TRAINER_KOJI_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("KOJI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Koji2 }
+ },
+
+ [TRAINER_KOJI_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("KOJI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Koji3 }
+ },
+
+ [TRAINER_KOJI_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("KOJI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Koji4 }
+ },
+
+ [TRAINER_KOJI_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_BLACK_BELT,
+ .trainerName = _("KOJI"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Koji5 }
+ },
+
+ [TRAINER_CRISTIN_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("CRISTIN"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cristin2 }
+ },
+
+ [TRAINER_CRISTIN_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("CRISTIN"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cristin3 }
+ },
+
+ [TRAINER_CRISTIN_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("CRISTIN"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cristin4 }
+ },
+
+ [TRAINER_CRISTIN_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_COOLTRAINER_1,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL,
+ .trainerPic = TRAINER_PIC_COOL_TRAINER_F,
+ .trainerName = _("CRISTIN"),
+ .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Cristin5 }
+ },
+
+ [TRAINER_FERNANDO_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("FERNANDO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Fernando2 }
+ },
+
+ [TRAINER_FERNANDO_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("FERNANDO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Fernando3 }
+ },
+
+ [TRAINER_FERNANDO_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("FERNANDO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Fernando4 }
+ },
+
+ [TRAINER_FERNANDO_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GUITARIST,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_GUITARIST,
+ .trainerName = _("FERNANDO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Fernando5 }
+ },
+
+ [TRAINER_SAWYER_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("SAWYER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer2 }
+ },
+
+ [TRAINER_SAWYER_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("SAWYER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer3 }
+ },
+
+ [TRAINER_SAWYER_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("SAWYER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer4 }
+ },
+
+ [TRAINER_SAWYER_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_HIKER,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_HIKER,
+ .trainerPic = TRAINER_PIC_HIKER,
+ .trainerName = _("SAWYER"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x7,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer5 }
+ },
+
+ [TRAINER_GABRIELLE_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F,
+ .trainerName = _("GABRIELLE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle2 }
+ },
+
+ [TRAINER_GABRIELLE_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F,
+ .trainerName = _("GABRIELLE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle3 }
+ },
+
+ [TRAINER_GABRIELLE_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F,
+ .trainerName = _("GABRIELLE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle4 }
+ },
+
+ [TRAINER_GABRIELLE_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_BREEDER,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_POKEMON_BREEDER_F,
+ .trainerName = _("GABRIELLE"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 6,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle5 }
+ },
+
+ [TRAINER_THALIA_2] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("THALIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Thalia2 }
+ },
+
+ [TRAINER_THALIA_3] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("THALIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Thalia3 }
+ },
+
+ [TRAINER_THALIA_4] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("THALIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Thalia4 }
+ },
+
+ [TRAINER_THALIA_5] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_BEAUTY,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
+ .trainerPic = TRAINER_PIC_BEAUTY,
+ .trainerName = _("THALIA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x1,
+ .partySize = 3,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Thalia5 }
+ },
+
+ [TRAINER_MARIELA] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_F,
+ .trainerName = _("MARIELA"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Mariela }
+ },
+
+ [TRAINER_ALVARO] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PSYCHIC,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_INTENSE,
+ .trainerPic = TRAINER_PIC_PSYCHIC_M,
+ .trainerName = _("ALVARO"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 2,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Alvaro }
+ },
+
+ [TRAINER_EVERETT] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_RICH,
+ .trainerPic = TRAINER_PIC_GENTLEMAN,
+ .trainerName = _("EVERETT"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Everett }
+ },
+
+ [TRAINER_RED] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_RED,
+ .trainerName = _("RED"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Red }
+ },
+
+ [TRAINER_LEAF] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_LEAF,
+ .trainerName = _("LEAF"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Leaf }
+ },
+
+ [TRAINER_BRENDAN_16] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_4,
+ .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN,
+ .trainerName = _("BRENDAN"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_Brendan16 }
+ },
+
+ [TRAINER_MAY_16] =
+ {
+ .partyFlags = 0,
+ .trainerClass = TRAINER_CLASS_PKMN_TRAINER_4,
+ .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE,
+ .trainerPic = TRAINER_PIC_RUBY_SAPPHIRE_MAY,
+ .trainerName = _("MAY"),
+ .items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
+ .doubleBattle = FALSE,
+ .aiFlags = 0x0,
+ .partySize = 1,
+ .party = {.NoItemDefaultMoves = gTrainerParty_May16 }
+ },
+};
diff --git a/src/unk_text_util.c b/src/dynamic_placeholder_text_util.c
index 2773522b2..bdfcf6653 100644
--- a/src/unk_text_util.c
+++ b/src/dynamic_placeholder_text_util.c
@@ -1,11 +1,11 @@
#include "global.h"
#include "text.h"
-#include "unk_text_util.h"
+#include "dynamic_placeholder_text_util.h"
#include "string_util.h"
static EWRAM_DATA const u8 *sStringPointers[8] = {};
-void UnkTextUtil_Reset(void)
+void DynamicPlaceholderTextUtil_Reset(void)
{
const u8 **ptr;
u8 *fillval;
@@ -20,7 +20,7 @@ void UnkTextUtil_Reset(void)
} while ((int)ptr2 >= (int)ptr);
}
-void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr)
+void DynamicPlaceholderTextUtil_SetPlaceholderPtr(u8 idx, const u8 *ptr)
{
if (idx < ARRAY_COUNT(sStringPointers))
{
@@ -28,7 +28,7 @@ void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr)
}
}
-u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src)
+u8 *DynamicPlaceholderTextUtil_ExpandPlaceholders(u8 *dest, const u8 *src)
{
while (*src != EOS)
{
@@ -50,7 +50,7 @@ u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src)
return dest;
}
-const u8 *UnkTextUtil_GetPtrI(u8 idx)
+const u8 *DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 idx)
{
return sStringPointers[idx];
}
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index 64ec47537..67876f33b 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -631,7 +631,7 @@ static void CB2_EggHatch_1(void)
GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_HatchedFromEgg);
EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, 0xFF);
- PlayFanfare(371);
+ PlayFanfare(MUS_FANFA5);
sEggHatchData->CB2_state++;
PutWindowTilemap(sEggHatchData->windowId);
CopyWindowToVram(sEggHatchData->windowId, 3);
diff --git a/src/field_region_map.c b/src/field_region_map.c
index 34b6089df..f56548068 100644
--- a/src/field_region_map.c
+++ b/src/field_region_map.c
@@ -63,7 +63,7 @@ static const struct WindowTemplate gUnknown_085E5070[] = {
// .text
-void sub_817018C(MainCallback callback)
+void FieldInitRegionMap(MainCallback callback)
{
SetVBlankCallback(NULL);
sFieldRegionMapHandler = malloc(sizeof(*sFieldRegionMapHandler));
diff --git a/src/field_special_scene.c b/src/field_special_scene.c
index 39977808f..6f33b2c9b 100644
--- a/src/field_special_scene.c
+++ b/src/field_special_scene.c
@@ -272,7 +272,7 @@ bool8 sub_80FB59C(void)
void Task_HandlePorthole(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- u16 *var = GetVarPointer(VAR_PORTHOLE);
+ u16 *var = GetVarPointer(VAR_PORTHOLE_STATE);
struct WarpData *location = &gSaveBlock1Ptr->location;
switch (data[0])
diff --git a/src/field_specials.c b/src/field_specials.c
new file mode 100644
index 000000000..897bcc8d7
--- /dev/null
+++ b/src/field_specials.c
@@ -0,0 +1,4329 @@
+#include "global.h"
+#include "main.h"
+#include "battle.h"
+#include "battle_tower.h"
+#include "cable_club.h"
+#include "data2.h"
+#include "decoration.h"
+#include "diploma.h"
+#include "event_data.h"
+#include "event_object_movement.h"
+#include "fieldmap.h"
+#include "field_camera.h"
+#include "field_effect.h"
+#include "field_message_box.h"
+#include "field_player_avatar.h"
+#include "field_region_map.h"
+#include "field_screen.h"
+#include "field_specials.h"
+#include "field_weather.h"
+#include "international_string_util.h"
+#include "item_icon.h"
+#include "link.h"
+#include "list_menu.h"
+#include "malloc.h"
+#include "match_call.h"
+#include "menu.h"
+#include "overworld.h"
+#include "party_menu.h"
+#include "pokeblock.h"
+#include "pokemon.h"
+#include "pokemon_storage_system.h"
+#include "random.h"
+#include "rayquaza_scene.h"
+#include "region_map.h"
+#include "rom_8011DC0.h"
+#include "rtc.h"
+#include "script.h"
+#include "script_menu.h"
+#include "sound.h"
+#include "starter_choose.h"
+#include "string_util.h"
+#include "strings.h"
+#include "task.h"
+#include "text.h"
+#include "tv.h"
+#include "wallclock.h"
+#include "window.h"
+#include "constants/event_objects.h"
+#include "constants/items.h"
+#include "constants/maps.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "constants/moves.h"
+#include "constants/vars.h"
+
+EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE;
+EWRAM_DATA u8 gBikeCollisions = 0;
+EWRAM_DATA u32 gBikeCyclingTimer = 0;
+EWRAM_DATA u8 gUnknown_0203AB5C = 0;
+EWRAM_DATA u8 gUnknown_0203AB5D = 0;
+EWRAM_DATA u8 gUnknown_0203AB5E = 0;
+EWRAM_DATA u16 gUnknown_0203AB60 = 0;
+EWRAM_DATA u16 gUnknown_0203AB62 = 0;
+EWRAM_DATA struct ListMenuItem *gUnknown_0203AB64 = NULL;
+EWRAM_DATA u16 gUnknown_0203AB68 = 0;
+EWRAM_DATA u16 gUnknown_0203AB6A = 0;
+EWRAM_DATA u8 gUnknown_0203AB6C = 0;
+EWRAM_DATA u8 gUnknown_0203AB6D = 0;
+EWRAM_DATA u8 gUnknown_0203AB6E = 0;
+EWRAM_DATA u8 gUnknown_0203AB6F = 0;
+EWRAM_DATA u32 gUnknown_0203AB70 = 0;
+
+struct ListMenuTemplate gUnknown_030061D0;
+
+extern const u16 gEventObjectPalette8[];
+extern const u16 gEventObjectPalette17[];
+extern const u16 gEventObjectPalette33[];
+extern const u16 gEventObjectPalette34[];
+
+extern void LoadPalette(const void *src, u32 offset, u16 size); // incorrect signature, needed to match
+extern void BlendPalettes(u32, u8, u16);
+
+void UpdateMovedLilycoveFanClubMembers(void);
+void sub_813BF60(void);
+u16 GetNumMovedLilycoveFanClubMembers(void);
+
+static void RecordCyclingRoadResults(u32, u8);
+static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum);
+static void Task_PetalburgGym(u8);
+static void PetalburgGymFunc(u8, u16);
+static void Task_PCTurnOnEffect(u8);
+static void PCTurnOnEffect_0(struct Task *);
+static void PCTurnOnEffect_1(s16, s8, s8);
+static void PCTurnOffEffect(void);
+static void Task_LotteryCornerComputerEffect(u8);
+static void LotteryCornerComputerEffect(struct Task *);
+static void sub_81395BC(u8 taskId);
+static void sub_8139620(u8 taskId);
+static void sub_8139AF4(u8 taskId);
+static void sub_8139C2C(u16 a1, u8 a2);
+static void sub_8139C80(u8 taskId);
+static void sub_813A2DC(u8 taskId);
+static void sub_813AA60(u16 a0, u16 a1);
+static void sub_813ACE8(u8 a0, u16 a1);
+static void sub_813A42C(void);
+static void sub_813A4EC(u8 taskId);
+static void sub_813A694(u8 taskId);
+static void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list);
+static void sub_813AC44(u16 a0, u16 a1);
+static void sub_813AD34(u8 a0, u16 a1);
+static void sub_813A570(u8 taskId);
+static void sub_813A738(u8 taskId);
+static void sub_813A600(u8 taskId);
+static void sub_813A664(u8 taskId);
+static void sub_813ABD4(u16 a0);
+static void task_deoxys_sound(u8 taskId);
+static void sub_813B0B4(u8 a0);
+static void sub_813B160(u8 taskId);
+static void sub_813B57C(u8 taskId);
+static void sub_813B824(u8 taskId);
+static void _fwalk(u8 taskId);
+static u8 sub_813BF44(void);
+static void sub_813BD84(void);
+static u16 sub_813BB74(void);
+static void sub_813BE30(struct LinkBattleRecords *linkRecords, u8 a, u8 b);
+
+void Special_ShowDiploma(void)
+{
+ SetMainCallback2(CB2_ShowDiploma);
+ ScriptContext2_Enable();
+}
+
+void Special_ViewWallClock(void)
+{
+ gMain.savedCallback = CB2_ReturnToField;
+ SetMainCallback2(CB2_ViewWallClock);
+ ScriptContext2_Enable();
+}
+
+void ResetCyclingRoadChallengeData(void)
+{
+ gBikeCyclingChallenge = FALSE;
+ gBikeCollisions = 0;
+ gBikeCyclingTimer = 0;
+}
+
+void Special_BeginCyclingRoadChallenge(void)
+{
+ gBikeCyclingChallenge = TRUE;
+ gBikeCollisions = 0;
+ gBikeCyclingTimer = gMain.vblankCounter1;
+}
+
+u16 GetPlayerAvatarBike(void)
+{
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE))
+ return 1;
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE))
+ return 2;
+ return 0;
+}
+
+static void DetermineCyclingRoadResults(u32 numFrames, u8 numBikeCollisions)
+{
+ u8 result;
+
+ if (numBikeCollisions < 100)
+ {
+ ConvertIntToDecimalStringN(gStringVar1, numBikeCollisions, STR_CONV_MODE_LEFT_ALIGN, 2);
+ StringAppend(gStringVar1, gText_SpaceTimes);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gText_99TimesPlus);
+ }
+
+ if (numFrames < 3600)
+ {
+ ConvertIntToDecimalStringN(gStringVar2, numFrames / 60, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ gStringVar2[2] = CHAR_PERIOD;
+ ConvertIntToDecimalStringN(&gStringVar2[3], ((numFrames % 60) * 100) / 60, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringAppend(gStringVar2, gText_SpaceSeconds);
+ }
+ else
+ {
+ StringCopy(gStringVar2, gText_1MinutePlus);
+ }
+
+ result = 0;
+ if (numBikeCollisions == 0)
+ {
+ result = 5;
+ }
+ else if (numBikeCollisions < 4)
+ {
+ result = 4;
+ }
+ else if (numBikeCollisions < 10)
+ {
+ result = 3;
+ }
+ else if (numBikeCollisions < 20)
+ {
+ result = 2;
+ }
+ else if (numBikeCollisions < 100)
+ {
+ result = 1;
+ }
+
+ if (numFrames / 60 <= 10)
+ {
+ result += 5;
+ }
+ else if (numFrames / 60 <= 15)
+ {
+ result += 4;
+ }
+ else if (numFrames / 60 <= 20)
+ {
+ result += 3;
+ }
+ else if (numFrames / 60 <= 40)
+ {
+ result += 2;
+ }
+ else if (numFrames / 60 < 60)
+ {
+ result += 1;
+ }
+
+
+ gSpecialVar_Result = result;
+}
+
+void FinishCyclingRoadChallenge(void) {
+ const u32 numFrames = gMain.vblankCounter1 - gBikeCyclingTimer;
+
+ DetermineCyclingRoadResults(numFrames, gBikeCollisions);
+ RecordCyclingRoadResults(numFrames, gBikeCollisions);
+}
+
+static void RecordCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) {
+ u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L);
+ u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H);
+ u32 framesRecord = low + (high << 16);
+
+ if (framesRecord > numFrames || framesRecord == 0)
+ {
+ VarSet(VAR_CYCLING_ROAD_RECORD_TIME_L, numFrames);
+ VarSet(VAR_CYCLING_ROAD_RECORD_TIME_H, numFrames >> 16);
+ VarSet(VAR_CYCLING_ROAD_RECORD_COLLISIONS, numBikeCollisions);
+ }
+}
+
+u16 GetRecordedCyclingRoadResults(void) {
+ u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L);
+ u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H);
+ u32 framesRecord = low + (high << 16);
+
+ if (framesRecord == 0)
+ {
+ return FALSE;
+ }
+
+ DetermineCyclingRoadResults(framesRecord, VarGet(VAR_CYCLING_ROAD_RECORD_COLLISIONS));
+ return TRUE;
+}
+
+void UpdateCyclingRoadState(void) {
+ if (gUnknown_020322DC.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE) && gUnknown_020322DC.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE))
+ {
+ return;
+ }
+
+ if (VarGet(VAR_CYCLING_CHALLENGE_STATE) == 2 || VarGet(VAR_CYCLING_CHALLENGE_STATE) == 3)
+ {
+ VarSet(VAR_CYCLING_CHALLENGE_STATE, 0);
+ Overworld_SetSavedMusic(MUS_DUMMY);
+ }
+}
+
+void SetSSTidalFlag(void)
+{
+ FlagSet(FLAG_SYS_CRUISE_MODE);
+ *GetVarPointer(VAR_CRUISE_STEP_COUNT) = 0;
+}
+
+void ResetSSTidalFlag(void)
+{
+ FlagClear(FLAG_SYS_CRUISE_MODE);
+}
+
+bool32 CountSSTidalStep(u16 delta)
+{
+ if (!FlagGet(FLAG_SYS_CRUISE_MODE) || (*GetVarPointer(VAR_CRUISE_STEP_COUNT) += delta) <= 0xcc)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y)
+{
+ u16 *varCruiseStepCount = GetVarPointer(VAR_CRUISE_STEP_COUNT);
+ switch (*GetVarPointer(VAR_PORTHOLE_STATE))
+ {
+ case 1:
+ case 8:
+ return 1;
+ case 3:
+ case 9:
+ return 4;
+ case 4:
+ case 5:
+ return 2;
+ case 6:
+ case 10:
+ return 3;
+ case 2:
+ if (*varCruiseStepCount < 60)
+ {
+ *mapNum = MAP_NUM(ROUTE134);
+ *x = *varCruiseStepCount + 19;
+ }
+ else if (*varCruiseStepCount < 140)
+ {
+ *mapNum = MAP_NUM(ROUTE133);
+ *x = *varCruiseStepCount - 60;
+ }
+ else
+ {
+ *mapNum = MAP_NUM(ROUTE132);
+ *x = *varCruiseStepCount - 140;
+ }
+ break;
+ case 7:
+ if (*varCruiseStepCount < 66)
+ {
+ *mapNum = MAP_NUM(ROUTE132);
+ *x = 65 - *varCruiseStepCount;
+ }
+ else if (*varCruiseStepCount < 146) {
+ *mapNum = MAP_NUM(ROUTE133);
+ *x = 145 - *varCruiseStepCount;
+ }
+ else
+ {
+ *mapNum = MAP_NUM(ROUTE134);
+ *x = 224 - *varCruiseStepCount;
+ }
+ break;
+ }
+ *mapGroup = MAP_GROUP(ROUTE132);
+ *y = 20;
+ return 0;
+}
+
+bool32 is_tile_that_overrides_player_control(void)
+{
+ if (FlagGet(FLAG_0x088))
+ {
+ switch (gMapHeader.mapType)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 6:
+ if (++(*GetVarPointer(VAR_0x40F2)) < 0xFA)
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool32 sub_8138120(void)
+{
+ if (FlagGet(FLAG_0x08A))
+ {
+ switch (gMapHeader.mapType)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 6:
+ if (++(*GetVarPointer(VAR_0x40F3)) < 0xA)
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool32 sub_8138168(void)
+{
+ if (FlagGet(FLAG_0x072))
+ {
+ switch (gMapHeader.mapType)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 6:
+ if (++(*GetVarPointer(VAR_0x40F5)) < 0xA)
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool32 sub_81381B0(void)
+{
+ if (FlagGet(FLAG_0x080))
+ {
+ switch (gMapHeader.mapType)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 6:
+ if (++(*GetVarPointer(VAR_0x40F4)) < 0xFA)
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool32 sub_81381F8(void)
+{
+ if (FlagGet(FLAG_0x075))
+ {
+ switch (gMapHeader.mapType)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 6:
+ if (++(*GetVarPointer(VAR_0x40F6)) < 0xFA)
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+u8 GetLinkPartnerNames(void)
+{
+ u8 i;
+ u8 j = 0;
+ u8 myLinkPlayerNumber = GetMultiplayerId();
+ u8 nLinkPlayers = GetLinkPlayerCount();
+ for (i = 0; i < nLinkPlayers; i++)
+ {
+ if (myLinkPlayerNumber != i)
+ {
+ StringCopy(gTVStringVarPtrs[j], gLinkPlayers[i].name);
+ j++;
+ }
+ }
+ return nLinkPlayers;
+}
+
+void SpawnLinkPartnerEventObject(void)
+{
+ u8 j = 0;
+ s16 x = 0;
+ s16 y = 0;
+ u8 gUnknown_085B2B5C[] = {7, 9, 8, 10};
+ s8 gUnknown_085B2B60[][2] = {
+ { 0, 1},
+ { 1, 0},
+ { 0, -1},
+ {-1, 0}
+ };
+ u8 myLinkPlayerNumber;
+ u8 playerFacingDirection;
+ u8 linkSpriteId;
+ u8 i;
+
+ myLinkPlayerNumber = GetMultiplayerId();
+ playerFacingDirection = GetPlayerFacingDirection();
+ switch (playerFacingDirection)
+ {
+ case DIR_WEST:
+ j = 2;
+ x = gSaveBlock1Ptr->pos.x - 1;
+ y = gSaveBlock1Ptr->pos.y;
+ break;
+ case DIR_NORTH:
+ j = 1;
+ x = gSaveBlock1Ptr->pos.x;
+ y = gSaveBlock1Ptr->pos.y - 1;
+ break;
+ case DIR_EAST:
+ x = gSaveBlock1Ptr->pos.x + 1;
+ y = gSaveBlock1Ptr->pos.y;
+ break;
+ case DIR_SOUTH:
+ j = 3;
+ x = gSaveBlock1Ptr->pos.x;
+ y = gSaveBlock1Ptr->pos.y + 1;
+ }
+ for (i = 0; i < gSpecialVar_0x8004; i++)
+ {
+ if (myLinkPlayerNumber != i)
+ {
+ switch ((u8)gLinkPlayers[i].version)
+ {
+ case VERSION_RUBY:
+ case VERSION_SAPPHIRE:
+ if (gLinkPlayers[i].gender == 0)
+ linkSpriteId = EVENT_OBJ_GFX_LINK_RS_BRENDAN;
+ else
+ linkSpriteId = EVENT_OBJ_GFX_LINK_RS_MAY;
+ break;
+ case VERSION_EMERALD:
+ if (gLinkPlayers[i].gender == 0)
+ linkSpriteId = EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL;
+ else
+ linkSpriteId = EVENT_OBJ_GFX_RIVAL_MAY_NORMAL;
+ break;
+ default:
+ if (gLinkPlayers[i].gender == 0)
+ linkSpriteId = EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL;
+ else
+ linkSpriteId = EVENT_OBJ_GFX_RIVAL_MAY_NORMAL;
+ break;
+ }
+ SpawnSpecialEventObjectParameterized(linkSpriteId, gUnknown_085B2B5C[j], 0xf0 - i, gUnknown_085B2B60[j][0] + x + 7, gUnknown_085B2B60[j][1] + y + 7, 0);
+ LoadLinkPartnerEventObjectSpritePalette(linkSpriteId, 0xf0 - i, i);
+ j++;
+ if (j == 4)
+ {
+ j = 0;
+ }
+ }
+ }
+}
+
+static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum)
+{
+ paletteNum += 6;
+ if (graphicsId == EVENT_OBJ_GFX_LINK_RS_BRENDAN ||
+ graphicsId == EVENT_OBJ_GFX_LINK_RS_MAY ||
+ graphicsId == EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL ||
+ graphicsId == EVENT_OBJ_GFX_RIVAL_MAY_NORMAL)
+ {
+ u8 obj = GetEventObjectIdByLocalIdAndMap(localEventId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ if (obj != NUM_EVENT_OBJECTS)
+ {
+ u8 spriteId = gEventObjects[obj].spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
+ sprite->oam.paletteNum = paletteNum;
+
+ switch (graphicsId)
+ {
+ case EVENT_OBJ_GFX_LINK_RS_BRENDAN:
+ LoadPalette(gEventObjectPalette33, 0x100 + paletteNum * 16, 0x20);
+ break;
+ case EVENT_OBJ_GFX_LINK_RS_MAY:
+ LoadPalette(gEventObjectPalette34, 0x100 + paletteNum * 16, 0x20);
+ break;
+ case EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL:
+ LoadPalette(gEventObjectPalette8, 0x100 + paletteNum * 16, 0x20);
+ break;
+ case EVENT_OBJ_GFX_RIVAL_MAY_NORMAL:
+ LoadPalette(gEventObjectPalette17, 0x100 + paletteNum * 16, 0x20);
+ break;
+ }
+ }
+ }
+}
+
+static const struct UCoords8 gUnknown_085B2B68[] = {
+ { 7, 22},
+ {11, 19},
+ {10, 16},
+ {15, 16}
+};
+
+void MauvilleGymSpecial1(void)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(gUnknown_085B2B68); i++)
+ {
+ if (i == gSpecialVar_0x8004)
+ {
+ MapGridSetMetatileIdAt(gUnknown_085B2B68[i].x, gUnknown_085B2B68[i].y, 0x206);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(gUnknown_085B2B68[i].x, gUnknown_085B2B68[i].y, 0x205);
+ }
+ }
+}
+
+void MauvilleGymSpecial2(void)
+{
+ int x, y;
+ for (y = 12; y < 24; y++)
+ {
+ for (x = 7; x < 16; x++)
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x220:
+ MapGridSetMetatileIdAt(x, y, 0x230);
+ break;
+ case 0x221:
+ MapGridSetMetatileIdAt(x, y, 0x231);
+ break;
+ case 0x228:
+ MapGridSetMetatileIdAt(x, y, 0x238);
+ break;
+ case 0x229:
+ MapGridSetMetatileIdAt(x, y, 0x239);
+ break;
+ case 0x230:
+ MapGridSetMetatileIdAt(x, y, 0x220);
+ break;
+ case 0x231:
+ MapGridSetMetatileIdAt(x, y, 0x221);
+ break;
+ case 0x238:
+ MapGridSetMetatileIdAt(x, y, 0xe28);
+ break;
+ case 0x239:
+ MapGridSetMetatileIdAt(x, y, 0xe29);
+ break;
+ case 0x222:
+ MapGridSetMetatileIdAt(x, y, 0x232);
+ break;
+ case 0x223:
+ MapGridSetMetatileIdAt(x, y, 0x233);
+ break;
+ case 0x22a:
+ MapGridSetMetatileIdAt(x, y, 0x23a);
+ break;
+ case 0x22b:
+ MapGridSetMetatileIdAt(x, y, 0x23b);
+ break;
+ case 0x232:
+ MapGridSetMetatileIdAt(x, y, 0x222);
+ break;
+ case 0x233:
+ MapGridSetMetatileIdAt(x, y, 0x223);
+ break;
+ case 0x23a:
+ MapGridSetMetatileIdAt(x, y, 0xe2a);
+ break;
+ case 0x23b:
+ MapGridSetMetatileIdAt(x, y, 0xe2b);
+ break;
+ case 0x240:
+ MapGridSetMetatileIdAt(x, y, 0xe42);
+ break;
+ case 0x248:
+ MapGridSetMetatileIdAt(x, y, 0x21a);
+ break;
+ case 0x241:
+ MapGridSetMetatileIdAt(x, y, 0xe43);
+ break;
+ case 0x249:
+ MapGridSetMetatileIdAt(x, y, 0x21a);
+ break;
+ case 0x242:
+ MapGridSetMetatileIdAt(x, y, 0xe40);
+ break;
+ case 0x21a:
+ if (MapGridGetMetatileIdAt(x, y - 1) == 0x240)
+ {
+ MapGridSetMetatileIdAt(x, y, 0xe48);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(x, y, 0xe49);
+ }
+ break;
+ case 0x243:
+ MapGridSetMetatileIdAt(x, y, 0xe41);
+ break;
+ case 0x251:
+ MapGridSetMetatileIdAt(x, y, 0xe50);
+ break;
+ case 0x250:
+ MapGridSetMetatileIdAt(x, y, 0x251);
+ break;
+ }
+ }
+ }
+}
+
+void MauvilleGymSpecial3(void)
+{
+ int i, x, y;
+ const struct UCoords8 *switchCoords = gUnknown_085B2B68;
+ for (i = ARRAY_COUNT(gUnknown_085B2B68) - 1; i >= 0; i--)
+ {
+ MapGridSetMetatileIdAt(switchCoords->x, switchCoords->y, 0x206);
+ switchCoords++;
+ }
+ for (y = 12; y < 24; y++)
+ {
+ for (x = 7; x < 16; x++)
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x220:
+ MapGridSetMetatileIdAt(x, y, 0x230);
+ break;
+ case 0x221:
+ MapGridSetMetatileIdAt(x, y, 0x231);
+ break;
+ case 0x228:
+ MapGridSetMetatileIdAt(x, y, 0x238);
+ break;
+ case 0x229:
+ MapGridSetMetatileIdAt(x, y, 0x239);
+ break;
+ case 0x222:
+ MapGridSetMetatileIdAt(x, y, 0x232);
+ break;
+ case 0x223:
+ MapGridSetMetatileIdAt(x, y, 0x233);
+ break;
+ case 0x22a:
+ MapGridSetMetatileIdAt(x, y, 0x23a);
+ break;
+ case 0x22b:
+ MapGridSetMetatileIdAt(x, y, 0x23b);
+ break;
+ case 0x240:
+ MapGridSetMetatileIdAt(x, y, 0xe42);
+ break;
+ case 0x241:
+ MapGridSetMetatileIdAt(x, y, 0xe43);
+ break;
+ case 0x248:
+ case 0x249:
+ MapGridSetMetatileIdAt(x, y, 0x21a);
+ break;
+ case 0x250:
+ MapGridSetMetatileIdAt(x, y, 0x251);
+ break;
+ }
+ }
+ }
+}
+
+static const u8 gUnknown_085B2B78[] = {0, 1, 1, 1, 1};
+static const u16 gUnknown_085B2B7E[] = {0x218, 0x219, 0x21a, 0x21b, 0x21c};
+
+void PetalburgGymSpecial1(void)
+{
+ gUnknown_0203AB5C = 0;
+ gUnknown_0203AB5D = 0;
+ PlaySE(SE_KI_GASYAN);
+ CreateTask(Task_PetalburgGym, 8);
+}
+
+static void Task_PetalburgGym(u8 taskId)
+{
+ if (gUnknown_085B2B78[gUnknown_0203AB5D] == gUnknown_0203AB5C)
+ {
+ PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_085B2B7E[gUnknown_0203AB5D]);
+ gUnknown_0203AB5C = 0;
+ if ((++gUnknown_0203AB5D) == 5)
+ {
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ }
+ else
+ {
+ gUnknown_0203AB5C++;
+ }
+}
+
+static void PetalburgGymFunc(u8 a0, u16 a1)
+{
+ u16 x[4];
+ u16 y[4];
+ u8 i;
+ u8 nDoors = 0;
+ switch (a0)
+ {
+ case 1:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x68;
+ y[1] = 0x68;
+ break;
+ case 2:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x4e;
+ y[1] = 0x4e;
+ break;
+ case 3:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x5b;
+ y[1] = 0x5b;
+ break;
+ case 4:
+ nDoors = 1;
+ x[0] = 7;
+ y[0] = 0x27;
+ break;
+ case 5:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x34;
+ y[1] = 0x34;
+ break;
+ case 6:
+ nDoors = 1;
+ x[0] = 1;
+ y[0] = 0x41;
+ break;
+ case 7:
+ nDoors = 1;
+ x[0] = 7;
+ y[0] = 0xd;
+ break;
+ case 8:
+ nDoors = 1;
+ x[0] = 1;
+ y[0] = 0x1a;
+ break;
+ }
+ for (i = 0; i < nDoors; i++)
+ {
+ MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | 0xc00);
+ MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | 0xc00);
+ }
+ DrawWholeMapView();
+}
+
+void PetalburgGymSpecial2(void)
+{
+ PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_085B2B7E[4]);
+}
+
+void ShowFieldMessageStringVar4(void)
+{
+ ShowFieldMessage(gStringVar4);
+}
+
+void StorePlayerCoordsInVars(void)
+{
+ gSpecialVar_0x8004 = gSaveBlock1Ptr->pos.x;
+ gSpecialVar_0x8005 = gSaveBlock1Ptr->pos.y;
+}
+
+u8 GetPlayerTrainerIdOnesDigit(void)
+{
+ return (u16)((gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]) % 10;
+}
+
+void GetPlayerBigGuyGirlString(void)
+{
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ {
+ StringCopy(gStringVar1, gText_BigGuy);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gText_BigGirl);
+ }
+}
+
+void GetRivalSonDaughterString(void)
+{
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ {
+ StringCopy(gStringVar1, gText_Daughter);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gText_Son);
+ }
+}
+
+u8 GetBattleOutcome(void)
+{
+ return gBattleOutcome;
+}
+
+void CableCarWarp(void)
+{
+ if (gSpecialVar_0x8004 != 0)
+ {
+ Overworld_SetWarpDestination(MAP_GROUP(ROUTE112_CABLE_CAR_STATION), MAP_NUM(ROUTE112_CABLE_CAR_STATION), -1, 6, 4);
+ }
+ else
+ {
+ Overworld_SetWarpDestination(MAP_GROUP(MT_CHIMNEY_CABLE_CAR_STATION), MAP_NUM(MT_CHIMNEY_CABLE_CAR_STATION), -1, 6, 4);
+ }
+}
+
+void SetFlagInVar(void)
+{
+ FlagSet(gSpecialVar_0x8004);
+}
+
+u16 GetWeekCount(void)
+{
+ u16 weekCount = gLocalTime.days / 7;
+ if (weekCount > 9999)
+ {
+ weekCount = 9999;
+ }
+ return weekCount;
+}
+
+u8 GetLeadMonFriendshipScore(void)
+{
+ struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()];
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == 255)
+ {
+ return 6;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 200)
+ {
+ return 5;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 150)
+ {
+ return 4;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 100)
+ {
+ return 3;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 50)
+ {
+ return 2;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 1)
+ {
+ return 1;
+ }
+ return 0;
+}
+
+static void CB2_FieldShowRegionMap(void)
+{
+ FieldInitRegionMap(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+}
+
+void FieldShowRegionMap(void)
+{
+ SetMainCallback2(CB2_FieldShowRegionMap);
+}
+
+void DoPCTurnOnEffect(void)
+{
+ if (FuncIsActiveTask(Task_PCTurnOnEffect) != TRUE)
+ {
+ u8 taskId = CreateTask(Task_PCTurnOnEffect, 8);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = taskId;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = 0;
+ }
+}
+
+static void Task_PCTurnOnEffect(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ if (task->data[0] == 0)
+ {
+ PCTurnOnEffect_0(task);
+ }
+}
+
+static void PCTurnOnEffect_0(struct Task *task)
+{
+ u8 playerDirection;
+ s8 dx = 0;
+ s8 dy = 0;
+ if (task->data[3] == 6)
+ {
+ task->data[3] = 0;
+ playerDirection = GetPlayerFacingDirection();
+ switch (playerDirection)
+ {
+ case DIR_NORTH:
+ dx = 0;
+ dy = -1;
+ break;
+ case DIR_WEST:
+ dx = -1;
+ dy = -1;
+ break;
+ case DIR_EAST:
+ dx = 1;
+ dy = -1;
+ break;
+ }
+ PCTurnOnEffect_1(task->data[4], dx, dy);
+ DrawWholeMapView();
+ task->data[4] ^= 1;
+ if ((++task->data[2]) == 5)
+ {
+ DestroyTask(task->data[1]);
+ }
+ }
+ task->data[3]++;
+}
+
+static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy)
+{
+ u16 tileId = 0;
+ if (flag != 0)
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ tileId = 0x4;
+ }
+ else if (gSpecialVar_0x8004 == 1)
+ {
+ tileId = 0x25a;
+ }
+ else if (gSpecialVar_0x8004 == 2)
+ {
+ tileId = 0x259;
+ }
+ }
+ else
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ tileId = 0x5;
+ }
+ else if (gSpecialVar_0x8004 == 1)
+ {
+ tileId = 0x27f;
+ }
+ else if (gSpecialVar_0x8004 == 2)
+ {
+ tileId = 0x27e;
+ }
+ }
+ MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00);
+}
+
+void DoPCTurnOffEffect(void)
+{
+ PCTurnOffEffect();
+}
+
+static void PCTurnOffEffect(void)
+{
+ s8 dx = 0;
+ s8 dy = 0;
+ u16 tileId = 0;
+ u8 playerDirection = GetPlayerFacingDirection();
+ switch (playerDirection)
+ {
+ case DIR_NORTH:
+ dx = 0;
+ dy = -1;
+ break;
+ case DIR_WEST:
+ dx = -1;
+ dy = -1;
+ break;
+ case DIR_EAST:
+ dx = 1;
+ dy = -1;
+ break;
+ }
+ if (gSpecialVar_0x8004 == 0)
+ {
+ tileId = 0x4;
+ }
+ else if (gSpecialVar_0x8004 == 1)
+ {
+ tileId = 0x25a;
+ }
+ else if (gSpecialVar_0x8004 == 2)
+ {
+ tileId = 0x259;
+ }
+ MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00);
+ DrawWholeMapView();
+}
+
+void DoLotteryCornerComputerEffect(void)
+{
+ if (FuncIsActiveTask(Task_LotteryCornerComputerEffect) != TRUE)
+ {
+ u8 taskId = CreateTask(Task_LotteryCornerComputerEffect, 8);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = taskId;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = 0;
+ }
+}
+
+static void Task_LotteryCornerComputerEffect(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ if (task->data[0] == 0)
+ {
+ LotteryCornerComputerEffect(task);
+ }
+}
+
+static void LotteryCornerComputerEffect(struct Task *task)
+{
+ if (task->data[3] == 6)
+ {
+ task->data[3] = 0;
+ if (task->data[4] != 0)
+ {
+ MapGridSetMetatileIdAt(18, 8, 0xe9d);
+ MapGridSetMetatileIdAt(18, 9, 0xea5);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(18, 8, 0xe58);
+ MapGridSetMetatileIdAt(18, 9, 0xe60);
+ }
+ DrawWholeMapView();
+ task->data[4] ^= 1;
+ if ((++task->data[2]) == 5)
+ {
+ DestroyTask(task->data[1]);
+ }
+ }
+ task->data[3]++;
+}
+
+void EndLotteryCornerComputerEffect(void)
+{
+ MapGridSetMetatileIdAt(18, 8, 0xe9d);
+ MapGridSetMetatileIdAt(18, 9, 0xea5);
+ DrawWholeMapView();
+}
+
+void SetTrickHouseEndRoomFlag(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_0x1F5;
+ *specVar = flag;
+ FlagSet(flag);
+}
+
+void ResetTrickHouseEndRoomFlag(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_0x1F5;
+ *specVar = flag;
+ FlagClear(flag);
+}
+
+bool8 CheckLeadMonCool(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_COOL) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonBeauty(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_BEAUTY) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonCute(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_CUTE) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonSmart(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SMART) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonTough(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_TOUGH) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void IsGrassTypeInParty(void)
+{
+ u8 i;
+ u16 species;
+ struct Pokemon *pokemon;
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ pokemon = &gPlayerParty[i];
+ if (GetMonData(pokemon, MON_DATA_SANITY_BIT2) && !GetMonData(pokemon, MON_DATA_IS_EGG))
+ {
+ species = GetMonData(pokemon, MON_DATA_SPECIES);
+ if (gBaseStats[species].type1 == TYPE_GRASS || gBaseStats[species].type2 == TYPE_GRASS)
+ {
+ gSpecialVar_Result = TRUE;
+ return;
+ }
+ }
+ }
+ gSpecialVar_Result = FALSE;
+}
+
+void SpawnScriptEventObject(void)
+{
+ u8 obj = SpawnSpecialEventObjectParameterized(EVENT_OBJ_GFX_BOY_1, 8, 0x7F, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
+ gEventObjects[obj].invisible = TRUE;
+ CameraObjectSetFollowedObjectId(gEventObjects[obj].spriteId);
+}
+
+void RemoveScriptEventObject(void)
+{
+ CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId());
+ RemoveEventObjectByLocalIdAndMap(0x7F, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+}
+
+u8 GetPokeblockNameByMonNature(void)
+{
+ return CopyMonFavoritePokeblockName(GetNature(&gPlayerParty[GetLeadMonIndex()]), gStringVar1);
+}
+
+void GetSecretBaseNearbyMapName(void)
+{
+ GetMapName(gStringVar1, VarGet(VAR_SECRET_BASE_MAP), 0);
+}
+
+u16 GetBestBattleTowerStreak(void)
+{
+ return GetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK);
+}
+
+void BufferEReaderTrainerName(void)
+{
+ GetEreaderTrainerName(gStringVar1);
+}
+
+u16 GetSlotMachineId(void)
+{
+ static const u8 gUnknown_085B2B88[] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6};
+ static const u8 gUnknown_085B2B94[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5};
+ static const u8 gUnknown_085B2BA0[] = {3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5};
+
+ u32 v0 = gSaveBlock1Ptr->easyChatPairs[0].unk0_0 + gSaveBlock1Ptr->easyChatPairs[0].unk2 + gUnknown_085B2B88[gSpecialVar_0x8004];
+ if (GetPriceReduction(2))
+ {
+ return gUnknown_085B2BA0[v0 % 12];
+ }
+ return gUnknown_085B2B94[v0 % 12];
+}
+
+bool8 FoundAbandonedShipRoom1Key(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_HIDDEN_ITEM_1F;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 FoundAbandonedShipRoom2Key(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_HIDDEN_ITEM_20;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 FoundAbandonedShipRoom4Key(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_HIDDEN_ITEM_21;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 FoundAbandonedShipRoom6Key(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_HIDDEN_ITEM_22;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 LeadMonHasEffortRibbon(void)
+{
+ return GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_EFFORT_RIBBON, NULL);
+}
+
+void GiveLeadMonEffortRibbon(void)
+{
+ bool8 ribbonSet;
+ struct Pokemon *leadMon;
+ IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS);
+ FlagSet(FLAG_SYS_RIBBON_GET);
+ ribbonSet = TRUE;
+ leadMon = &gPlayerParty[GetLeadMonIndex()];
+ SetMonData(leadMon, MON_DATA_EFFORT_RIBBON, &ribbonSet);
+ if (GetRibbonCount(leadMon) > 4)
+ {
+ sub_80EE4DC(leadMon, 0x47);
+ }
+}
+
+bool8 Special_AreLeadMonEVsMaxedOut(void)
+{
+ if (GetMonEVCount(&gPlayerParty[GetLeadMonIndex()]) >= 510)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u8 TryUpdateRusturfTunnelState(void)
+{
+ if (!FlagGet(FLAG_RUSTURF_TUNNEL_OPENED) && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(RUSTURF_TUNNEL) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(RUSTURF_TUNNEL))
+ {
+ if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1))
+ {
+ VarSet(VAR_RUSTURF_TUNNEL_STATE, 4);
+ return TRUE;
+ }
+ else if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2))
+ {
+ VarSet(VAR_RUSTURF_TUNNEL_STATE, 5);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void SetShoalItemFlag(u16 v0)
+{
+ FlagSet(FLAG_SYS_SHOAL_ITEM);
+}
+
+void PutZigzagoonInPlayerParty(void)
+{
+ u16 monData;
+ CreateMon(&gPlayerParty[0], SPECIES_ZIGZAGOON, 7, 0x20, FALSE, 0, FALSE, 0);
+ monData = TRUE;
+ SetMonData(&gPlayerParty[0], MON_DATA_ALT_ABILITY, &monData);
+ monData = MOVE_TACKLE;
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, &monData);
+ monData = MOVE_NONE;
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, &monData);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, &monData);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, &monData);
+}
+
+bool8 IsStarterInParty(void)
+{
+ u8 i;
+ u16 starter = GetStarterPokemon(VarGet(VAR_STARTER_MON));
+ u8 partyCount = CalculatePlayerPartyCount();
+ for (i = 0; i < partyCount; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) == starter)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 ScriptCheckFreePokemonStorageSpace(void)
+{
+ return CheckFreePokemonStorageSpace();
+}
+
+bool8 IsPokerusInParty(void)
+{
+ if (!CheckPartyPokerus(gPlayerParty, 0x3f))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_8139560(void)
+{
+ u8 taskId = CreateTask(sub_81395BC, 9);
+ gTasks[taskId].data[0] = gSpecialVar_0x8005;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = gSpecialVar_0x8006;
+ gTasks[taskId].data[3] = gSpecialVar_0x8007;
+ gTasks[taskId].data[4] = gSpecialVar_0x8004;
+ SetCameraPanningCallback(NULL);
+ PlaySE(SE_W070);
+}
+
+static void sub_81395BC(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ data[1]++;
+ if (data[1] % data[3] == 0)
+ {
+ data[1] = 0;
+ data[2]--;
+ data[0] = -data[0];
+ data[4] = -data[4];
+ SetCameraPanning(data[0], data[4]);
+ if (data[2] == 0)
+ {
+ sub_8139620(taskId);
+ InstallCameraPanAheadCallback();
+ }
+ }
+}
+
+static void sub_8139620(u8 taskId)
+{
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+bool8 FoundBlackGlasses(void)
+{
+ return FlagGet(FLAG_HIDDEN_ITEM_BLACK_GLASSES);
+}
+
+void SetRoute119Weather(void)
+{
+ if (is_map_type_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE)
+ {
+ SetSav1Weather(20);
+ }
+}
+
+void SetRoute123Weather(void)
+{
+ if (is_map_type_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE)
+ {
+ SetSav1Weather(21);
+ }
+}
+
+u8 GetLeadMonIndex(void)
+{
+ u8 i;
+ u8 partyCount = CalculatePlayerPartyCount();
+ for (i = 0; i < partyCount; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != 0)
+ {
+ return i;
+ }
+ }
+ return 0;
+}
+
+u16 ScriptGetPartyMonSpecies(void)
+{
+ return GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES2, NULL);
+}
+
+void nullsub_54(void)
+{
+
+}
+
+u16 GetDaysUntilPacifidlogTMAvailable(void)
+{
+ u16 tmReceivedDay = VarGet(VAR_PACIFIDLOG_TM_RECEIVED_DAY);
+ if (gLocalTime.days - tmReceivedDay >= 7)
+ {
+ return 0;
+ }
+ else if (gLocalTime.days < 0)
+ {
+ return 8;
+ }
+ return 7 - (gLocalTime.days - tmReceivedDay);
+}
+
+u16 SetPacifidlogTMReceivedDay(void)
+{
+ VarSet(VAR_PACIFIDLOG_TM_RECEIVED_DAY, gLocalTime.days);
+ return gLocalTime.days;
+}
+
+bool8 MonOTNameMatchesPlayer(void)
+{
+ if (GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_LANGUAGE) != GAME_LANGUAGE)
+ {
+ return TRUE; // huh?
+ }
+
+ GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_NAME, gStringVar1);
+ if (!StringCompare(gSaveBlock2Ptr->playerName, gStringVar1))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void BufferLottoTicketNumber(void)
+{
+ if (gSpecialVar_Result >= 10000)
+ {
+ TV_PrintIntToStringVar(0, gSpecialVar_Result);
+ }
+ else if (gSpecialVar_Result >= 1000)
+ {
+ gStringVar1[0] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 1, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result));
+ }
+ else if (gSpecialVar_Result >= 100)
+ {
+ gStringVar1[0] = CHAR_0;
+ gStringVar1[1] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 2, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result));
+ }
+ else if (gSpecialVar_Result >= 10)
+ {
+ gStringVar1[0] = CHAR_0;
+ gStringVar1[1] = CHAR_0;
+ gStringVar1[2] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 3, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result));
+ }
+ else
+ {
+ gStringVar1[0] = CHAR_0;
+ gStringVar1[1] = CHAR_0;
+ gStringVar1[2] = CHAR_0;
+ gStringVar1[3] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 4, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result));
+ }
+}
+
+u16 sub_813986C(void)
+{
+ switch (gSpecialVar_Result)
+ {
+ case 0:
+ return mevent_081445C0(3);
+ case 1:
+ return mevent_081445C0(4);
+ case 2:
+ return mevent_081445C0(0);
+ case 3:
+ return mevent_081445C0(1);
+ case 4:
+ return mevent_081445C0(2);
+ default:
+ return 0;
+ }
+}
+
+bool8 sub_81398C0(void)
+{
+ if (gSpecialVar_0x8004 >= ITEM_TM01 && gSpecialVar_0x8004 <= ITEM_HM08)
+ {
+ StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_0x8004)]);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+bool8 sub_813990C(void)
+{
+ u8 partyCount = CalculatePlayerPartyCount();
+ u8 i;
+
+ for (i = 0; i < partyCount; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT1) == 1)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+bool8 InMultiBattleRoom(void)
+{
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM)
+ && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM) &&
+ VarGet(VAR_0x40CE) == 2)
+ return TRUE;
+ return FALSE;
+}
+
+void sub_8139980(void)
+{
+ SetCameraPanningCallback(NULL);
+ SetCameraPanning(8, 0);
+}
+
+const struct WindowTemplate gUnknown_085B2BAC = {
+ .priority = 0,
+ .tilemapLeft = 21,
+ .tilemapTop = 1,
+ .width = 8,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 8,
+};
+
+const u8 *const gElevatorFloorsTable[] = {
+ gText_B4F,
+ gText_B3F,
+ gText_B2F,
+ gText_B1F,
+ gText_1F,
+ gText_2F,
+ gText_3F,
+ gText_4F,
+ gText_5F,
+ gText_6F,
+ gText_7F,
+ gText_8F,
+ gText_9F,
+ gText_10F,
+ gText_11F,
+ gText_Rooftop
+};
+
+const u16 gUnknown_085B2BF4[] = { 0x0329, 0x032a, 0x032b, 0x0331, 0x0332, 0x0333, 0x0339, 0x033a, 0x033b };
+const u16 gUnknown_085B2C06[] = { 0x0329, 0x032b, 0x032a, 0x0331, 0x0333, 0x0332, 0x0339, 0x033b, 0x033a };
+
+void SetDepartmentStoreFloorVar(void)
+{
+ u8 deptStoreFloor;
+ switch (gSaveBlock1Ptr->warp2.mapNum)
+ {
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F):
+ deptStoreFloor = 4;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F):
+ deptStoreFloor = 5;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F):
+ deptStoreFloor = 6;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F):
+ deptStoreFloor = 7;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F):
+ deptStoreFloor = 8;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP):
+ deptStoreFloor = 15;
+ break;
+ default:
+ deptStoreFloor = 4;
+ break;
+ }
+ VarSet(VAR_DEPT_STORE_FLOOR, deptStoreFloor);
+}
+
+u16 sub_81399F4(void)
+{
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 0;
+
+ if (gSaveBlock1Ptr->warp2.mapGroup == 13)
+ {
+ switch (gSaveBlock1Ptr->warp2.mapNum)
+ {
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F):
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 0;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F):
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 1;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F):
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 2;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F):
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 3;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F):
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 4;
+ break;
+ }
+ }
+
+ return gUnknown_0203AB62;
+}
+
+void ShakeScreenInElevator(void)
+{
+ static const u8 gUnknown_085B2C18[] = { 0x08, 0x10, 0x18, 0x20, 0x26, 0x2e, 0x34, 0x38, 0x39 };
+
+ s16 *data = gTasks[CreateTask(sub_8139AF4, 9)].data;
+ u16 floorDelta;
+
+ data[1] = 0;
+ data[2] = 0;
+ data[4] = 1;
+
+ if (gSpecialVar_0x8005 > gSpecialVar_0x8006)
+ {
+ floorDelta = gSpecialVar_0x8005 - gSpecialVar_0x8006;
+ data[6] = 1;
+ }
+ else
+ {
+ floorDelta = gSpecialVar_0x8006 - gSpecialVar_0x8005;
+ data[6] = 0;
+ }
+
+ if (floorDelta > 8)
+ floorDelta = 8;
+
+ data[5] = gUnknown_085B2C18[floorDelta];
+
+ SetCameraPanningCallback(NULL);
+ sub_8139C2C(floorDelta, data[6]);
+ PlaySE(SE_ELEBETA);
+}
+
+static void sub_8139AF4(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ data[1]++;
+ if (data[1] % 3 == 0)
+ {
+ data[1] = 0;
+ data[2]++;
+ data[4] = -data[4];
+ SetCameraPanning(0, data[4]);
+ if (data[2] == data[5])
+ {
+ PlaySE(SE_PINPON);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ InstallCameraPanAheadCallback();
+ }
+ }
+}
+
+void sub_8139B60(void)
+{
+ int xPos;
+
+ gUnknown_0203AB5E = AddWindow(&gUnknown_085B2BAC);
+ SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0);
+
+ xPos = GetStringCenterAlignXOffset(1, gText_ElevatorNowOn, 64);
+ PrintTextOnWindow(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL);
+
+ xPos = GetStringCenterAlignXOffset(1, gElevatorFloorsTable[gSpecialVar_0x8005], 64);
+ PrintTextOnWindow(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL);
+
+ PutWindowTilemap(gUnknown_0203AB5E);
+ CopyWindowToVram(gUnknown_0203AB5E, 3);
+}
+
+void sub_8139C10(void)
+{
+ sub_8198070(gUnknown_0203AB5E, TRUE);
+ RemoveWindow(gUnknown_0203AB5E);
+}
+
+static void sub_8139C2C(u16 a1, u8 a2)
+{
+ static const u8 gUnknown_085B2C21[] = { 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15, 0x18, 0x1b };
+
+ if (FuncIsActiveTask(sub_8139C80) != TRUE)
+ {
+ u8 taskId = CreateTask(sub_8139C80, 8);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = a2;
+ gTasks[taskId].data[3] = gUnknown_085B2C21[a1];
+ }
+}
+
+// Annoyingly close but compiler wants to add all the parts of the index into the arrays
+// first and then shift by one, whereas we need each individual part to shift and then be added.
+#ifdef NONMATCHING
+static void sub_8139C80(u8 taskId)
+{
+ u8 x, y;
+ s16 *data = gTasks[taskId].data;
+
+ if (data[1] == 6)
+ {
+ data[0]++;
+ if (data[2] == 0)
+ {
+ for (y = 0; y < 3; y++)
+ {
+ for (x = 0; x < 3; x++)
+ {
+ MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y * 3 + data[0] % 3] | 0xC00);
+ }
+ }
+ }
+ else
+ {
+ for (y = 0; y < 3; y++)
+ {
+ for (x = 0; x < 3; x++)
+ {
+ MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y * 3 + data[0] % 3] | 0xC00);
+ }
+ }
+ }
+ DrawWholeMapView();
+ data[1] = 0;
+ if (data[0] == data[3])
+ {
+ DestroyTask(taskId);
+ }
+ }
+ data[1]++;
+}
+#else
+NAKED
+static void sub_8139C80(u8 taskId)
+{
+ asm_unified("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\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ str r0, [sp]\n\
+ lsls r0, 2\n\
+ ldr r1, [sp]\n\
+ adds r0, r1\n\
+ lsls r0, 3\n\
+ ldr r1, =gTasks + 0x8\n\
+ adds r6, r0, r1\n\
+ movs r2, 0x2\n\
+ ldrsh r0, [r6, r2]\n\
+ cmp r0, 0x6\n\
+ bne _08139D7C\n\
+ ldrh r0, [r6]\n\
+ adds r0, 0x1\n\
+ strh r0, [r6]\n\
+ movs r1, 0x4\n\
+ ldrsh r0, [r6, r1]\n\
+ cmp r0, 0\n\
+ bne _08139D10\n\
+ movs r1, 0\n\
+ ldr r2, =gUnknown_085B2BF4\n\
+ mov r10, r2\n\
+_08139CBA:\n\
+ movs r5, 0\n\
+ adds r7, r1, 0x7\n\
+ lsls r0, r1, 1\n\
+ adds r2, r1, 0x1\n\
+ mov r8, r2\n\
+ adds r0, r1\n\
+ lsls r0, 1\n\
+ mov r9, r0\n\
+_08139CCA:\n\
+ adds r4, r5, 0\n\
+ adds r4, 0x8\n\
+ movs r1, 0\n\
+ ldrsh r0, [r6, r1]\n\
+ movs r1, 0x3\n\
+ bl __modsi3\n\
+ lsls r0, 16\n\
+ asrs r0, 15\n\
+ add r0, r9\n\
+ add r0, r10\n\
+ ldrh r0, [r0]\n\
+ movs r1, 0xC0\n\
+ lsls r1, 4\n\
+ adds r2, r1, 0\n\
+ orrs r2, r0\n\
+ adds r0, r4, 0\n\
+ adds r1, r7, 0\n\
+ bl MapGridSetMetatileIdAt\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x2\n\
+ bls _08139CCA\n\
+ mov r2, r8\n\
+ lsls r0, r2, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0x2\n\
+ bls _08139CBA\n\
+ b _08139D62\n\
+ .pool\n\
+_08139D10:\n\
+ movs r1, 0\n\
+ ldr r0, =gUnknown_085B2C06\n\
+ mov r10, r0\n\
+_08139D16:\n\
+ movs r5, 0\n\
+ adds r7, r1, 0x7\n\
+ lsls r0, r1, 1\n\
+ adds r2, r1, 0x1\n\
+ mov r8, r2\n\
+ adds r0, r1\n\
+ lsls r0, 1\n\
+ mov r9, r0\n\
+_08139D26:\n\
+ adds r4, r5, 0\n\
+ adds r4, 0x8\n\
+ movs r1, 0\n\
+ ldrsh r0, [r6, r1]\n\
+ movs r1, 0x3\n\
+ bl __modsi3\n\
+ lsls r0, 16\n\
+ asrs r0, 15\n\
+ add r0, r9\n\
+ add r0, r10\n\
+ ldrh r0, [r0]\n\
+ movs r1, 0xC0\n\
+ lsls r1, 4\n\
+ adds r2, r1, 0\n\
+ orrs r2, r0\n\
+ adds r0, r4, 0\n\
+ adds r1, r7, 0\n\
+ bl MapGridSetMetatileIdAt\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x2\n\
+ bls _08139D26\n\
+ mov r2, r8\n\
+ lsls r0, r2, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0x2\n\
+ bls _08139D16\n\
+_08139D62:\n\
+ bl DrawWholeMapView\n\
+ movs r0, 0\n\
+ strh r0, [r6, 0x2]\n\
+ movs r0, 0\n\
+ ldrsh r1, [r6, r0]\n\
+ movs r2, 0x6\n\
+ ldrsh r0, [r6, r2]\n\
+ cmp r1, r0\n\
+ bne _08139D7C\n\
+ ldr r0, [sp]\n\
+ bl DestroyTask\n\
+_08139D7C:\n\
+ ldrh r0, [r6, 0x2]\n\
+ adds r0, 0x1\n\
+ strh r0, [r6, 0x2]\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\
+ .pool");
+}
+#endif // NAKED
+
+void sub_8139D98(void)
+{
+ u8 i;
+ u32 ivStorage[6];
+
+ ivStorage[0] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_HP_IV);
+ ivStorage[1] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_ATK_IV);
+ ivStorage[2] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_DEF_IV);
+ ivStorage[3] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPEED_IV);
+ ivStorage[4] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPATK_IV);
+ ivStorage[5] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPDEF_IV);
+
+ gSpecialVar_0x8005 = 0;
+
+ for (i = 0; i < ARRAY_COUNT(ivStorage); i++)
+ {
+ gSpecialVar_0x8005 += ivStorage[i];
+ }
+
+ gSpecialVar_0x8006 = 0;
+ gSpecialVar_0x8007 = ivStorage[0]; // HP IV
+
+ for (i = 1; i < 6; i++)
+ {
+ if (ivStorage[gSpecialVar_0x8006] < ivStorage[i])
+ {
+ gSpecialVar_0x8006 = i;
+ gSpecialVar_0x8007 = ivStorage[i];
+ }
+ else if (ivStorage[gSpecialVar_0x8006] == ivStorage[i])
+ {
+ u16 randomNumber = Random();
+ if ((randomNumber & 1) != 0)
+ {
+ gSpecialVar_0x8006 = i;
+ gSpecialVar_0x8007 = ivStorage[i];
+ }
+ }
+ }
+}
+
+bool32 warp0_in_pokecenter(void)
+{
+ static const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xffff };
+
+ int i;
+ u16 map = (gUnknown_020322DC.mapGroup << 8) + gUnknown_020322DC.mapNum;
+
+ for (i = 0; gUnknown_085B2C2A[i] != 0xFFFF; i++)
+ {
+ if (gUnknown_085B2C2A[i] == map)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+bool32 sub_8139ED0(void)
+{
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRAINER_HILL_ENTRANCE) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_HILL_ENTRANCE))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void UpdateFrontierManiac(u16 a0)
+{
+ u16 *var = GetVarPointer(VAR_FRONTIER_MANIAC_FACILITY);
+ *var += a0;
+ *var %= 10;
+}
+
+void sub_8139F20(void)
+{
+ static const u8 *const gUnknown_085B2C50[][3] = {
+ { BattleFrontier_Lounge2_Text_260971, BattleFrontier_Lounge2_Text_260A1E, BattleFrontier_Lounge2_Text_260AE7 },
+ { BattleFrontier_Lounge2_Text_2619AC, BattleFrontier_Lounge2_Text_261A91, BattleFrontier_Lounge2_Text_261B0C },
+ { BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95 },
+ { BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A },
+ { BattleFrontier_Lounge2_Text_260BC4, BattleFrontier_Lounge2_Text_260C6D, BattleFrontier_Lounge2_Text_260D3A },
+ { BattleFrontier_Lounge2_Text_260E1E, BattleFrontier_Lounge2_Text_260EC7, BattleFrontier_Lounge2_Text_260F74 },
+ { BattleFrontier_Lounge2_Text_2614E6, BattleFrontier_Lounge2_Text_261591, BattleFrontier_Lounge2_Text_26166F },
+ { BattleFrontier_Lounge2_Text_261282, BattleFrontier_Lounge2_Text_261329, BattleFrontier_Lounge2_Text_261403 },
+ { BattleFrontier_Lounge2_Text_261026, BattleFrontier_Lounge2_Text_2610CC, BattleFrontier_Lounge2_Text_261194 },
+ { BattleFrontier_Lounge2_Text_26174D, BattleFrontier_Lounge2_Text_2617F9, BattleFrontier_Lounge2_Text_2618C4 },
+ };
+
+ static const u8 gUnknown_085B2CC8[][2] = {
+ { 0x15, 0x38 },
+ { 0x15, 0x23 },
+ { 0xff, 0xff },
+ { 0xff, 0xff },
+ { 0x02, 0x04 },
+ { 0x07, 0x15 },
+ { 0x07, 0x15 },
+ { 0x0e, 0x1c },
+ { 0x0d, 0x70 },
+ { 0x07, 0x38 }
+ };
+
+ u8 i;
+ u16 unk = 0;
+ u16 var = VarGet(VAR_FRONTIER_MANIAC_FACILITY);
+ switch (var)
+ {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ if (gSaveBlock2Ptr->frontier.field_CE0[var][0] >= gSaveBlock2Ptr->frontier.field_CE0[var][1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_CE0[var][0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_CE0[var][1];
+ }
+ break;
+ case 4:
+ if (gSaveBlock2Ptr->frontier.field_D0C[0] >= gSaveBlock2Ptr->frontier.field_D0C[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_D0C[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_D0C[1];
+ }
+ break;
+ case 5:
+ if (gSaveBlock2Ptr->frontier.field_DE2[0] >= gSaveBlock2Ptr->frontier.field_DE2[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DE2[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DE2[1];
+ }
+ break;
+ case 6:
+ if (gSaveBlock2Ptr->frontier.field_DC8[0] >= gSaveBlock2Ptr->frontier.field_DC8[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DC8[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DC8[1];
+ }
+ break;
+ case 7:
+ if (gSaveBlock2Ptr->frontier.field_DDA[0] >= gSaveBlock2Ptr->frontier.field_DDA[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DDA[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DDA[1];
+ }
+ break;
+ case 8:
+ if (gSaveBlock2Ptr->frontier.field_E04[0] >= gSaveBlock2Ptr->frontier.field_E04[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_E04[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_E04[1];
+ }
+ break;
+ case 9:
+ if (gSaveBlock2Ptr->frontier.field_E1A[0] >= gSaveBlock2Ptr->frontier.field_E1A[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_E1A[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_E1A[1];
+ }
+ break;
+ }
+
+ for (i = 0; i < 2 && gUnknown_085B2CC8[var][i] < unk; i++);
+
+ ShowFieldMessage(gUnknown_085B2C50[var][i]);
+}
+
+void sub_813A080(void)
+{
+ static const u16 gUnknown_085B2CDC[] = {
+ 0x0007, 0x000e, 0x0015, 0x001c, 0x0023, 0x0031, 0x003f, 0x004d, 0x005b, 0x0000
+ };
+
+ u8 i;
+ u16 var = VarGet(VAR_0x40CE);
+ u8 chosenLevel = gSaveBlock2Ptr->frontier.chosenLvl;
+
+ if (var == 2 && !FlagGet(FLAG_0x152))
+ {
+ gSpecialVar_0x8005 = 5;
+ gSpecialVar_0x8006 = 4;
+ return;
+ }
+
+ for (i = 0; i < 9; i++)
+ {
+ if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.field_CE0[var][chosenLevel])
+ {
+ gSpecialVar_0x8005 = 4;
+ gSpecialVar_0x8006 = i + 5;
+ return;
+ }
+ }
+
+ gSpecialVar_0x8005 = 4;
+ gSpecialVar_0x8006 = 12;
+}
+
+void sub_813A128(void)
+{
+ u8 taskId = CreateTask(sub_813A2DC, 8);
+ struct Task *task = &gTasks[taskId];
+ task->data[11] = gSpecialVar_0x8004;
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 0:
+ task->data[0] = 1;
+ task->data[1] = 1;
+ task->data[2] = 1;
+ task->data[3] = 1;
+ task->data[4] = 1;
+ task->data[5] = 1;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 1:
+ task->data[0] = 5;
+ task->data[1] = 8;
+ task->data[2] = 1;
+ task->data[3] = 1;
+ task->data[4] = 9;
+ task->data[5] = 10;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 2:
+ task->data[0] = 6;
+ task->data[1] = 12;
+ task->data[2] = 1;
+ task->data[3] = 1;
+ task->data[4] = 7;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 3:
+ task->data[0] = 6;
+ task->data[1] = 11;
+ task->data[2] = 14;
+ task->data[3] = 1;
+ task->data[4] = 15;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 4:
+ task->data[0] = 6;
+ task->data[1] = 6;
+ task->data[2] = 14;
+ task->data[3] = 1;
+ task->data[4] = 15;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 5:
+ task->data[0] = 6;
+ task->data[1] = 7;
+ task->data[2] = 14;
+ task->data[3] = 1;
+ task->data[4] = 15;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 6:
+ task->data[0] = 6;
+ task->data[1] = 10;
+ task->data[2] = 14;
+ task->data[3] = 1;
+ task->data[4] = 15;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 7:
+ task->data[0] = 6;
+ task->data[1] = 12;
+ task->data[2] = 15;
+ task->data[3] = 1;
+ task->data[4] = 14;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 8:
+ task->data[0] = 6;
+ task->data[1] = 10;
+ task->data[2] = 17;
+ task->data[3] = 1;
+ task->data[4] = 11;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 9:
+ case 10:
+ task->data[0] = 6;
+ task->data[1] = 11;
+ task->data[2] = 15;
+ task->data[3] = 1;
+ task->data[4] = 14;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 11:
+ task->data[0] = 6;
+ task->data[1] = 7;
+ task->data[2] = 19;
+ task->data[3] = 1;
+ task->data[4] = 10;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 12:
+ task->data[0] = 6;
+ task->data[1] = 7;
+ task->data[2] = 17;
+ task->data[3] = 1;
+ task->data[4] = 12;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ default:
+ gSpecialVar_Result = 0x7F;
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+static const u8 *const gUnknown_085B2CF0[][16] = {
+ {
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_BlueFlute,
+ gText_YellowFlute,
+ gText_RedFlute,
+ gText_WhiteFlute,
+ gText_BlackFlute,
+ gText_PrettyChair,
+ gText_PrettyDesk,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_0Pts,
+ gText_10Pts,
+ gText_20Pts,
+ gText_30Pts,
+ gText_40Pts,
+ gText_50Pts,
+ gText_60Pts,
+ gText_70Pts,
+ gText_80Pts,
+ gText_90Pts,
+ gText_100Pts,
+ gText_QuestionMark,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_KissPoster16BP,
+ gText_KissCushion32BP,
+ gText_SmoochumDoll32BP,
+ gText_TogepiDoll48BP,
+ gText_MeowthDoll48BP,
+ gText_ClefairyDoll48BP,
+ gText_DittoDoll48BP,
+ gText_CyndaquilDoll80BP,
+ gText_ChikoritaDoll80BP,
+ gText_TotodileDoll80BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_LaprasDoll128BP,
+ gText_SnorlaxDoll128BP,
+ gText_VenusaurDoll256BP,
+ gText_CharizardDoll256BP,
+ gText_BlastoiseDoll256BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_Protein1BP,
+ gText_Calcium1BP,
+ gText_Iron1BP,
+ gText_Zinc1BP,
+ gText_Carbos1BP,
+ gText_HpUp1BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_Leftovers48BP,
+ gText_WhiteHerb48BP,
+ gText_QuickClaw48BP,
+ gText_MentalHerb48BP,
+ gText_BrightPowder64BP,
+ gText_ChoiceBand64BP,
+ gText_KingsRock64BP,
+ gText_FocusBand64BP,
+ gText_ScopeLens64BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_EnergyPowder50,
+ gText_EnergyRoot80,
+ gText_HealPowder50,
+ gText_RevivalHerb300,
+ gText_Protein1000,
+ gText_Iron1000,
+ gText_Carbos1000,
+ gText_Calcium1000,
+ gText_Zinc1000,
+ gText_HPUp1000,
+ gText_PPUp3000,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_BattleTower2,
+ gText_BattleDome,
+ gText_BattlePalace,
+ gText_BattleArena,
+ gText_BattleFactory,
+ gText_BattlePike,
+ gText_BattlePyramid,
+ gText_RankingHall,
+ gText_ExchangeService,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_Softboiled16BP,
+ gText_SeismicToss24BP,
+ gText_DreamEater24BP,
+ gText_MegaPunch24BP,
+ gText_MegaKick48BP,
+ gText_BodySlam48BP,
+ gText_RockSlide48BP,
+ gText_Counter48BP,
+ gText_ThunderWave48BP,
+ gText_SwordsDance48BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_DefenseCurl16BP,
+ gText_Snore24BP,
+ gText_MudSlap24BP,
+ gText_Swift24BP,
+ gText_IcyWind24BP,
+ gText_Endure48BP,
+ gText_PsychUp48BP,
+ gText_IcePunch48BP,
+ gText_ThunderPunch48BP,
+ gText_FirePunch48BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_SlateportCity,
+ gText_BattleFrontier,
+ gText_SouthernIsland,
+ gText_NavelRock,
+ gText_BirthIsland,
+ gText_FarawayIsland,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_BattleTrainers,
+ gText_BattleBasics,
+ gText_PokemonNature,
+ gText_PokemonMoves,
+ gText_Underpowered,
+ gText_WhenInDanger,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ }
+};
+
+static void sub_813A2DC(u8 taskId)
+{
+ u32 unk1;
+ u8 i, windowId;
+ struct WindowTemplate template;
+ struct Task *task = &gTasks[taskId];
+
+ ScriptContext2_Enable();
+ gUnknown_0203AB68 = 0;
+ gUnknown_0203AB6C = 0x40;
+ sub_813AA60(task->data[11], 0);
+ sub_813ACE8(task->data[11], 0);
+ gUnknown_0203AB64 = AllocZeroed(task->data[1] * 8);
+ gUnknown_0203AB6A = 0;
+ sub_813A42C();
+
+ for (unk1 = 0, i = 0; i < task->data[1]; i++)
+ {
+ const u8 *text = gUnknown_085B2CF0[gSpecialVar_0x8004][i];
+ gUnknown_0203AB64[i].name = text;
+ gUnknown_0203AB64[i].id = i;
+ unk1 = display_text_and_get_width(text, unk1);
+ }
+
+ task->data[4] = convert_pixel_width_to_tile_width(unk1);
+
+ if (task->data[2] + task->data[4] > 0x1D)
+ {
+ int unk2 = 0x1D - task->data[4];
+ if (unk2 < 0)
+ {
+ task->data[2] = 0;
+ }
+ else
+ {
+ task->data[2] = unk2;
+ }
+ }
+
+ template = CreateWindowTemplate(0, task->data[2], task->data[3], task->data[4], task->data[5], 0xF, 0x64);
+ windowId = AddWindow(&template);
+ task->data[13] = windowId;
+ SetStandardWindowBorderStyle(windowId, 0);
+
+ gUnknown_030061D0.totalItems = task->data[1];
+ gUnknown_030061D0.maxShowed = task->data[0];
+ gUnknown_030061D0.windowId = task->data[13];
+
+ sub_813A694(taskId);
+ task->data[14] = ListMenuInit(&gUnknown_030061D0, task->data[7], task->data[8]);
+ schedule_bg_copy_tilemap_to_vram(0);
+ gTasks[taskId].func = sub_813A4EC;
+}
+
+static void sub_813A42C(void)
+{
+ gUnknown_030061D0.items = gUnknown_0203AB64;
+ gUnknown_030061D0.moveCursorFunc = sub_813A46C;
+ gUnknown_030061D0.itemPrintFunc = NULL;
+ gUnknown_030061D0.totalItems = 1;
+ gUnknown_030061D0.maxShowed = 1;
+ gUnknown_030061D0.windowId = 0;
+ gUnknown_030061D0.header_X = 0;
+ gUnknown_030061D0.item_X = 8;
+ gUnknown_030061D0.cursor_X = 0;
+ gUnknown_030061D0.upText_Y = 1;
+ gUnknown_030061D0.cursorPal = 2;
+ gUnknown_030061D0.fillValue = 1;
+ gUnknown_030061D0.cursorShadowPal = 3;
+ gUnknown_030061D0.lettersSpacing = 0;
+ gUnknown_030061D0.itemVerticalPadding = 0;
+ gUnknown_030061D0.scrollMultiple = 0;
+ gUnknown_030061D0.fontId = 1;
+ gUnknown_030061D0.cursorKind = 0;
+}
+
+static void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list)
+{
+ u8 taskId;
+ PlaySE(SE_SELECT);
+ taskId = FindTaskIdByFunc(sub_813A4EC);
+ if (taskId != 0xFF)
+ {
+ u16 misc;
+ struct Task *task = &gTasks[taskId];
+ ListMenuGetScrollAndRow(task->data[14], &misc, NULL);
+ gUnknown_0203AB68 = misc;
+ ListMenuGetCurrentItemArrayId(task->data[14], &misc);
+ sub_813AC44(task->data[11], gUnknown_0203AB6A);
+ sub_813AA60(task->data[11], misc);
+ sub_813AD34(task->data[11], misc);
+ gUnknown_0203AB6A = misc;
+ }
+}
+
+// stupid r5<->r6 swap
+#ifdef NONMATCHING
+static void sub_813A4EC(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ s32 itemId = ListMenuHandleInputGetItemId(task->data[14]);
+
+ switch (itemId)
+ {
+ case LIST_NOTHING_CHOSEN:
+ break;
+ case LIST_B_PRESSED:
+ gSpecialVar_Result = 0x7F;
+ PlaySE(SE_SELECT);
+ sub_813A570(taskId);
+ break;
+ default:
+ gSpecialVar_Result = itemId;
+ PlaySE(SE_SELECT);
+ if (!task->data[6] || itemId == task->data[1] - 1)
+ {
+ sub_813A570(taskId);
+ }
+ else
+ {
+ sub_813A738(taskId);
+ task->func = sub_813A600;
+ EnableBothScriptContexts();
+ }
+ break;
+ }
+}
+#else
+NAKED
+static void sub_813A4EC(u8 taskId)
+{
+ asm_unified("push {r4-r6,lr}\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ lsls r0, r5, 2\n\
+ adds r0, r5\n\
+ lsls r0, 3\n\
+ ldr r1, =gTasks\n\
+ adds r6, r0, r1\n\
+ ldrh r0, [r6, 0x24]\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ bl ListMenuHandleInputGetItemId\n\
+ adds r4, r0, 0\n\
+ movs r0, 0x2\n\
+ negs r0, r0\n\
+ cmp r4, r0\n\
+ beq _0813A51C\n\
+ adds r0, 0x1\n\
+ cmp r4, r0\n\
+ bne _0813A530\n\
+ b _0813A566\n\
+ .pool\n\
+_0813A51C:\n\
+ ldr r1, =gSpecialVar_Result\n\
+ movs r0, 0x7F\n\
+ strh r0, [r1]\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ b _0813A54C\n\
+ .pool\n\
+_0813A530:\n\
+ ldr r0, =gSpecialVar_Result\n\
+ strh r4, [r0]\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r1, 0x14\n\
+ ldrsh r0, [r6, r1]\n\
+ cmp r0, 0\n\
+ beq _0813A54C\n\
+ movs r1, 0xA\n\
+ ldrsh r0, [r6, r1]\n\
+ subs r0, 0x1\n\
+ cmp r4, r0\n\
+ bne _0813A558\n\
+_0813A54C:\n\
+ adds r0, r5, 0\n\
+ bl sub_813A570\n\
+ b _0813A566\n\
+ .pool\n\
+_0813A558:\n\
+ adds r0, r5, 0\n\
+ bl sub_813A738\n\
+ ldr r0, =sub_813A600\n\
+ str r0, [r6]\n\
+ bl EnableBothScriptContexts\n\
+_0813A566:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool");
+}
+#endif // NONMATCHING
+
+static void sub_813A570(u8 taskId)
+{
+ u16 array;
+ struct Task *task = &gTasks[taskId];
+ ListMenuGetCurrentItemArrayId(task->data[14], &array);
+ sub_813AC44(task->data[11], array);
+ sub_813A738(taskId);
+ DestroyListMenuTask(task->data[14], NULL, NULL);
+ Free(gUnknown_0203AB64);
+ sub_8198070(task->data[13], 1);
+ FillWindowPixelBuffer(task->data[13], 0);
+ CopyWindowToVram(task->data[13], 2);
+ RemoveWindow(task->data[13]);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+static void sub_813A600(u8 taskId)
+{
+ switch (gTasks[taskId].data[6])
+ {
+ case 1:
+ default:
+ break;
+ case 2:
+ gTasks[taskId].data[6] = 1;
+ gTasks[taskId].func = sub_813A664;
+ break;
+ }
+}
+
+void sub_813A630(void)
+{
+ u8 taskId = FindTaskIdByFunc(sub_813A600);
+ if (taskId == 0xFF)
+ {
+ EnableBothScriptContexts();
+ }
+ else
+ {
+ gTasks[taskId].data[6]++;
+ }
+}
+
+static void sub_813A664(u8 taskId)
+{
+ ScriptContext2_Enable();
+ sub_813A694(taskId);
+ gTasks[taskId].func = sub_813A4EC;
+}
+
+static void sub_813A694(u8 taskId)
+{
+ static const struct ScrollArrowsTemplate gUnknown_085B3030 = {
+ .firstArrowType = 2,
+ .firstX = 0,
+ .firstY = 0,
+ .secondArrowType = 3,
+ .secondX = 0,
+ .secondY = 0,
+ .fullyUpThreshold = 0,
+ .fullyDownThreshold = 0,
+ .tileTag = 2000,
+ .palTag = 100,
+ .palNum = 0
+ };
+
+ struct Task *task = &gTasks[taskId];
+ struct ScrollArrowsTemplate template = gUnknown_085B3030;
+ if (task->data[0] != task->data[1])
+ {
+ template.firstX = (task->data[4] / 2) * 8 + 12 + (task->data[2] - 1) * 8;
+ template.firstY = 8;
+ template.secondX = (task->data[4] / 2) * 8 + 12 + (task->data[2] - 1) * 8;
+ template.secondY = task->data[5] * 8 + 10;
+ template.fullyUpThreshold = 0;
+ template.fullyDownThreshold = task->data[1] - task->data[0];
+ task->data[12] = AddScrollIndicatorArrowPair(&template, &gUnknown_0203AB68);
+ }
+}
+
+static void sub_813A738(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ if (task->data[0] != task->data[1])
+ {
+ RemoveScrollIndicatorArrowPair(task->data[12]);
+ }
+}
+
+void nullsub_55(void)
+{
+
+}
+
+void sub_813A76C(void)
+{
+ u8 i;
+ for (i = 0; i < 2; i++)
+ {
+ if (gLinkPlayers[i].gender == MALE)
+ {
+ VarSet(VAR_OBJ_GFX_ID_F - i, EVENT_OBJ_GFX_BRENDAN_NORMAL);
+ }
+ else
+ {
+ VarSet(VAR_OBJ_GFX_ID_F - i, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL);
+ }
+ }
+}
+
+void sub_813A7B8(void)
+{
+ static const u8 *const gUnknown_085B3040[] = {
+ BattleFrontier_Lounge5_Text_26468D,
+ BattleFrontier_Lounge5_Text_2646E5,
+ BattleFrontier_Lounge5_Text_264741,
+ BattleFrontier_Lounge5_Text_2647A4,
+ BattleFrontier_Lounge5_Text_2647FC,
+ BattleFrontier_Lounge5_Text_264858,
+ BattleFrontier_Lounge5_Text_2648BE,
+ BattleFrontier_Lounge5_Text_264916,
+ BattleFrontier_Lounge5_Text_264972,
+ BattleFrontier_Lounge5_Text_2649D5,
+ BattleFrontier_Lounge5_Text_264A3F,
+ BattleFrontier_Lounge5_Text_264A9B,
+ BattleFrontier_Lounge5_Text_264AF3,
+ BattleFrontier_Lounge5_Text_264B5D,
+ BattleFrontier_Lounge5_Text_2648BE,
+ BattleFrontier_Lounge5_Text_264BC3,
+ BattleFrontier_Lounge5_Text_264C36,
+ BattleFrontier_Lounge5_Text_2648BE,
+ BattleFrontier_Lounge5_Text_264C95,
+ BattleFrontier_Lounge5_Text_264D01,
+ BattleFrontier_Lounge5_Text_264D6B,
+ BattleFrontier_Lounge5_Text_264DD7,
+ BattleFrontier_Lounge5_Text_264E33,
+ BattleFrontier_Lounge5_Text_264E8F,
+ BattleFrontier_Lounge5_Text_2648BE,
+ };
+
+ u8 nature;
+
+ if (gSpecialVar_0x8004 >= PARTY_SIZE)
+ {
+ gSpecialVar_0x8004 = 0;
+ }
+
+ nature = GetNature(&gPlayerParty[gSpecialVar_0x8004]);
+ ShowFieldMessage(gUnknown_085B3040[nature]);
+}
+
+void UpdateFrontierGambler(u16 a0)
+{
+ u16 *var = GetVarPointer(VAR_FRONTIER_GAMBLER_FACILITY);
+ *var += a0;
+ *var %= 12;
+}
+
+void sub_813A820(void)
+{
+ static const u8 *const gUnknown_085B30A4[] = {
+ BattleFrontier_Lounge3_Text_262261,
+ BattleFrontier_Lounge3_Text_26230D,
+ BattleFrontier_Lounge3_Text_2623B9,
+ BattleFrontier_Lounge3_Text_262464,
+ BattleFrontier_Lounge3_Text_26250E,
+ BattleFrontier_Lounge3_Text_2625B8,
+ BattleFrontier_Lounge3_Text_26266A,
+ BattleFrontier_Lounge3_Text_26271C,
+ BattleFrontier_Lounge3_Text_2627C9,
+ BattleFrontier_Lounge3_Text_262876,
+ BattleFrontier_Lounge3_Text_26291A,
+ BattleFrontier_Lounge3_Text_2629BC,
+ };
+
+ u16 var = VarGet(VAR_FRONTIER_GAMBLER_FACILITY);
+ ShowFieldMessage(gUnknown_085B30A4[var]);
+ VarSet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F, var);
+}
+
+void sub_813A854(void)
+{
+ static const u8 *const gUnknown_085B30D4[] = {
+ BattleFrontier_Lounge3_Text_262C04,
+ BattleFrontier_Lounge3_Text_262C90,
+ BattleFrontier_Lounge3_Text_262D1C,
+ BattleFrontier_Lounge3_Text_262DA7,
+ BattleFrontier_Lounge3_Text_262E34,
+ BattleFrontier_Lounge3_Text_262EC1,
+ BattleFrontier_Lounge3_Text_262F56,
+ BattleFrontier_Lounge3_Text_262FEB,
+ BattleFrontier_Lounge3_Text_263078,
+ BattleFrontier_Lounge3_Text_263105,
+ BattleFrontier_Lounge3_Text_26318C,
+ BattleFrontier_Lounge3_Text_263211,
+ };
+
+ ShowFieldMessage(gUnknown_085B30D4[VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F)]);
+}
+
+void sub_813A878(u8 a0)
+{
+ static const u16 gUnknown_085B3104[] = {0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0400, 0x0401, 0x0200, 0x0201, 0x0300, 0x0500, 0x0600};
+
+ u16 var1 = VarGet(VAR_0x40CE);
+ u16 var2 = VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F);
+ u16 var3 = VarGet(VAR_FRONTIER_FACILITY);
+
+ if (VarGet(VAR_FRONTIER_GAMBLER_PLACED_BET_F) == 1)
+ {
+ if (gUnknown_085B3104[var2] == (var3 << 8) + var1)
+ {
+ if (a0 != 0)
+ {
+ VarSet(VAR_FRONTIER_GAMBLER_PLACED_BET_F, 2);
+ }
+ else
+ {
+ VarSet(VAR_FRONTIER_GAMBLER_PLACED_BET_F, 3);
+ }
+ }
+ }
+}
+
+void sub_813A8FC(void)
+{
+ u8 string[32];
+ u32 x;
+ StringCopy(ConvertIntToDecimalStringN(string, gSaveBlock2Ptr->frontier.frontierBattlePoints, STR_CONV_MODE_RIGHT_ALIGN, 4), gText_BP);
+ x = GetStringRightAlignXOffset(1, string, 48);
+ PrintTextOnWindow(gUnknown_0203AB6D, 1, string, x, 1, 0, NULL);
+}
+
+void sub_813A958(void)
+{
+ static const struct WindowTemplate gUnknown_085B311C = {
+ .priority = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 8,
+ };
+
+ gUnknown_0203AB6D = AddWindow(&gUnknown_085B311C);
+ SetStandardWindowBorderStyle(gUnknown_0203AB6D, 0);
+ sub_813A8FC();
+ CopyWindowToVram(gUnknown_0203AB6D, 2);
+}
+
+void sub_813A988(void)
+{
+ sub_8198070(gUnknown_0203AB6D, TRUE);
+ RemoveWindow(gUnknown_0203AB6D);
+}
+
+void sub_813A9A4(void)
+{
+ if (gSaveBlock2Ptr->frontier.frontierBattlePoints < gSpecialVar_0x8004)
+ {
+ gSaveBlock2Ptr->frontier.frontierBattlePoints = 0;
+ }
+ else
+ {
+ gSaveBlock2Ptr->frontier.frontierBattlePoints -= gSpecialVar_0x8004;
+ }
+}
+
+void sub_813A9D0(void)
+{
+ if (gSaveBlock2Ptr->frontier.frontierBattlePoints + gSpecialVar_0x8004 > 0x270F)
+ {
+ gSaveBlock2Ptr->frontier.frontierBattlePoints = 0x270f;
+ }
+ else
+ {
+ gSaveBlock2Ptr->frontier.frontierBattlePoints = gSaveBlock2Ptr->frontier.frontierBattlePoints + gSpecialVar_0x8004;
+ }
+}
+
+u16 sub_813AA04(void)
+{
+ return gSaveBlock2Ptr->frontier.frontierBattlePoints;
+}
+
+void sub_813AA18(void)
+{
+ static const struct WindowTemplate gUnknown_085B3124 = {
+ .priority = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 9,
+ .width = 4,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 20,
+ };
+
+ gUnknown_0203AB6E = AddWindow(&gUnknown_085B3124);
+ SetStandardWindowBorderStyle(gUnknown_0203AB6E, 0);
+ CopyWindowToVram(gUnknown_0203AB6E, 2);
+}
+
+void sub_813AA44(void)
+{
+ sub_8198070(gUnknown_0203AB6E, TRUE);
+ RemoveWindow(gUnknown_0203AB6E);
+}
+
+static void sub_813AA60(u16 a0, u16 a1)
+{
+ static const u16 gUnknown_085B312C[] = { 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xffff };
+ static const u16 gUnknown_085B3142[] = { 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xffff };
+ static const u16 gUnknown_085B314E[] = { 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xffff };
+ static const u16 gUnknown_085B315C[] = { 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xffff };
+
+ static const u8 *const gUnknown_085B3170[] = {
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260201,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260287,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E,
+ gText_Exit,
+ };
+
+ static const u8 *const gUnknown_085B319C[] = {
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
+ gText_Exit
+ };
+
+ static const u8 *const gUnknown_085B31B4[] = {
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260397,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260436,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C,
+ gText_Exit
+ };
+
+ static const u8 *const gUnknown_085B31D0[] = {
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260542,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260575,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260613,
+ gText_Exit
+ };
+
+ if (a0 > 2 && a0 < 7)
+ {
+ FillWindowPixelRect(0, 0x11, 0, 0, 216, 32);
+ switch (a0)
+ {
+ case 3:
+ AddTextPrinterParameterized(0, 1, gUnknown_085B3170[a1], 0, NULL, 2, 1, 3);
+ if (gUnknown_085B312C[a1] == 0xFFFF)
+ {
+ sub_813ABD4(gUnknown_085B312C[a1]);
+ }
+ else
+ {
+ FreeSpriteTilesByTag(5500);
+ FreeSpritePaletteByTag(5500);
+ gUnknown_0203AB6C = AddDecorationIconObject(gUnknown_085B312C[a1], 33, 88, 0, 5500, 5500);
+ }
+ break;
+ case 4:
+ AddTextPrinterParameterized(0, 1, gUnknown_085B319C[a1], 0, NULL, 2, 1, 3);
+ if (gUnknown_085B3142[a1] == 0xFFFF)
+ {
+ sub_813ABD4(gUnknown_085B3142[a1]);
+ }
+ else
+ {
+ FreeSpriteTilesByTag(5500);
+ FreeSpritePaletteByTag(5500);
+ gUnknown_0203AB6C = AddDecorationIconObject(gUnknown_085B3142[a1], 33, 88, 0, 5500, 5500);
+ }
+ break;
+ case 5:
+ AddTextPrinterParameterized(0, 1, gUnknown_085B31B4[a1], 0, NULL, 2, 1, 3);
+ sub_813ABD4(gUnknown_085B314E[a1]);
+ break;
+ case 6:
+ AddTextPrinterParameterized(0, 1, gUnknown_085B31D0[a1], 0, NULL, 2, 1, 3);
+ sub_813ABD4(gUnknown_085B315C[a1]);
+ break;
+ }
+ }
+}
+
+static void sub_813ABD4(u16 a0)
+{
+ FreeSpriteTilesByTag(5500);
+ FreeSpritePaletteByTag(5500);
+ gUnknown_0203AB6C = AddItemIconSprite(5500, 5500, a0);
+
+ if (gUnknown_0203AB6C != MAX_SPRITES)
+ {
+ gSprites[gUnknown_0203AB6C].oam.priority = 0;
+ gSprites[gUnknown_0203AB6C].pos1.x = 36;
+ gSprites[gUnknown_0203AB6C].pos1.y = 92;
+ }
+}
+
+static void sub_813AC44(u16 a0, u16 unused)
+{
+ if (gUnknown_0203AB6C != MAX_SPRITES)
+ {
+ switch (a0)
+ {
+ case 3 ... 6:
+ DestroySpriteAndFreeResources(&gSprites[gUnknown_0203AB6C]);
+ break;
+ }
+ gUnknown_0203AB6C = MAX_SPRITES;
+ }
+}
+
+static const u16 gUnknown_085B31F8[] = { 0x0087, 0x0045, 0x008a, 0x0005, 0x0019, 0x0022, 0x009d, 0x0044, 0x0056, 0x000e };
+static const u16 gUnknown_085B320C[] = { 0x006f, 0x00ad, 0x00bd, 0x0081, 0x00c4, 0x00cb, 0x00f4, 0x0008, 0x0009, 0x0007 };
+
+void sub_813AC7C(void)
+{
+ if (gSpecialVar_0x8005 != 0)
+ {
+ StringCopy(gStringVar1, gMoveNames[gUnknown_085B320C[gSpecialVar_0x8004]]);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gMoveNames[gUnknown_085B31F8[gSpecialVar_0x8004]]);
+ }
+}
+
+static void sub_813ACE8(u8 a0, u16 a1)
+{
+ static const struct WindowTemplate gUnknown_085B3220 = {
+ .priority = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 7,
+ .width = 12,
+ .height = 6,
+ .paletteNum = 15,
+ .baseBlock = 28,
+ };
+
+ if (a0 == 9 || a0 == 10)
+ {
+ if (gSpecialVar_0x8006 == 0)
+ {
+ gUnknown_0203AB5E = AddWindow(&gUnknown_085B3220);
+ SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0);
+ }
+ sub_813AD34(a0, a1);
+ }
+}
+
+static void sub_813AD34(u8 a0, u16 a1)
+{
+ static const u8 *const gUnknown_085B3228[] = {
+ BattleFrontier_Lounge7_Text_265E30,
+ BattleFrontier_Lounge7_Text_265E5B,
+ BattleFrontier_Lounge7_Text_265E8A,
+ BattleFrontier_Lounge7_Text_265EC0,
+ BattleFrontier_Lounge7_Text_265EED,
+ BattleFrontier_Lounge7_Text_265F1C,
+ BattleFrontier_Lounge7_Text_265F47,
+ BattleFrontier_Lounge7_Text_265F77,
+ BattleFrontier_Lounge7_Text_265FAA,
+ BattleFrontier_Lounge7_Text_265FDD,
+ gText_Exit,
+ };
+
+ static const u8 *const gUnknown_085B3254[] = {
+ BattleFrontier_Lounge7_Text_26600A,
+ BattleFrontier_Lounge7_Text_26603E,
+ BattleFrontier_Lounge7_Text_266070,
+ BattleFrontier_Lounge7_Text_2660A6,
+ BattleFrontier_Lounge7_Text_2660D0,
+ BattleFrontier_Lounge7_Text_2660FF,
+ BattleFrontier_Lounge7_Text_26612D,
+ BattleFrontier_Lounge7_Text_26615F,
+ BattleFrontier_Lounge7_Text_266185,
+ BattleFrontier_Lounge7_Text_2661B5,
+ gText_Exit,
+ };
+
+ if (a0 == 9 || a0 == 10)
+ {
+ FillWindowPixelRect(gUnknown_0203AB5E, 0x11, 0, 0, 96, 48);
+ if (a0 == 10)
+ {
+ PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL);
+ }
+ else
+ {
+ PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3228[a1], 0, 1, 0, NULL);
+ }
+ }
+}
+
+void sub_813ADB8(void)
+{
+ sub_8198070(gUnknown_0203AB5E, TRUE);
+ RemoveWindow(gUnknown_0203AB5E);
+}
+
+void sub_813ADD4(void)
+{
+ u16 scrollOffset, selectedRow;
+ u8 i;
+ u8 taskId = FindTaskIdByFunc(sub_813A600);
+ if (taskId != 0xFF)
+ {
+ struct Task *task = &gTasks[taskId];
+ ListMenuGetScrollAndRow(task->data[14], &scrollOffset, &selectedRow);
+ SetStandardWindowBorderStyle(task->data[13], 0);
+
+ for (i = 0; i < 6; i++)
+ {
+ sub_8199F74(task->data[13], 1, gUnknown_085B2CF0[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0);
+ }
+
+ PrintTextOnWindow(task->data[13], 1, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL);
+ PutWindowTilemap(task->data[13]);
+ CopyWindowToVram(task->data[13], 3);
+ }
+}
+
+void sub_813AEB4(void)
+{
+ u8 i;
+ u16 temp1 = 0;
+ u16 temp2 = 0;
+ gSpecialVar_0x8005 = 0;
+
+ temp1 = VarGet(VAR_TEMP_E);
+ temp2 = VarGet(VAR_TEMP_D);
+
+ if (temp1 != 0)
+ {
+ i = 0;
+ do
+ {
+ if (gUnknown_0861500C[i] == gUnknown_085B320C[temp2])
+ {
+ gSpecialVar_0x8005 = i;
+ break;
+ }
+ i++;
+ } while (i < 30);
+ }
+ else
+ {
+ i = 0;
+ do
+ {
+ if (gUnknown_0861500C[i] == gUnknown_085B31F8[temp2])
+ {
+ gSpecialVar_0x8005 = i;
+ break;
+ }
+ i++;
+ } while (i < 30);
+ }
+}
+
+void sub_813AF48(void)
+{
+ u8 taskId = FindTaskIdByFunc(sub_813A600);
+ if (taskId != 0xFF)
+ {
+ struct Task *task = &gTasks[taskId];
+ DestroyListMenuTask(task->data[14], NULL, NULL);
+ Free(gUnknown_0203AB64);
+ sub_8198070(task->data[13], TRUE);
+ FillWindowPixelBuffer(task->data[13], 0);
+ ClearWindowTilemap(task->data[13]);
+ CopyWindowToVram(task->data[13], 2);
+ RemoveWindow(task->data[13]);
+ DestroyTask(taskId);
+ }
+}
+
+void sub_813AFC8(void)
+{
+ CreateTask(task_deoxys_sound, 8);
+}
+
+static const u16 gUnknown_085B3280[][16] = {
+ INCBIN_U16("graphics/misc/deoxys1.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys2.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys3.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys4.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys5.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys6.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys7.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys8.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys9.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys10.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys11.gbapal"),
+};
+
+static const u8 gUnknown_085B33E0[][2] = {
+ { 0x0f, 0x0c },
+ { 0x0b, 0x0e },
+ { 0x0f, 0x08 },
+ { 0x13, 0x0e },
+ { 0x0c, 0x0b },
+ { 0x12, 0x0b },
+ { 0x0f, 0x0e },
+ { 0x0b, 0x0e },
+ { 0x13, 0x0e },
+ { 0x0f, 0x0f },
+ { 0x0f, 0x0a },
+};
+
+static void task_deoxys_sound(u8 taskId)
+{
+ static const u8 gUnknown_085B33F6[] = { 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03 };
+
+ if (FlagGet(FLAG_0x8D4) == TRUE)
+ {
+ gSpecialVar_Result = 3;
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+ else
+ {
+ u16 temp1 = VarGet(VAR_0x4035);
+ u16 temp2 = VarGet(VAR_0x4034);
+
+ VarSet(VAR_0x4034, 0);
+ if (temp1 != 0 && gUnknown_085B33F6[temp1 - 1] < temp2)
+ {
+ sub_813B0B4(0);
+ VarSet(VAR_0x4035, 0);
+ gSpecialVar_Result = 0;
+ DestroyTask(taskId);
+ }
+ else if (temp1 == 10)
+ {
+ FlagSet(FLAG_0x8D4);
+ gSpecialVar_Result = 2;
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+ else
+ {
+ temp1++;
+ sub_813B0B4(temp1);
+ VarSet(VAR_0x4035, temp1);
+ gSpecialVar_Result = 1;
+ DestroyTask(taskId);
+ }
+ }
+}
+
+static void sub_813B0B4(u8 a0)
+{
+ u8 eventObjectId;
+ LoadPalette(&gUnknown_085B3280[a0], 0x1A0, 8);
+ TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId);
+
+ if (a0 == 0)
+ {
+ PlaySE(SE_W109);
+ }
+ else
+ {
+ PlaySE(SE_RG_DEOMOV);
+ }
+
+ CreateTask(sub_813B160, 8);
+
+ gFieldEffectArguments[0] = 1;
+ gFieldEffectArguments[1] = 58;
+ gFieldEffectArguments[2] = 26;
+ gFieldEffectArguments[3] = gUnknown_085B33E0[a0][0];
+ gFieldEffectArguments[4] = gUnknown_085B33E0[a0][1];
+
+ if (a0 == 0)
+ {
+ gFieldEffectArguments[5] = 60;
+ }
+ else
+ {
+ gFieldEffectArguments[5] = 5;
+ }
+
+ FieldEffectStart(FLDEFF_66);
+ Overworld_SetEventObjTemplateCoords(1, gUnknown_085B33E0[a0][0], gUnknown_085B33E0[a0][1]);
+}
+
+static void sub_813B160(u8 taskId)
+{
+ if (FieldEffectActiveListContains(FLDEFF_66) == FALSE)
+ {
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+}
+
+void increment_var_x4026_on_birth_island_modulo_100(void)
+{
+ u16 var = VarGet(VAR_0x4034);
+ if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(BIRTH_ISLAND_EXTERIOR) && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BIRTH_ISLAND_EXTERIOR))
+ {
+ var++;
+ if (var > 99)
+ {
+ VarSet(VAR_0x4034, 0);
+ }
+ else
+ {
+ VarSet(VAR_0x4034, var);
+ }
+ }
+}
+
+void sub_813B1D0(void)
+{
+ LoadPalette(&gUnknown_085B3280[(u8)VarGet(VAR_0x4035)], 0x1A0, 8);
+ BlendPalettes(0x04000000, 16, 0);
+}
+
+void set_unknown_box_id(u8 id)
+{
+ gUnknown_0203AB6F = id;
+}
+
+u16 get_unknown_box_id(void)
+{
+ return gUnknown_0203AB6F;
+}
+
+bool32 sub_813B21C(void)
+{
+ if (FlagGet(FLAG_SYS_STORAGE_UNKNOWN_FLAG) == FALSE)
+ {
+ if (StorageGetCurrentBox() != VarGet(VAR_STORAGE_UNKNOWN))
+ {
+ FlagSet(FLAG_SYS_STORAGE_UNKNOWN_FLAG);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 sub_813B260(void)
+{
+ int box;
+ int i;
+ set_unknown_box_id(VarGet(VAR_STORAGE_UNKNOWN));
+ box = StorageGetCurrentBox();
+ do
+ {
+ for (i = 0; i < IN_BOX_COUNT; i++)
+ {
+ if (GetBoxMonData(GetBoxedMonPtr(box, i), MON_DATA_SPECIES, 0) == 0)
+ {
+ if (get_unknown_box_id() != box)
+ {
+ FlagClear(FLAG_SYS_STORAGE_UNKNOWN_FLAG);
+ }
+ VarSet(VAR_STORAGE_UNKNOWN, box);
+ return sub_813B21C();
+ }
+ }
+
+ if (++box == TOTAL_BOXES_COUNT)
+ {
+ box = 0;
+ }
+ } while (box != StorageGetCurrentBox());
+ return FALSE;
+}
+
+void sub_813B2E4(void)
+{
+ u16 randomValue = Random();
+ VarSet(VAR_0x4038, 0);
+
+ if (FlagGet(FLAG_0x1BE) == TRUE)
+ {
+ VarSet(VAR_0x4037, (randomValue & 7) + 1);
+ }
+ else if (FlagGet(FLAG_0x1BF) == TRUE)
+ {
+ VarSet(VAR_0x4037, (randomValue & 7) + 9);
+ }
+ else if ((randomValue & 1) == 0)
+ {
+ randomValue = Random();
+ VarSet(VAR_0x4037, (randomValue & 7) + 1);
+ }
+ else
+ {
+ randomValue = Random();
+ VarSet(VAR_0x4037, (randomValue & 7) + 9);
+ }
+}
+
+bool32 sub_813B374(void)
+{
+ static const u8 gUnknown_085B3400[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c };
+
+ u16 var = VarGet(VAR_0x4037);
+
+ GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0);
+
+ if (var < 9)
+ {
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+bool32 sub_813B3B0(void)
+{
+ static const u8 gUnknown_085B3410[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c };
+
+ u16 var1 = VarGet(VAR_0x4038);
+ u16 var2 = VarGet(VAR_0x4037);
+
+ if (!var2)
+ {
+ return FALSE;
+ }
+
+ if (++var1 > 999)
+ {
+ VarSet(VAR_0x4038, 0);
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER_MARINE_CAVE))
+ {
+ switch (gSaveBlock1Ptr->location.mapNum)
+ {
+ case MAP_NUM(UNDERWATER_MARINE_CAVE):
+ case MAP_NUM(MARINE_CAVE_ENTRANCE):
+ case MAP_NUM(MARINE_CAVE_END):
+ case MAP_NUM(TERRA_CAVE_ENTRANCE):
+ case MAP_NUM(TERRA_CAVE_END):
+ VarSet(VAR_0x4039, 1);
+ return FALSE;
+ default:
+ break;
+ }
+ }
+
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER3))
+ {
+ switch (gSaveBlock1Ptr->location.mapNum)
+ {
+ case MAP_NUM(UNDERWATER3):
+ case MAP_NUM(UNDERWATER5):
+ case MAP_NUM(UNDERWATER6):
+ case MAP_NUM(UNDERWATER7):
+ VarSet(VAR_0x4039, 1);
+ return FALSE;
+ default:
+ break;
+ }
+ }
+
+ if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3410[var2 - 1] &&
+ gSaveBlock1Ptr->location.mapGroup == 0)
+ {
+ return TRUE;
+ }
+ else
+ {
+ VarSet(VAR_0x4037, 0);
+ return FALSE;
+ }
+ }
+ else
+ {
+ VarSet(VAR_0x4038, var1);
+ return FALSE;
+ }
+}
+
+void sub_813B484(void)
+{
+ sub_80AB104(2);
+}
+
+bool32 sub_813B490(void)
+{
+ static const u8 gUnknown_085B3420[][3] = {
+ { 0x02, 0x04, 0x01 },
+ { 0x04, 0x04, 0x01 },
+ { 0x05, 0x00, 0x01 },
+ { 0x06, 0x03, 0x01 },
+ { 0x08, 0x06, 0x01 },
+ { 0x09, 0x0d, 0x01 },
+ { 0x0a, 0x07, 0x01 },
+ { 0x0b, 0x07, 0x01 },
+ { 0x0c, 0x04, 0x01 },
+ { 0x0e, 0x05, 0x01 },
+ { 0x0f, 0x04, 0x01 },
+ { 0x1a, 0x37, 0x01 }
+ };
+
+ u8 i;
+ for (i = 0; i < 12; i++)
+ {
+ if (gSaveBlock1Ptr->location.mapGroup == gUnknown_085B3420[i][0])
+ {
+ if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3420[i][1])
+ {
+ return gUnknown_085B3420[i][2];
+ }
+ }
+ }
+ return TRUE;
+}
+
+bool32 sub_813B4E0(void)
+{
+ int index = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004);
+ if (index >= 0)
+ {
+ if (FlagGet(FLAG_MATCH_CALL_REGISTERED + index) == TRUE)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool32 sub_813B514(void)
+{
+ if (!VarGet(VAR_0x403F))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_813B534(void)
+{
+ gUnknown_0203AB70 = gBattleTypeFlags;
+ gBattleTypeFlags = 0;
+ if (!gReceivedRemoteLinkPlayers)
+ {
+ CreateTask(sub_80B3AF8, 5);
+ }
+}
+
+void sub_813B568(void)
+{
+ CreateTask(sub_813B57C, 5);
+}
+
+static void sub_813B57C(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (!FuncIsActiveTask(sub_80B3AF8))
+ {
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (sub_800A520() == TRUE)
+ {
+ if (GetMultiplayerId() == 0)
+ {
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_0x8004, 2);
+ gTasks[taskId].data[0]++;
+ }
+ }
+ break;
+ case 2:
+ if ((GetBlockReceivedStatus() & 2) != 0)
+ {
+ if (GetMultiplayerId() == 0)
+ {
+ gSpecialVar_0x8005 = gBlockRecvBuffer[1][0];
+ ResetBlockReceivedFlag(1);
+ if (gSpecialVar_0x8004 == 1 && gSpecialVar_0x8005 == 1)
+ {
+ gSpecialVar_Result = 1;
+ }
+ else if (gSpecialVar_0x8004 == 0 && gSpecialVar_0x8005 == 1)
+ {
+ gSpecialVar_Result = 2;
+ }
+ else if (gSpecialVar_0x8004 == 1 && gSpecialVar_0x8005 == 0)
+ {
+ gSpecialVar_Result = 3;
+ }
+ else
+ {
+ gSpecialVar_Result = 0;
+ }
+ }
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 3:
+ if (sub_800A520() == TRUE)
+ {
+ if (GetMultiplayerId() != 0)
+ {
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_Result, 2);
+ gTasks[taskId].data[0]++;
+ }
+ }
+ break;
+ case 4:
+ if ((GetBlockReceivedStatus() & 1) != 0)
+ {
+ if (GetMultiplayerId() != 0)
+ {
+ gSpecialVar_Result = gBlockRecvBuffer[0][0];
+ ResetBlockReceivedFlag(0);
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ gTasks[taskId].data[0]++;
+ }
+ }
+ break;
+ case 5:
+ if (GetMultiplayerId() == 0)
+ {
+ if (gSpecialVar_Result == 2)
+ {
+ ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired);
+ }
+ }
+ else
+ {
+ if (gSpecialVar_Result == 3)
+ {
+ ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired);
+ }
+ }
+ gTasks[taskId].data[0]++;
+ break;
+ case 6:
+ if (!IsTextPrinterActive(0))
+ {
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 7:
+ if (sub_800A520() == 1)
+ {
+ sub_800ADF8();
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 8:
+ if (sub_800A520() == 1)
+ {
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 9:
+ if (gWirelessCommType == 0)
+ {
+ sub_800AC34();
+ }
+ gBattleTypeFlags = gUnknown_0203AB70;
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void sub_813B7D8(void)
+{
+ if (gSpecialVar_0x8004 == 0)
+ {
+ DoRayquazaScene(0, TRUE, CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ }
+ else
+ {
+ DoRayquazaScene(1, FALSE, CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ }
+}
+
+void sub_813B80C(void)
+{
+ CreateTask(sub_813B824, 8);
+ PlaySE(SE_W017);
+}
+
+static void sub_813B824(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ data[1]++;
+ if (data[1] == gSpecialVar_0x8005)
+ {
+ data[0]++;
+ data[1] = 0;
+ PlaySE(SE_W017);
+ }
+
+ if (data[0] == gSpecialVar_0x8004 - 1)
+ {
+ DestroyTask(taskId);
+ }
+}
+
+void sub_813B880(void)
+{
+ u8 taskId = CreateTask(_fwalk, 8);
+ gTasks[taskId].data[0] = 4;
+ gTasks[taskId].data[1] = 4;
+ gTasks[taskId].data[2] = 4;
+ gTasks[taskId].data[3] = 0;
+}
+
+static void _fwalk(u8 taskId)
+{
+ u8 x, y;
+ s16 *data = gTasks[taskId].data;
+
+ data[data[3]]--;
+ if (data[data[3]] == 0)
+ {
+ for (y = 0; y < 4; y++)
+ {
+ for (x = 0; x < 3; x++)
+ {
+ MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + x + 6, gSaveBlock1Ptr->pos.y + y + 4, x + 0x201 + y * 8 + data[3] * 32);
+ }
+ }
+ DrawWholeMapView();
+ data[3]++;
+ if (data[3] == 3)
+ {
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ }
+}
+
+void sub_813B968(void)
+{
+ gSpecialVar_Result = gSpecialVar_0x8004 / 7;
+ gSpecialVar_Result -= (gSpecialVar_Result / 20) * 20;
+}
+
+void sub_813B9A0(void)
+{
+ if (gSaveBlock1Ptr->lastHealLocation.mapGroup == MAP_GROUP(DEWFORD_TOWN) && gSaveBlock1Ptr->lastHealLocation.mapNum == MAP_NUM(DEWFORD_TOWN))
+ {
+ Overworld_SetHealLocationWarp(3);
+ }
+}
+
+bool32 sub_813B9C0(void)
+{
+ static const u16 gUnknown_085B3444[] = {
+ MAP_OLDALE_TOWN_POKEMON_CENTER_1F,
+ MAP_DEWFORD_TOWN_POKEMON_CENTER_1F,
+ MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F,
+ MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F,
+ MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F,
+ MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F,
+ MAP_PETALBURG_CITY_POKEMON_CENTER_1F,
+ MAP_SLATEPORT_CITY_POKEMON_CENTER_1F,
+ MAP_MAUVILLE_CITY_POKEMON_CENTER_1F,
+ MAP_RUSTBORO_CITY_POKEMON_CENTER_1F,
+ MAP_FORTREE_CITY_POKEMON_CENTER_1F,
+ MAP_LILYCOVE_CITY_POKEMON_CENTER_1F,
+ MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F,
+ MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F,
+ MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F,
+ MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F,
+ MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F,
+ MAP_SINGLE_BATTLE_COLOSSEUM,
+ MAP_TRADE_CENTER,
+ MAP_RECORD_CORNER,
+ MAP_DOUBLE_BATTLE_COLOSSEUM,
+ 0xffff
+ };
+
+ int i;
+ u16 map = (gSaveBlock1Ptr->location.mapGroup << 8) + gSaveBlock1Ptr->location.mapNum;
+
+ for (i = 0; gUnknown_085B3444[i] != 0xFFFF; i++)
+ {
+ if (gUnknown_085B3444[i] == map)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void ResetFanClub(void)
+{
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] = 0;
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = 0;
+}
+
+void sub_813BA30(void)
+{
+ if (sub_813BF44() != 0)
+ {
+ UpdateMovedLilycoveFanClubMembers();
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours;
+ }
+}
+
+void sub_813BA60(void)
+{
+ if (!((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> 7) & 1))
+ {
+ sub_813BF60();
+ sub_813BD84();
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours;
+ FlagClear(FLAG_HIDE_FANCLUB_OLD_LADY);
+ FlagClear(FLAG_HIDE_FANCLUB_BOY);
+ FlagClear(FLAG_HIDE_FANCLUB_LITTLE_BOY);
+ FlagClear(FLAG_HIDE_FANCLUB_LADY);
+ FlagClear(FLAG_0x2DA);
+ VarSet(VAR_LILYCOVE_FAN_CLUB_STATE, 1);
+ }
+}
+
+u8 sub_813BADC(u8 a0)
+{
+ static const u8 gUnknown_085B3470[] = { 0x02, 0x01, 0x02, 0x01 };
+
+ if (VarGet(VAR_LILYCOVE_FAN_CLUB_STATE) == 2)
+ {
+ if ((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0x7F) + gUnknown_085B3470[a0] > 19)
+ {
+ if (GetNumMovedLilycoveFanClubMembers() < 3)
+ {
+ sub_813BB74();
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] &= 0xFF80;
+ }
+ else
+ {
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] = (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0xFF80) | 0x14;
+ }
+ }
+ else
+ {
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] += gUnknown_085B3470[a0];
+ }
+ }
+
+ return gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0x7F;
+}
+
+static u16 sub_813BB74(void)
+{
+ static const u8 gUnknown_085B3474[] = { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };
+
+ u8 i;
+ u8 retVal = 0;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (!((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B3474[i]) & 1))
+ {
+ retVal = i;
+ if ((Random() & 1) != 0)
+ {
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 1 << gUnknown_085B3474[retVal];
+ return retVal;
+ }
+ }
+ }
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 1 << gUnknown_085B3474[retVal];
+ return retVal;
+}
+
+static u16 sub_813BC00(void)
+{
+ static const u8 gUnknown_085B347C[] = { 0x08, 0x0d, 0x0e, 0x0b, 0x0a, 0x0c, 0x0f, 0x09 };
+
+ u8 i;
+ u8 retVal = 0;
+
+ if (GetNumMovedLilycoveFanClubMembers() == 1)
+ {
+ return 0;
+ }
+
+ for (i = 0; i < 8; i++)
+ {
+ if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B347C[i]) & 1) != 0)
+ {
+ retVal = i;
+ if ((Random() & 1) != 0)
+ {
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= 1 << gUnknown_085B347C[retVal];
+ return retVal;
+ }
+ }
+ }
+
+ if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B347C[retVal]) & 1))
+ {
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= 1 << gUnknown_085B347C[retVal];
+ }
+
+ return retVal;
+}
+
+u16 GetNumMovedLilycoveFanClubMembers(void)
+{
+ u8 i;
+ u8 retVal = 0;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> (i + 8)) & 1) != 0)
+ {
+ retVal++;
+ }
+ }
+
+ return retVal;
+}
+
+void UpdateMovedLilycoveFanClubMembers(void)
+{
+ u8 i = 0;
+ if (gSaveBlock2Ptr->playTimeHours < 999)
+ {
+ while (TRUE)
+ {
+ if (GetNumMovedLilycoveFanClubMembers() < 5)
+ {
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours;
+ break;
+ }
+ else if (i == 8)
+ {
+ break;
+ }
+ else if (gSaveBlock2Ptr->playTimeHours - gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] < 12)
+ {
+ return;
+ }
+ sub_813BC00();
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] += 12;
+ i++;
+ }
+ }
+}
+
+bool8 ShouldMoveLilycoveFanClubMember(void)
+{
+ return (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gSpecialVar_0x8004) & 1;
+}
+
+static void sub_813BD84(void)
+{
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x2000;
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x100;
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x400;
+}
+
+void BufferStreakTrainerText(void)
+{
+ u8 a = 0;
+ u8 b = 0;
+ switch (gSpecialVar_0x8004)
+ {
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ a = 0;
+ b = 3;
+ break;
+ case 11:
+ a = 0;
+ b = 1;
+ break;
+ case 12:
+ a = 1;
+ b = 0;
+ break;
+ case 13:
+ a = 0;
+ b = 4;
+ break;
+ case 14:
+ a = 1;
+ b = 5;
+ break;
+ case 15:
+ break;
+ }
+ sub_813BE30(&gSaveBlock1Ptr->linkBattleRecords, a, b);
+}
+
+static void sub_813BE30(struct LinkBattleRecords *linkRecords, u8 a, u8 b)
+{
+ struct LinkBattleRecord *record = &linkRecords->entries[a];
+ if (record->name[0] == EOS)
+ {
+ switch (b)
+ {
+ case 0:
+ StringCopy(gStringVar1, gText_Wallace);
+ break;
+ case 1:
+ StringCopy(gStringVar1, gText_Steven);
+ break;
+ case 2:
+ StringCopy(gStringVar1, gText_Brawly);
+ break;
+ case 3:
+ StringCopy(gStringVar1, gText_Winona);
+ break;
+ case 4:
+ StringCopy(gStringVar1, gText_Phoebe);
+ break;
+ case 5:
+ StringCopy(gStringVar1, gText_Glacia);
+ break;
+ default:
+ StringCopy(gStringVar1, gText_Wallace);
+ break;
+ }
+ }
+ else
+ {
+ StringCopyN(gStringVar1, record->name, 7);
+ gStringVar1[7] = EOS;
+ ConvertInternationalString(gStringVar1, linkRecords->languages[a]);
+ }
+}
+
+void sub_813BF10(void)
+{
+ if (VarGet(VAR_LILYCOVE_FAN_CLUB_STATE) == 2)
+ {
+ sub_813BA30();
+ if (gBattleOutcome == 1)
+ {
+ sub_813BB74();
+ }
+ else
+ {
+ sub_813BC00();
+ }
+ }
+}
+
+static bool8 sub_813BF44(void)
+{
+ return (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> 7) & 1;
+}
+
+void sub_813BF60(void)
+{
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x80;
+}
+
+u8 sub_813BF7C(void)
+{
+ return sub_813BADC(gSpecialVar_0x8004);
+}
diff --git a/src/heal_location.c b/src/heal_location.c
index aa90fe1ae..b378e8e8c 100644
--- a/src/heal_location.c
+++ b/src/heal_location.c
@@ -1,83 +1,37 @@
-
-// Includes
#include "global.h"
-#include "constants/maps.h"
#include "heal_location.h"
+#include "constants/maps.h"
-#define HEAL_LOCATION(map, x, y) {MAP_GROUP(map), MAP_NUM(map), x, y}
-
-// Static type declarations
-
-// Static RAM declarations
-
-// Static ROM declarations
-
-// .rodata
-
-static const struct HealLocation sHealLocations[] = {
- HEAL_LOCATION(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 4, 2),
- HEAL_LOCATION(LITTLEROOT_TOWN_MAYS_HOUSE_2F, 4, 2),
- HEAL_LOCATION(PETALBURG_CITY, 20, 17),
- HEAL_LOCATION(SLATEPORT_CITY, 19, 20),
- HEAL_LOCATION(MAUVILLE_CITY, 22, 6),
- HEAL_LOCATION(RUSTBORO_CITY, 16, 39),
- HEAL_LOCATION(FORTREE_CITY, 5, 7),
- HEAL_LOCATION(LILYCOVE_CITY, 24, 15),
- HEAL_LOCATION(MOSSDEEP_CITY, 28, 17),
- HEAL_LOCATION(SOOTOPOLIS_CITY, 43, 32),
- HEAL_LOCATION(EVER_GRANDE_CITY, 27, 49),
- HEAL_LOCATION(LITTLEROOT_TOWN, 5, 9),
- HEAL_LOCATION(LITTLEROOT_TOWN, 14, 9),
- HEAL_LOCATION(OLDALE_TOWN, 6, 17),
- HEAL_LOCATION(DEWFORD_TOWN, 2, 11),
- HEAL_LOCATION(LAVARIDGE_TOWN, 9, 7),
- HEAL_LOCATION(FALLARBOR_TOWN, 14, 8),
- HEAL_LOCATION(VERDANTURF_TOWN, 16, 4),
- HEAL_LOCATION(PACIFIDLOG_TOWN, 8, 16),
- HEAL_LOCATION(EVER_GRANDE_CITY, 18, 6),
- HEAL_LOCATION(SOUTHERN_ISLAND_EXTERIOR, 15, 20),
- HEAL_LOCATION(BATTLE_FRONTIER_OUTSIDE_EAST, 3, 52)
-};
-
-#define NUM_HEAL_LOCATIONS (ARRAY_COUNT(sHealLocations))
-
-// .text
+#include "data/heal_locations.h"
-static u32 GetHealLocationIndexFromMapGroupAndNum(u16 mapGroup, u16 mapNum)
+u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum)
{
u32 i;
- for (i = 0; i < NUM_HEAL_LOCATIONS; i++)
+ for (i = 0; i < ARRAY_COUNT(sHealLocations); i++)
{
if (sHealLocations[i].group == mapGroup && sHealLocations[i].map == mapNum)
- {
return i + 1;
- }
}
return 0;
}
-const struct HealLocation *GetHealLocationPointerFromMapGroupAndNum(u16 mapGroup, u16 mapNum)
+const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum)
{
- u32 loc;
+ u32 index = GetHealLocationIndexByMap(mapGroup, mapNum);
- loc = GetHealLocationIndexFromMapGroupAndNum(mapGroup, mapNum);
- if (loc == 0)
- {
+ if (index == 0)
return NULL;
- }
- return &sHealLocations[loc - 1];
+ else
+ return &sHealLocations[index - 1];
}
-const struct HealLocation *GetHealLocationPointer(u32 loc)
+const struct HealLocation *GetHealLocation(u32 index)
{
- if (loc == 0)
- {
+ if (index == 0)
return NULL;
- }
- if (loc > NUM_HEAL_LOCATIONS)
- {
+ else if (index > ARRAY_COUNT(sHealLocations))
return NULL;
- }
- return &sHealLocations[loc - 1];
+ else
+ return &sHealLocations[index - 1];
}
diff --git a/src/item_menu.c b/src/item_menu.c
index a05ca169b..d134e6375 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -301,7 +301,7 @@ void sub_81AABB0(void)
void CB2_ChooseBerry(void)
{
- GoToBagMenu(4, 3, sub_80861B0);
+ GoToBagMenu(4, 3, CB2_ReturnToFieldContinueScript);
}
void sub_81AABF0(void(*callback)(void))
diff --git a/src/link.c b/src/link.c
index ca9a5bb13..b729f86eb 100644
--- a/src/link.c
+++ b/src/link.c
@@ -304,7 +304,7 @@ void LinkTestScreen(void)
void sub_8009628(u8 a0)
{
- gLocalLinkPlayer.lp_field_18 = a0;
+ gLocalLinkPlayer.id = a0;
}
static void InitLocalLinkPlayer(void)
diff --git a/src/link_rfu.c b/src/link_rfu.c
index 37aa20950..29256899d 100644
--- a/src/link_rfu.c
+++ b/src/link_rfu.c
@@ -2126,7 +2126,7 @@ void sub_800DD94(struct UnkLinkRfuStruct_02022B14 *data, u8 r9, bool32 r2, int r
for (i = 0; i < 2; i++)
{
- data->playerTrainerId[i] = gSaveBlock2Ptr->playerTrainerId[i];
+ data->unk_00.playerTrainerId[i] = gSaveBlock2Ptr->playerTrainerId[i];
}
for (i = 0; i < 4; i++)
{
@@ -2136,14 +2136,14 @@ void sub_800DD94(struct UnkLinkRfuStruct_02022B14 *data, u8 r9, bool32 r2, int r
data->playerGender = gSaveBlock2Ptr->playerGender;
data->unk_0a_0 = r9;
data->unk_0a_7 = r2;
- data->unk_00_0 = 2;
- data->unk_01_2 = 3;
- data->unk_00_4 = 0;
- data->unk_00_5 = 0;
- data->unk_00_6 = 0;
- data->unk_00_7 = FlagGet(FLAG_0x87F);
- data->unk_01_0 = IsNationalPokedexEnabled();
- data->unk_01_1 = FlagGet(FLAG_SYS_GAME_CLEAR);
+ data->unk_00.unk_00_0 = 2;
+ data->unk_00.unk_01_2 = 3;
+ data->unk_00.unk_00_4 = 0;
+ data->unk_00.unk_00_5 = 0;
+ data->unk_00.unk_00_6 = 0;
+ data->unk_00.unk_00_7 = FlagGet(FLAG_0x87F);
+ data->unk_00.unk_01_0 = IsNationalPokedexEnabled();
+ data->unk_00.unk_01_1 = FlagGet(FLAG_SYS_GAME_CLEAR);
}
bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx)
@@ -2155,12 +2155,12 @@ bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx)
retVal = TRUE;
if (sub_8010454(gUnknown_03007890->unk_14[idx].unk_04) && ((gUnknown_03007890->unk_07 >> idx) & 1))
{
- memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, sizeof(gUnknown_03007890->unk_14[idx].unk_06));
+ memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, 0xD);
memcpy(buff2, gUnknown_03007890->unk_14[idx].unk_15, sizeof(gUnknown_03007890->unk_14[idx].unk_15));
}
else
{
- memset(buff1, 0, sizeof(gUnknown_03007890->unk_14[idx].unk_06));
+ memset(buff1, 0, 0xD);
memset(buff2, 0, sizeof(gUnknown_03007890->unk_14[idx].unk_15));
}
}
@@ -2169,12 +2169,12 @@ bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx)
retVal = FALSE;
if (sub_8010454(gUnknown_03007890->unk_14[idx].unk_04))
{
- memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, sizeof(gUnknown_03007890->unk_14[idx].unk_06));
+ memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, 0xD);
memcpy(buff2, gUnknown_03007890->unk_14[idx].unk_15, sizeof(gUnknown_03007890->unk_14[idx].unk_15));
}
else
{
- memset(buff1, 0, sizeof(gUnknown_03007890->unk_14[idx].unk_06));
+ memset(buff1, 0, 0xD);
memset(buff2, 0, sizeof(gUnknown_03007890->unk_14[idx].unk_15));
}
}
@@ -2850,7 +2850,7 @@ void sub_800EF38(void)
gUnknown_03005000.unk_ce7 = gUnknown_03004140.unk_00;
}
-bool8 sub_800EF58(bool32 a0)
+bool32 sub_800EF58(bool32 a0)
{
if (gUnknown_03005000.unk_04 == 17 || a0)
{
@@ -4104,7 +4104,7 @@ bool8 sub_8010540(void)
return retval;
}
-bool8 sub_80105EC(void)
+bool32 sub_80105EC(void)
{
u8 flags = 0;
int i;
@@ -4129,7 +4129,7 @@ bool8 sub_80105EC(void)
return FALSE;
}
-bool8 sub_801064C(u16 a0, const u8 *a1)
+bool32 sub_801064C(u16 a0, const u8 *a1)
{
u8 r1 = sub_8011CE4(a1, a0);
if (r1 == 0xFF)
@@ -4154,14 +4154,14 @@ void sub_80106D4(void)
rfu_NI_setSendData(1 << gUnknown_03005000.unk_c3e, 8, &gUnknown_03005000.unk_c85, 1);
}
-u8 sub_8010714(u16 a0, const u8 *a1)
+u32 sub_8010714(u16 a0, const u8 *a1)
{
u8 r0 = sub_8011CE4(a1, a0);
if (r0 == 0xff)
return 2;
if (gUnknown_03007880[r0]->unk_0 == 0)
- return TRUE;
- return FALSE;
+ return 1;
+ return 0;
}
void sub_8010750(void)
@@ -4512,14 +4512,14 @@ void sub_8010F84(u8 a0, u32 a1, u32 a2)
void sub_8010FA0(bool32 a0, bool32 a1)
{
- gUnknown_02022B14.unk_00_4 = a0;
- gUnknown_02022B14.unk_00_5 = a1;
+ gUnknown_02022B14.unk_00.unk_00_4 = a0;
+ gUnknown_02022B14.unk_00.unk_00_5 = a1;
}
void sub_8010FCC(u32 a0, u32 a1, u32 a2)
{
- gUnknown_02022B14.unk_09_2 = a0;
- gUnknown_02022B14.unk_08_0 = a1;
+ gUnknown_02022B14.type = a0;
+ gUnknown_02022B14.species = a1;
gUnknown_02022B14.unk_0b_1 = a2;
}
diff --git a/src/list_menu.c b/src/list_menu.c
index 933d9835f..6b5c3af94 100644
--- a/src/list_menu.c
+++ b/src/list_menu.c
@@ -39,7 +39,7 @@ struct UnkIndicatorsStruct
struct ScrollIndicatorPair
{
u8 field_0;
- u16 *currItemPtr;
+ u16 *scrollOffset;
u16 fullyUpThreshold;
u16 fullyDownThreshold;
u8 topSpriteId;
@@ -1064,7 +1064,7 @@ static u8 AddScrollIndicatorArrowObject(u8 arrowDir, u8 x, u8 y, u16 tileTag, u1
#undef tFrequency
#undef tSinePos
-u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16 *currItemPtr)
+u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16 *scrollOffset)
{
struct CompressedSpriteSheet spriteSheet;
struct SpritePalette spritePal;
@@ -1091,7 +1091,7 @@ u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16
data = (void*) gTasks[taskId].data;
data->field_0 = 0;
- data->currItemPtr = currItemPtr;
+ data->scrollOffset = scrollOffset;
data->fullyUpThreshold = arrowInfo->fullyUpThreshold;
data->fullyDownThreshold = arrowInfo->fullyDownThreshold;
data->tileTag = arrowInfo->tileTag;
@@ -1108,7 +1108,7 @@ u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16
return taskId;
}
-u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *currItemPtr)
+u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *scrollOffset)
{
if (arrowType == SCROLL_ARROW_UP || arrowType == SCROLL_ARROW_DOWN)
{
@@ -1135,13 +1135,13 @@ u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 fi
gTempScrollArrowTemplate.palTag = palTag;
gTempScrollArrowTemplate.palNum = 0;
- return AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, currItemPtr);
+ return AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, scrollOffset);
}
static void Task_ScrollIndicatorArrowPair(u8 taskId)
{
struct ScrollIndicatorPair *data = (void*) gTasks[taskId].data;
- u16 currItem = (*data->currItemPtr);
+ u16 currItem = (*data->scrollOffset);
if (currItem == data->fullyUpThreshold && currItem != 0xFFFF)
gSprites[data->topSpriteId].invisible = TRUE;
diff --git a/src/load_save.c b/src/load_save.c
index 0c6df7662..005af7c42 100644
--- a/src/load_save.c
+++ b/src/load_save.c
@@ -38,7 +38,7 @@ EWRAM_DATA struct PokemonStorage gPokemonStorage = {0};
EWRAM_DATA u8 gSaveblock3_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0};
-EWRAM_DATA u32 gLastEncryptionKey = {0};
+EWRAM_DATA u32 gLastEncryptionKey = 0;
// IWRAM common
IWRAM_DATA bool32 gFlashMemoryPresent;
diff --git a/src/main_menu.c b/src/main_menu.c
index 87673c9b2..3afe1abe5 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -1965,7 +1965,7 @@ void sub_80323CC(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f)
{
struct WindowTemplate sp;
- sp = sub_8198A50(0, a + 1, b + 1, 5, 4, f, d);
+ sp = CreateWindowTemplate(0, a + 1, b + 1, 5, 4, f, d);
CreateYesNoMenu(&sp, c, e, 0);
}
diff --git a/src/match_call.c b/src/match_call.c
index aa6945161..99eb6d65a 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -360,7 +360,7 @@ MATCHCALLDEF(sMomMatchCallHeader, 0, 0, FLAG_0x0D8, gMomMatchCallDesc, gMomMatch
static const match_call_text_data_t sStevenTextScripts[] = {
{ gText_Steven_Pokenav_2B5B95, 0xffff, 0xffff },
- { gText_Steven_Pokenav_2B5C53, FLAG_0x0C7, 0xffff },
+ { gText_Steven_Pokenav_2B5C53, FLAG_RUSTURF_TUNNEL_OPENED, 0xffff },
{ gText_Steven_Pokenav_2B5CC9, FLAG_0x0D4, 0xffff },
{ gText_Steven_Pokenav_2B5DB4, FLAG_0x070, 0xffff },
{ gText_Steven_Pokenav_2B5E26, FLAG_0x4F6, 0xffff },
@@ -415,7 +415,7 @@ MATCHCALLDEF(sBrendanMatchCallHeader, 4, FEMALE, FLAG_0x0FD, gMayBrendanMatchCal
static const match_call_text_data_t sWallyTextScripts[] = {
{ gText_Wally_Pokenav_2B4DE2, 0xFFFF, 0xFFFF },
- { gText_Wally_Pokenav_2B4E57, FLAG_0x0C7, 0xFFFF },
+ { gText_Wally_Pokenav_2B4E57, FLAG_RUSTURF_TUNNEL_OPENED, 0xFFFF },
{ gText_Wally_Pokenav_2B4EA5, FLAG_0x4F3, 0xFFFF },
{ gText_Wally_Pokenav_2B4F41, FLAG_0x097, 0xFFFF },
{ gText_Wally_Pokenav_2B4FF3, FLAG_0x06F, 0xFFFF },
diff --git a/src/menu.c b/src/menu.c
index 96dda3075..f4ffec023 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -120,7 +120,6 @@ extern void DrawWindowBorder(u8, u8, u8, u8, u8, u8);
extern void sub_81980A8(u8, u8, u8, u8, u8, u8);
extern u8 MoveMenuCursor(s8);
extern u8 sub_8199134(s8, s8);
-extern void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing);
extern void sub_8198C78(void);
extern void task_free_buf_after_copying_tile_data_to_vram(u8 taskId);
@@ -1143,7 +1142,7 @@ void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8
template->baseBlock = baseBlock;
}
-struct WindowTemplate sub_8198A50(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
+struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
{
struct WindowTemplate template;
SetWindowTemplateFields(&template, bg, left, top, width, height, paletteNum, baseBlock);
diff --git a/src/overworld.c b/src/overworld.c
index 9cbc8dc52..d85af9e4d 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -689,7 +689,7 @@ void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused)
void sub_8084CCC(u8 a1)
{
- const struct HealLocation *warp = GetHealLocationPointer(a1);
+ const struct HealLocation *warp = GetHealLocation(a1);
if (warp)
Overworld_SetWarpDestination(warp->group, warp->map, -1, warp->x, warp->y);
@@ -702,7 +702,7 @@ void Overworld_SetWarpDestToLastHealLoc(void)
void Overworld_SetHealLocationWarp(u8 healLocationId)
{
- const struct HealLocation *healLocation = GetHealLocationPointer(healLocationId);
+ const struct HealLocation *healLocation = GetHealLocation(healLocationId);
if (healLocation != NULL)
SetWarpData(&gSaveBlock1Ptr->lastHealLocation, healLocation->group, healLocation->map, -1, healLocation->x, healLocation->y);
@@ -761,7 +761,7 @@ void sub_8084F2C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
void sub_8084F6C(u8 a1)
{
- const struct HealLocation *warp = GetHealLocationPointer(a1);
+ const struct HealLocation *warp = GetHealLocation(a1);
if (warp)
SetWarpData(&gSaveBlock1Ptr->warp1, warp->group, warp->map, -1, warp->x, warp->y);
}
@@ -1689,14 +1689,14 @@ void CB2_ReturnToFieldWithOpenMenu(void)
CB2_ReturnToField();
}
-void sub_80861B0(void)
+void CB2_ReturnToFieldContinueScript(void)
{
FieldClearVBlankHBlankCallbacks();
gFieldCallback = sub_80AF188;
CB2_ReturnToField();
}
-void CB2_ReturnToFieldContinueScript(void)
+void CB2_ReturnToFieldContinueScriptPlayMapMusic(void)
{
FieldClearVBlankHBlankCallbacks();
gFieldCallback = sub_80AF168;
diff --git a/src/pokedex.c b/src/pokedex.c
index 37e0515bd..0d73a9fe1 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -812,7 +812,7 @@ const struct WindowTemplate sWindowTemplates_0855D2A8[] =
DUMMY_WIN_TEMPLATE
};
-const u8 gUnknown_0855D2B8[] = _("{UNK_CTRL_F9 8}000");
+const u8 gUnknown_0855D2B8[] = _("{NO}000");
const u8 gUnknown_0855D2BE[] = INCBIN_U8("graphics/pokedex/caught_ball.4bpp");
const u8 sText_TenDashes[] = _("----------");
diff --git a/src/pokemon.c b/src/pokemon.c
index c572ee10e..7c010cd39 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -1752,7 +1752,7 @@ bool8 sub_80688F8(u8 caseId, u8 battlerId)
return FALSE;
if (!gMain.inBattle)
return FALSE;
- if (gLinkPlayers[GetMultiplayerId()].lp_field_18 == battlerId)
+ if (gLinkPlayers[GetMultiplayerId()].id == battlerId)
return FALSE;
break;
case 2:
@@ -1774,7 +1774,7 @@ bool8 sub_80688F8(u8 caseId, u8 battlerId)
return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- if (gLinkPlayers[GetMultiplayerId()].lp_field_18 == battlerId)
+ if (gLinkPlayers[GetMultiplayerId()].id == battlerId)
return FALSE;
}
else
@@ -2089,7 +2089,7 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon)
s32 level = GetLevelFromBoxMonExp(boxMon);
s32 i;
- for (i = 0; gLevelUpLearnsets[species][i] != (u16)-1; i++)
+ for (i = 0; gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++)
{
u16 moveLevel;
u16 move;
@@ -2101,7 +2101,7 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon)
move = (gLevelUpLearnsets[species][i] & 0x1FF);
- if (GiveMoveToBoxMon(boxMon, move) == (u16)-1)
+ if (GiveMoveToBoxMon(boxMon, move) == 0xFFFF)
DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, move);
}
}
@@ -2123,7 +2123,7 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove)
while ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) != (level << 9))
{
sLearningMoveTableID++;
- if (gLevelUpLearnsets[species][sLearningMoveTableID] == 0xFFFF)
+ if (gLevelUpLearnsets[species][sLearningMoveTableID] == LEVEL_UP_END)
return 0;
}
}
@@ -4806,7 +4806,7 @@ void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies)
bool8 sub_806D7EC(void)
{
bool8 retVal = FALSE;
- switch (gLinkPlayers[GetMultiplayerId()].lp_field_18)
+ switch (gLinkPlayers[GetMultiplayerId()].id)
{
case 0:
case 3:
@@ -4823,7 +4823,7 @@ bool8 sub_806D7EC(void)
u16 GetLinkTrainerFlankId(u8 linkPlayerId)
{
u16 flankId = 0;
- switch (gLinkPlayers[linkPlayerId].lp_field_18)
+ switch (gLinkPlayers[linkPlayerId].id)
{
case 0:
case 3:
@@ -4841,7 +4841,7 @@ s32 GetBattlerMultiplayerId(u16 a1)
{
s32 id;
for (id = 0; id < MAX_LINK_PLAYERS; id++)
- if (gLinkPlayers[id].lp_field_18 == a1)
+ if (gLinkPlayers[id].id == a1)
break;
return id;
}
@@ -5694,7 +5694,7 @@ const u8 *GetTrainerPartnerName(void)
else
{
u8 id = GetMultiplayerId();
- return gLinkPlayers[GetBattlerMultiplayerId(gLinkPlayers[id].lp_field_18 ^ 2)].name;
+ return gLinkPlayers[GetBattlerMultiplayerId(gLinkPlayers[id].id ^ 2)].name;
}
}
@@ -5824,7 +5824,7 @@ u8 sub_806EF08(u8 arg0)
s32 i;
s32 var = 0;
u8 multiplayerId = GetMultiplayerId();
- switch (gLinkPlayers[multiplayerId].lp_field_18)
+ switch (gLinkPlayers[multiplayerId].id)
{
case 0:
case 2:
@@ -5837,7 +5837,7 @@ u8 sub_806EF08(u8 arg0)
}
for (i = 0; i < 4; i++)
{
- if (gLinkPlayers[i].lp_field_18 == (s16)(var))
+ if (gLinkPlayers[i].id == (s16)(var))
break;
}
return i;
@@ -5847,7 +5847,7 @@ u8 sub_806EF84(u8 arg0, u8 arg1)
{
s32 i;
s32 var = 0;
- switch (gLinkPlayers[arg1].lp_field_18)
+ switch (gLinkPlayers[arg1].id)
{
case 0:
case 2:
@@ -5860,7 +5860,7 @@ u8 sub_806EF84(u8 arg0, u8 arg1)
}
for (i = 0; i < 4; i++)
{
- if (gLinkPlayers[i].lp_field_18 == (s16)(var))
+ if (gLinkPlayers[i].id == (s16)(var))
break;
}
return i;
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index 7f8c24ab7..7c622c223 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -7,17 +7,49 @@
#include "text.h"
#include "strings.h"
#include "window.h"
+#include "menu.h"
+#include "bg.h"
+#include "main.h"
+#include "palette.h"
+#include "overworld.h"
+#include "field_screen.h"
+#include "field_weather.h"
+#include "script.h"
+#include "international_string_util.h"
+#include "walda_phrase.h"
+#include "sound.h"
+#include "gpu_regs.h"
+#include "constants/songs.h"
IWRAM_DATA u8 gUnknown_03000F78[0x188];
-struct OptionAndDescription
-{
- const u8 *optionTxt;
- const u8 *descriptionTxt;
-};
+extern const u8 gText_PartyFull[];
+extern const u8 gText_Box[];
+extern const u8 gText_JustOnePkmn[];
+
+extern u8 gUnknown_02039D00;
+
+// This file's functions.
+void StorageSystemCreatePrimaryMenu(u8 whichMenu, s16 *windowIdPtr);
+void sub_80C7D74(u8);
+u8 sub_80CAEA0(void);
+void SetBoxWallpaper(u8 boxId, u8 wallpaperId);
+void SetCurrentBox(u8 boxId);
+void ClearMonInBox(u8 boxId, u8 boxPos);
+void ResetWaldaWallpaper(void);
+void sub_80C7958(u8 curBox);
+void sub_80C7B14(void);
+void sub_80C7BB4(void);
+void sub_80CA028(void);
+void sub_80C7B80(void);
+void sub_80D2AA4(void);
+void sub_80C7BE4(void);
+void sub_80CAA14(void);
+void sub_80C7CF4(struct Sprite *sprite);
+struct Sprite *sub_80CD2E8(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority);
// const rom data
-const struct OptionAndDescription gUnknown_085716C0[] =
+const struct PSS_MenuStringPtrs gUnknown_085716C0[] =
{
{gText_WithdrawPokemon, gText_WithdrawMonDescription},
{gText_DepositPokemon, gText_DepositMonDescription},
@@ -74,6 +106,10 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_8571730[] =
const u8 gUnknown_08571734[] = {4, 0xF, 0xE};
const u8 gUnknown_08571737[] = _("/30");
+const u16 gBoxSelectionPopupPalette[] = INCBIN_U16("graphics/unknown/unknown_57173C.gbapal");
+const u8 gBoxSelectionPopupCenterTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp");
+const u8 gBoxSelectionPopupSidesTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_sides.4bpp");
+
// code
u8 CountMonsInBox(u8 boxId)
{
@@ -166,24 +202,473 @@ static u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n)
return str;
}
-/* can't match
-static void sub_80C7128(u16 *dst, u16 dstToAdd, u16 dstToMul, const u16 *src, u16 srcToAdd, u16 srcToMul, u32 size, u16 count, u16 srcBy)
+static void sub_80C7128(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, u16 src_left, u16 src_top, u16 dest_width, u16 dest_height, u16 src_width)
+{
+ u16 i;
+
+ dest_width *= 2;
+ dest += dest_top * 0x20 + dest_left;
+ src += src_top * src_width + src_left;
+ for (i = 0; i < dest_height; i++)
+ {
+ CpuCopy16(src, dest, dest_width);
+ dest += 0x20;
+ src += src_width;
+ }
+}
+
+#define MAX_DMA_BLOCK_SIZE 0x1000
+#define Dma3FillLarge_(value, dest, size, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ if (_size <= MAX_DMA_BLOCK_SIZE) \
+ { \
+ DmaFill##bit(3, value, _dest, _size); \
+ break; \
+ } \
+ DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \
+ _dest += MAX_DMA_BLOCK_SIZE; \
+ _size -= MAX_DMA_BLOCK_SIZE; \
+ } \
+}
+
+#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16)
+#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32)
+
+void sub_80C71A4(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 height)
+{
+ u16 i;
+
+ dest += dest_top * 0x20 + dest_left;
+ width *= 2;
+ for (i = 0; i < height; dest += 0x20, i++)
+ Dma3FillLarge16_(0, dest, width);
+}
+
+void Task_PokemonStorageSystem(u8 taskId)
+{
+ struct Task *task = gTasks + taskId;
+ switch (task->data[0])
+ {
+ case 0:
+ StorageSystemCreatePrimaryMenu(task->data[1], &task->data[15]);
+ sub_81973A4();
+ NewMenuHelpers_DrawDialogueFrame(0, 0);
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3);
+ CopyWindowToVram(0, 3);
+ CopyWindowToVram(task->data[15], 3);
+ task->data[0]++;
+ break;
+ case 1:
+ if (IsWeatherNotFadingIn())
+ {
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ task->data[2] = ProcessMenuInput();
+ switch(task->data[2])
+ {
+ case -2:
+ task->data[3] = task->data[1];
+ if (gMain.newKeys & DPAD_UP && --task->data[3] < 0)
+ task->data[3] = 4;
+
+ if (gMain.newKeys & DPAD_DOWN && ++task->data[3] > 4)
+ task->data[3] = 0;
+ if (task->data[1] != task->data[3])
+ {
+ task->data[1] = task->data[3];
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ }
+ break;
+ case -1:
+ case 4:
+ sub_819746C(task->data[15], TRUE);
+ ScriptContext2_Disable();
+ EnableBothScriptContexts();
+ RemoveWindow(task->data[15]);
+ DestroyTask(taskId);
+ break;
+ default:
+ if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE)
+ {
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3);
+ task->data[0] = 3;
+ }
+ else if (task->data[2] == 1 && CountPartyMons() == 1)
+ {
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3);
+ task->data[0] = 3;
+ }
+ else
+ {
+ FadeScreen(1, 0);
+ task->data[0] = 4;
+ }
+ break;
+ }
+ break;
+ case 3:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ task->data[0] = 2;
+ }
+ else if (gMain.newKeys & DPAD_UP)
+ {
+ if (--task->data[1] < 0)
+ task->data[1] = 4;
+ MoveMenuCursor(-1);
+ task->data[1] = GetMenuCursorPos();
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ task->data[0] = 2;
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ if (++task->data[1] > 3)
+ task->data[1] = 0;
+ MoveMenuCursor(1);
+ task->data[1] = GetMenuCursorPos();
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ task->data[0] = 2;
+ }
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ {
+ overworld_free_bg_tilemaps();
+ sub_80C7D74(task->data[2]);
+ RemoveWindow(task->data[15]);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+void ShowPokemonStorageSystem(void)
+{
+ u8 taskId = CreateTask(Task_PokemonStorageSystem, 80);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ ScriptContext2_Enable();
+}
+
+void mapldr_0808C6D8(void)
+{
+ u8 taskId;
+ MainCallback vblankCb = gMain.vblankCallback;
+
+ SetVBlankCallback(NULL);
+ taskId = CreateTask(Task_PokemonStorageSystem, 80);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = gUnknown_02039D00;
+ Task_PokemonStorageSystem(taskId);
+ SetVBlankCallback(vblankCb);
+ pal_fill_black();
+}
+
+void StorageSystemCreatePrimaryMenu(u8 whichMenu, s16 *windowIdPtr)
+{
+ s16 windowId;
+ struct WindowTemplate winTemplate = gUnknown_085716E8;
+ winTemplate.width = GetMaxWidthInMenuTable((void *)gUnknown_085716C0, ARRAY_COUNT(gUnknown_085716C0));
+ windowId = AddWindow(&winTemplate);
+
+ NewMenuHelpers_DrawStdWindowFrame(windowId, FALSE);
+ PrintMenuTable(windowId, ARRAY_COUNT(gUnknown_085716C0), (void *)gUnknown_085716C0);
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, ARRAY_COUNT(gUnknown_085716C0), whichMenu);
+ *windowIdPtr = windowId;
+}
+
+void sub_80C7678(void)
+{
+ gUnknown_02039D00 = sub_80CAEA0();
+ gFieldCallback = mapldr_0808C6D8;
+ SetMainCallback2(CB2_ReturnToField);
+}
+
+s16 StorageSystemGetNextMonIndex(struct BoxPokemon *box, s8 startIdx, u8 stopIdx, u8 mode)
+{
+ s16 i;
+ s16 direction;
+ if (mode == 0 || mode == 1)
+ {
+ direction = 1;
+ }
+ else
+ {
+ direction = -1;
+ }
+ if (mode == 1 || mode == 3)
+ {
+ for (i = startIdx + direction; i >= 0 && i <= stopIdx; i += direction)
+ {
+ if (GetBoxMonData(box + i, MON_DATA_SPECIES) != 0)
+ return i;
+ }
+ }
+ else
+ {
+ for (i = startIdx + direction; i >= 0 && i <= stopIdx; i += direction)
+ {
+ if (GetBoxMonData(box + i, MON_DATA_SPECIES) != 0 && !GetBoxMonData(box + i, MON_DATA_IS_EGG))
+ return i;
+ }
+ }
+ return -1;
+}
+
+void ResetPokemonStorageSystem(void)
+{
+ u16 boxId;
+ u16 boxMon;
+
+ SetCurrentBox(0);
+ for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++)
+ {
+ for (boxMon = 0; boxMon < IN_BOX_COUNT; boxMon++)
+ ClearMonInBox(boxId, boxMon);
+ }
+ for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++)
+ {
+ u8 *dest = StringCopy(GetBoxNamePtr(boxId), gText_Box);
+ ConvertIntToDecimalStringN(dest, boxId + 1, STR_CONV_MODE_LEFT_ALIGN, 2);
+ }
+ for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++)
+ {
+ SetBoxWallpaper(boxId, boxId % 4);
+ }
+ ResetWaldaWallpaper();
+}
+
+void sub_80C77E8(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal)
+{
+ struct SpritePalette palette =
+ {
+ gBoxSelectionPopupPalette, palTag
+ };
+ struct SpriteSheet sheets[] =
+ {
+ {gBoxSelectionPopupCenterTiles, 0x800, tileTag},
+ {gBoxSelectionPopupSidesTiles, 0x180, tileTag + 1},
+ {}
+ };
+
+ if (loadPal)
+ LoadSpritePalette(&palette);
+
+ LoadSpriteSheets(sheets);
+ gUnknown_02039D04 = a0;
+ a0->unk_0240 = tileTag;
+ a0->unk_0242 = palTag;
+ a0->unk_0246 = a3;
+ a0->unk_023c = loadPal;
+}
+
+void sub_80C7890(void)
+{
+ if (gUnknown_02039D04->unk_023c)
+ FreeSpritePaletteByTag(gUnknown_02039D04->unk_0242);
+ FreeSpriteTilesByTag(gUnknown_02039D04->unk_0240);
+ FreeSpriteTilesByTag(gUnknown_02039D04->unk_0240 + 1);
+}
+
+void sub_80C78D4(u8 curBox)
+{
+ sub_80C7958(curBox);
+}
+
+void sub_80C78E4(void)
+{
+ sub_80C7B14();
+}
+
+u8 sub_80C78F0(void)
+{
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ return 201;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ return gUnknown_02039D04->curBox;
+ }
+ if (gMain.newKeys & DPAD_LEFT)
+ {
+ PlaySE(SE_SELECT);
+ sub_80C7BB4();
+ }
+ else if (gMain.newKeys & DPAD_RIGHT)
+ {
+ PlaySE(SE_SELECT);
+ sub_80C7B80();
+ }
+ return 200;
+}
+
+void sub_80C7958(u8 curBox)
{
u16 i;
+ u8 spriteId;
+ struct SpriteTemplate template;
+ struct OamData oamData = {};
+ oamData.size = 3;
+ oamData.paletteNum = 1;
+ template = (struct SpriteTemplate){
+ 0, 0, &oamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ };
+
+ gUnknown_02039D04->curBox = curBox;
+ template.tileTag = gUnknown_02039D04->unk_0240;
+ template.paletteTag = gUnknown_02039D04->unk_0242;
+
+ spriteId = CreateSprite(&template, 0xA0, 0x60, 0);
+ gUnknown_02039D04->unk_0000 = gSprites + spriteId;
+
+ oamData.shape = ST_OAM_V_RECTANGLE;
+ oamData.size = 1;
+ template.tileTag = gUnknown_02039D04->unk_0240 + 1;
+ template.anims = sSpriteAnimTable_8571710;
+ for (i = 0; i < 4; i++)
+ {
+ u16 r5;
+ spriteId = CreateSprite(&template, 0x7c, 0x50, gUnknown_02039D04->unk_0246);
+ gUnknown_02039D04->unk_0004[i] = gSprites + spriteId;
+ r5 = 0;
+ if (i & 2)
+ {
+ gUnknown_02039D04->unk_0004[i]->pos1.x = 0xc4;
+ r5 = 2;
+ }
+ if (i & 1)
+ {
+ gUnknown_02039D04->unk_0004[i]->pos1.y = 0x70;
+ gUnknown_02039D04->unk_0004[i]->oam.size = 0;
+ r5++;
+ }
+ StartSpriteAnim(gUnknown_02039D04->unk_0004[i], r5);
+ }
+ for (i = 0; i < 2; i++)
+ {
+ gUnknown_02039D04->unk_0020[i] = sub_80CD2E8(72 * i + 0x7c, 0x58, i, 0, gUnknown_02039D04->unk_0246);
+ if (gUnknown_02039D04->unk_0020[i])
+ {
+ gUnknown_02039D04->unk_0020[i]->data[0] = (i == 0 ? -1 : 1);
+ gUnknown_02039D04->unk_0020[i]->callback = sub_80C7CF4;
+ }
+ }
+ sub_80C7BE4();
+}
+
+void sub_80C7B14(void)
+{
+ u16 i;
+ if (gUnknown_02039D04->unk_0000)
+ {
+ DestroySprite(gUnknown_02039D04->unk_0000);
+ gUnknown_02039D04->unk_0000 = NULL;
+ }
+ for (i = 0; i < 4; i++)
+ {
+ if (gUnknown_02039D04->unk_0004[i])
+ {
+ DestroySprite(gUnknown_02039D04->unk_0004[i]);
+ gUnknown_02039D04->unk_0004[i] = NULL;
+ }
+ }
+ for (i = 0; i < 2; i++)
+ {
+ if (gUnknown_02039D04->unk_0020[i])
+ DestroySprite(gUnknown_02039D04->unk_0020[i]);
+ }
+}
- size <<= 0x11;
- dst += (dstToMul * 32) + dstToAdd;
- src += (srcToMul * srcBy) + srcToAdd;
+void sub_80C7B80(void)
+{
+ if (++gUnknown_02039D04->curBox >= TOTAL_BOXES_COUNT)
+ gUnknown_02039D04->curBox = 0;
+ sub_80C7BE4();
+}
+
+void sub_80C7BB4(void)
+{
+ gUnknown_02039D04->curBox = (gUnknown_02039D04->curBox == 0 ? TOTAL_BOXES_COUNT - 1 : gUnknown_02039D04->curBox - 1);
+ sub_80C7BE4();
+}
- i = 0;
- if (i < count)
+void sub_80C7BE4(void)
+{
+ u8 text[16];
+ struct WindowTemplate winTemplate;
+ u8 windowId;
+ u8 *boxName = GetBoxNamePtr(gUnknown_02039D04->curBox);
+ u8 nPokemonInBox = CountMonsInBox(gUnknown_02039D04->curBox);
+ u32 winTileData;
+ s32 center;
+
+ memset(&winTemplate, 0, sizeof(winTemplate));
+ winTemplate.width = 8;
+ winTemplate.height = 4;
+
+ windowId = AddWindow(&winTemplate);
+ FillWindowPixelBuffer(windowId, 0x44);
+
+ center = GetStringCenterAlignXOffset(1, boxName, 0x40);
+ box_print(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName);
+
+ ConvertIntToDecimalStringN(text, nPokemonInBox, 1, 2);
+ StringAppend(text, gUnknown_08571737);
+ center = GetStringCenterAlignXOffset(1, text, 0x40);
+ box_print(windowId, 1, center, 0x11, gUnknown_08571734, TEXT_SPEED_FF, text);
+
+ winTileData = GetWindowAttribute(windowId, WINDOW_TILE_DATA);
+ CpuCopy32((void *)winTileData, (void *)OBJ_VRAM0 + 0x100 + (GetSpriteTileStartByTag(gUnknown_02039D04->unk_0240) * 32), 0x400);
+
+ RemoveWindow(windowId);
+}
+
+void sub_80C7CF4(struct Sprite *sprite)
+{
+ if (++sprite->data[1] > 3)
{
- size >>= 1;
- for (i = 0; i < count; i++)
+ sprite->data[1] = 0;
+ sprite->pos2.x += sprite->data[0];
+ if (++sprite->data[2] > 5)
{
- CpuSet(src, dst, size >> 0x10);
- dst += 0x20;
- src += srcBy;
+ sprite->data[2] = 0;
+ sprite->pos2.x = 0;
}
}
-}*/
+}
+
+void sub_80C7D28(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ sub_80D2AA4();
+ TransferPlttBuffer();
+ SetGpuReg(REG_OFFSET_BG2HOFS, gUnknown_02039D08->bg2_X);
+}
+
+void c2_Box(void)
+{
+ RunTasks();
+ do_scheduled_bg_tilemap_copies_to_vram();
+ sub_80CA028();
+ sub_80CAA14();
+ AnimateSprites();
+ BuildOamBuffer();
+}
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 0cbbba4dd..728b887f8 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -15,7 +15,7 @@
#include "sound.h"
#include "constants/species.h"
#include "sprite.h"
-#include "unk_text_util.h"
+#include "dynamic_placeholder_text_util.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
@@ -27,21 +27,8 @@
#include "scanline_effect.h"
#include "menu_helpers.h"
#include "daycare.h"
-
-struct ContestMove
-{
- u8 effect;
- u8 type;
- u8 comboID;
- u8 combo[4];
-};
-
-struct ContestEffect
-{
- u8 type;
- u8 appeal;
- u8 jam;
-};
+#include "data2.h"
+#include "contest.h"
extern struct UnkSummaryStruct* gUnknown_0203CF1C;
extern struct BgTemplate gUnknown_0861CBB4;
@@ -69,6 +56,7 @@ extern u8 gUnknown_0861CE74[];
extern u8 gUnknown_0861CE7B[];
extern struct WindowTemplate gUnknown_0861CCEC;
extern struct WindowTemplate gUnknown_0861CD14;
+extern const u8 *const gContestEffectDescriptionPointers[];
void sub_81C488C(u8 a);
extern u8 sub_81221EC();
@@ -96,6 +84,7 @@ extern u8 gText_PkmnInfo[];
extern u8 gText_PkmnSkills[];
extern u8 gText_BattleMoves[];
extern u8 gText_ContestMoves[];
+extern u8 gText_HMMovesCantBeForgotten2[];
extern u8 gText_Cancel2[];
extern u8 gText_Info[];
extern u8 gText_Switch[];
@@ -144,12 +133,14 @@ extern u8 gUnknown_0861CE8E[];
extern u8 gText_OneDash[];
extern u8 gText_TwoDashes[];
extern u8 gText_ThreeDashes[];
+extern u8 gText_Cancel[];
extern u8 gUnknown_0861CE97[];
+extern const struct SpriteTemplate gUnknown_0861CFC4;
extern void sub_8199C30(u8 a, u8 b, u8 c, u8 d, u8 e, u8 f);
extern bool8 sub_81A6BF4();
extern bool8 sub_81B9E94();
-extern void UnkTextUtil_Reset();
+extern void DynamicPlaceholderTextUtil_Reset();
extern void sub_8124610(u8 *a, u8 b);
extern int GetPlayerIDAsU32();
extern u8 GetCurrentPpToMaxPpState(u8 a, u8 b);
@@ -173,6 +164,9 @@ void sub_81C4984();
void sub_81C4A08();
void sub_81C4A88();
void sub_81C4280();
+void sub_81C43A0();
+void sub_81C4484();
+void sub_81C4420();
void sub_81C0510(u8 taskId);
void sub_81C171C(u8 taskId);
void ResetAllBgsCoordinates();
@@ -341,15 +335,16 @@ struct UnkSummaryStruct
u8 unk40C9;
u8 unk40CA;
u8 unk40CB[8];
- u8 unk40D3;
- u8 unk40D4;
- u8 unk40D5;
- u8 unk_filler5[0x19];
+ u8 unk40D3[0x1C];
u8 unk40EF;
s16 unk40F0;
u8 unk_filler4[6];
};
+// const rom data
+#include "data/text/move_descriptions.h"
+
+// code
void sub_81BF8EC(u8 a, void *b, u8 c, u8 d, void *e)
{
u8 byte;
@@ -506,8 +501,8 @@ bool8 sub_81BFB10(void)
gMain.state++;
break;
case 17:
- gUnknown_0203CF1C->unk40D3 = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &gUnknown_0203CF1C->unk40F0);
- if (gUnknown_0203CF1C->unk40D3 != 0xFF)
+ gUnknown_0203CF1C->unk40D3[0] = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &gUnknown_0203CF1C->unk40F0);
+ if (gUnknown_0203CF1C->unk40D3[0] != 0xFF)
{
gUnknown_0203CF1C->unk40F0 = 0;
gMain.state++;
@@ -890,10 +885,10 @@ void sub_81C0704(u8 taskId)
break;
case 1:
sub_81C4898();
- DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D3]);
+ DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D3[0]]);
break;
case 2:
- DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D4]);
+ DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D3[1]]);
break;
case 3:
sub_81C0098(&gUnknown_0203CF1C->currentMon);
@@ -916,10 +911,10 @@ void sub_81C0704(u8 taskId)
data[1] = 0;
break;
case 8:
- gUnknown_0203CF1C->unk40D3 = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &data[1]);
- if (gUnknown_0203CF1C->unk40D3 == 0xFF)
+ gUnknown_0203CF1C->unk40D3[0] = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &data[1]);
+ if (gUnknown_0203CF1C->unk40D3[0] == 0xFF)
return;
- gSprites[gUnknown_0203CF1C->unk40D3].data[2] = 1;
+ gSprites[gUnknown_0203CF1C->unk40D3[0]].data[2] = 1;
sub_81C0E24();
data[1] = 0;
break;
@@ -934,7 +929,7 @@ void sub_81C0704(u8 taskId)
sub_81C2524();
break;
case 12:
- gSprites[gUnknown_0203CF1C->unk40D3].data[2] = 0;
+ gSprites[gUnknown_0203CF1C->unk40D3[0]].data[2] = 0;
break;
default:
if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0)
@@ -1139,7 +1134,7 @@ void sub_81C0E48(u8 taskId)
gUnknown_0203CF1C->unk40C6 = 0;
move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
ClearWindowTilemap(0x13);
- if (gSprites[gUnknown_0203CF1C->unk40D5].invisible == 0)
+ if (gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible == 0)
ClearWindowTilemap(0xD);
sub_81C1DA4(9, -3);
sub_81C1EFC(9, -3, move);
@@ -1245,7 +1240,7 @@ void sub_81C1070(s16 *a, s8 b, u8 *c)
if ((*c == 4 && gUnknown_0203CF1C->unk40C4 == 0) || a[1] == 1)
{
ClearWindowTilemap(19);
- if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible)
ClearWindowTilemap(13);
schedule_bg_copy_tilemap_to_vram(0);
sub_81C1DA4(9, -3);
@@ -1889,7 +1884,7 @@ void sub_81C1940(u8 taskId)
{
ClearWindowTilemap(19);
- if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible)
ClearWindowTilemap(13);
move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
gTasks[taskId].func = sub_81C174C;
@@ -1903,7 +1898,7 @@ void sub_81C1940(u8 taskId)
if (gUnknown_0203CF1C->unk40C0 != 3)
{
ClearWindowTilemap(19);
- if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible)
ClearWindowTilemap(13);
move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
gTasks[taskId].func = sub_81C174C;
@@ -1915,7 +1910,7 @@ void sub_81C1940(u8 taskId)
else if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{
ClearWindowTilemap(19);
- if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible)
ClearWindowTilemap(13);
move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
sub_81C3E9C(move);
@@ -2208,7 +2203,7 @@ void sub_81C1E20(u8 taskId)
}
else
{
- if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible)
PutWindowTilemap(13);
PutWindowTilemap(19);
}
@@ -2259,7 +2254,7 @@ void sub_81C1F80(u8 taskId)
}
else
{
- if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ if (!gSprites[gUnknown_0203CF1C->unk40D3[2]].invisible)
{
PutWindowTilemap(13);
}
@@ -2908,12 +2903,12 @@ void sub_81C307C()
{
struct PokeSummary *sum = &gUnknown_0203CF1C->summary;
u8 *text;
- UnkTextUtil_Reset();
- UnkTextUtil_SetPtrI(0, gUnknown_0861CE74);
- UnkTextUtil_SetPtrI(1, gUnknown_0861CE7B);
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_0861CE74);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_0861CE7B);
sub_81C31C0();
if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE || sub_81C3304() == TRUE)
- UnkTextUtil_StringExpandPlaceholders(gStringVar4, gText_XNature);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_XNature);
else
{
u8 *alloced1 = Alloc(32);
@@ -2922,7 +2917,7 @@ void sub_81C307C()
if (sum->metLocation <= 0xD4)
{
sub_8124610(alloced2, sum->metLocation);
- UnkTextUtil_SetPtrI(4, alloced2);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, alloced2);
}
if (sub_81C3220() == 1)
{
@@ -2937,7 +2932,7 @@ void sub_81C307C()
text = (sum->metLocation > 0xD4) ? gText_XNatureObtainedInTrade : gText_XNatureProbablyMetAt;
else
text = gText_XNatureObtainedInTrade;
- UnkTextUtil_StringExpandPlaceholders(gStringVar4, text);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, text);
Free(alloced1);
Free(alloced2);
}
@@ -2951,8 +2946,8 @@ void sub_81C3194()
void sub_81C31C0()
{
struct UnkSummaryStruct *sumStruct = gUnknown_0203CF1C;
- UnkTextUtil_SetPtrI(2, gNatureNamePointers[sumStruct->summary.nature]);
- UnkTextUtil_SetPtrI(5, gText_EmptyString5);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gNatureNamePointers[sumStruct->summary.nature]);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gText_EmptyString5);
}
void sub_81C31F0(u8 *a)
@@ -2961,7 +2956,7 @@ void sub_81C31F0(u8 *a)
if (level == 0)
level = EGG_HATCH_LEVEL;
ConvertIntToDecimalStringN(a, level, 0, 3);
- UnkTextUtil_SetPtrI(3, a);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, a);
}
u8 sub_81C3220()
@@ -3216,12 +3211,12 @@ void sub_81C3710()
ConvertIntToDecimalStringN(alloced2, gUnknown_0203CF1C->summary.maxHP, 1, 3);
ConvertIntToDecimalStringN(alloced3, gUnknown_0203CF1C->summary.atk, 1, 7);
ConvertIntToDecimalStringN(alloced4, gUnknown_0203CF1C->summary.def, 1, 7);
- UnkTextUtil_Reset();
- UnkTextUtil_SetPtrI(0, alloced1);
- UnkTextUtil_SetPtrI(1, alloced2);
- UnkTextUtil_SetPtrI(2, alloced3);
- UnkTextUtil_SetPtrI(3, alloced4);
- UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_0861CE82);
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, alloced1);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, alloced2);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, alloced3);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, alloced4);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE82);
Free(alloced1);
Free(alloced2);
Free(alloced3);
@@ -3238,11 +3233,11 @@ void sub_81C3808()
ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.spatk, 1, 3);
ConvertIntToDecimalStringN(gStringVar2, gUnknown_0203CF1C->summary.spdef, 1, 3);
ConvertIntToDecimalStringN(gStringVar3, gUnknown_0203CF1C->summary.speed, 1, 3);
- UnkTextUtil_Reset();
- UnkTextUtil_SetPtrI(0, gStringVar1);
- UnkTextUtil_SetPtrI(1, gStringVar2);
- UnkTextUtil_SetPtrI(2, gStringVar3);
- UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_0861CE8E);
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar3);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE8E);
}
void sub_81C3890()
@@ -3351,10 +3346,10 @@ void sub_81C3B08(u8 a)
sub_81C25A4(r8, gMoveNames[move], 0, (a<<4) + 1, 0, 1);
ConvertIntToDecimalStringN(gStringVar1, r10->summary.pp[a], 1, 2);
ConvertIntToDecimalStringN(gStringVar2, r6, 1, 2);
- UnkTextUtil_Reset();
- UnkTextUtil_SetPtrI(0, gStringVar1);
- UnkTextUtil_SetPtrI(1, gStringVar2);
- UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_0861CE97);
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE97);
text = gStringVar4;
r5 = GetCurrentPpToMaxPpState(r10->summary.pp[a], r6) + 9;
offset = GetStringRightAlignXOffset(1, text, 0x2C);
@@ -3446,17 +3441,17 @@ void sub_81C3B08(u8 a)
movs r2, 0x1\n\
movs r3, 0x2\n\
bl ConvertIntToDecimalStringN\n\
- bl UnkTextUtil_Reset\n\
+ bl DynamicPlaceholderTextUtil_Reset\n\
movs r0, 0\n\
mov r1, r8\n\
- bl UnkTextUtil_SetPtrI\n\
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr\n\
movs r0, 0x1\n\
adds r1, r4, 0\n\
- bl UnkTextUtil_SetPtrI\n\
+ bl DynamicPlaceholderTextUtil_SetPlaceholderPtr\n\
ldr r4, =gStringVar4\n\
ldr r1, =gUnknown_0861CE97\n\
adds r0, r4, 0\n\
- bl UnkTextUtil_StringExpandPlaceholders\n\
+ bl DynamicPlaceholderTextUtil_ExpandPlaceholders\n\
adds r7, r4, 0\n\
ldrb r0, [r5]\n\
adds r1, r6, 0\n\
@@ -3591,3 +3586,238 @@ void sub_81C3D54(u8 taskId)
}
data[0]++;
}
+
+void sub_81C3E2C(u8 moveSlot)
+{
+ u16 move;
+
+ if (moveSlot == 4)
+ move = gUnknown_0203CF1C->unk40C4;
+ else
+ move = gUnknown_0203CF1C->summary.moves[moveSlot];
+
+ if (move != MOVE_NONE)
+ {
+ u8 windowId = sub_81C2D2C(&gUnknown_0861CD14, 2);
+ sub_81C25A4(windowId, gContestEffectDescriptionPointers[gContestMoves[move].effect], 6, 1, 0, 0);
+ }
+}
+
+void sub_81C3E9C(u16 move)
+{
+ u8 windowId = sub_81C2D2C(&gUnknown_0861CD14, 2);
+ FillWindowPixelBuffer(windowId, 0);
+ if (move != MOVE_NONE)
+ {
+ if (gUnknown_0203CF1C->unk40C0 == 2)
+ {
+ sub_81C3C5C(move);
+ sub_81C25A4(windowId, gMoveDescriptionPointers[move - 1], 6, 1, 0, 0);
+ }
+ else
+ {
+ sub_81C25A4(windowId, gContestEffectDescriptionPointers[gContestMoves[move].effect], 6, 1, 0, 0);
+ }
+ PutWindowTilemap(windowId);
+ }
+ else
+ {
+ ClearWindowTilemap(windowId);
+ }
+
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+void sub_81C3F44(void)
+{
+ u8 windowId1 = sub_81C2D2C(&gUnknown_0861CD14, 0);
+ u8 windowId2 = sub_81C2D2C(&gUnknown_0861CD14, 1);
+ if (gUnknown_0203CF1C->unk40C4 == MOVE_NONE)
+ {
+ sub_81C25A4(windowId1, gText_Cancel, 0, 0x41, 0, 1);
+ }
+ else
+ {
+ u16 move = gUnknown_0203CF1C->unk40C4;
+ if (gUnknown_0203CF1C->unk40C0 == 2)
+ sub_81C25A4(windowId1, gMoveNames[move], 0, 0x41, 0, 6);
+ else
+ sub_81C25A4(windowId1, gMoveNames[move], 0, 0x41, 0, 5);
+
+ ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].pp, 1, 2);
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE97);
+ sub_81C25A4(windowId2, gStringVar4, GetStringRightAlignXOffset(1, gStringVar4, 0x2C), 0x41, 0, 12);
+ }
+}
+
+void sub_81C4064(void)
+{
+ u8 windowId = sub_81C2D2C(&gUnknown_0861CD14, 0);
+ FillWindowPixelRect(windowId, 0, 0, 0x42, 0x48, 0x10);
+ CopyWindowToVram(windowId, 2);
+}
+
+void sub_81C40A0(u8 a, u8 b)
+{
+ u8 windowId1 = sub_81C2D2C(&gUnknown_0861CD14, 0);
+ u8 windowId2 = sub_81C2D2C(&gUnknown_0861CD14, 1);
+
+ FillWindowPixelRect(windowId1, 0, 0, a * 16, 0x48, 0x10);
+ FillWindowPixelRect(windowId1, 0, 0, b * 16, 0x48, 0x10);
+
+ FillWindowPixelRect(windowId2, 0, 0, a * 16, 0x30, 0x10);
+ FillWindowPixelRect(windowId2, 0, 0, b * 16, 0x30, 0x10);
+
+ sub_81C3B08(a);
+ sub_81C3B08(b);
+}
+
+void sub_81C4154(void)
+{
+ u8 windowId = sub_81C2D2C(&gUnknown_0861CD14, 2);
+ FillWindowPixelBuffer(windowId, 0);
+ sub_81C25A4(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0);
+}
+
+void sub_81C4190(void)
+{
+ u8 i;
+
+ for (i = 0; i < 28; i++)
+ gUnknown_0203CF1C->unk40D3[i] |= 0xFF;
+}
+
+void sub_81C41C0(u8 spriteArrayId)
+{
+ if (gUnknown_0203CF1C->unk40D3[spriteArrayId] != 0xFF)
+ {
+ DestroySprite(&gSprites[gUnknown_0203CF1C->unk40D3[spriteArrayId]]);
+ gUnknown_0203CF1C->unk40D3[spriteArrayId] = 0xFF;
+ }
+}
+
+void sub_81C4204(u8 spriteArrayId, bool8 invisible)
+{
+ gSprites[gUnknown_0203CF1C->unk40D3[spriteArrayId]].invisible = invisible;
+}
+
+void sub_81C424C(void)
+{
+ u8 i;
+
+ for (i = 3; i < 28; i++)
+ {
+ if (gUnknown_0203CF1C->unk40D3[i] != 0xFF)
+ sub_81C4204(i, TRUE);
+ }
+}
+
+void sub_81C4280(void)
+{
+ switch (gUnknown_0203CF1C->unk40C0)
+ {
+ case 0:
+ sub_81C43A0();
+ break;
+ case 2:
+ sub_81C4420();
+ sub_81C44F0();
+ break;
+ case 3:
+ sub_81C4484();
+ sub_81C44F0();
+ break;
+ }
+}
+
+void sub_81C42C8(void)
+{
+ u8 i;
+
+ for (i = 3; i < 8; i++)
+ {
+ if (gUnknown_0203CF1C->unk40D3[i] == 0xFF)
+ gUnknown_0203CF1C->unk40D3[i] = CreateSprite(&gUnknown_0861CFC4, 0, 0, 2);
+
+ sub_81C4204(i, TRUE);
+ }
+}
+
+extern const u8 gUnknown_0861CFDC[];
+
+void sub_81C4318(u8 typeId, u8 x, u8 y, u8 spriteArrayId)
+{
+ struct Sprite *sprite = &gSprites[gUnknown_0203CF1C->unk40D3[spriteArrayId]];
+ StartSpriteAnim(sprite, typeId);
+ sprite->oam.paletteNum = gUnknown_0861CFDC[typeId];
+ sprite->pos1.x = x + 16;
+ sprite->pos1.y = y + 8;
+ sub_81C4204(spriteArrayId, FALSE);
+}
+
+void sub_81C43A0(void)
+{
+ struct PokeSummary *summary = &gUnknown_0203CF1C->summary;
+ if (summary->isEgg)
+ {
+ sub_81C4318(TYPE_MYSTERY, 0x78, 0x30, 3);
+ sub_81C4204(4, TRUE);
+ }
+ else
+ {
+ sub_81C4318(gBaseStats[summary->species].type1, 0x78, 0x30, 3);
+ if (gBaseStats[summary->species].type1 != gBaseStats[summary->species].type2)
+ {
+ sub_81C4318(gBaseStats[summary->species].type2, 0xA0, 0x30, 4);
+ sub_81C4204(4, FALSE);
+ }
+ else
+ {
+ sub_81C4204(4, TRUE);
+ }
+ }
+}
+
+void sub_81C4420(void)
+{
+ u8 i;
+ struct PokeSummary *summary = &gUnknown_0203CF1C->summary;
+ for (i = 0; i < 4; i++)
+ {
+ if (summary->moves[i] != MOVE_NONE)
+ sub_81C4318(gBattleMoves[summary->moves[i]].type, 0x55, 0x20 + (i * 0x10), i + 3);
+ else
+ sub_81C4204(i + 3, TRUE);
+ }
+}
+
+void sub_81C4484(void)
+{
+ u8 i;
+ struct PokeSummary *summary = &gUnknown_0203CF1C->summary;
+ for (i = 0; i < 4; i++)
+ {
+ if (summary->moves[i] != MOVE_NONE)
+ sub_81C4318(NUMBER_OF_MON_TYPES + gContestMoves[summary->moves[i]].contestCategory, 0x55, 0x20 + (i * 0x10), i + 3);
+ else
+ sub_81C4204(i + 3, TRUE);
+ }
+}
+
+void sub_81C44F0(void)
+{
+ if (gUnknown_0203CF1C->unk40C4 == MOVE_NONE)
+ {
+ sub_81C4204(7, TRUE);
+ }
+ else
+ {
+ if (gUnknown_0203CF1C->unk40C0 == 2)
+ sub_81C4318(gBattleMoves[gUnknown_0203CF1C->unk40C4].type, 0x55, 0x60, 7);
+ else
+ sub_81C4318(NUMBER_OF_MON_TYPES + gContestMoves[gUnknown_0203CF1C->unk40C4].contestCategory, 0x55, 0x60, 7);
+ }
+}
diff --git a/src/recorded_battle.c b/src/recorded_battle.c
index 4f1766934..45b07ca7a 100644
--- a/src/recorded_battle.c
+++ b/src/recorded_battle.c
@@ -159,7 +159,7 @@ void sub_8184E58(void)
{
sPlayers[i].trainerId = gLinkPlayers[i].trainerId;
sPlayers[i].gender = gLinkPlayers[i].gender;
- sPlayers[i].battlerId = gLinkPlayers[i].lp_field_18;
+ sPlayers[i].battlerId = gLinkPlayers[i].id;
sPlayers[i].language = gLinkPlayers[i].language;
if (i < linkPlayersCount)
@@ -1340,7 +1340,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
}
gLinkPlayers[i].gender = src->playersGender[i];
gLinkPlayers[i].language = src->playersLanguage[i];
- gLinkPlayers[i].lp_field_18 = src->playersBattlers[i];
+ gLinkPlayers[i].id = src->playersBattlers[i];
gLinkPlayers[i].trainerId = src->playersTrainerId[i];
if (var)
@@ -1453,7 +1453,7 @@ u8 GetActiveBattlerLinkPlayerGender(void)
for (i = 0; i < MAX_LINK_PLAYERS; i++)
{
- if (gLinkPlayers[i].lp_field_18 == gActiveBattler)
+ if (gLinkPlayers[i].id == gActiveBattler)
break;
}
diff --git a/src/region_map.c b/src/region_map.c
index 5176d4996..3214ae185 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -22,6 +22,8 @@
#include "field_effect.h"
#include "region_map.h"
#include "constants/region_map_sections.h"
+#include "heal_location.h"
+#include "constants/heal_locations.h"
#define MAP_WIDTH 28
#define MAP_HEIGHT 15
@@ -52,7 +54,7 @@ static EWRAM_DATA struct {
/*0x88c*/ u8 unk_88c[0x1c0];
/*0xa4c*/ u8 unk_a4c[0x26];
/*0xa72*/ bool8 unk_a72;
-} *gUnknown_0203A148 = NULL; // a74
+} *sFlyMap = NULL; // a74
static bool32 gUnknown_03001180;
static bool32 gUnknown_03001184;
@@ -242,23 +244,23 @@ static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_ic
static const u8 sUnknown_085A1D68[] = INCBIN_U8("graphics/pokenav/fly_target_icons.4bpp.lz");
-static const u8 sUnknown_085A1E3C[][3] = {
- {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 1},
- {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 14},
- {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 15},
- {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 16},
- {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 17},
- {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 18},
- {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 19},
- {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 3},
- {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 4},
- {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 5},
- {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 6},
- {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 7},
- {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 8},
- {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 9},
- {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 10},
- {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 11},
+static const u8 sMapHealLocations[][3] = {
+ {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F},
+ {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), HEAL_LOCATION_OLDALE_TOWN},
+ {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), HEAL_LOCATION_DEWFORD_TOWN},
+ {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), HEAL_LOCATION_LAVARIDGE_TOWN},
+ {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), HEAL_LOCATION_FALLARBOR_TOWN},
+ {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), HEAL_LOCATION_VERDANTURF_TOWN},
+ {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), HEAL_LOCATION_PACIFIDLOG_TOWN},
+ {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), HEAL_LOCATION_PETALBURG_CITY},
+ {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), HEAL_LOCATION_SLATEPORT_CITY},
+ {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), HEAL_LOCATION_MAUVILLE_CITY},
+ {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), HEAL_LOCATION_RUSTBORO_CITY},
+ {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), HEAL_LOCATION_FORTREE_CITY},
+ {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), HEAL_LOCATION_LILYCOVE_CITY},
+ {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), HEAL_LOCATION_MOSSDEEP_CITY},
+ {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), HEAL_LOCATION_SOOTOPOLIS_CITY},
+ {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY_1},
{MAP_GROUP(ROUTE101), MAP_NUM(ROUTE101), 0},
{MAP_GROUP(ROUTE102), MAP_NUM(ROUTE102), 0},
{MAP_GROUP(ROUTE103), MAP_NUM(ROUTE103), 0},
@@ -1578,8 +1580,8 @@ void MCB2_FlyMap(void)
SetGpuReg(REG_OFFSET_BG2HOFS, 0);
SetGpuReg(REG_OFFSET_BG3HOFS, 0);
SetGpuReg(REG_OFFSET_BG3VOFS, 0);
- gUnknown_0203A148 = malloc(sizeof(*gUnknown_0203A148));
- if (gUnknown_0203A148 == NULL)
+ sFlyMap = malloc(sizeof(*sFlyMap));
+ if (sFlyMap == NULL)
{
SetMainCallback2(CB2_ReturnToFieldWithOpenMenu);
}
@@ -1608,11 +1610,11 @@ void MCB2_FlyMap(void)
gMain.state++;
break;
case 4:
- InitRegionMap(&gUnknown_0203A148->regionMap, FALSE);
+ InitRegionMap(&sFlyMap->regionMap, FALSE);
CreateRegionMapCursor(0, 0);
CreateRegionMapPlayerIcon(1, 1);
- gUnknown_0203A148->mapSecId = gUnknown_0203A148->regionMap.mapSecId;
- StringFill(gUnknown_0203A148->unk_a4c, CHAR_SPACE, 16);
+ sFlyMap->mapSecId = sFlyMap->regionMap.mapSecId;
+ StringFill(sFlyMap->unk_a4c, CHAR_SPACE, 16);
gUnknown_03001180 = TRUE;
sub_8124904();
gMain.state++;
@@ -1664,7 +1666,7 @@ static void sub_81248C0(void)
static void sub_81248D4(void)
{
- gUnknown_0203A148->unk_000();
+ sFlyMap->unk_000();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
@@ -1672,8 +1674,8 @@ static void sub_81248D4(void)
static void sub_81248F4(void callback(void))
{
- gUnknown_0203A148->unk_000 = callback;
- gUnknown_0203A148->unk_004 = 0;
+ sFlyMap->unk_000 = callback;
+ sFlyMap->unk_004 = 0;
}
static void sub_8124904(void)
@@ -1682,21 +1684,21 @@ static void sub_8124904(void)
bool32 flag;
const u8 *name;
- if (gUnknown_0203A148->regionMap.iconDrawType > MAPSECTYPE_NONE && gUnknown_0203A148->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER)
+ if (sFlyMap->regionMap.iconDrawType > MAPSECTYPE_NONE && sFlyMap->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER)
{
flag = FALSE;
for (i = 0; i < 1; i++)
{
- if (gUnknown_0203A148->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId)
+ if (sFlyMap->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId)
{
if (FlagGet(gUnknown_085A1EDC[i].flag))
{
- StringLength(gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec]);
+ StringLength(gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]);
flag = TRUE;
sub_8198070(0, FALSE);
SetWindowBorderStyle(1, FALSE, 0x65, 0x0d);
- PrintTextOnWindow(1, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL);
- name = gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec];
+ PrintTextOnWindow(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
+ name = gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec];
PrintTextOnWindow(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
gUnknown_03001180 = TRUE;
@@ -1715,7 +1717,7 @@ static void sub_8124904(void)
{
FillWindowPixelBuffer(0, 0x11);
}
- PrintTextOnWindow(0, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL);
+ PrintTextOnWindow(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
gUnknown_03001180 = FALSE;
}
@@ -1739,8 +1741,8 @@ static void sub_8124A70(void)
{
struct SpriteSheet sheet;
- LZ77UnCompWram(sUnknown_085A1D68, gUnknown_0203A148->unk_88c);
- sheet.data = gUnknown_0203A148->unk_88c;
+ LZ77UnCompWram(sUnknown_085A1D68, sFlyMap->unk_88c);
+ sheet.data = sFlyMap->unk_88c;
sheet.size = 0x1c0;
sheet.tag = 2;
LoadSpriteSheet(&sheet);
@@ -1829,7 +1831,7 @@ static void sub_8124BE4(void)
static void sub_8124CBC(struct Sprite *sprite)
{
- if (gUnknown_0203A148->regionMap.mapSecId == sprite->data[0])
+ if (sFlyMap->regionMap.mapSecId == sprite->data[0])
{
if (++sprite->data[1] > 16)
{
@@ -1846,11 +1848,11 @@ static void sub_8124CBC(struct Sprite *sprite)
static void sub_8124D14(void)
{
- switch (gUnknown_0203A148->unk_004)
+ switch (sFlyMap->unk_004)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- gUnknown_0203A148->unk_004++;
+ sFlyMap->unk_004++;
break;
case 1:
if (!UpdatePaletteFade())
@@ -1863,7 +1865,7 @@ static void sub_8124D14(void)
static void sub_8124D64(void)
{
- if (gUnknown_0203A148->unk_004 == 0)
+ if (sFlyMap->unk_004 == 0)
{
switch (sub_81230AC())
{
@@ -1875,16 +1877,16 @@ static void sub_8124D64(void)
sub_8124904();
break;
case INPUT_EVENT_A_BUTTON:
- if (gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER)
+ if (sFlyMap->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || sFlyMap->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER)
{
m4aSongNumStart(SE_SELECT);
- gUnknown_0203A148->unk_a72 = TRUE;
+ sFlyMap->unk_a72 = TRUE;
sub_81248F4(sub_8124E0C);
}
break;
case INPUT_EVENT_B_BUTTON:
m4aSongNumStart(SE_SELECT);
- gUnknown_0203A148->unk_a72 = FALSE;
+ sFlyMap->unk_a72 = FALSE;
sub_81248F4(sub_8124E0C);
break;
}
@@ -1893,40 +1895,40 @@ static void sub_8124D64(void)
static void sub_8124E0C(void)
{
- switch (gUnknown_0203A148->unk_004)
+ switch (sFlyMap->unk_004)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- gUnknown_0203A148->unk_004++;
+ sFlyMap->unk_004++;
break;
case 1:
if (!UpdatePaletteFade())
{
FreeRegionMapIconResources();
- if (gUnknown_0203A148->unk_a72)
+ if (sFlyMap->unk_a72)
{
- switch (gUnknown_0203A148->regionMap.mapSecId)
+ switch (sFlyMap->regionMap.mapSecId)
{
case MAPSEC_SOUTHERN_ISLAND:
- sub_8084CCC(0x15);
+ sub_8084CCC(HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR);
break;
case MAPSEC_BATTLE_FRONTIER:
- sub_8084CCC(0x16);
+ sub_8084CCC(HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST);
break;
case MAPSEC_LITTLEROOT_TOWN:
- sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? 0x0C : 0x0D);
+ sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? HEAL_LOCATION_LITTLEROOT_TOWN_1 : HEAL_LOCATION_LITTLEROOT_TOWN_2);
break;
case MAPSEC_EVER_GRANDE_CITY:
- sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && gUnknown_0203A148->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B);
+ sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? HEAL_LOCATION_EVER_GRANDE_CITY_2 : HEAL_LOCATION_EVER_GRANDE_CITY_1);
break;
default:
- if (sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2] != 0)
+ if (sMapHealLocations[sFlyMap->regionMap.mapSecId][2] != 0)
{
- sub_8084CCC(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2]);
+ sub_8084CCC(sMapHealLocations[sFlyMap->regionMap.mapSecId][2]);
}
else
{
- warp1_set_2(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][0], sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][1], -1);
+ warp1_set_2(sMapHealLocations[sFlyMap->regionMap.mapSecId][0], sMapHealLocations[sFlyMap->regionMap.mapSecId][1], -1);
}
break;
}
@@ -1936,10 +1938,10 @@ static void sub_8124E0C(void)
{
SetMainCallback2(sub_81B58A8);
}
- if (gUnknown_0203A148 != NULL)
+ if (sFlyMap != NULL)
{
- free(gUnknown_0203A148);
- gUnknown_0203A148 = NULL;
+ free(sFlyMap);
+ sFlyMap = NULL;
}
FreeAllWindowBuffers();
}
diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c
index 9076b611a..55e3fe32b 100644
--- a/src/rom_8011DC0.c
+++ b/src/rom_8011DC0.c
@@ -1,18 +1,3264 @@
-
-// Includes
#include "global.h"
+#include "window.h"
+#include "bg.h"
+#include "string_util.h"
+#include "task.h"
+#include "event_data.h"
+#include "link.h"
+#include "link_rfu.h"
+#include "librfu.h"
+#include "malloc.h"
+#include "menu.h"
+#include "list_menu.h"
+#include "menu_helpers.h"
+#include "script.h"
+#include "sound.h"
+#include "constants/songs.h"
+#include "constants/game_stat.h"
+#include "constants/maps.h"
+#include "constants/species.h"
+#include "constants/rgb.h"
+#include "trade.h"
+#include "trainer_card.h"
+#include "overworld.h"
+#include "battle.h"
+#include "load_save.h"
+#include "cable_club.h"
+#include "field_control_avatar.h"
+#include "party_menu.h"
+#include "field_weather.h"
+#include "palette.h"
+#include "decompress.h"
+#include "start_menu.h"
+#include "data2.h"
+#include "field_screen.h"
+
+extern void HealPlayerParty(void);
+
+struct UnkStruct_Shared
+{
+ struct UnkLinkRfuStruct_02022B14 field_0;
+ u8 needingPadding[3];
+ u8 playerName[PLAYER_NAME_LENGTH];
+};
+
+struct UnkStruct_x1C
+{
+ struct UnkStruct_Shared unk0;
+ u8 unk18;
+};
+
+struct UnkStruct_x20
+{
+ struct UnkStruct_Shared unk;
+ u16 field_18;
+ u8 field_1A_0:2;
+ u8 field_1A_1:1;
+ u8 field_1B;
+ u8 field_1D;
+ u8 field_1E;
+ u8 field_1F;
+};
+
+struct UnkStruct_Main0
+{
+ struct UnkStruct_x20 arr[5];
+};
+
+struct UnkStruct_Main4
+{
+ struct UnkStruct_x1C arr[5];
+};
+
+struct UnkStruct_Main8
+{
+ struct UnkStruct_x20 arr[5];
+};
+
+struct UnkStruct_Leader
+{
+ struct UnkStruct_Main0 *field_0;
+ struct UnkStruct_Main4 *field_4;
+ struct UnkStruct_Main8 *field_8;
+ u8 state;
+ u8 textState;
+ u8 field_E;
+ u8 listWindowId;
+ u8 field_10;
+ u8 field_11;
+ u8 listTaskId;
+ u8 field_13;
+ u8 field_14;
+ u8 field_15;
+ u8 field_16;
+ u8 field_17;
+ u8 field_18;
+ u8 field_19;
+ u16 field_1A;
+};
+
+struct UnkStruct_Group
+{
+ struct UnkStruct_Main0 *field_0;
+ struct UnkStruct_Main4 *field_4;
+ u8 state;
+ u8 textState;
+ u8 field_A;
+ u8 listWindowId;
+ u8 field_C;
+ u8 field_D;
+ u8 listTaskId;
+ u8 field_F;
+ u8 field_10;
+ u8 field_11;
+ u8 field_12;
+ u8 field_13;
+ u8 field_14;
+ u8 field_15;
+};
+
+struct UnkStruct_8019BA8
+{
+ u8 field_0;
+ u8 field_1;
+ u8 field_2;
+ u8 field_3;
+};
+
+struct UnkStruct_URoom
+{
+ struct UnkStruct_Main0 *field_0;
+ struct UnkStruct_Main4 *field_4;
+ struct UnkStruct_Main0 *field_8;
+ struct UnkStruct_Main4 *field_C;
+ u16 field_10;
+ u16 field_12;
+ u8 state;
+ u8 stateAfterPrint;
+ u8 textState;
+ u8 field_17;
+ u8 field_18;
+ u8 field_19;
+ u8 field_1A;
+ u8 field_1B;
+ u8 field_1C;
+ u8 field_1D;
+ u8 field_1E;
+ u8 field_1F;
+ u8 field_20;
+ u8 spriteIds[40];
+ u8 field_49;
+ u8 field_4A;
+ u16 field_4C[6];
+ u8 field_58[0x98 - 0x58];
+ u16 field_98;
+ u16 field_9A;
+ u16 field_9C;
+ u16 field_9E;
+ struct UnkStruct_8019BA8 field_A0[8];
+};
-// Static type declarations
+union UnkUnion_Main
+{
+ struct UnkStruct_Leader *leader;
+ struct UnkStruct_Group *group;
+ struct UnkStruct_URoom *uRoom;
+};
-// Static RAM declarations
-IWRAM_DATA u32 gUnknown_03000DA0;
-IWRAM_DATA u32 gUnknown_03000DA4;
-IWRAM_DATA void *gUnknown_03000DA8;
+struct TradeUnkStruct
+{
+ u16 field_0;
+ u16 field_2;
+ u32 field_4;
+ u8 field_8;
+ u8 field_9;
+ u16 field_A;
+ u16 field_C;
+ u16 species;
+ u16 level;
+ u16 field_12;
+ u32 personality;
+};
+
+extern struct TradeUnkStruct gUnknown_02022C40;
+
+extern union UnkUnion_Main gUnknown_02022C30;
+
+extern u8 gUnknown_02022C2C;
+extern u8 gUnknown_02022C2D;
+extern u8 gUnknown_02022C3E;
+extern u16 gUnknown_02022C3C;
+extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38;
+
+extern u8 gFieldLinkPlayerCount;
+extern u8 gUnknown_03005DB4;
+
+// IWRAM vars
+IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0;
+IWRAM_DATA struct UnkStruct_Group *gUnknown_03000DA4;
+IWRAM_DATA struct UnkStruct_URoom *gUnknown_03000DA8;
IWRAM_DATA void *gUnknown_03000DAC;
IWRAM_DATA bool32 gUnknown_03000DB0;
-// Static ROM declarations
+// this file's functions
+void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5);
+u16 ReadAsU16(const u8 *ptr);
+void sub_8012780(u8 taskId);
+void sub_80134E8(u8 taskId);
+void sub_8013C7C(u8 taskId);
+void sub_8014A40(u8 taskId);
+void sub_8014F48(u8 taskId);
+void sub_80152F4(u8 taskId);
+void sub_80156E0(u8 taskId);
+void sub_80175EC(struct UnkStruct_Main4 *arg0, u8 count);
+void sub_8017580(struct UnkStruct_Main0 *arg0, u8 count);
+u8 sub_8016FC0(struct UnkStruct_Main4 *arg0, u32 arg1);
+u8 sub_8016FF0(struct UnkStruct_Main4 *arg0, u32 arg1);
+bool8 PrintOnTextbox(u8 *textState, const u8 *str);
+bool8 sub_801320C(struct UnkStruct_Leader *data, u32 arg1, u32 arg2);
+u8 sub_8013398(struct UnkStruct_Main0 *arg0);
+s8 sub_80170B8(u8 *arg0, bool32 arg1);
+void sub_8018404(u8 *dest, struct UnkStruct_x20 *arg1);
+void sub_8012F64(struct UnkStruct_Leader *data);
+void sub_80149C4(void);
+u8 sub_80132D4(struct UnkStruct_Main0 *arg0);
+void sub_80178A0(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id);
+u32 sub_80176E4(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1);
+u8 sub_8017734(struct UnkStruct_x20 *arg0, struct UnkStruct_Shared *arg1, u8 arg2);
+u8 sub_8013E44(void);
+u32 sub_8013B8C(struct UnkStruct_Group *arg0, s32 id);
+void sub_8013BD8(struct UnkStruct_Group *arg0, s32 id);
+void sub_80173D4(void);
+void sub_80177B8(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id);
+bool32 sub_8017678(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1);
+u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId);
+void sub_801807C(struct TradeUnkStruct *arg0);
+void sub_801B940(void);
+void sub_801B94C(u16);
+u16 sub_801B39C(void);
+void sub_801AC54(void);
+void sub_801DD98(void);
+void sub_802A9A8(u8 monId, MainCallback callback);
+void sub_802493C(u8 monId, MainCallback callback);
+void sub_8020C70(MainCallback callback);
+void sub_80149D8(void);
+u16 sub_8019930(void);
+void sub_8018784(u8 windowId);
+void sub_8018884(const u8 *src);
+bool32 mevent_0814257C(u8 *textState, const u8 *str);
+s8 sub_8018B08(u8 *textState, u8 *arg1, u8 arg2, const u8 *str);
+bool32 sub_8016F1C(struct UnkStruct_x20 *arg0, s16 arg1);
+u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2);
+void sub_8019F2C(void);
+void sub_8019E70(u8 *arg0, s32 arg1);
+bool32 sub_80180A0(u8 monId, struct TradeUnkStruct *arg1);
+void sub_80180E8(u8 monId, struct TradeUnkStruct *arg1);
+bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3);
+void sub_80181CC(void);
+bool32 sub_8017940(void);
+u8 sub_8016B00(void);
+void sub_801A274(struct UnkStruct_URoom *arg0);
+void sub_801A284(struct UnkStruct_URoom *arg0);
+bool32 sub_8017FD8(struct UnkStruct_URoom *arg0);
+void sub_801689C(struct UnkStruct_URoom *arg0);
+u8 sub_80181DC(struct UnkStruct_URoom *arg0);
+bool32 sub_80168DC(struct UnkStruct_URoom *arg0);
+bool32 sub_801704C(void);
+u32 sub_8017CF8(u32 arg1, struct UnkStruct_Main0 *arg0);
+s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender);
+void sub_801818C(bool32 arg0);
+void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2);
+s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate);
+s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6);
+bool32 sub_8018024(void);
+u32 sub_8017984(u32 arg0);
+void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2);
+void sub_8017D9C(u8 *dst, u32 arg1, u32 playerGender);
+u32 sub_80179AC(struct UnkStruct_x20 *arg0);
+void sub_8017E00(u8 *dst, u8 arg1);
+void sub_8019F04(u8 *spriteIds);
+void sub_8019E3C(void);
+void sub_80173B0(void);
+s32 sub_8017D04(u32 type, u32 species);
+void sub_8017020(const u8 *src);
+void sub_8019BA8();
+
+// const rom data
+extern const u8 *const gUnknown_082EDB60[][5];
+
+extern const u8 gText_UnkCtrlCodeF907[];
+extern const u8 gUnknown_082EDBC4[];
+extern const u8 gText_AwaitingCommunication[];
+extern const u8 gText_AwaitingLink[];
+extern const u8 gUnknown_082EDC5C[];
+extern const u8 gUnknown_082EDC9C[];
+extern const u8 gUnknown_082EDC78[];
+extern const u8 gUnknown_082EDD58[];
+extern const u8 gUnknown_082EDBE8[];
+extern const u8 gUnknown_082EDC0C[];
+extern const u8 gUnknown_082EDC34[];
+extern const u8 gUnknown_082EE560[];
+extern const u8 gUnknown_082EE57C[];
+extern const u8 gUnknown_082EFC54[];
+extern const u8 gUnknown_082EFC3C[];
+extern const u8 gUnknown_082EDE0C[];
+extern const u8 gUnknown_082EDDF4[];
+extern const u8 gUnknown_082EF7DC[];
+extern const u8 gUnknown_082EDE48[];
+extern const u8 gUnknown_082EDE64[];
+extern const u8 gUnknown_082EDF40[];
+extern const u8 gText_PleaseStartOver[];
+extern const u8 gUnknown_082EF7F8[];
+extern const u8 gUnknown_082EFBC8[];
+extern const u8 gUnknown_082EFC90[];
+extern const u8 gUnknown_082EDEC4[];
+extern const u8 gUnknown_082EDF04[];
+extern const u8 gText_WirelessSearchCanceled[];
+extern const u8 gUnknown_082EF4FC[];
+extern const u8 gUnknown_082EF520[];
+extern const u8 gUnknown_082EF5B8[];
+extern const u8 gUnknown_082EF1EC[];
+extern const u8 gUnknown_082EF544[];
+extern const u8 gUnknown_082EF47C[];
+extern const u8 gUnknown_082EE6C8[];
+extern const u8 gUnknown_082EE004[];
+extern const u8 gUnknown_082EEBD0[];
+extern const u8 gUnknown_082EEB88[];
+extern const u8 gUnknown_082EE598[];
+extern const u8 gUnknown_082EEC14[];
+extern const u8 gUnknown_082EF590[];
+extern const u8 gUnknown_082EF20C[];
+extern const u8 gUnknown_082EF564[];
+extern const u8 gUnknown_082EF4C4[];
+extern const u8 gUnknown_082EF298[];
+extern const u8 gUnknown_082EF65C[];
+extern const u8 gUnknown_082EF6E4[];
+extern const u8 gUnknown_082EF718[];
+
+extern const u32 gUnknown_082F00C4[];
+
+extern const u8 gUnknown_082F0530[];
+
+extern const struct WindowTemplate gUnknown_082F00BC;
+extern const struct WindowTemplate gUnknown_082F0124;
+extern const struct WindowTemplate gUnknown_082F012C;
+extern const struct WindowTemplate gUnknown_082F011C;
+extern const struct WindowTemplate gUnknown_082F0174;
+extern const struct WindowTemplate gUnknown_082F017C;
+extern const struct WindowTemplate gUnknown_082F021C;
+extern const struct WindowTemplate gUnknown_082F025C;
+extern const struct WindowTemplate gUnknown_082F0294;
+extern const struct WindowTemplate gUnknown_082F034C;
+
+extern const struct ListMenuTemplate gUnknown_082F015C;
+extern const struct ListMenuTemplate gUnknown_082F0204;
+extern const struct ListMenuTemplate gUnknown_082F0244;
+extern const struct ListMenuTemplate gUnknown_082F027C;
+extern const struct ListMenuTemplate gUnknown_082F032C;
+extern const struct ListMenuTemplate gUnknown_082F03A4;
+
+extern const u8 *const gUnknown_082F0048[];
+extern const u8 *const gUnknown_082EDDC4[];
+extern const u8 *const gUnknown_082EFB70[];
+extern const u8 *const gUnknown_082EDD50[];
+extern const u8 *const gUnknown_082EDE9C[];
+extern const u8 *const gUnknown_082EDF80[];
+extern const u8 *const gUnknown_082EFD58[];
+extern const u8 *const gUnknown_082EEB80[];
+extern const u8 *const gUnknown_082EE378[];
+extern const u8 *const gUnknown_082EEC9C[];
+extern const u8 *const gUnknown_082EED3C[];
+extern const u8 *const gUnknown_082EE324[];
+extern const u8 *const gUnknown_082EE17C[];
+
+extern const u8 *const gUnknown_082EE82C[][4];
+
+extern const u8 *const gUnknown_082EE24C[][2];
+
+extern const struct UnkStruct_Shared gUnknown_082F045C[];
+
+// code
+void nullsub_89(void)
+{
+
+}
+
+void sub_80124EC(u8 windowId, u8 arg1, u8 stringId)
+{
+ FillWindowPixelBuffer(windowId, 0x11);
+ switch (arg1 << 8)
+ {
+ case 0x200:
+ sub_80173E0(windowId, 1, gUnknown_082EDB60[0][stringId - 1], 0, 1, 0);
+ break;
+ case 0x400:
+ sub_80173E0(windowId, 1, gUnknown_082EDB60[1][stringId - 1], 0, 1, 0);
+ break;
+ case 0x2500:
+ sub_80173E0(windowId, 1, gUnknown_082EDB60[2][stringId - 1], 0, 1, 0);
+ break;
+ case 0x3500:
+ sub_80173E0(windowId, 1, gUnknown_082EDB60[3][stringId - 1], 0, 1, 0);
+ break;
+ case 0x2400:
+ sub_80173E0(windowId, 1, gUnknown_082EDB60[4][stringId - 1], 0, 1, 0);
+ break;
+ }
+
+ CopyWindowToVram(windowId, 2);
+}
+
+void sub_80125BC(u8 windowId)
+{
+ u8 text[30];
+ u8 *txtPtr;
+
+ sub_80173E0(windowId, 1, gSaveBlock2Ptr->playerName, 0, 1, 0);
+ txtPtr = StringCopy(text, gText_UnkCtrlCodeF907);
+ ConvertIntToDecimalStringN(txtPtr, ReadAsU16(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5);
+ sub_80173E0(windowId, 1, text, 0, 0x11, 0);
+}
+
+void sub_801262C(u8 *dst, u8 caseId)
+{
+ switch (caseId)
+ {
+ case 1 ... 4:
+ case 9 ... 11:
+ case 14 ... 16:
+ case 21 ... 28:
+ // UB: argument *dst isn't used, instead it always prints to gStringVar4
+ StringExpandPlaceholders(gStringVar4, gText_AwaitingCommunication);
+ break;
+ }
+}
+
+bool32 sub_80126CC(u32 caseId)
+{
+ switch (caseId)
+ {
+ case 9 ... 11:
+ case 15 ... 16:
+ case 23 ... 27:
+ return TRUE;
+ default:
+ return FALSE;
+ }
+}
+
+void BerryBlenderLinkBecomeLeader(void)
+{
+ u8 taskId;
+ struct UnkStruct_Leader *dataPtr;
+
+ taskId = CreateTask(sub_8012780, 0);
+ gUnknown_02022C30.leader = dataPtr = (void*)(gTasks[taskId].data);
+ gUnknown_03000DA0 = dataPtr;
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ gSpecialVar_Result = 0;
+}
+
+void sub_8012780(u8 taskId)
+{
+ u32 id, val;
+ struct UnkStruct_Leader *data = gUnknown_02022C30.leader;
+
+ switch (data->state)
+ {
+ case 0:
+ if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.chosenLvl == 1)
+ gSpecialVar_0x8004++;
+ gUnknown_02022C2C = gUnknown_082F00C4[gSpecialVar_0x8004];
+ gUnknown_02022C2D = gUnknown_082F00C4[gSpecialVar_0x8004] >> 8;
+ sub_8010F84(gUnknown_02022C2C, 0, 0);
+ sub_800B488();
+ OpenLink();
+ sub_8011C10(gUnknown_02022C2D & 0xF);
+ data->state = 3;
+ break;
+ case 3:
+ data->field_4 = AllocZeroed(0x70);
+ data->field_0 = AllocZeroed(0xA0);
+ data->field_8 = AllocZeroed(0xA0);
+ sub_80175EC(data->field_4, 4);
+ sub_8017580(data->field_0, 5);
+ sub_800DF90(&data->field_0->arr[0].unk.field_0, data->field_0->arr[0].unk.playerName);
+ data->field_0->arr[0].field_18 = 0;
+ data->field_0->arr[0].field_1A_0 = 1;
+ data->field_0->arr[0].field_1A_1 = 0;
+ data->field_0->arr[0].field_1B = 0;
+ data->field_17 = sub_8016FC0(data->field_4, 0xFF);
+ data->field_10 = AddWindow(&gUnknown_082F00BC);
+ switch (gUnknown_02022C2D & 0xF)
+ {
+ case 2:
+ case 3:
+ case 4:
+ data->listWindowId = AddWindow(&gUnknown_082F011C);
+ break;
+ case 5:
+ data->listWindowId = AddWindow(&gUnknown_082F0124);
+ break;
+ }
+ data->field_11 = AddWindow(&gUnknown_082F012C);
+
+ FillWindowPixelBuffer(data->field_10, 0x22);
+ sub_80173E0(data->field_10, 0, gUnknown_082EDBC4, 8, 1, 4);
+ PutWindowTilemap(data->field_10);
+ CopyWindowToVram(data->field_10, 2);
+
+ NewMenuHelpers_DrawStdWindowFrame(data->listWindowId, FALSE);
+ gMultiuseListMenuTemplate = gUnknown_082F015C;
+ gMultiuseListMenuTemplate.windowId = data->listWindowId;
+ data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+
+ NewMenuHelpers_DrawStdWindowFrame(data->field_11, FALSE);
+ PutWindowTilemap(data->field_11);
+ CopyWindowToVram(data->field_11, 2);
+
+ CopyBgTilemapBufferToVram(0);
+ data->field_13 = 1;
+ data->state = 4;
+ break;
+ case 4:
+ StringCopy(gStringVar1, gUnknown_082F0048[gUnknown_02022C2C]);
+ if ((gUnknown_02022C2D >> 4) != 0)
+ {
+ if (data->field_13 > (gUnknown_02022C2D >> 4) - 1 && (gUnknown_02022C2D & 0xF) != 0)
+ StringExpandPlaceholders(gStringVar4, gText_AwaitingLink);
+ else
+ StringExpandPlaceholders(gStringVar4, gText_AwaitingCommunication);
+ }
+ else
+ {
+ sub_801262C(gStringVar4, gUnknown_02022C2C);
+ }
+
+ sub_80124EC(data->field_11, gUnknown_02022C2D, data->field_13);
+ data->state = 5;
+ break;
+ case 5:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ data->state = 6;
+ break;
+ case 6:
+ sub_801320C(data, 7, 10);
+ if (gMain.newKeys & B_BUTTON)
+ {
+ if (data->field_13 == 1)
+ data->state = 23;
+ else if ((gUnknown_02022C2D & 0xF0) != 0)
+ data->state = 30;
+ else
+ data->state = 19;
+ }
+ if ((gUnknown_02022C2D >> 4) != 0
+ && data->field_13 > (gUnknown_02022C2D >> 4) - 1
+ && (gUnknown_02022C2D & 0xF) != 0
+ && sub_8012240()
+ && gMain.newKeys & START_BUTTON)
+ {
+ data->state = 15;
+ sub_800EF38();
+ }
+ if (data->state == 6 && sub_80105EC())
+ {
+ data->state = 9;
+ }
+ break;
+ case 9:
+ if (!sub_80105EC())
+ {
+ data->state = 6;
+ data->field_13 = sub_8013398(data->field_0);
+ }
+ break;
+ case 10:
+ id = ((gUnknown_02022C2C & 0xF) == 2) ? 1 : 0;
+ if (PrintOnTextbox(&data->textState, gUnknown_082EDDC4[id]))
+ {
+ data->field_13 = sub_8013398(data->field_0);
+ RedrawListMenu(data->listTaskId);
+ data->state = 4;
+ }
+ break;
+ case 29:
+ id = ((gUnknown_02022C2D & 0xF) == 2) ? 0 : 1;
+ if (PrintOnTextbox(&data->textState, gUnknown_082EDDC4[id]))
+ {
+ data->state = 21;
+ }
+ break;
+ case 7:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ data->state = 11;
+ }
+ break;
+ case 11:
+ switch (sub_80170B8(&data->textState, sub_801064C(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName)))
+ {
+ case 0:
+ sub_800E0E8();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ data->field_19 = 5;
+ sub_8010688(5, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ data->state = 12;
+ break;
+ case 1:
+ case -1:
+ data->field_19 = 6;
+ sub_8010688(6, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ data->state = 12;
+ break;
+ case -3:
+ data->state = 9;
+ break;
+ }
+ break;
+ case 12:
+ val = sub_8010714(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ if (val == 1)
+ {
+ if (data->field_19 == 5)
+ {
+ data->field_0->arr[data->field_13].field_1B = 0;
+ RedrawListMenu(data->listTaskId);
+ data->field_13++;
+ if (data->field_13 == (gUnknown_02022C2D & 0xF))
+ {
+ if ((gUnknown_02022C2D & 0xF0) != 0 || data->field_13 == 4)
+ {
+ data->state = 15;
+ }
+ else
+ {
+ sub_8018404(gStringVar1, &data->field_0->arr[data->field_13 - 1]);
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EDC9C);
+ data->state = 13;
+ }
+
+ sub_800EF38();
+ sub_80124EC(data->field_11, gUnknown_02022C2D, data->field_13);
+ }
+ else
+ {
+ data->state = 4;
+ }
+ }
+ else
+ {
+ sub_8011DC0(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId));
+ data->field_0->arr[data->field_13].field_1A_0 = 0;
+ sub_8013398(data->field_0);
+ RedrawListMenu(data->listTaskId);
+ data->state = 4;
+ }
+
+ data->field_19 = 0;
+ }
+ else if (val == 2)
+ {
+ sub_8011A64(0, 0);
+ data->state = 4;
+ }
+ break;
+ case 13:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ data->state = 14;
+ break;
+ case 14:
+ if (++data->field_E > 120)
+ data->state = 17;
+ break;
+ case 15:
+ if (PrintOnTextbox(&data->textState, gUnknown_082EDC5C))
+ data->state = 16;
+ break;
+ case 16:
+ switch (sub_80170B8(&data->textState, FALSE))
+ {
+ case 0:
+ data->state = 17;
+ break;
+ case 1:
+ case -1:
+ if ((gUnknown_02022C2D & 0xF0) != 0)
+ data->state = 30;
+ else
+ data->state = 19;
+ break;
+ }
+ break;
+ case 19:
+ if (PrintOnTextbox(&data->textState, gUnknown_082EDC78))
+ data->state = 20;
+ break;
+ case 20:
+ switch (sub_80170B8(&data->textState, FALSE))
+ {
+ case 0:
+ data->state = 23;
+ break;
+ case 1:
+ case -1:
+ if ((gUnknown_02022C2D & 0xF0) != 0)
+ data->state = 15;
+ else if (data->field_13 == (gUnknown_02022C2D & 0xF))
+ data->state = 15;
+ else
+ data->state = 4;
+ break;
+ }
+ break;
+ case 17:
+ if (!sub_801320C(data, 7, 29))
+ data->state = 18;
+ break;
+ case 18:
+ if (sub_800EF1C())
+ {
+ if (sub_800EF58(FALSE))
+ {
+ data->state = 26;
+ }
+ else
+ {
+ if (++data->field_1A > 300)
+ {
+ data->state = 29;
+ data->textState = 0;
+ }
+ }
+ }
+ else
+ {
+ data->state = 29;
+ data->textState = 0;
+ }
+ break;
+ case 30:
+ if (PrintOnTextbox(&data->textState, gUnknown_082EDD58))
+ data->state = 23;
+ break;
+ case 21:
+ case 23:
+ sub_800E084();
+ sub_800EDD4();
+ sub_8012F64(data);
+ data->state++;
+ break;
+ case 24:
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ gSpecialVar_Result = 5;
+ break;
+ case 22:
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ gSpecialVar_Result = 8;
+ break;
+ case 26:
+ if (sub_8011A80())
+ {
+ data->state = 29;
+ }
+ else
+ {
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ if (sub_80126CC(gUnknown_02022C2C))
+ sub_801103C();
+ sub_8011068(1);
+ sub_80149C4();
+ sub_8012F64(data);
+ DestroyTask(taskId);
+ }
+ }
+ break;
+ }
+}
+
+void sub_8012F64(struct UnkStruct_Leader *data)
+{
+ ClearWindowTilemap(data->field_11);
+ sub_819746C(data->field_11, FALSE);
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ ClearWindowTilemap(data->field_10);
+ sub_819746C(data->listWindowId, FALSE);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->field_11);
+ RemoveWindow(data->listWindowId);
+ RemoveWindow(data->field_10);
+ DestroyTask(data->field_17);
+
+ Free(data->field_8);
+ Free(data->field_0);
+ Free(data->field_4);
+}
+
+void sub_8012FC4(u8 *dst, u8 caseId)
+{
+ switch (caseId)
+ {
+ case 1:
+ case 2:
+ case 4:
+ case 14:
+ case 28:
+ StringExpandPlaceholders(dst, gUnknown_082EDBE8);
+ break;
+ case 21:
+ case 22:
+ StringExpandPlaceholders(dst, gUnknown_082EDC0C);
+ break;
+ case 3:
+ case 9:
+ case 10:
+ case 11:
+ case 15:
+ case 16:
+ case 23:
+ case 24:
+ case 25:
+ case 26:
+ case 27:
+ StringExpandPlaceholders(dst, gUnknown_082EDC34);
+ break;
+ }
+}
+
+void sub_8013078(u8 *dst, u8 caseId)
+{
+ switch (caseId)
+ {
+ case 65:
+ case 68:
+ StringExpandPlaceholders(dst, gUnknown_082EE560);
+ break;
+ case 69:
+ case 72:
+ StringExpandPlaceholders(dst, gUnknown_082EE57C);
+ break;
+ }
+}
+
+void sub_80130B4(u8 *dst, u8 caseId)
+{
+ switch (caseId)
+ {
+ case 1:
+ case 2:
+ case 4:
+ case 14:
+ case 21:
+ case 22:
+ case 28:
+ StringExpandPlaceholders(dst, gUnknown_082EFC3C);
+ break;
+ case 3:
+ case 9:
+ case 10:
+ case 11:
+ case 15:
+ case 16:
+ case 23:
+ case 24:
+ case 25:
+ case 26:
+ case 27:
+ StringExpandPlaceholders(dst, gUnknown_082EFC54);
+ break;
+ }
+}
+
+void sub_8013160(u8 *dst, u8 caseId)
+{
+ switch (caseId)
+ {
+ case 1:
+ case 2:
+ case 4:
+ case 14:
+ case 21:
+ case 22:
+ case 28:
+ StringExpandPlaceholders(dst, gUnknown_082EDDF4);
+ break;
+ case 3:
+ case 9:
+ case 10:
+ case 11:
+ case 15:
+ case 16:
+ case 23:
+ case 24:
+ case 25:
+ case 26:
+ case 27:
+ StringExpandPlaceholders(dst, gUnknown_082EDE0C);
+ break;
+ }
+}
+
+bool8 sub_801320C(struct UnkStruct_Leader *data, u32 arg1, u32 arg2)
+{
+ switch (sub_80132D4(data->field_0))
+ {
+ case 1:
+ PlaySE(SE_PC_LOGIN);
+ RedrawListMenu(data->listTaskId);
+ sub_8018404(gStringVar2, &data->field_0->arr[data->field_13]);
+ sub_8012FC4(gStringVar4, gUnknown_02022C2C);
+ data->state = arg1;
+ break;
+ case 2:
+ sub_8011A64(0, 0);
+ RedrawListMenu(data->listTaskId);
+ data->state = arg2;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void sub_8013278(u8 arg0, u32 id, u8 arg2)
+{
+ struct UnkStruct_Leader *data = gUnknown_02022C30.leader;
+ u8 var = 0;
+
+ switch (data->field_0->arr[id].field_1A_0)
+ {
+ case 1:
+ if (data->field_0->arr[id].field_1B != 0)
+ var = 2;
+ break;
+ case 2:
+ var = 1;
+ break;
+ }
+
+ sub_80178A0(arg0, 0, arg2, &data->field_0->arr[id], var, id);
+}
+
+u8 sub_80132D4(struct UnkStruct_Main0 *arg0)
+{
+ struct UnkStruct_Leader *data = gUnknown_02022C30.leader;
+ u8 ret = 0;
+ u8 i;
+ s32 id;
+
+ for (i = 1; i < 5; i++)
+ {
+ u16 var = data->field_0->arr[i].field_1A_0;
+ if (var == 1)
+ {
+ id = sub_80176E4(&data->field_0->arr[i], data->field_4->arr);
+ if (id != 0xFF)
+ {
+ data->field_0->arr[i].unk = data->field_4->arr[id].unk0;
+ data->field_0->arr[i].field_18 = var;
+ }
+ else
+ {
+ data->field_0->arr[i].field_1A_0 = 2;
+ ret = 2;
+ }
+ }
+ }
+
+ for (id = 0; id < 4; id++)
+ sub_8017734(data->field_0->arr, &data->field_4->arr[id].unk0, 5);
+
+ if (ret != 2)
+ {
+ for (id = 0; id < 5; id++)
+ {
+ if (data->field_0->arr[id].field_1B != 0)
+ ret = 1;
+ }
+ }
+
+ return ret;
+}
+
+u8 sub_8013398(struct UnkStruct_Main0 *arg0)
+{
+ struct UnkStruct_Leader *data = gUnknown_02022C30.leader;
+ u8 copiedCount;
+ s32 i;
+ u8 ret;
+
+ for (i = 0; i < 5; i++)
+ data->field_8->arr[i] = data->field_0->arr[i];
+
+ copiedCount = 0;
+ for (i = 0; i < 5; i++)
+ {
+ if (data->field_8->arr[i].field_1A_0 == 1)
+ {
+ data->field_0->arr[copiedCount] = data->field_8->arr[i];
+ copiedCount++;
+ }
+ }
+
+ ret = copiedCount;
+ for (; copiedCount < 5; copiedCount++)
+ {
+ data->field_0->arr[copiedCount].unk = gUnknown_082F045C[0];
+ data->field_0->arr[copiedCount].field_18 = 0;
+ data->field_0->arr[copiedCount].field_1A_0 = 0;
+ data->field_0->arr[copiedCount].field_1A_1 = 0;
+ data->field_0->arr[copiedCount].field_1B = 0;
+ }
+
+ for (i = 0; i < 5; i++)
+ {
+ if (data->field_0->arr[i].field_1A_0 != 1)
+ continue;
+ if (data->field_0->arr[i].field_1B != 0x40)
+ continue;
+
+ ret = i;
+ break;
+ }
+
+ return ret;
+}
+
+void BerryBlenderLinkJoinGroup(void)
+{
+ u8 taskId;
+ struct UnkStruct_Group *dataPtr;
+
+ taskId = CreateTask(sub_80134E8, 0);
+ gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data);
+ gUnknown_03000DA4 = dataPtr;
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ gSpecialVar_Result = 0;
+}
+
+void sub_80134E8(u8 taskId)
+{
+ s32 id;
+ struct UnkStruct_Group *data = gUnknown_02022C30.group;
+
+ switch (data->state)
+ {
+ case 0:
+ if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.chosenLvl == 1)
+ gSpecialVar_0x8004++;
+ gUnknown_02022C2C = gUnknown_082F0530[gSpecialVar_0x8004];
+ sub_8010F84(gUnknown_02022C2C, 0, 0);
+ sub_800B488();
+ OpenLink();
+ sub_8011C5C();
+ data->field_4 = AllocZeroed(0x70);
+ data->field_0 = AllocZeroed(0x200);
+ data->state = 1;
+ break;
+ case 1:
+ if (PrintOnTextbox(&data->textState, gUnknown_082EFB70[gSpecialVar_0x8004]))
+ data->state = 2;
+ break;
+ case 2:
+ sub_80175EC(data->field_4, 4);
+ sub_8017580(data->field_0, 16);
+ data->field_11 = sub_8016FC0(data->field_4, gSpecialVar_0x8004);
+ data->field_C = AddWindow(&gUnknown_082F00BC);
+ data->listWindowId = AddWindow(&gUnknown_082F0174);
+ data->field_D = AddWindow(&gUnknown_082F017C);
+
+ FillWindowPixelBuffer(data->field_C, 0x22);
+ sub_80173E0(data->field_C, 0, gUnknown_082EF7DC, 8, 1, 4);
+ PutWindowTilemap(data->field_C);
+ CopyWindowToVram(data->field_C, 2);
+
+ NewMenuHelpers_DrawStdWindowFrame(data->listWindowId, FALSE);
+ gMultiuseListMenuTemplate = gUnknown_082F0204;
+ gMultiuseListMenuTemplate.windowId = data->listWindowId;
+ data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+
+ NewMenuHelpers_DrawStdWindowFrame(data->field_D, FALSE);
+ PutWindowTilemap(data->field_D);
+ sub_80125BC(data->field_D);
+ CopyWindowToVram(data->field_D, 2);
+
+ CopyBgTilemapBufferToVram(0);
+ data->field_F = 0;
+ data->state = 3;
+ break;
+ case 3:
+ id = sub_8013E44();
+ switch (id)
+ {
+ case 1:
+ PlaySE(SE_PC_LOGIN);
+ RedrawListMenu(data->listTaskId);
+ break;
+ case 0:
+ id = ListMenuHandleInputGetItemId(data->listTaskId);
+ if (gMain.newKeys & A_BUTTON && id != -1)
+ {
+ // this unused variable along with the assignment is needed to match
+ u32 unusedVar;
+ unusedVar = data->field_0->arr[id].unk.field_0.unk_0a_0;
+
+ if (data->field_0->arr[id].field_1A_0 == 1 && !data->field_0->arr[id].unk.field_0.unk_0a_7)
+ {
+ u32 var = sub_8013B8C(data, id);
+ if (var == 0)
+ {
+ sub_8013BD8(data, id);
+ data->state = 5;
+ PlaySE(SE_PN_ON);
+ }
+ else
+ {
+ StringCopy(gStringVar4, gUnknown_082EDD50[var - 1]);
+ data->state = 18;
+ PlaySE(SE_PN_ON);
+ }
+ }
+ else
+ {
+ PlaySE(SE_WALL_HIT);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ data->state = 10;
+ }
+ break;
+ default:
+ RedrawListMenu(data->listTaskId);
+ break;
+ }
+ break;
+ case 5:
+ sub_80130B4(gStringVar4, gUnknown_02022C2C);
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]);
+ data->state = 6;
+ }
+ break;
+ case 6:
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ gUnknown_02022C2C = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0;
+ sub_8011A64(0, 0);
+ switch (gUnknown_02022C2C)
+ {
+ case 1 ... 5:
+ case 9 ... 11:
+ case 13 ... 16:
+ case 21 ... 28:
+ data->state = 20;
+ return;
+ }
+ }
+
+ switch (sub_8011A74())
+ {
+ case 1:
+ data->state = 12;
+ break;
+ case 2:
+ case 6:
+ case 9:
+ data->state = 14;
+ break;
+ case 5:
+ sub_8013160(gStringVar4, gUnknown_02022C2C);
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ if (gUnknown_02022C2C == 28 || gUnknown_02022C2C == 14)
+ {
+ sub_8011A64(12, 0);
+ }
+ else
+ {
+ sub_8011A64(7, 0);
+ StringCopy(gStringVar1, gUnknown_082F0048[gUnknown_02022C2C]);
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EDE48);
+ }
+ }
+ break;
+ case 7:
+ if (data->field_15 > 0xF0)
+ {
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ sub_8011A64(12, 0);
+ data->field_15 = 0;
+ }
+ }
+ else
+ {
+ switch (gUnknown_02022C2C)
+ {
+ case 1:
+ case 2:
+ case 4:
+ case 14:
+ case 28:
+ break;
+ default:
+ data->field_15++;
+ break;
+ }
+ }
+ break;
+ }
+
+ if (!sub_8011A74() && gMain.newKeys & B_BUTTON)
+ data->state = 7;
+ break;
+ case 7:
+ if (PrintOnTextbox(&data->textState, gUnknown_082EDE64))
+ data->state = 8;
+ break;
+ case 8:
+ switch (sub_80170B8(&data->textState, sub_8011A74()))
+ {
+ case 0:
+ sub_80106D4();
+ data->state = 9;
+ RedrawListMenu(data->listTaskId);
+ break;
+ case 1:
+ case -1:
+ data->state = 5;
+ RedrawListMenu(data->listTaskId);
+ break;
+ case -3:
+ data->state = 6;
+ RedrawListMenu(data->listTaskId);
+ break;
+ }
+ break;
+ case 9:
+ if (sub_8011A74())
+ data->state = 6;
+ break;
+ case 10:
+ case 12:
+ case 14:
+ case 18:
+ case 20:
+ ClearWindowTilemap(data->field_D);
+ sub_819746C(data->field_D, FALSE);
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ ClearWindowTilemap(data->field_C);
+ sub_819746C(data->listWindowId, FALSE);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->field_D);
+ RemoveWindow(data->listWindowId);
+ RemoveWindow(data->field_C);
+ DestroyTask(data->field_11);
+ Free(data->field_0);
+ Free(data->field_4);
+ data->state++;
+ break;
+ case 13:
+ sub_800E084();
+ if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()]))
+ {
+ gSpecialVar_Result = 6;
+ data->state = 23;
+ }
+ break;
+ case 11:
+ sub_800E084();
+ gSpecialVar_Result = 5;
+ data->state = 23;
+ break;
+ case 15:
+ sub_800E084();
+ if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()]))
+ {
+ gSpecialVar_Result = 8;
+ data->state = 23;
+ }
+ break;
+ case 19:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ gSpecialVar_Result = 8;
+ data->state = 23;
+ }
+ break;
+ case 23:
+ DestroyTask(taskId);
+ sub_80173D4();
+ sub_800EDD4();
+ break;
+ case 21:
+ sub_80149C4();
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+u32 sub_8013B8C(struct UnkStruct_Group *arg0, s32 id)
+{
+ struct UnkStruct_x20 *structPtr = &arg0->field_0->arr[id];
+
+ if (gUnknown_02022C2C == 4 && structPtr->unk.field_0.unk_00.unk_01_2 != 3)
+ {
+ if (!(gSaveBlock2Ptr->specialSaveWarp & 0x80))
+ return 1;
+ else if (structPtr->unk.field_0.unk_00.unk_00_7)
+ return 0;
+ }
+ else
+ {
+ return 0;
+ }
+
+ return 2;
+}
+
+void sub_8013BD8(struct UnkStruct_Group *data, s32 id)
+{
+ data->field_F = id;
+ sub_800E0E8();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ RedrawListMenu(data->listTaskId);
+ sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]);
+ sub_8011090(gUnknown_082F0530[gSpecialVar_0x8004], 0, 1);
+ sub_8011FC8(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId));
+}
+
+u8 sub_8013C40(void)
+{
+ u8 taskId;
+ struct UnkStruct_Group *dataPtr;
+
+ taskId = CreateTask(sub_8013C7C, 0);
+ gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data);
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+
+ gUnknown_03000DA4 = dataPtr;
+
+ return taskId;
+}
+
+void sub_8013C7C(u8 taskId)
+{
+ struct UnkStruct_Group *data = gUnknown_02022C30.group;
+
+ switch (data->state)
+ {
+ case 0:
+ sub_8010F84(0, 0, 0);
+ sub_800B488();
+ OpenLink();
+ sub_8011C5C();
+ sub_80111B0(TRUE);
+ data->field_4 = AllocZeroed(0x70);
+ data->field_0 = AllocZeroed(0x200);
+ data->state = 2;
+ break;
+ case 2:
+ sub_80175EC(data->field_4, 4);
+ sub_8017580(data->field_0, 16);
+ data->field_11 = sub_8016FC0(data->field_4, 0xFF);
+ data->field_F = 0;
+ data->state = 3;
+ break;
+ case 3:
+ if (sub_8013E44() == 1)
+ PlaySE(SE_PC_LOGIN);
+ if (gTasks[taskId].data[15] == 0xFF)
+ data->state = 10;
+ break;
+ case 10:
+ DestroyTask(data->field_11);
+ Free(data->field_0);
+ Free(data->field_4);
+ sub_800EDD4();
+ data->state++;
+ break;
+ case 11:
+ sub_800EDD4();
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+extern const u8 *const gUnknown_082F04D8[22];
+
+bool32 sub_8013D88(u32 arg0, u32 id)
+{
+ if (id == 0xFF)
+ return TRUE;
+
+ if (id <= ARRAY_COUNT(gUnknown_082F04D8)) // UB: <= may access data outside the array
+ {
+ const u8 *bytes = gUnknown_082F04D8[id];
+
+ while ((*(bytes) != 0xFF))
+ {
+ if ((*bytes) == arg0)
+ return TRUE;
+ bytes++;
+ }
+ }
+
+ return FALSE;
+}
+
+u8 sub_8013DBC(struct UnkStruct_Group *data, u32 id)
+{
+ if (data->field_0->arr[id].field_1A_0 == 1)
+ {
+ if (data->field_0->arr[id].unk.field_0.unk_0a_7)
+ return 3;
+ else if (data->field_0->arr[id].field_1A_1 != 0)
+ return 1;
+ else if (data->field_0->arr[id].field_1B != 0)
+ return 2;
+ }
+
+ return 0;
+}
+
+void sub_8013DF4(u8 arg0, u32 id, u8 arg2)
+{
+ struct UnkStruct_Group *data = gUnknown_02022C30.group;
+ u8 var = sub_8013DBC(data, id);
+
+ sub_80177B8(arg0, 8, arg2, &data->field_0->arr[id], var, id);
+}
+
+u8 sub_8013E44(void)
+{
+ struct UnkStruct_Group *data = gUnknown_02022C30.group;
+ u8 ret = 0;
+ u8 i;
+ s32 id;
+
+ for (i = 0; i < 16; i++)
+ {
+ if (data->field_0->arr[i].field_1A_0 != 0)
+ {
+ id = sub_80176E4(&data->field_0->arr[i], data->field_4->arr);
+ if (id != 0xFF)
+ {
+ if (data->field_0->arr[i].field_1A_0 == 1)
+ {
+ if (sub_8017678(&data->field_0->arr[i], &data->field_4->arr[id]))
+ {
+ data->field_0->arr[i].unk = data->field_4->arr[id].unk0;
+ data->field_0->arr[i].field_1B = 0x40;
+ ret = 1;
+ }
+ else
+ {
+ if (data->field_0->arr[i].field_1B != 0)
+ {
+ data->field_0->arr[i].field_1B--;
+ if (data->field_0->arr[i].field_1B == 0)
+ ret = 2;
+ }
+ }
+ }
+ else
+ {
+ data->field_0->arr[i].field_1A_0 = 1;
+ data->field_0->arr[i].field_1B = 0x40;
+ ret = 1;
+ }
+
+ data->field_0->arr[i].field_18 = 0;
+ }
+ else
+ {
+ if (data->field_0->arr[i].field_1A_0 != 2)
+ {
+ data->field_0->arr[i].field_18++;
+ if (data->field_0->arr[i].field_18 >= 300)
+ {
+ data->field_0->arr[i].field_1A_0 = 2;
+ ret = 2;
+ }
+ }
+ }
+ }
+ }
+
+ for (id = 0; id < 4; id++)
+ {
+ if (sub_8017734(data->field_0->arr, &data->field_4->arr[id].unk0, 16) != 0xFF)
+ ret = 1;
+ }
+
+ return ret;
+}
+
+void sub_8013F60(u8 taskId)
+{
+ sub_80773AC();
+ DestroyTask(taskId);
+}
+
+u8 sub_8013F78(void)
+{
+ u8 taskId = CreateTask(sub_8013F60, 0);
+
+ return taskId;
+}
+
+extern struct MailStruct gUnknown_020321C0[PARTY_SIZE];
+extern u8 gUnknown_02032298[2];
+
+void sub_8013F90(u8 taskId)
+{
+ u32 monId = sub_8018120(&gUnknown_02022C40, GetMultiplayerId());
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ gTasks[taskId].data[0]++;
+ SendBlock(0, &gPlayerParty[monId], sizeof(struct Pokemon));
+ break;
+ case 1:
+ if (GetBlockReceivedStatus() == 3)
+ {
+ gEnemyParty[0] = *(struct Pokemon*)(gBlockRecvBuffer[GetMultiplayerId() ^ 1]);
+ IncrementGameStat(GAME_STAT_50);
+ ResetBlockReceivedFlags();
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 2:
+ memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, sizeof(struct MailStruct) * PARTY_SIZE + 4);
+ if (SendBlock(0, gBlockSendBuffer, sizeof(struct MailStruct) * PARTY_SIZE + 4))
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ if (GetBlockReceivedStatus() == 3)
+ {
+ memcpy(gUnknown_020321C0, gBlockRecvBuffer[GetMultiplayerId() ^ 1], sizeof(struct MailStruct) * PARTY_SIZE);
+ ResetBlockReceivedFlags();
+ gUnknown_02032298[0] = monId;
+ gUnknown_02032298[1] = 6;
+ gMain.savedCallback = CB2_ReturnToField;
+ SetMainCallback2(sub_807AE50);
+ sub_801807C(&gUnknown_02022C40);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+void sub_80140E0(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (GetMultiplayerId() == 0)
+ sub_800A4D8(2);
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ if (GetBlockReceivedStatus() == sub_800A9D8())
+ {
+ s32 i;
+ u16 *recvBuff;
+
+ for (i = 0; i < GetLinkPlayerCount(); i++)
+ {
+ recvBuff = gBlockRecvBuffer[i];
+ sub_80C3120(&gTrainerCards[i], recvBuff, gLinkPlayers[i].version);
+ }
+
+ if (GetLinkPlayerCount() == 2)
+ {
+ recvBuff = gBlockRecvBuffer[GetMultiplayerId() ^ 1];
+ sub_801B94C(recvBuff[48]);
+ }
+ else
+ {
+ sub_801B940();
+ }
+
+ ResetBlockReceivedFlags();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+void sub_80141A4(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ CreateTask(sub_80140E0, 5);
+ gMain.state++;
+ break;
+ case 1:
+ if (!FuncIsActiveTask(sub_80140E0))
+ sub_80C4E74(GetMultiplayerId() ^ 1, CB2_ReturnToField);
+ break;
+ }
+
+ RunTasks();
+ RunTextPrinters();
+ AnimateSprites();
+ BuildOamBuffer();
+}
+
+void sub_8014210(u16 battleFlags)
+{
+ HealPlayerParty();
+ SavePlayerParty();
+ LoadPlayerBag();
+ gLinkPlayers[0].linkType = 0x2211;
+ gLinkPlayers[GetMultiplayerId()].id = GetMultiplayerId();
+ gLinkPlayers[GetMultiplayerId() ^ 1].id = GetMultiplayerId() ^ 1;
+ gMain.savedCallback = sub_80B360C;
+ gBattleTypeFlags = battleFlags;
+ PlayBattleBGM();
+}
+
+void sub_8014290(u16 arg0, u16 x, u16 y)
+{
+ VarSet(VAR_0x4087, arg0);
+ Overworld_SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y);
+ saved_warp2_set_2(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y);
+ warp_in();
+}
+
+void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4)
+{
+ gSpecialVar_0x8004 = arg4;
+ VarSet(VAR_0x4087, arg4);
+ gFieldLinkPlayerCount = GetLinkPlayerCount();
+ gUnknown_03005DB4 = GetMultiplayerId();
+ sub_809D2BC();
+ Overworld_SetWarpDestination(mapGroup, mapNum, -1, x, y);
+ warp_in();
+}
+
+void sub_8014384(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ CreateTask(sub_80140E0, 5);
+ gMain.state++;
+ break;
+ case 1:
+ if (!FuncIsActiveTask(sub_80140E0))
+ SetMainCallback2(sub_8086074);
+ break;
+ }
+
+ RunTasks();
+ RunTextPrinters();
+ AnimateSprites();
+ BuildOamBuffer();
+}
+
+void sub_80143E4(void *arg0, bool32 arg1)
+{
+ u16 *argAsU16Ptr = arg0;
+
+ sub_80C30A4(argAsU16Ptr);
+ if (arg1)
+ argAsU16Ptr[48] = sub_801B39C();
+ else
+ argAsU16Ptr[48] = 0;
+}
+
+void sub_801440C(u8 taskId)
+{
+ sub_801B940();
+ switch (gUnknown_02022C2C)
+ {
+ case 1 ... 4:
+ case 9 ... 11:
+ case 13:
+ case 15:
+ sub_800E3A8();
+ break;
+ }
+
+ switch (gUnknown_02022C2C)
+ {
+ case 65:
+ case 81:
+ overworld_free_bg_tilemaps();
+ gMain.savedCallback = sub_801AC54;
+ sub_81B8518(3);
+ break;
+ case 1:
+ overworld_free_bg_tilemaps();
+ sub_80143E4(gBlockSendBuffer, TRUE);
+ HealPlayerParty();
+ SavePlayerParty();
+ LoadPlayerBag();
+ sub_8014304(MAP_GROUP(SINGLE_BATTLE_COLOSSEUM), MAP_NUM(SINGLE_BATTLE_COLOSSEUM), 6, 8, 1);
+ SetMainCallback2(sub_8014384);
+ break;
+ case 2:
+ overworld_free_bg_tilemaps();
+ HealPlayerParty();
+ SavePlayerParty();
+ LoadPlayerBag();
+ sub_80143E4(gBlockSendBuffer, TRUE);
+ sub_8014304(MAP_GROUP(SINGLE_BATTLE_COLOSSEUM), MAP_NUM(SINGLE_BATTLE_COLOSSEUM), 6, 8, 2);
+ SetMainCallback2(sub_8014384);
+ break;
+ case 3:
+ overworld_free_bg_tilemaps();
+ HealPlayerParty();
+ SavePlayerParty();
+ LoadPlayerBag();
+ sub_80143E4(gBlockSendBuffer, TRUE);
+ sub_8014304(MAP_GROUP(DOUBLE_BATTLE_COLOSSEUM), MAP_NUM(DOUBLE_BATTLE_COLOSSEUM), 5, 8, 5);
+ SetMainCallback2(sub_8014384);
+ break;
+ case 4:
+ sub_80143E4(gBlockSendBuffer, TRUE);
+ overworld_free_bg_tilemaps();
+ sub_8014304(MAP_GROUP(TRADE_CENTER), MAP_NUM(TRADE_CENTER), 5, 8, 3);
+ SetMainCallback2(sub_8014384);
+ break;
+ case 15:
+ sub_80143E4(gBlockSendBuffer, TRUE);
+ overworld_free_bg_tilemaps();
+ sub_8014304(MAP_GROUP(RECORD_CORNER), MAP_NUM(RECORD_CORNER), 8, 9, 4);
+ SetMainCallback2(sub_8014384);
+ break;
+ case 68:
+ overworld_free_bg_tilemaps();
+ CreateTask(sub_8013F90, 0);
+ break;
+ case 5:
+ case 69:
+ if (GetMultiplayerId() == 0)
+ {
+ sub_800ED10();
+ }
+ else
+ {
+ sub_800ED28();
+ sub_8010F84(69, 0, 1);
+ }
+ sub_801DD98();
+ break;
+ case 8:
+ case 72:
+ sub_80143E4(gBlockSendBuffer, FALSE);
+ SetMainCallback2(sub_80141A4);
+ break;
+ case 9:
+ sub_8014290(8, 5, 1);
+ sub_802A9A8(GetCursorSelectionMonId(), CB2_LoadMap);
+ break;
+ case 10:
+ sub_8014290(7, 9, 1);
+ sub_8020C70(CB2_LoadMap);
+ break;
+ case 11:
+ sub_8014290(8, 5, 1);
+ sub_802493C(GetCursorSelectionMonId(), CB2_LoadMap);
+ break;
+ }
+
+ DestroyTask(taskId);
+ gSpecialVar_Result = 1;
+ if (gUnknown_02022C2C != 68)
+ ScriptContext2_Disable();
+}
+
+extern u8 gUnknown_0203CEF8[];
+
+void sub_8014790(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 *sendBuff = (u16*)(gBlockSendBuffer);
+
+ switch (data[0])
+ {
+ case 0:
+ gSpecialVar_Result = 1;
+ switch (gUnknown_02022C2C)
+ {
+ case 14:
+ case 28:
+ gLinkPlayers[0].linkType = 0x2211;
+ gLinkPlayers[0].id = 0;
+ gLinkPlayers[1].id = 2;
+ sendBuff[0] = GetMonData(&gPlayerParty[gUnknown_0203CEF8[0] - 1], MON_DATA_SPECIES);
+ sendBuff[1] = GetMonData(&gPlayerParty[gUnknown_0203CEF8[1] - 1], MON_DATA_SPECIES, NULL);
+ gMain.savedCallback = NULL;
+ data[0] = 4;
+ sub_800E3A8();
+ ResetBlockReceivedFlags();
+ break;
+ case 16:
+ case 23 ... 27:
+ sub_800E3A8();
+ DestroyTask(taskId);
+ default:
+ EnableBothScriptContexts();
+ data[0] = 1;
+ break;
+ }
+ break;
+ case 1:
+ if (!ScriptContext1_IsScriptSetUp())
+ {
+ FadeScreen(1, 0);
+ data[0] = 2;
+ }
+ break;
+ case 2:
+ if (!gPaletteFade.active)
+ {
+ if (gUnknown_02022C2C == 29)
+ {
+ DestroyTask(taskId);
+ SetMainCallback2(sub_80773AC);
+ }
+ else
+ {
+ sub_800ADF8();
+ data[0] = 3;
+ }
+ }
+ break;
+ case 3:
+ if (sub_800A520())
+ {
+ DestroyTask(taskId);
+ sub_80149D8();
+ }
+ break;
+ case 4:
+ if (SendBlock(0, gBlockSendBuffer, 0xE))
+ data[0] = 5;
+ break;
+ case 5:
+ if (GetBlockReceivedStatus() == 3)
+ {
+ ResetBlockReceivedFlags();
+ if (sub_80B2AF4(gBlockRecvBuffer[0], gBlockRecvBuffer[1]))
+ {
+ gSpecialVar_Result = 11;
+ data[0] = 7;
+ }
+ else
+ {
+ data[0] = 6;
+ }
+ }
+ break;
+ case 6:
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ break;
+ case 7:
+ sub_800AC34();
+ data[0] = 8;
+ break;
+ case 8:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ sub_800E084();
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+void sub_80149C4(void)
+{
+ CreateTask(sub_8014790, 0);
+}
+
+void sub_80149D8(void)
+{
+ u8 taskId = CreateTask(sub_801440C, 0);
+ gTasks[taskId].data[0] = 0;
+}
+
+void sub_8014A00(u32 arg0)
+{
+ u8 taskId;
+ struct UnkStruct_Leader *dataPtr;
+
+ taskId = CreateTask(sub_8014A40, 0);
+ gUnknown_02022C30.leader = dataPtr = (void*)(gTasks[taskId].data);
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ dataPtr->field_18 = arg0;
+ gSpecialVar_Result = 0;
+}
+
+void sub_8014A40(u8 taskId)
+{
+ struct UnkStruct_Leader *data = gUnknown_02022C30.leader;
+ struct WindowTemplate winTemplate;
+ s32 val;
+
+ switch (data->state)
+ {
+ case 0:
+ gUnknown_02022C2C = data->field_18;
+ gUnknown_02022C2D = 2;
+ sub_8010F84(data->field_18, 0, 0);
+ sub_8010FA0(FALSE, FALSE);
+ sub_800B488();
+ OpenLink();
+ sub_8011C10(2);
+ data->state = 1;
+ break;
+ case 1:
+ data->field_4 = AllocZeroed(0x70);
+ data->field_0 = AllocZeroed(0xA0);
+ data->field_8 = AllocZeroed(0xA0);
+ sub_80175EC(data->field_4, 4);
+ sub_8017580(data->field_0, 5);
+ sub_800DF90(&data->field_0->arr[0].unk.field_0, data->field_0->arr[0].unk.playerName);
+ data->field_0->arr[0].field_18 = 0;
+ data->field_0->arr[0].field_1A_0 = 1;
+ data->field_0->arr[0].field_1A_1 = 0;
+ data->field_0->arr[0].field_1B = 0;
+ data->field_17 = sub_8016FC0(data->field_4, 0xFF);
+
+ winTemplate = gUnknown_082F011C;
+ winTemplate.baseBlock = sub_8019930();
+ winTemplate.paletteNum = 0xC;
+ data->listWindowId = AddWindow(&winTemplate);
+ sub_8018784(data->listWindowId);
+ gMultiuseListMenuTemplate = gUnknown_082F015C;
+ gMultiuseListMenuTemplate.windowId = data->listWindowId;
+ data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+
+ CopyBgTilemapBufferToVram(0);
+ data->field_13 = 1;
+ data->state = 2;
+ break;
+ case 2:
+ StringCopy(gStringVar1, gUnknown_082F0048[gUnknown_02022C2C]);
+ sub_801262C(gStringVar4, gUnknown_02022C2C);
+ data->state = 3;
+ break;
+ case 3:
+ sub_8018884(gStringVar4);
+ data->state = 4;
+ break;
+ case 4:
+ sub_801320C(data, 5, 6);
+ if (gMain.newKeys & B_BUTTON)
+ {
+ data->state = 13;
+ sub_800E084();
+ }
+ break;
+ case 6:
+ if (mevent_0814257C(&data->textState, gUnknown_082EDF40))
+ {
+ data->field_13 = sub_8013398(data->field_0);
+ RedrawListMenu(data->listTaskId);
+ data->state = 2;
+ }
+ break;
+ case 5:
+ data->state = 7;
+ break;
+ case 7:
+ switch (sub_8018B08(&data->textState, &data->field_14, 0, gStringVar4))
+ {
+ case 0:
+ sub_800E0E8();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ data->field_0->arr[data->field_13].field_1B = 0;
+ RedrawListMenu(data->listTaskId);
+ data->field_19 = 5;
+ sub_8010688(5, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ data->state = 8;
+ break;
+ case 1:
+ case -1:
+ data->field_19 = 6;
+ sub_8010688(6, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ data->state = 8;
+ break;
+ }
+ break;
+ case 8:
+ val = sub_8010714(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
+ if (val == 1)
+ {
+ if (data->field_19 == 5)
+ {
+ data->field_0->arr[data->field_13].field_1B = 0;
+ RedrawListMenu(data->listTaskId);
+ data->field_13++;
+ sub_8018404(gStringVar1, &data->field_0->arr[data->field_13 - 1]);
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EDC9C);
+ data->state = 9;
+ sub_800EF38();
+ }
+ else
+ {
+ sub_8011DC0(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId));
+ data->field_0->arr[data->field_13].field_1A_0 = 0;
+ sub_8013398(data->field_0);
+ RedrawListMenu(data->listTaskId);
+ data->state = 2;
+ }
+
+ data->field_19 = 0;
+ }
+ else if (val == 2)
+ {
+ sub_8011A64(0, 0);
+ data->state = 2;
+ }
+ break;
+ case 9:
+ sub_8018884(gStringVar4);
+ data->state = 10;
+ break;
+ case 10:
+ if (++data->field_E > 120)
+ data->state = 11;
+ break;
+ case 11:
+ if (!sub_801320C(data, 5, 6))
+ data->state = 12;
+ break;
+ case 12:
+ if (sub_800EF1C())
+ {
+ sub_800EF58(FALSE);
+ data->state = 15;
+ }
+ else
+ {
+ data->state = 6;
+ }
+ break;
+ case 13:
+ sub_800E084();
+ sub_800EDD4();
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->listWindowId);
+ DestroyTask(data->field_17);
+ Free(data->field_8);
+ Free(data->field_0);
+ Free(data->field_4);
+ data->state++;
+ break;
+ case 14:
+ if (mevent_0814257C(&data->textState, gText_PleaseStartOver))
+ {
+ DestroyTask(taskId);
+ gSpecialVar_Result = 5;
+ }
+ break;
+ case 15:
+ if (sub_8011A74() == 1 || sub_8011A74() == 2)
+ {
+ data->state = 13;
+ }
+ else if (gReceivedRemoteLinkPlayers != 0)
+ {
+ sub_8011068(1);
+ data->state++;
+ }
+ break;
+ case 16:
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->listWindowId);
+ DestroyTask(data->field_17);
+ Free(data->field_8);
+ Free(data->field_0);
+ Free(data->field_4);
+ sub_800ADF8();
+ data->state++;
+ break;
+ case 17:
+ if (sub_800A520())
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void sub_8014EFC(u32 arg0)
+{
+ u8 taskId;
+ struct UnkStruct_Group *dataPtr;
+
+ taskId = CreateTask(sub_8014F48, 0);
+ gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data);
+ gUnknown_03000DA4 = dataPtr;
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ dataPtr->field_12 = arg0 - 21;
+ gSpecialVar_Result = 0;
+}
+
+void sub_8014F48(u8 taskId)
+{
+ s32 id;
+ struct WindowTemplate winTemplate1, winTemplate2;
+ struct UnkStruct_Group *data = gUnknown_02022C30.group;
+
+ switch (data->state)
+ {
+ case 0:
+ sub_8010F84(data->field_12 + 21, 0, 0);
+ sub_800B488();
+ OpenLink();
+ sub_8011C5C();
+ data->field_4 = AllocZeroed(0x70);
+ data->field_0 = AllocZeroed(0x200);
+ data->state = 1;
+ break;
+ case 1:
+ sub_8018884(gUnknown_082EF7F8);
+ data->state = 2;
+ break;
+ case 2:
+ sub_80175EC(data->field_4, 4);
+ sub_8017580(data->field_0, 16);
+ data->field_11 = sub_8016FC0(data->field_4, data->field_12 + 7);
+
+ winTemplate1 = gUnknown_082F0174;
+ winTemplate1.baseBlock = sub_8019930();
+ winTemplate1.paletteNum = 0xC;
+ data->listWindowId = AddWindow(&winTemplate1);
+
+ winTemplate2 = gUnknown_082F017C;
+ winTemplate2.paletteNum = 0xC;
+ data->field_D = AddWindow(&winTemplate2);
+
+ sub_8018784(data->listWindowId);
+ gMultiuseListMenuTemplate = gUnknown_082F0204;
+ gMultiuseListMenuTemplate.windowId = data->listWindowId;
+ data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+
+ sub_8018784(data->field_D);
+ FillWindowPixelBuffer(data->field_D, 0x11);
+ PutWindowTilemap(data->field_D);
+ sub_80125BC(data->field_D);
+ CopyWindowToVram(data->field_D, 2);
+
+ CopyBgTilemapBufferToVram(0);
+ data->field_F = 0;
+ data->state = 3;
+ break;
+ case 3:
+ id = sub_8013E44();
+ switch (id)
+ {
+ case 1:
+ PlaySE(SE_PC_LOGIN);
+ default:
+ RedrawListMenu(data->listTaskId);
+ break;
+ case 0:
+ id = ListMenuHandleInputGetItemId(data->listTaskId);
+ if (gMain.newKeys & A_BUTTON && id != -1)
+ {
+ // this unused variable along with the assignment is needed to match
+ u32 unusedVar;
+ unusedVar = data->field_0->arr[id].unk.field_0.unk_0a_0;
+
+ if (data->field_0->arr[id].field_1A_0 == 1 && !data->field_0->arr[id].unk.field_0.unk_0a_7)
+ {
+ data->field_F = id;
+ sub_800E0E8();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ RedrawListMenu(data->listTaskId);
+ sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]);
+ sub_8011FC8(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId));
+ PlaySE(SE_PN_ON);
+ data->state = 4;
+ }
+ else
+ {
+ PlaySE(SE_WALL_HIT);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ data->state = 6;
+ }
+ break;
+ }
+ break;
+ case 4:
+ sub_8018884(gUnknown_082EFC3C);
+ sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]);
+ data->state = 5;
+ break;
+ case 5:
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ gUnknown_02022C2C = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0;
+ data->state = 10;
+ }
+
+ switch (sub_8011A74())
+ {
+ case 1:
+ case 2:
+ case 6:
+ data->state = 8;
+ break;
+ case 5:
+ sub_8018884(gUnknown_082EDDF4);
+ sub_8011A64(0, 0);
+ break;
+ }
+ break;
+ case 6:
+ case 8:
+ case 10:
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->field_D);
+ RemoveWindow(data->listWindowId);
+ DestroyTask(data->field_11);
+ Free(data->field_0);
+ Free(data->field_4);
+ data->state++;
+ break;
+ case 9:
+ if (mevent_0814257C(&data->textState, gUnknown_082EDF80[sub_8011A74()]))
+ {
+ sub_800E084();
+ DestroyTask(taskId);
+ sub_800EDD4();
+ gSpecialVar_Result = 5;
+ }
+ break;
+ case 7:
+ sub_800E084();
+ sub_8018884(gText_PleaseStartOver);
+ DestroyTask(taskId);
+ sub_800EDD4();
+ gSpecialVar_Result = 5;
+ break;
+ case 11:
+ data->state++;
+ sub_800ADF8();
+ break;
+ case 12:
+ if (sub_800A520())
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void sub_80152A8(u32 arg0)
+{
+ u8 taskId;
+ struct UnkStruct_Group *dataPtr;
+
+ taskId = CreateTask(sub_80152F4, 0);
+ gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data);
+ gUnknown_03000DA4 = dataPtr;
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ dataPtr->field_12 = arg0 - 21;
+ gSpecialVar_Result = 0;
+}
+
+void sub_80152F4(u8 taskId)
+{
+ s32 id;
+ struct WindowTemplate winTemplate;
+ struct UnkStruct_Group *data = gUnknown_02022C30.group;
+
+ switch (data->state)
+ {
+ case 0:
+ sub_8010F84(0, 0, 0);
+ sub_800B488();
+ OpenLink();
+ sub_8011C5C();
+ data->field_4 = AllocZeroed(0x70);
+ data->field_0 = AllocZeroed(0x200);
+ data->state = 1;
+ break;
+ case 1:
+ sub_8018884(gUnknown_082EFBC8);
+ data->state = 2;
+ break;
+ case 2:
+ sub_80175EC(data->field_4, 4);
+ sub_8017580(data->field_0, 16);
+ data->field_11 = sub_8016FF0(data->field_4, data->field_12 + 7);
+
+ if (data->field_13 != 0)
+ {
+ winTemplate = gUnknown_082F0174;
+ winTemplate.baseBlock = sub_8019930();
+ data->listWindowId = AddWindow(&winTemplate);
+
+ sub_8018784(data->listWindowId);
+ gMultiuseListMenuTemplate = gUnknown_082F0204;
+ gMultiuseListMenuTemplate.windowId = data->listWindowId;
+ data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+
+ CopyBgTilemapBufferToVram(0);
+ }
+
+ data->field_F = 0;
+ data->state = 3;
+ break;
+ case 3:
+ id = sub_8013E44();
+ switch (id)
+ {
+ case 1:
+ PlaySE(SE_PC_LOGIN);
+ default:
+ if (data->field_13 != 0)
+ RedrawListMenu(data->listTaskId);
+ break;
+ case 0:
+ if (data->field_13 != 0)
+ id = ListMenuHandleInputGetItemId(data->listTaskId);
+ if (data->field_14 > 120)
+ {
+ if (data->field_0->arr[0].field_1A_0 == 1 && !data->field_0->arr[0].unk.field_0.unk_0a_7)
+ {
+ if (sub_8016F1C(&data->field_0->arr[0], data->field_12 + 7))
+ {
+ data->field_F = 0;
+ data->field_14 = 0;
+ sub_800E0E8();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ sub_8011FC8(data->field_0->arr[0].unk.playerName, ReadAsU16(data->field_0->arr[0].unk.field_0.unk_00.playerTrainerId));
+ PlaySE(SE_PN_ON);
+ data->state = 4;
+ }
+ else
+ {
+ PlaySE(SE_BOO);
+ data->state = 10;
+ }
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ data->state = 6;
+ data->field_14 = 0;
+ }
+ data->field_14++;
+ break;
+ }
+ break;
+ case 4:
+ sub_8018884(gUnknown_082EFC90);
+ sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]);
+ data->state = 5;
+ break;
+ case 5:
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ gUnknown_02022C2C = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0;
+ data->state = 12;
+ }
+
+ switch (sub_8011A74())
+ {
+ case 1:
+ case 2:
+ case 6:
+ data->state = 8;
+ break;
+ case 5:
+ sub_8018884(gUnknown_082EDEC4);
+ sub_8011A64(0, 0);
+ break;
+ }
+ break;
+ case 6:
+ case 8:
+ case 10:
+ case 12:
+ if (data->field_13 != 0)
+ {
+ DestroyListMenuTask(data->listTaskId, 0, 0);
+ CopyBgTilemapBufferToVram(0);
+ RemoveWindow(data->listWindowId);
+ }
+ DestroyTask(data->field_11);
+ Free(data->field_0);
+ Free(data->field_4);
+ data->state++;
+ break;
+ case 9:
+ if (mevent_0814257C(&data->textState, gUnknown_082EDF04))
+ {
+ sub_800E084();
+ DestroyTask(taskId);
+ sub_800EDD4();
+ gSpecialVar_Result = 5;
+ }
+ break;
+ case 7:
+ if (mevent_0814257C(&data->textState, gText_WirelessSearchCanceled))
+ {
+ sub_800E084();
+ DestroyTask(taskId);
+ sub_800EDD4();
+ gSpecialVar_Result = 5;
+ }
+ break;
+ case 11:
+ if (mevent_0814257C(&data->textState, gUnknown_082EFD58[data->field_12]))
+ {
+ sub_800E084();
+ DestroyTask(taskId);
+ sub_800EDD4();
+ gSpecialVar_Result = 5;
+ }
+ break;
+ case 13:
+ data->state++;
+ sub_800ADF8();
+ break;
+ case 14:
+ if (sub_800A520())
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void UnionRoomSpecial(void)
+{
+ struct UnkStruct_URoom *dataPtr;
+
+ sub_8010F60();
+ CreateTask(sub_80156E0, 10);
+
+ // dumb line needed to match
+ gUnknown_02022C30.uRoom = gUnknown_02022C30.uRoom;
+
+ dataPtr = AllocZeroed(0x26C);
+ gUnknown_02022C30.uRoom = dataPtr;
+ gUnknown_03000DA8 = dataPtr;
+
+ dataPtr->state = 0;
+ dataPtr->textState = 0;
+ dataPtr->field_10 = 0;
+ dataPtr->field_12 = 0;
+
+ gSpecialVar_Result = 0;
+ sub_819A2BC(0xD0, 1);
+}
+
+u16 ReadAsU16(const u8 *ptr)
+{
+ return (ptr[1] << 8) | (ptr[0]);
+}
+
+void sub_8015664(u32 arg0, const u8 *src)
+{
+ struct UnkStruct_URoom *data = gUnknown_02022C30.uRoom;
+
+ data->state = 8;
+ data->stateAfterPrint = arg0;
+ if (src != gStringVar4)
+ StringExpandPlaceholders(gStringVar4, src);
+}
+
+void sub_801568C(const u8 *src)
+{
+ struct UnkStruct_URoom *data = gUnknown_02022C30.uRoom;
+
+ data->state = 26;
+ if (src != gStringVar4)
+ StringExpandPlaceholders(gStringVar4, src);
+}
+
+void sub_80156B0(struct UnkStruct_URoom *data)
+{
+ memcpy(&gDecompressionBuffer[0x3F00], data->field_0, 0x100);
+}
+
+void sub_80156C8(struct UnkStruct_URoom *data)
+{
+ memcpy(data->field_0, &gDecompressionBuffer[0x3F00], 0x100);
+}
+
+// Cannot match, please fix later.
+/*
+void sub_80156E0(u8 taskId)
+{
+ u32 id = 0;
+ s32 var5 = 0;
+ u32 playerGender = 0;
+ struct UnkStruct_URoom *data = gUnknown_02022C30.uRoom;
+ s16 *taskData = gTasks[taskId].data;
+
+ switch (data->state)
+ {
+ case 0:
+ data->field_4 = AllocZeroed(0x70);
+ data->field_C = AllocZeroed(0x70);
+ data->field_0 = AllocZeroed(0x100);
+ data->field_8 = AllocZeroed(0x20);
+ sub_8017580(data->field_0, 8);
+ gUnknown_02022C2C = 0x40;
+ data->field_20 = sub_8016DF0(data->field_C, data->field_4, 9);
+ sub_8019BA8(data->field_A0);
+ sub_8019F2C();
+ data->state = 1;
+ break;
+ case 1:
+ sub_8019E70(data->spriteIds, taskData[0]);
+ if (++taskData[0] == 8)
+ data->state = 2;
+ break;
+ case 2:
+ sub_8010F84(0x40, 0, 0);
+ sub_8010FCC(gUnknown_02022C40.field_2, gUnknown_02022C40.field_A, gUnknown_02022C40.field_C);
+ sub_800B488();
+ OpenLink();
+ sub_8011C84();
+ sub_8017580(data->field_8, 1);
+ sub_80175EC(data->field_4, 4);
+ sub_80175EC(data->field_C, 4);
+ gSpecialVar_Result = 0;
+ data->state = 3;
+ break;
+ case 3:
+ if ((sub_81B1360() == 8 || sub_81B1360() == 9) && gUnknown_02022C40.field_0 != 0)
+ {
+ id = GetCursorSelectionMonId();
+ switch (gUnknown_02022C40.field_0)
+ {
+ case 1:
+ sub_8011090(0x54, 0, 1);
+ if (id >= PARTY_SIZE)
+ {
+ sub_801807C(&gUnknown_02022C40);
+ sub_8010FCC(0, 0, 0);
+ sub_801568C(gUnknown_082EF4FC);
+ }
+ else if (!sub_80180A0(GetCursorSelectionMonId(), &gUnknown_02022C40))
+ {
+ sub_8015664(0x34, gUnknown_082EF47C);
+ }
+ else
+ {
+ data->state = 55;
+ }
+ break;
+ case 2:
+ sub_80156C8(data);
+ taskData[1] = gUnknown_02022C40.field_8;
+ if (id >= PARTY_SIZE)
+ {
+ sub_801568C(gUnknown_082EF544);
+ }
+ else
+ {
+ sub_8011090(0x54, 0, 1);
+ gUnknown_02022C2C = 0x44;
+ sub_80180E8(GetCursorSelectionMonId(), &gUnknown_02022C40);
+ data->state = 51;
+ }
+ break;
+ }
+ gUnknown_02022C40.field_0 = 0;
+ }
+ else
+ {
+ data->state = 4;
+ }
+ break;
+ case 4:
+ if (gSpecialVar_Result != 0)
+ {
+ if (gSpecialVar_Result == 9)
+ {
+ sub_8011090(0x54, 0, 1);
+ PlaySE(SE_PC_LOGIN);
+ StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
+ data->state = 42;
+ gSpecialVar_Result = 0;
+ }
+ else if (gSpecialVar_Result == 11)
+ {
+ sub_8011090(0x54, 0, 1);
+ data->state = 23;
+ gSpecialVar_Result = 0;
+ }
+ else
+ {
+ taskData[0] = 0;
+ taskData[1] = gSpecialVar_Result - 1;
+ data->state = 24;
+ gSpecialVar_Result = 0;
+ }
+ }
+ else if (ScriptContext2_IsEnabled() != TRUE)
+ {
+ if (gMain.newKeys & A_BUTTON)
+ {
+ if (sub_801A2A8(data->field_0, &taskData[0], &taskData[1], data->spriteIds))
+ {
+ PlaySE(SE_SELECT);
+ sub_80181CC();
+ data->state = 24;
+ break;
+ }
+ else if (sub_8017940())
+ {
+ sub_8011090(0x54, 0, 1);
+ PlaySE(SE_PC_LOGIN);
+ sub_80181CC();
+ StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
+ data->state = 45;
+ break;
+ }
+ }
+
+ switch (sub_8016B00())
+ {
+ case 1:
+ PlaySE(SE_PC_LOGIN);
+ case 2:
+ sub_801A274(data);
+ break;
+ case 4:
+ data->state = 11;
+ sub_80181CC();
+ sub_8010FCC(0, 0, 0);
+ sub_8011090(0x53, sub_80181DC(data), 0);
+ break;
+ }
+ sub_801A284(data);
+ }
+ break;
+ case 23:
+ if (!FuncIsActiveTask(sub_809FA34))
+ {
+ sub_8011090(0x40, 0, 0);
+ data->state = 4;
+ }
+ break;
+ case 24:
+ sub_801704C();
+ playerGender = sub_8017CF8(taskData[1], data->field_0);
+ sub_8011090(0x54, 0, 1);
+ switch (sub_80179D4(data->field_0, taskData[0], taskData[1], playerGender))
+ {
+ case 0:
+ data->state = 26;
+ break;
+ case 1:
+ sub_8012188(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, gUnknown_02022C2C);
+ data->field_12 = id;
+ data->state = 25;
+ break;
+ case 2:
+ sub_8015664(0x13, gStringVar4);
+ break;
+ }
+ break;
+ case 25:
+ sub_801704C();
+ switch (sub_8011A74())
+ {
+ case 4:
+ sub_801818C(TRUE);
+ data->state = 4;
+ break;
+ case 1:
+ case 2:
+ if (sub_8011B90() == TRUE)
+ sub_801568C(gUnknown_082EE6C8);
+ else
+ sub_8015664(30, gUnknown_082EE6C8);
+
+ gUnknown_02022C2C = 0x40;
+ break;
+ }
+
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ sub_80143E4(gBlockSendBuffer, TRUE);
+ CreateTask(sub_80140E0, 5);
+ data->state = 38;
+ }
+ break;
+ case 38:
+ if (!FuncIsActiveTask(sub_80140E0))
+ {
+ if (gUnknown_02022C2C == 0x44)
+ sub_8015664(31, gUnknown_082EE004);
+ else
+ data->state = 5;
+ }
+ break;
+ case 30:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ sub_801818C(FALSE);
+ sub_801A3D0(taskData[0], taskData[1], data->field_0);
+ data->state = 2;
+ }
+ break;
+ case 6:
+ var5 = sub_8017178(&data->textState, &data->field_1B, &data->field_1C, &gUnknown_082F021C, &gUnknown_082F0244);
+ if (var5 != -1)
+ {
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ data->state = 28;
+ }
+ else
+ {
+ data->field_98 = 0;
+ playerGender = sub_8017CF8(taskData[1], data->field_0);
+ switch (var5)
+ {
+ case -2:
+ case 0x40:
+ data->field_4C[0] = 0x40;
+ sub_800FE50(data->field_4C);
+ StringCopy(gStringVar4, gUnknown_082EEB80[gLinkPlayers[0].gender]);
+ data->state = 32;
+ break;
+ default:
+ gUnknown_02022C2C = var5;
+ gUnknown_02022C2D = (u32)(var5) >> 8;
+ if (gUnknown_02022C2C == 0x41 && !sub_8018024())
+ {
+ sub_8015664(5, gUnknown_082EEBD0);
+ }
+ else
+ {
+ data->field_4C[0] = gUnknown_02022C2C | 0x40;
+ sub_800FE50(data->field_4C);
+ data->state = 27;
+ }
+ break;
+ }
+ }
+ }
+ break;
+ case 28:
+ StringCopy(gStringVar4, gUnknown_082EEB88);
+ data->state = 36;
+ break;
+ case 27:
+ sub_8017FD8(data);
+ playerGender = sub_8017CF8(taskData[1], data->field_0);
+ id = sub_8017984(data->field_4C[0] & 0x3F);
+ if (PrintOnTextbox(&data->textState, gUnknown_082EE82C[playerGender][id]))
+ {
+ taskData[3] = 0;
+ data->state = 29;
+ }
+ break;
+ case 32:
+ sub_800AC34();
+ data->state = 36;
+ break;
+ case 31:
+ data->field_4C[0] = 0x44;
+ data->field_4C[1] = gUnknown_02022C40.species;
+ data->field_4C[2] = gUnknown_02022C40.level;
+ sub_800FE50(data->field_4C);
+ data->state = 29;
+ break;
+ case 29:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ StringCopy(gStringVar4, gUnknown_082EEB88);
+ data->state = 28;
+ }
+ else
+ {
+ sub_8017FD8(data);
+ if (data->field_98 == 0x51)
+ {
+ if (gUnknown_02022C2C == 8)
+ {
+ sub_8018220(gStringVar4, data, FALSE);
+ data->state = 40;
+ }
+ else
+ {
+ data->state = 13;
+ }
+ }
+ else if (data->field_98 == 0x52)
+ {
+ data->state = 32;
+ sub_8017D9C(gStringVar4, gUnknown_02022C2C | 0x40, gLinkPlayers[0].gender);
+ gUnknown_02022C2C = 0;
+ }
+ }
+ break;
+ case 5:
+ case 7:
+ id = sub_80179AC(&data->field_0->arr[taskData[1]]);
+ playerGender = sub_8017CF8(taskData[1], data->field_0);
+ sub_8015664(6, gUnknown_082EE24C[id][playerGender]);
+ break;
+ case 40:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ data->state = 41;
+ sub_800ADF8();
+ data->field_98 = 0;
+ data->field_9A = 0;
+ }
+ break;
+ case 41:
+ if (sub_800A520())
+ {
+ if (GetMultiplayerId() == 0)
+ {
+ StringCopy(gStringVar1, gLinkPlayers[GetMultiplayerId() ^ 1].name);
+ id = sub_800E540(gLinkPlayers[1].trainerId, gLinkPlayers[1].name);
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EE378[id]);
+ data->state = 33;
+ }
+ else
+ {
+ data->state = 7;
+ }
+ }
+ break;
+ case 19:
+ switch (sub_80170B8(&data->textState, FALSE))
+ {
+ case 0:
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_02022C2C = 0x45;
+ sub_8011090(0x45, 0, 1);
+ sub_8012188(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, gUnknown_02022C2C);
+ data->field_12 = taskData[1];
+ data->state = 20;
+ taskData[3] = 0;
+ break;
+ case 1:
+ case -1:
+ playerGender = sub_8017CF8(taskData[1], data->field_0);
+ sub_801568C(gUnknown_082EEC9C[playerGender]);
+ break;
+ }
+ break;
+ case 20:
+ if (++taskData[2] > 60)
+ {
+ data->state = 21;
+ taskData[2] = 0;
+ }
+ break;
+ case 21:
+ switch (sub_8011A74())
+ {
+ case 4:
+ sub_801818C(TRUE);
+ data->state = 4;
+ break;
+ case 1:
+ case 2:
+ playerGender = sub_8017CF8(taskData[1], data->field_0);
+ sub_8011090(0x54, 0, 1);
+ if (sub_8011B90() == TRUE)
+ sub_801568C(gUnknown_082EED3C[playerGender]);
+ else
+ sub_8015664(30, gUnknown_082EED3C[playerGender]);
+ break;
+ case 3:
+ data->state = 22;
+ break;
+ }
+ taskData[3]++;
+ break;
+ case 22:
+ if (sub_8011A80())
+ {
+ playerGender = sub_8017CF8(taskData[1], data->field_0);
+ sub_8011090(0x54, 0, 1);
+ if (sub_8011B90() == TRUE)
+ sub_801568C(gUnknown_082EED3C[playerGender]);
+ else
+ sub_8015664(30, gUnknown_082EED3C[playerGender]);
+ }
+ if (gReceivedRemoteLinkPlayers != 0)
+ data->state = 16;
+ break;
+ case 11:
+ PlaySE(SE_PINPON);
+ sub_800EF7C();
+ data->state = 12;
+ data->field_9A = 0;
+ break;
+ case 12:
+ if (sub_8011A80())
+ {
+ sub_801818C(FALSE);
+ data->state = 2;
+ }
+ else if (gReceivedRemoteLinkPlayers != 0)
+ {
+ sub_80143E4(gBlockSendBuffer, TRUE);
+ CreateTask(sub_80140E0, 5);
+ data->state = 39;
+ }
+ break;
+ case 39:
+ sub_801689C(data);
+ if (!FuncIsActiveTask(sub_80140E0))
+ {
+ data->state = 33;
+ StringCopy(gStringVar1, gLinkPlayers[1].name);
+ id = sub_800E540(gLinkPlayers[1].trainerId, gLinkPlayers[1].name);
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EE324[id]);
+ }
+ break;
+ case 33:
+ sub_801689C(data);
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ data->state = 34;
+ break;
+ case 34:
+ sub_801689C(data);
+ if (sub_80168DC(data) && gMain.newKeys & B_BUTTON)
+ {
+ sub_8011DE0(1);
+ StringCopy(gStringVar4, gUnknown_082EE598);
+ data->state = 36;
+ }
+ break;
+ case 35:
+ sub_8015664(9, gStringVar4);
+ break;
+ case 9:
+ switch (sub_80170B8(&data->textState, FALSE))
+ {
+ case 0:
+ data->field_4C[0] = 0x51;
+ if (gUnknown_02022C2C == 0x45)
+ sub_8011090(gUnknown_02022C2C | 0x40, sub_801100C(1), 0);
+ else
+ sub_8011090(gUnknown_02022C2C | 0x40, sub_801100C(1), 1);
+
+ data->field_8->arr[0].field_1B = 0;
+ taskData[3] = 0;
+ if (gUnknown_02022C2C == 0x41)
+ {
+ if (!sub_8018024())
+ {
+ data->field_4C[0] = 0x52;
+ sub_800FE50(data->field_4C);
+ data->state = 10;
+ StringCopy(gStringVar4, gUnknown_082EEC14);
+ }
+ else
+ {
+ sub_800FE50(data->field_4C);
+ data->state = 13;
+ }
+ }
+ else if (gUnknown_02022C2C == 0x48)
+ {
+ sub_800FE50(data->field_4C);
+ sub_8018220(gStringVar4, data, 1);
+ data->state = 40;
+ }
+ else
+ {
+ sub_800FE50(data->field_4C);
+ data->state = 13;
+ }
+ break;
+ case 1:
+ case -1:
+ data->field_4C[0] = 0x52;
+ sub_800FE50(data->field_4C);
+ data->state = 10;
+ sub_8013078(gStringVar4, gUnknown_02022C2C);
+ break;
+ }
+ break;
+ case 10:
+ sub_800AC34();
+ data->state = 36;
+ break;
+ case 36:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ gUnknown_02022C2C = 0x40;
+ sub_8015664(0x25, gStringVar4);
+ memset(data->field_4C, 0, sizeof(data->field_4C));
+ data->field_9A = 0;
+ data->field_98 = 0;
+ }
+ break;
+ case 37:
+ data->state = 2;
+ sub_801818C(FALSE);
+ break;
+ case 13:
+ sub_8017E00(gStringVar4, gUnknown_02022C2C | 0x40);
+ sub_8015664(0xE, gStringVar4);
+ break;
+ case 14:
+ sub_800ADF8();
+ data->state = 15;
+ break;
+ case 15:
+ if (sub_800A520())
+ data->state = 16;
+ break;
+ case 16:
+ Free(data->field_8);
+ Free(data->field_0);
+ Free(data->field_C);
+ Free(data->field_4);
+ DestroyTask(data->field_20);
+ sub_8019F04(data->spriteIds);
+ data->state = 17;
+ break;
+ case 17:
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, RGB_BLACK);
+ data->state = 18;
+ break;
+ case 18:
+ if (!UpdatePaletteFade())
+ {
+ sub_8019E3C();
+ DestroyTask(taskId);
+ Free(gUnknown_02022C30.uRoom);
+ sub_80149D8();
+ }
+ break;
+ case 42:
+ if (sub_800F7DC()->species == SPECIES_NONE)
+ {
+ data->state = 43;
+ }
+ else
+ {
+ if (sub_800F7DC()->species == SPECIES_EGG)
+ {
+ StringCopy(gStringVar4, gUnknown_082EF590);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gSpeciesNames[sub_800F7DC()->species]);
+ ConvertIntToDecimalStringN(gStringVar2, sub_800F7DC()->unk_0b_1, STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EF564);
+ }
+ sub_8015664(44, gStringVar4);
+ }
+ break;
+ case 43:
+ if (PrintOnTextbox(&data->textState, gUnknown_082EF20C))
+ data->state = 47;
+ break;
+ case 47:
+ var5 = sub_8017178(&data->textState, &data->field_1D, &data->field_1E, &gUnknown_082F025C, &gUnknown_082F027C);
+ if (var5 != -1)
+ {
+ if (var5 == -2 || var5 == 3)
+ {
+ data->state = 4;
+ sub_801818C(TRUE);
+ }
+ else
+ {
+ switch (var5)
+ {
+ case 1:
+ sub_8015664(53, gUnknown_082EF4C4);
+ break;
+ case 2:
+ sub_8015664(47, gUnknown_082EF298);
+ break;
+ }
+ }
+ }
+ break;
+ case 53:
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ data->state = 54;
+ break;
+ case 54:
+ if (!gPaletteFade.active)
+ {
+ gUnknown_02022C40.field_0 = 1;
+ gFieldCallback = sub_80AF128;
+ sub_81B8904(8, CB2_ReturnToField);
+ }
+ break;
+ case 52:
+ var5 = sub_8017178(&data->textState, &data->field_1D, &data->field_1E, &gUnknown_082F0294, &gUnknown_082F032C);
+ if (var5 != -1)
+ {
+ switch (var5)
+ {
+ case -2:
+ case 18:
+ sub_801807C(&gUnknown_02022C40);
+ sub_8010FCC(0, 0, 0);
+ sub_801568C(gUnknown_082EF4FC);
+ break;
+ default:
+ gUnknown_02022C40.field_2 = var5;
+ data->state = 55;
+ break;
+ }
+ }
+ break;
+ case 55:
+ sub_8010FCC(gUnknown_02022C40.field_2, gUnknown_02022C40.field_A, gUnknown_02022C40.field_C);
+ sub_801568C(gUnknown_082EF520);
+ break;
+ case 44:
+ switch (sub_80170B8(&data->textState, FALSE))
+ {
+ case 0:
+ data->state = 56;
+ break;
+ case 1:
+ case -1:
+ sub_801818C(TRUE);
+ data->state = 4;
+ break;
+ }
+ break;
+ case 56:
+ if (PrintOnTextbox(&data->textState, gUnknown_082EF5B8))
+ {
+ sub_8010FCC(0, 0, 0);
+ sub_801807C(&gUnknown_02022C40);
+ sub_801818C(TRUE);
+ data->state = 4;
+ }
+ break;
+ case 45:
+ if (PrintOnTextbox(&data->textState, gUnknown_082EF1EC))
+ data->state = 46;
+ break;
+ case 46:
+ sub_80173B0();
+ data->state = 48;
+ break;
+ case 48:
+ var5 = sub_80172A0(&data->textState, &data->field_1D, &data->field_4A, &data->field_1E, &gUnknown_082F034C, &gUnknown_082F03A4, data->field_0);
+ if (var5 != -1)
+ {
+ switch (var5)
+ {
+ case -2:
+ case 8:
+ sub_801818C(TRUE);
+ data->state = 4;
+ break;
+ default:
+ sub_80173B0();
+ switch (sub_8017D04(data->field_0->arr[var5].unk.field_0.type, data->field_0->arr[var5].unk.field_0.species))
+ {
+ case 0:
+ sub_8018404(gStringVar1, &data->field_0->arr[var5]);
+ sub_8015664(49, gUnknown_082EF65C);
+ taskData[1] = var5;
+ break;
+ case 1:
+ sub_8018404(gStringVar1, &data->field_0->arr[var5]);
+ StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]);
+ sub_8015664(46, gUnknown_082EF6E4);
+ break;
+ case 2:
+ sub_8018404(gStringVar1, &data->field_0->arr[var5]);
+ StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]);
+ sub_8015664(46, gUnknown_082EF718);
+ break;
+ }
+ break;
+ }
+ }
+ break;
+ case 49:
+ switch (sub_80170B8(&data->textState, FALSE))
+ {
+ case 0:
+ data->state = 50;
+ break;
+ case -1:
+ case 1:
+ sub_801818C(TRUE);
+ data->state = 4;
+ break;
+ }
+ break;
+ case 50:
+ if (PrintOnTextbox(&data->textState, gUnknown_082EF4C4))
+ {
+ gUnknown_02022C40.field_0 = 2;
+ memcpy(&gUnknown_02022C38, &data->field_0->arr[taskData[1]].unk.field_0.unk_00, sizeof(gUnknown_02022C38));
+ gUnknown_02022C3E = data->field_0->arr[taskData[1]].unk.field_0.type;
+ gUnknown_02022C3C = data->field_0->arr[taskData[1]].unk.field_0.species;
+ gFieldCallback = sub_80AF128;
+ sub_81B8904(9, CB2_ReturnToField);
+ sub_80156B0(data);
+ gUnknown_02022C40.field_8 = taskData[1];
+ }
+ break;
+ case 51:
+ gUnknown_02022C2C = 0x44;
+ sub_8012188(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, 0x44);
+ sub_8018404(gStringVar1, &data->field_0->arr[taskData[1]]);
+ sub_8017020(gUnknown_082EE17C[2]);
+ data->state = 25;
+ break;
+ case 26:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ {
+ sub_801818C(TRUE);
+ sub_801A3D0(taskData[0], taskData[1], data->field_0);
+ data->state = 4;
+ }
+ break;
+ case 8:
+ if (PrintOnTextbox(&data->textState, gStringVar4))
+ data->state = data->stateAfterPrint;
+ break;
+ }
+}
-// .rodata
+void var_800D_set_xB(void)
+{
+ if (InUnionRoom() == TRUE)
+ gSpecialVar_Result = 11;
+}
-// .text
+*/
diff --git a/src/rotating_gate.c b/src/rotating_gate.c
index 1f5ef165f..fcced6c8c 100644
--- a/src/rotating_gate.c
+++ b/src/rotating_gate.c
@@ -189,12 +189,6 @@ struct RotatingGatePuzzle
u8 orientation;
};
-struct Coords8
-{
- s8 deltaX;
- s8 deltaY;
-};
-
// .rodata
// Fortree
static const struct RotatingGatePuzzle sRotatingGate_FortreePuzzleConfig[] =
diff --git a/src/safari_zone.c b/src/safari_zone.c
index c0c098b38..01d72fa13 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -31,7 +31,7 @@ extern void IncrementGameStat(u8 index);
extern void ScriptContext1_SetupScript(u8*);
extern void ScriptContext2_RunNewScript(u8*);
extern void CB2_ReturnToField(void);
-extern void CB2_ReturnToFieldContinueScript(void);
+extern void CB2_ReturnToFieldContinueScriptPlayMapMusic(void);
extern void CB2_LoadMap(void);
extern void sub_80AF6F0(void);
extern void ScriptContext1_Stop(void);
@@ -125,7 +125,7 @@ void CB2_EndSafariBattle(void)
{
ScriptContext1_SetupScript(EventScript_2A4B9B);
ScriptContext1_Stop();
- SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 57ae9cffa..01d04704a 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1515,7 +1515,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
xText = (xWindow - xText - 1) * 8 + 3;
yText = (yText - yWindow - 1) * 8;
- winTemplate = sub_8198A50(0, xWindow, yWindow + 1, width, height, 0xF, 0x1);
+ winTemplate = CreateWindowTemplate(0, xWindow, yWindow + 1, width, height, 0xF, 0x1);
gUnknown_03000F30 = AddWindow(&winTemplate);
LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0);
NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0);
@@ -1909,7 +1909,7 @@ bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx)
{
u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx));
- PlaySlotMachine(slotMachineIndex, CB2_ReturnToFieldContinueScript);
+ PlaySlotMachine(slotMachineIndex, CB2_ReturnToFieldContinueScriptPlayMapMusic);
ScriptContext1_Stop();
return TRUE;
}
diff --git a/src/strings.c b/src/strings.c
new file mode 100644
index 000000000..cdbbb4468
--- /dev/null
+++ b/src/strings.c
@@ -0,0 +1,2051 @@
+#include "global.h"
+#include "strings.h"
+
+// Yes, all the aligns are absolutely necessary.
+// Until someone can come up with a better way to align byte arrays in C, this is what we're doing.
+asm(".align 2");
+const u8 gExpandedPlaceholder_Empty[] = _("");
+const u8 gExpandedPlaceholder_Kun[] = _("");
+const u8 gExpandedPlaceholder_Chan[] = _("");
+const u8 gExpandedPlaceholder_Sapphire[] = _("SAPPHIRE");
+const u8 gExpandedPlaceholder_Ruby[] = _("RUBY");
+const u8 gExpandedPlaceholder_Emerald[] = _("EMERALD");
+const u8 gExpandedPlaceholder_Aqua[] = _("AQUA");
+const u8 gExpandedPlaceholder_Magma[] = _("MAGMA");
+const u8 gExpandedPlaceholder_Archie[] = _("ARCHIE");
+const u8 gExpandedPlaceholder_Maxie[] = _("MAXIE");
+const u8 gExpandedPlaceholder_Kyogre[] = _("KYOGRE");
+const u8 gExpandedPlaceholder_Groudon[] = _("GROUDON");
+const u8 gExpandedPlaceholder_Brendan[] = _("BRENDAN");
+const u8 gExpandedPlaceholder_May[] = _("MAY");
+const u8 gText_EggNickname[] = _("EGG");
+const u8 gText_Pokemon[] = _("POKéMON");
+const u8 gProfBirchMatchCallName[] = _("PROF. BIRCH");
+const u8 gText_MainMenuNewGame[] = _("NEW GAME");
+const u8 gText_MainMenuContinue[] = _("CONTINUE");
+const u8 gText_MainMenuOption[] = _("OPTION");
+const u8 gText_MainMenuMysteryGift[] = _("MYSTERY GIFT");
+const u8 gText_MainMenuMysteryGift2[] = _("MYSTERY GIFT");
+const u8 gText_MainMenuMysteryEvents[] = _("MYSTERY EVENTS");
+const u8 gText_WirelessNotConnected[] = _("The Wireless Adapter is not\nconnected.");
+const u8 gText_MysteryGiftCantUse[] = _("MYSTERY GIFT can’t be used while\nthe Wireless Adapter is attached.");
+const u8 gText_MysteryEventsCantUse[] = _("MYSTERY EVENTS can’t be used while\nthe Wireless Adapter is attached.");
+const u8 gUnknown_085E836D[] = _("Updating save file using external\ndata. Please wait.");
+const u8 gUnknown_085E83A2[] = _("The save file has been updated.");
+const u8 gText_SaveFileCorrupted[] = _("The save file is corrupted. The\nprevious save file will be loaded.");
+const u8 gText_SaveFileErased[] = _("The save file has been erased\ndue to corruption or damage.");
+const u8 gJPText_No1MSubCircuit[] = _("1Mサブきばんが ささっていません!");
+const u8 gText_BatteryRunDry[] = _("The internal battery has run dry.\nThe game can be played.\pHowever, clock-based events will\nno longer occur.");
+const u8 gUnknown_085E84BF[] = _("PLAYER");
+const u8 gUnknown_085E84C6[] = _("POKéDEX");
+const u8 gText_MainMenuTime[] = _("TIME");
+const u8 gUnknown_085E84D3[] = _("BADGES");
+const u8 gUnknown_085E84DA[] = _("A Button");
+const u8 gUnknown_085E84E3[] = _("B Button");
+const u8 gUnknown_085E84EC[] = _("R Button");
+const u8 gUnknown_085E84F5[] = _("L Button");
+const u8 gUnknown_085E84FE[] = _("START");
+const u8 gUnknown_085E8504[] = _("SELECT");
+const u8 gUnknown_085E850B[] = _("+ Control Pad");
+const u8 gUnknown_085E8519[] = _("L Button R Button");
+const u8 gUnknown_085E852C[] = _("CONTROLS");
+
+asm(".align 2");
+const u8 gUnknown_085E8538[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}OK");
+
+asm(".align 2");
+const u8 gUnknown_085E8544[] = _("{A_BUTTON}NEXT");
+
+asm(".align 2");
+const u8 gUnknown_085E854C[] = _("{A_BUTTON}NEXT {B_BUTTON}BACK");
+
+asm(".align 2");
+const u8 gText_PickNextCancel[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}NEXT {B_BUTTON}CANCEL");
+
+asm(".align 2");
+const u8 gText_PickCancel[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}{B_BUTTON}CANCEL");
+
+asm(".align 2");
+const u8 gText_UnkCtrlF800Exit[] = _("{A_BUTTON}EXIT");
+const u8 gText_BirchBoy[] = _("BOY");
+const u8 gText_BirchGirl[] = _("GIRL");
+const u8 gText_DefaultNameStu[] = _("STU");
+const u8 gText_DefaultNameMilton[] = _("MILTON");
+const u8 gText_DefaultNameTom[] = _("TOM");
+const u8 gText_DefaultNameKenny[] = _("KENNY");
+const u8 gText_DefaultNameReid[] = _("REID");
+const u8 gText_DefaultNameJude[] = _("JUDE");
+const u8 gText_DefaultNameJaxson[] = _("JAXSON");
+const u8 gText_DefaultNameEaston[] = _("EASTON");
+const u8 gText_DefaultNameWalker[] = _("WALKER");
+const u8 gText_DefaultNameTeru[] = _("TERU");
+const u8 gText_DefaultNameJohnny[] = _("JOHNNY");
+const u8 gText_DefaultNameBrett[] = _("BRETT");
+const u8 gText_DefaultNameSeth[] = _("SETH");
+const u8 gText_DefaultNameTerry[] = _("TERRY");
+const u8 gText_DefaultNameCasey[] = _("CASEY");
+const u8 gText_DefaultNameDarren[] = _("DARREN");
+const u8 gText_DefaultNameLandon[] = _("LANDON");
+const u8 gText_DefaultNameCollin[] = _("COLLIN");
+const u8 gText_DefaultNameStanley[] = _("STANLEY");
+const u8 gText_DefaultNameQuincy[] = _("QUINCY");
+const u8 gText_DefaultNameKimmy[] = _("KIMMY");
+const u8 gText_DefaultNameTiara[] = _("TIARA");
+const u8 gText_DefaultNameBella[] = _("BELLA");
+const u8 gText_DefaultNameJayla[] = _("JAYLA");
+const u8 gText_DefaultNameAllie[] = _("ALLIE");
+const u8 gText_DefaultNameLianna[] = _("LIANNA");
+const u8 gText_DefaultNameSara[] = _("SARA");
+const u8 gText_DefaultNameMonica[] = _("MONICA");
+const u8 gText_DefaultNameCamila[] = _("CAMILA");
+const u8 gText_DefaultNameAubree[] = _("AUBREE");
+const u8 gText_DefaultNameRuthie[] = _("RUTHIE");
+const u8 gText_DefaultNameHazel[] = _("HAZEL");
+const u8 gText_DefaultNameNadine[] = _("NADINE");
+const u8 gText_DefaultNameTanja[] = _("TANJA");
+const u8 gText_DefaultNameYasmin[] = _("YASMIN");
+const u8 gText_DefaultNameNicola[] = _("NICOLA");
+const u8 gText_DefaultNameLillie[] = _("LILLIE");
+const u8 gText_DefaultNameTerra[] = _("TERRA");
+const u8 gText_DefaultNameLucy[] = _("LUCY");
+const u8 gText_DefaultNameHalie[] = _("HALIE");
+const u8 gText_ThisIsAPokemon[] = _("This is what we call a “POKéMON.”{PAUSE 96}\p");
+const u8 gText_5MarksPokemon[] = _("????? POKéMON");
+const u8 gText_UnkHeight[] = _("{CLEAR_TO 0x0C}??’??”");
+const u8 gText_UnkWeight[] = _("????.? lbs.");
+const u8 gUnknown_085E86DC[] = _(" POKéMON");
+const u8 gUnknown_085E86FB[] = _("{CLEAR_TO 0x0C} ’ ”");
+const u8 gUnknown_085E8709[] = _(" . lbs.");
+const u8 gUnknown_085E871A[] = _("");
+const u8 gText_CryOf[] = _("CRY OF");
+const u8 gUnknown_085E8722[] = _("");
+const u8 gText_SizeComparedTo[] = _("SIZE COMPARED TO ");
+const u8 gText_PokedexRegistration[] = _("POKéDEX registration completed.");
+const u8 gText_HTHeight[] = _("HT");
+const u8 gText_WTWeight[] = _("WT");
+const u8 gText_SearchingPleaseWait[] = _("Searching…\nPlease wait.");
+const u8 gText_SearchCompleted[] = _("Search completed.");
+const u8 gUnknown_085E8785[] = _("No matching POKéMON were found.");
+const u8 gUnknown_085E87A5[] = _("Search for POKéMON based on\nselected parameters.");
+const u8 gUnknown_085E87D6[] = _("Switch POKéDEX listings.");
+const u8 gUnknown_085E87EF[] = _("Return to the POKéDEX.");
+const u8 gUnknown_085E8806[] = _("Select the POKéDEX mode.");
+const u8 gUnknown_085E881F[] = _("Select the POKéDEX listing mode.");
+const u8 gUnknown_085E8840[] = _("List by the first letter in the name.\nSpotted POKéMON only.");
+const u8 gUnknown_085E887C[] = _("List by body color.\nSpotted POKéMON only.");
+const u8 gUnknown_085E88A6[] = _("List by type.\nOwned POKéMON only.");
+const u8 gUnknown_085E88C8[] = _("Execute search/switch.");
+const u8 gUnknown_085E88DF[] = _("HOENN DEX");
+const u8 gUnknown_085E88E9[] = _("NATIONAL DEX");
+const u8 gUnknown_085E88F6[] = _("NUMERICAL MODE");
+const u8 gUnknown_085E8905[] = _("A TO Z MODE");
+const u8 gUnknown_085E8911[] = _("HEAVIEST MODE");
+const u8 gUnknown_085E891F[] = _("LIGHTEST MODE");
+const u8 gUnknown_085E892D[] = _("TALLEST MODE");
+const u8 gUnknown_085E893A[] = _("SMALLEST MODE");
+const u8 gUnknown_085E8948[] = _("ABC");
+const u8 gUnknown_085E894C[] = _("DEF");
+const u8 gUnknown_085E8950[] = _("GHI");
+const u8 gUnknown_085E8954[] = _("JKL");
+const u8 gUnknown_085E8958[] = _("MNO");
+const u8 gUnknown_085E895C[] = _("PQR");
+const u8 gUnknown_085E8960[] = _("STU");
+const u8 gUnknown_085E8964[] = _("VWX");
+const u8 gUnknown_085E8968[] = _("YZ");
+const u8 gUnknown_085E896B[] = _("RED");
+const u8 gUnknown_085E896F[] = _("BLUE");
+const u8 gUnknown_085E8974[] = _("YELLOW");
+const u8 gUnknown_085E897B[] = _("GREEN");
+const u8 gUnknown_085E8981[] = _("BLACK");
+const u8 gUnknown_085E8987[] = _("BROWN");
+const u8 gUnknown_085E898D[] = _("PURPLE");
+const u8 gUnknown_085E8994[] = _("GRAY");
+const u8 gUnknown_085E8999[] = _("WHITE");
+const u8 gUnknown_085E899F[] = _("PINK");
+const u8 gUnknown_085E89A4[] = _("HOENN region’s POKéDEX");
+const u8 gUnknown_085E89BB[] = _("National edition POKéDEX");
+const u8 gUnknown_085E89D4[] = _("POKéMON are listed according to their\nnumber.");
+const u8 gUnknown_085E8A02[] = _("Spotted and owned POKéMON are listed\nalphabetically.");
+const u8 gUnknown_085E8A37[] = _("Owned POKéMON are listed from the\nheaviest to the lightest.");
+const u8 gUnknown_085E8A73[] = _("Owned POKéMON are listed from the\nlightest to the heaviest.");
+const u8 gUnknown_085E8AAF[] = _("Owned POKéMON are listed from the\ntallest to the smallest.");
+const u8 gUnknown_085E8AEA[] = _("Owned POKéMON are listed from the\nsmallest to the tallest.");
+const u8 gUnknown_085E8B25[] = _("");
+const u8 gUnknown_085E8B26[] = _("DON’T SPECIFY.");
+const u8 gUnknown_085E8B35[] = _("NONE");
+const u8 gText_SelectorArrow[] = _("▶");
+const u8 gUnknown_085E8B3C[] = _(" ");
+const u8 gText_WelcomeToHOF[] = _("Welcome to the HALL OF FAME!");
+const u8 gUnknown_085E8B5B[] = _("Spotted POKéMON: {STR_VAR_1}!\nOwned POKéMON: {STR_VAR_2}!\pPROF. BIRCH’s POKéDEX rating!\pPROF. BIRCH: Let’s see…\p");
+const u8 gUnknown_085E8BBA[] = _("SAVING…\nDON’T TURN OFF THE POWER.");
+const u8 gText_HOFCorrupted[] = _("The HALL OF FAME data is corrupted.");
+const u8 gText_HOFNumber[] = _("HALL OF FAME No. {STR_VAR_1}");
+const u8 gText_LeagueChamp[] = _("LEAGUE CHAMPION!\nCONGRATULATIONS!");
+const u8 gText_Number[] = _("No. ");
+const u8 gText_Level[] = _("Lv. ");
+const u8 gUnknown_085E8C40[] = _("IDNo. /");
+const u8 gText_Name[] = _("NAME");
+const u8 gText_IDNumber[] = _("IDNo.");
+const u8 gText_BirchInTrouble[] = _("PROF. BIRCH is in trouble!\nRelease a POKéMON and rescue him!");
+const u8 gText_ConfirmStarterChoice[] = _("Do you choose this POKéMON?");
+const u8 gUnknown_085E8CAC[] = _("POKéMON");
+const u8 gText_FlyToWhere[] = _("FLY to where?");
+const u8 gMenuText_Use[] = _("USE");
+const u8 gMenuText_Toss[] = _("TOSS");
+const u8 gMenuText_Register[] = _("REGISTER");
+const u8 gMenuText_Give[] = _("GIVE");
+const u8 gMenuText_CheckTag[] = _("CHECK TAG");
+const u8 gMenuText_Confirm[] = _("CONFIRM");
+const u8 gMenuText_Walk[] = _("WALK");
+const u8 gText_Cancel[] = _("CANCEL");
+const u8 gText_Cancel2[] = _("CANCEL");
+const u8 gMenuText_Show[] = _("SHOW");
+const u8 gText_EmptyString2[] = _("");
+const u8 gUnknown_085E8D04[] = _("CANCEL");
+const u8 gText_Item[] = _("ITEM");
+const u8 gText_Mail[] = _("MAIL");
+const u8 gText_Take[] = _("TAKE");
+const u8 gText_Store[] = _("STORE");
+const u8 gMenuText_Check[] = _("CHECK");
+const u8 gText_None[] = _("NONE");
+const u8 gMenuText_Deselect[] = _("DESELECT");
+const u8 gText_ThreeMarks[] = _("???");
+const u8 gText_FiveMarks[] = _("?????");
+const u8 gText_Slash[] = _("/");
+const u8 gText_OneDash[] = _("-");
+const u8 gText_TwoDashes[] = _("--");
+const u8 gText_ThreeDashes[] = _("---");
+const u8 gText_MaleSymbol[] = _("♂");
+const u8 gText_FemaleSymbol[] = _("♀");
+const u8 gText_LevelSymbol[] = _("{LV}");
+const u8 gText_UnkCtrlF908Clear01[] = _("{NO}{CLEAR 0x01}");
+const u8 gUnknown_085E8D55[] = _("+");
+const u8 gUnknown_085E8D57[] = _("{RIGHT_ARROW}");
+const u8 gText_UnkCtrlF907F908[] = _("{ID}{NO}");
+const u8 gText_Space[] = _(" ");
+const u8 gText_SelectorArrow2[] = _("▶");
+const u8 gText_GoBackPrevMenu[] = _("Go back to the\nprevious menu.");
+const u8 gText_WhatWouldYouLike[] = _("What would you like to do?");
+const u8 gMenuText_Give2[] = _("GIVE");
+const u8 gText_xVar1[] = _("×{STR_VAR_1}");
+const u8 gUnknown_085E8DA4[] = _(" BERRY");
+const u8 gText_Coins[] = _("{STR_VAR_1} COINS");
+const u8 gText_CloseBag[] = _("CLOSE BAG");
+const u8 gText_Var1IsSelected[] = _("{STR_VAR_1} is\nselected.");
+const u8 gText_CantWriteMail[] = _("You can’t write\nMAIL here.");
+const u8 gText_NoPokemon[] = _("There is no\nPOKéMON.");
+const u8 gText_MoveVar1Where[] = _("Move the\n{STR_VAR_1}\nwhere?");
+const u8 gText_Var1CantBeHeld[] = _("The {STR_VAR_1} can’t be held.");
+const u8 gText_Var1CantBeHeldHere[] = _("The {STR_VAR_1} can’t be held\nhere.");
+const u8 gText_DepositHowManyVar1[] = _("Deposit how many\n{STR_VAR_1}(s)?");
+const u8 gText_DepositedVar2Var1s[] = _("Deposited {STR_VAR_2}\n{STR_VAR_1}(s).");
+const u8 gText_NoRoomForItems[] = _("There’s no room to\nstore items.");
+const u8 gText_CantStoreImportantItems[] = _("Important items\ncan’t be stored in\nthe PC!");
+const u8 gText_TooImportantToToss[] = _("That’s much too\nimportant to toss\nout!");
+const u8 gText_TossHowManyVar1s[] = _("Toss out how many\n{STR_VAR_1}(s)?");
+const u8 gText_ThrewAwayVar2Var1s[] = _("Threw away {STR_VAR_2}\n{STR_VAR_1}(s).");
+const u8 gText_ConfirmTossItems[] = _("Is it okay to\nthrow away {STR_VAR_2}\n{STR_VAR_1}(s)?");
+const u8 gText_DadsAdvice[] = _("DAD’s advice…\n{PLAYER}, there’s a time and place for\leverything!{PAUSE_UNTIL_PRESS}");
+const u8 gText_CantDismountBike[] = _("You can’t dismount your BIKE here.{PAUSE_UNTIL_PRESS}");
+const u8 gText_ItemFinderNearby[] = _("Huh?\nThe ITEMFINDER’s responding!\pThere’s an item buried around here!{PAUSE_UNTIL_PRESS}");
+const u8 gText_ItemFinderOnTop[] = _("Oh!\nThe ITEMFINDER’s shaking wildly!{PAUSE_UNTIL_PRESS}");
+const u8 gText_ItemFinderNothing[] = _("… … … …Nope!\nThere’s no response.{PAUSE_UNTIL_PRESS}");
+const u8 gText_CoinCase[] = _("Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}");
+const u8 gText_BootedUpTM[] = _("Booted up a TM.");
+const u8 gText_BootedUpHM[] = _("Booted up an HM.");
+const u8 gText_TMHMContainedVar1[] = _("It contained\n{STR_VAR_1}.\pTeach {STR_VAR_1}\nto a POKéMON?");
+const u8 gText_PlayerUsedVar2[] = _("{PLAYER} used the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}");
+const u8 gText_RepelEffectsLingered[] = _("But the effects of a REPEL\nlingered from earlier.{PAUSE_UNTIL_PRESS}");
+const u8 gText_UsedVar2WildLured[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be lured.{PAUSE_UNTIL_PRESS}");
+const u8 gText_UsedVar2WildRepelled[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}");
+const u8 gText_BoxFull[] = _("The BOX is full.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PowderQty[] = _("POWDER QTY: {STR_VAR_1}{PAUSE_UNTIL_PRESS}");
+const u8 gText_TheField[] = _("the field");
+const u8 gText_TheBattle[] = _("the battle");
+const u8 gText_ThePokemonList[] = _("the POKéMON LIST");
+const u8 gText_TheShop[] = _("the shop");
+const u8 gText_ThePC[] = _("the PC");
+
+const u8 *const gReturnToXStringsTable[] =
+{
+ gText_TheField,
+ gText_TheBattle,
+ gText_ThePokemonList,
+ gText_TheShop,
+ gText_TheField,
+ gText_TheField,
+ gText_ThePC,
+ gText_TheField,
+ gText_TheField,
+ gText_TheField,
+ gText_TheBattle,
+ gText_ThePC
+};
+
+const u8 *const gReturnToXStringsTable2[] =
+{
+ gText_TheField,
+ gText_TheBattle,
+ gText_ThePokemonList,
+ gText_TheField
+};
+
+const u8 gText_ReturnToVar1[] = _("Return to\n{STR_VAR_1}.");
+const u8 gText_ItemsPocket[] = _("ITEMS");
+const u8 gText_PokeBallsPocket[] = _("POKé BALLS");
+const u8 gText_TMHMPocket[] = _("TMs & HMs");
+const u8 gText_BerriesPocket[] = _("BERRIES");
+const u8 gText_KeyItemsPocket[] = _("KEY ITEMS");
+
+const u8 *const gPocketNamesStringsTable[] =
+{
+ gText_ItemsPocket,
+ gText_PokeBallsPocket,
+ gText_TMHMPocket,
+ gText_BerriesPocket,
+ gText_KeyItemsPocket
+};
+
+const u8 gText_UnkF908Var1Clear7Var2[] = _("{NO}{STR_VAR_1}{CLEAR 0x07}{STR_VAR_2}");
+const u8 gText_ClearTo11Var1Clear5Var2[] = _("{CLEAR_TO 0x11}{STR_VAR_1}{CLEAR 0x05}{STR_VAR_2}");
+const u8 gText_SizeSlash[] = _("SIZE /");
+const u8 gText_FirmSlash[] = _("FIRM /");
+const u8 gText_Var1DotVar2[] = _("{STR_VAR_1}.{STR_VAR_2}”");
+
+// Berry firmness strings
+const u8 gBerryFirmnessString_VerySoft[] = _("Very soft");
+const u8 gBerryFirmnessString_Soft[] = _("Soft");
+const u8 gBerryFirmnessString_Hard[] = _("Hard");
+const u8 gBerryFirmnessString_VeryHard[] = _("Very hard");
+const u8 gBerryFirmnessString_SuperHard[] = _("Super hard");
+
+const u8 gText_UnkF908Var1Var2[] = _("{NO}{STR_VAR_1} {STR_VAR_2}");
+const u8 gText_BerryTag[] = _("BERRY TAG");
+const u8 gText_RedPokeblock[] = _("RED {POKEBLOCK}");
+const u8 gText_BluePokeblock[] = _("BLUE {POKEBLOCK}");
+const u8 gText_PinkPokeblock[] = _("PINK {POKEBLOCK}");
+const u8 gText_GreenPokeblock[] = _("GREEN {POKEBLOCK}");
+const u8 gText_YellowPokeblock[] = _("YELLOW {POKEBLOCK}");
+const u8 gText_PurplePokeblock[] = _("PURPLE {POKEBLOCK}");
+const u8 gText_IndigoPokeblock[] = _("INDIGO {POKEBLOCK}");
+const u8 gText_BrownPokeblock[] = _("BROWN {POKEBLOCK}");
+const u8 gText_LiteBluePokeblock[] = _("LITEBLUE {POKEBLOCK}");
+const u8 gText_OlivePokeblock[] = _("OLIVE {POKEBLOCK}");
+const u8 gText_GrayPokeblock[] = _("GRAY {POKEBLOCK}");
+const u8 gText_BlackPokeblock[] = _("BLACK {POKEBLOCK}");
+const u8 gText_WhitePokeblock[] = _("WHITE {POKEBLOCK}");
+const u8 gText_GoldPokeblock[] = _("GOLD {POKEBLOCK}");
+const u8 gText_Spicy[] = _("SPICY");
+const u8 gText_Dry[] = _("DRY");
+const u8 gText_Sweet[] = _("SWEET");
+const u8 gText_Bitter[] = _("BITTER");
+const u8 gText_Sour[] = _("SOUR");
+const u8 gUnknown_085E9339[] = _("TASTY");
+const u8 gUnknown_085E933F[] = _("FEEL");
+const u8 gText_StowCase[] = _("Stow CASE.");
+const u8 gText_LvVar1[] = _("{LV}{STR_VAR_1}");
+const u8 gText_ThrowAwayVar1[] = _("Throw away this\n{STR_VAR_1}?");
+const u8 gText_Var1ThrownAway[] = _("The {STR_VAR_1}\nwas thrown away.");
+const u8 gText_Var1AteTheVar2[] = _("{STR_VAR_1} ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}");
+const u8 gText_Var1HappilyAteVar2[] = _("{STR_VAR_1} happily ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}");
+const u8 gText_Var1DisdainfullyAteVar2[] = _("{STR_VAR_1} disdainfully ate the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}");
+const u8 gUnknown_085E93C7[] = _("BUY");
+const u8 gUnknown_085E93CB[] = _("SELL");
+const u8 gUnknown_085E93D0[] = _("QUIT");
+const u8 gText_InBagVar1[] = _("IN BAG: {STR_VAR_1}");
+const u8 gText_QuitShopping[] = _("Quit shopping.");
+const u8 gText_Var1CertainlyHowMany[] = _("{STR_VAR_1}? Certainly.\nHow many would you like?");
+const u8 gText_Var1CertainlyHowMany2[] = _("{STR_VAR_1}? Certainly.\nHow many would you like?");
+const u8 gText_Var1AndYouWantedVar2[] = _("{STR_VAR_1}? And you wanted {STR_VAR_2}?\nThat will be ¥{STR_VAR_3}.");
+const u8 gText_Var1IsItThatllBeVar2[] = _("{STR_VAR_1}, is it?\nThat’ll be ¥{STR_VAR_2}. Do you want it?");
+const u8 gText_YouWantedVar1ThatllBeVar2[] = _("You wanted {STR_VAR_1}?\nThat’ll be ¥{STR_VAR_2}. Will that be okay?");
+const u8 gText_HereYouGoThankYou[] = _("Here you go!\nThank you very much.");
+const u8 gText_ThankYouIllSendItHome[] = _("Thank you!\nI’ll send it to your home PC.");
+const u8 gText_ThanksIllSendItHome[] = _("Thanks!\nI’ll send it to your PC at home.");
+const u8 gText_YouDontHaveMoney[] = _("You don’t have enough money.{PAUSE_UNTIL_PRESS}");
+const u8 gText_NoMoreRoomForThis[] = _("You have no more room for this\nitem.{PAUSE_UNTIL_PRESS}");
+const u8 gText_SpaceForVar1Full[] = _("The space for {STR_VAR_1} is full.{PAUSE_UNTIL_PRESS}");
+const u8 gText_AnythingElseICanHelp[] = _("Is there anything else I can help\nyou with?");
+const u8 gText_CanIHelpWithAnythingElse[] = _("Can I help you with anything else?");
+const u8 gText_ThrowInPremierBall[] = _("I’ll throw in a PREMIER BALL, too.{PAUSE_UNTIL_PRESS}");
+const u8 gText_CantBuyKeyItem[] = _("{STR_VAR_2}? Oh, no.\nI can’t buy that.{PAUSE_UNTIL_PRESS}");
+const u8 gText_HowManyToSell[] = _("{STR_VAR_2}?\nHow many would you like to sell?");
+const u8 gText_ICanPayVar1[] = _("I can pay ¥{STR_VAR_1}.\nWould that be okay?");
+const u8 gText_TurnedOverVar1ForVar2[] = _("Turned over the {STR_VAR_2}\nand received ¥{STR_VAR_1}.");
+const u8 gText_PokedollarVar1[] = _("¥{STR_VAR_1}");
+const u8 gText_Shift[] = _("SHIFT");
+const u8 gText_SendOut[] = _("SEND OUT");
+const u8 gText_Switch2[] = _("SWITCH");
+const u8 gText_Summary5[] = _("SUMMARY");
+const u8 gUnknown_085E96BE[] = _("MOVES");
+const u8 gText_Enter[] = _("ENTER");
+const u8 gText_NoEntry[] = _("NO ENTRY");
+const u8 gText_Take2[] = _("TAKE");
+const u8 gText_Read2[] = _("READ");
+const u8 gText_Trade4[] = _("TRADE");
+const u8 gText_HP3[] = _("HP");
+const u8 gText_SpAtk3[] = _("SP. ATK");
+const u8 gText_SpDef3[] = _("SP. DEF");
+const u8 gText_WontHaveEffect[] = _("It won’t have any effect.{PAUSE_UNTIL_PRESS}");
+const u8 gText_CantBeUsedOnPkmn[] = _("This can’t be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnCantSwitchOut[] = _("{STR_VAR_1} can’t be switched\nout!{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnAlreadyInBattle[] = _("{STR_VAR_1} is already\nin battle!{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnAlreadySelected[] = _("{STR_VAR_1} has already been\nselected.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnHasNoEnergy[] = _("{STR_VAR_1} has no energy\nleft to battle!{PAUSE_UNTIL_PRESS}");
+const u8 gText_CantSwitchWithAlly[] = _("You can’t switch {STR_VAR_1}’s\nPOKéMON with one of yours!{PAUSE_UNTIL_PRESS}");
+const u8 gText_EggCantBattle[] = _("An EGG can’t battle!{PAUSE_UNTIL_PRESS}");
+const u8 gText_CantUseUntilNewBadge[] = _("This can’t be used until a new\nBADGE is obtained.{PAUSE_UNTIL_PRESS}");
+const u8 gText_NoMoreThanVar1Pkmn[] = _("No more than {STR_VAR_1} POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}");
+const u8 gText_SendMailToPC[] = _("Send the removed MAIL to\nyour PC?");
+const u8 gText_MailSentToPC[] = _("The MAIL was sent to your PC.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PCMailboxFull[] = _("Your PC’s MAILBOX is full.{PAUSE_UNTIL_PRESS}");
+const u8 gText_MailMessageWillBeLost[] = _("If the MAIL is removed, the\nmessage will be lost. Okay?");
+const u8 gText_RemoveMailBeforeItem[] = _("MAIL must be removed before\nholding an item.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnWasGivenItem[] = _("{STR_VAR_1} was given the\n{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}");
+const u8 gText_SwitchPkmnItem[] = _("{STR_VAR_1} is already holding\none {STR_VAR_2}.\pWould you like to switch the\ntwo items?");
+const u8 gText_PkmnNotHolding[] = _("{STR_VAR_1} isn’t holding\nanything.{PAUSE_UNTIL_PRESS}");
+const u8 gText_RecievedItemFromPkmn[] = _("Received the {STR_VAR_2}\nfrom {STR_VAR_1}.{PAUSE_UNTIL_PRESS}");
+const u8 gText_MailTakenFromPkmn[] = _("MAIL was taken from the\nPOKéMON.{PAUSE_UNTIL_PRESS}");
+const u8 gText_SwitchedPkmnItem[] = _("The {STR_VAR_2} was taken and\nreplaced with the {STR_VAR_1}.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnHoldingItemCantHoldMail[] = _("This POKéMON is holding an\nitem. It cannot hold MAIL.{PAUSE_UNTIL_PRESS}");
+const u8 gText_MailTransferredFromMailbox[] = _("MAIL was transferred from\nthe MAILBOX.{PAUSE_UNTIL_PRESS}");
+const u8 gText_BagFullCouldNotRemoveItem[] = _("The BAG is full. The POKéMON’s\nitem could not be removed.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnLearnedMove3[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!");
+const u8 gText_PkmnCantLearnMove[] = _("{STR_VAR_1} and {STR_VAR_2}\nare not compatible.\p{STR_VAR_2} can’t be\nlearned.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnNeedsToReplaceMove[] = _("{STR_VAR_1} wants to learn the\nmove {STR_VAR_2}.\pHowever, {STR_VAR_1} already\nknows four moves.\pShould a move be deleted and\nreplaced with {STR_VAR_2}?");
+const u8 gText_StopLearningMove2[] = _("Stop trying to teach\n{STR_VAR_2}?");
+const u8 gText_MoveNotLearned[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.{PAUSE_UNTIL_PRESS}");
+const u8 gText_WhichMoveToForget[] = _("Which move should be forgotten?{PAUSE_UNTIL_PRESS}");
+const u8 gText_12PoofForgotMove[] = _("1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd…{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnAlreadyKnows[] = _("{STR_VAR_1} already knows\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnHPRestoredByVar2[] = _("{STR_VAR_1}’s HP was restored\nby {STR_VAR_2} point(s).{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnCuredOfPoison[] = _("{STR_VAR_1} was cured of its\npoisoning.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnCuredOfParalysis[] = _("{STR_VAR_1} was cured of\nparalysis.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnWokeUp2[] = _("{STR_VAR_1} woke up.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnBurnHealed[] = _("{STR_VAR_1}’s burn was healed.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnThawedOut[] = _("{STR_VAR_1} was thawed out.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PPWasRestored[] = _("PP was restored.{PAUSE_UNTIL_PRESS}");
+const u8 gUnknown_085E9CCA[] = _("{STR_VAR_1} regained health.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnBecameHealthy[] = _("{STR_VAR_1} became healthy.{PAUSE_UNTIL_PRESS}");
+const u8 gText_MovesPPIncreased[] = _("{STR_VAR_1}’s PP increased.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnElevatedToLvVar2[] = _("{STR_VAR_1} was elevated to\nLv. {STR_VAR_2}.");
+const u8 gText_PkmnBaseVar2StatIncreased[] = _("{STR_VAR_1}’s base {STR_VAR_2}\nstat was raised.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnFriendlyBaseVar2Fell[] = _("{STR_VAR_1} turned friendly.\nThe base {STR_VAR_2} fell!{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnAdoresBaseVar2Fell[] = _("{STR_VAR_1} adores you!\nThe base {STR_VAR_2} fell!{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnFriendlyBaseVar2CantFall[] = _("{STR_VAR_1} turned friendly.\nThe base {STR_VAR_2} can’t fall!{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnSnappedOutOfConfusion[] = _("{STR_VAR_1} snapped out of its\nconfusion.{PAUSE_UNTIL_PRESS}");
+const u8 gText_PkmnGotOverInfatuation[] = _("{STR_VAR_1} got over its\ninfatuation.{PAUSE_UNTIL_PRESS}");
+const u8 gText_ThrowAwayItem[] = _("Throw away this\n{STR_VAR_1}?");
+const u8 gText_ItemThrownAway[] = _("The {STR_VAR_1}\nwas thrown away.{PAUSE_UNTIL_PRESS}");
+const u8 gUnknown_085E9E2E[] = _("Teach which POKéMON?");
+const u8 gUnknown_085E9E43[] = _("Choose a POKéMON.");
+const u8 gUnknown_085E9E55[] = _("Move to where?");
+const u8 gUnknown_085E9E64[] = _("Teach which POKéMON?");
+const u8 gUnknown_085E9E79[] = _("Use on which POKéMON?");
+const u8 gUnknown_085E9E8F[] = _("Give to which POKéMON?");
+const u8 gUnknown_085E9EA6[] = _("Do what with this {PKMN}?");
+const u8 gUnknown_085E9EBC[] = _("There’s nothing to CUT.");
+const u8 gUnknown_085E9ED4[] = _("You can’t SURF here.");
+const u8 gUnknown_085E9EE9[] = _("You’re already SURFING.");
+const u8 gUnknown_085E9F01[] = _("Can’t use that here.");
+const u8 gUnknown_085E9F16[] = _("Restore which move?");
+const u8 gUnknown_085E9F2A[] = _("Boost PP of which move?");
+const u8 gUnknown_085E9F42[] = _("Do what with an item?");
+const u8 gUnknown_085E9F58[] = _("No POKéMON for battle!");
+const u8 gUnknown_085E9F6F[] = _("Choose a POKéMON.");
+const u8 gUnknown_085E9F81[] = _("Not enough HP…");
+const u8 gUnknown_085E9F90[] = _("{STR_VAR_1} POKéMON are needed.");
+const u8 gUnknown_085E9FA7[] = _("POKéMON can’t be the same.");
+const u8 gUnknown_085E9FC2[] = _("No identical hold items.");
+const u8 gUnknown_085E9FDB[] = _("The current is much too fast!");
+const u8 gUnknown_085E9FF9[] = _("Do what with the MAIL?");
+const u8 gUnknown_085EA010[] = _("Choose POKéMON or CANCEL.");
+const u8 gUnknown_085EA02A[] = _("Choose POKéMON and confirm.");
+const u8 gUnknown_085EA046[] = _("Let’s enjoy cycling!");
+const u8 gUnknown_085EA05B[] = _("This is in use already.");
+const u8 gUnknown_085EA073[] = _("{STR_VAR_1} is already holding\none {STR_VAR_2}.");
+const u8 gUnknown_085EA091[] = _("No use.");
+const u8 gUnknown_085EA099[] = _("ABLE");
+const u8 gUnknown_085EA09E[] = _("FIRST");
+const u8 gUnknown_085EA0A4[] = _("SECOND");
+const u8 gUnknown_085EA0AB[] = _("THIRD");
+const u8 gUnknown_085EA0B1[] = _("ABLE");
+const u8 gUnknown_085EA0B6[] = _("NOT ABLE");
+const u8 gUnknown_085EA0BF[] = _("ABLE!");
+const u8 gUnknown_085EA0C5[] = _("NOT ABLE!");
+const u8 gUnknown_085EA0CF[] = _("LEARNED");
+const u8 gUnknown_085EA0D7[] = _("HAVE");
+const u8 gUnknown_085EA0DC[] = _("DON’T HAVE");
+const u8 gUnknown_085EA0E7[] = _("FOURTH");
+const u8 gText_PkmnCantParticipate[] = _("That POKéMON can’t participate.{PAUSE_UNTIL_PRESS}");
+const u8 gText_CancelParticipation[] = _("Cancel participation?");
+const u8 gText_CancelBattle[] = _("Cancel the battle?");
+const u8 gText_ReturnToWaitingRoom[] = _("Return to the WAITING ROOM?");
+const u8 gText_CancelChallenge[] = _("Cancel the challenge?");
+const u8 gText_EscapeFromHere[] = _("Want to escape from here and return\nto {STR_VAR_1}?");
+const u8 gText_ReturnToHealingSpot[] = _("Want to return to the healing spot\nused last in {STR_VAR_1}?");
+const u8 gText_PauseUntilPress[] = _("{PAUSE_UNTIL_PRESS}");
+const u8 gJPText_PutVar1IntoSpinner[] = _("{STR_VAR_1}を ぐるぐるこうかんに\nだして よろしいですか?");
+
+asm(".align 2");
+const u8 gText_OnlyPkmnForBattle[] = _("That’s your only\nPOKéMON for battle.");
+
+asm(".align 2");
+const u8 gText_PkmnCantBeTradedNow[] = _("That POKéMON can’t be traded\nnow.");
+
+asm(".align 2");
+const u8 gText_EggCantBeTradedNow[] = _("An EGG can’t be traded now.");
+
+asm(".align 2");
+const u8 gText_OtherTrainersPkmnCantBeTraded[] = _("The other TRAINER’s POKéMON\ncan’t be traded now.");
+
+asm(".align 2");
+const u8 gText_OtherTrainerCantAcceptPkmn[] = _("The other TRAINER can’t accept\nthat POKéMON now.");
+
+asm(".align 2");
+const u8 gText_CantTradeWithTrainer[] = _("You can’t trade with that\nTRAINER now.");
+
+asm(".align 2");
+const u8 gText_NotPkmnOtherTrainerWants[] = _("That isn’t the type of POKéMON\nthat the other TRAINER wants.");
+
+asm(".align 2");
+const u8 gText_ThatIsntAnEgg[] = _("That isn’t an EGG.");
+const u8 gText_Register[] = _("REGISTER");
+const u8 gText_Attack3[] = _("ATTACK");
+const u8 gText_Defense3[] = _("DEFENSE");
+const u8 gText_SpAtk4[] = _("SP. ATK");
+const u8 gText_SpDef4[] = _("SP. DEF");
+const u8 gText_Speed2[] = _("SPEED");
+const u8 gText_HP4[] = _("HP");
+const u8 gUnknown_085EA364[] = _("");
+const u8 gText_OTSlash[] = _("OT/");
+const u8 gText_RentalPkmn[] = _("RENTAL POKéMON");
+const u8 gText_TypeSlash[] = _("TYPE/");
+const u8 gText_Power[] = _("POWER");
+const u8 gText_Accuracy2[] = _("ACCURACY");
+const u8 gText_Appeal[] = _("APPEAL");
+const u8 gText_Jam[] = _("JAM");
+const u8 gText_Status[] = _("STATUS");
+const u8 gText_ExpPoints[] = _("EXP. POINTS");
+const u8 gText_NextLv[] = _("NEXT LV.");
+const u8 gText_RibbonsVar1[] = _("RIBBONS: {STR_VAR_1}");
+const u8 gText_EmptyString5[] = _("");
+const u8 gUnknown_085EA3C1[] = _("EVENTS");
+const u8 gText_Switch[] = _("SWITCH");
+const u8 gText_PkmnInfo[] = _("POKéMON INFO");
+const u8 gText_PkmnSkills[] = _("POKéMON SKILLS");
+const u8 gText_BattleMoves[] = _("BATTLE MOVES");
+const u8 gText_ContestMoves[] = _("C0NTEST MOVES");
+const u8 gText_Info[] = _("INFO");
+const u8 gText_EggWillTakeALongTime[] = _("It looks like this EGG will\ntake a long time to hatch.");
+const u8 gText_EggWillTakeSomeTime[] = _("What will hatch from this?\nIt will take some time.");
+const u8 gText_EggWillHatchSoon[] = _("It moves occasionally.\nIt should hatch soon.");
+const u8 gText_EggAboutToHatch[] = _("It’s making sounds.\nIt’s about to hatch!");
+const u8 gText_HMMovesCantBeForgotten2[] = _("HM moves can’t be\nforgotten now.");
+const u8 gText_XNatureMetAtYZ[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nmet at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}.");
+const u8 gText_XNatureHatchedAtYZ[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nhatched at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}.");
+const u8 gText_XNatureObtainedInTrade[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nobtained in a trade.");
+const u8 gText_XNatureFatefulEncounter[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nobtained in a fateful\nencounter at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}.");
+const u8 gText_XNatureProbablyMetAt[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nprobably met at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}.");
+const u8 gText_XNature[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature");
+const u8 gText_XNatureMetSomewhereAt[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nmet somewhere at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}.");
+const u8 gText_XNatureHatchedSomewhereAt[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nhatched somewhere at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}.");
+const u8 gText_OddEggFoundByCouple[] = _("An odd POKéMON EGG found\nby the DAY CARE couple.");
+const u8 gText_PeculiarEggNicePlace[] = _("A peculiar POKéMON EGG\nobtained at the nice place.");
+const u8 gText_PeculiarEggTrade[] = _("A peculiar POKéMON EGG\nobtained in a trade.");
+const u8 gText_EggFromHotSprings[] = _("A POKéMON EGG obtained\nat the hot springs.");
+const u8 gText_EggFromTraveler[] = _("An odd POKéMON EGG\nobtained from a traveler.");
+const u8 gText_ApostropheSBase[] = _("’s BASE");
+const u8 gText_OkayToDeleteFromRegistry[] = _("Is it okay to delete {STR_VAR_1}\nfrom the REGISTRY?");
+const u8 gText_RegisteredDataDeleted[] = _("The registered data was deleted.{PAUSE_UNTIL_PRESS}");
+const u8 gText_NoRegistry[] = _("There is no REGISTRY.{PAUSE_UNTIL_PRESS}");
+const u8 gUnknown_085EA79D[] = _("DEL REGIST.");
+const u8 gUnknown_085EA7A9[] = _("{STR_VAR_3}{STR_VAR_1}/{STR_VAR_2}");
+const u8 gText_Decorate[] = _("DECORATE");
+const u8 gText_PutAway[] = _("PUT AWAY");
+const u8 gText_Toss2[] = _("TOSS");
+const u8 gText_Color161Shadow161[] = _("{COLOR 161}{SHADOW 161}");
+const u8 gText_PutOutSelectedDecorItem[] = _("Put out the selected decoration item.");
+const u8 gText_StoreChosenDecorInPC[] = _("Store the chosen decoration in the PC.");
+const u8 gText_ThrowAwayUnwantedDecors[] = _("Throw away unwanted decorations.");
+const u8 gText_NoDecorations[] = _("There are no decorations.{PAUSE_UNTIL_PRESS}");
+const u8 gText_Desk[] = _("DESK");
+const u8 gText_Chair[] = _("CHAIR");
+const u8 gText_Plant[] = _("PLANT");
+const u8 gText_Ornament[] = _("ORNAMENT");
+const u8 gText_Mat[] = _("MAT");
+const u8 gText_Poster[] = _("POSTER");
+const u8 gText_Doll[] = _("DOLL");
+const u8 gText_Cushion[] = _("CUSHION");
+const u8 gText_Gold[] = _("GOLD");
+const u8 gText_Silver[] = _("SILVER");
+const u8 gText_PlaceItHere[] = _("Place it here?");
+const u8 gText_CantBePlacedHere[] = _("It can’t be placed here.");
+const u8 gText_CancelDecorating[] = _("Cancel decorating?");
+const u8 gText_InUseAlready[] = _("This is in use already.");
+const u8 gText_NoMoreDecorations[] = _("No more decorations can be placed.\nThe most that can be placed are {STR_VAR_1}.");
+const u8 gText_NoMoreDecorations2[] = _("No more decorations can be placed.\nThe most that can be placed are {STR_VAR_1}.");
+const u8 gUnknown_085EA978[] = _("This can’t be placed here.\nIt must be on a DESK, etc.");
+const u8 gText_CantPlaceInRoom[] = _("This decoration can’t be placed in\nyour own room.");
+const u8 gText_CantThrowAwayInUse[] = _("This decoration is in use.\nIt can’t be thrown away.");
+const u8 gText_DecorationWillBeDiscarded[] = _("This {STR_VAR_1} will be discarded.\nIs that okay?");
+const u8 gText_DecorationThrownAway[] = _("The decoration item was thrown away.");
+const u8 gText_StopPuttingAwayDecorations[] = _("Stop putting away decorations?");
+const u8 gText_NoDecorationHere[] = _("There is no decoration item here.");
+const u8 gText_ReturnDecorationToPC[] = _("Return this decoration to the PC?");
+const u8 gText_DecorationReturnedToPC[] = _("The decoration was returned to the PC.");
+const u8 gText_NoDecorationsInUse[] = _("There are no decorations in use.{PAUSE_UNTIL_PRESS}");
+const u8 gText_Tristan[] = _("TRISTAN");
+const u8 gText_Philip[] = _("PHILIP");
+const u8 gText_Dennis[] = _("DENNIS");
+const u8 gText_Roberto[] = _("ROBERTO");
+const u8 gText_TurnOff[] = _("TURN OFF");
+const u8 gText_Decoration[] = _("DECORATION");
+const u8 gText_ItemStorage[] = _("ITEM STORAGE");
+const u8 gText_Mailbox[] = _("MAILBOX");
+const u8 gText_DepositItem[] = _("DEPOSIT ITEM");
+const u8 gText_WithdrawItem[] = _("WITHDRAW ITEM");
+const u8 gText_TossItem[] = _("TOSS ITEM");
+const u8 gText_StoreItemsInPC[] = _("Store items in the PC.");
+const u8 gText_TakeOutItemsFromPC[] = _("Take out items from the PC.");
+const u8 gText_ThrowAwayItemsInPC[] = _("Throw away items stored in the PC.");
+const u8 gText_NoItems[] = _("There are no items.{PAUSE_UNTIL_PRESS}");
+const u8 gText_NoRoomInBag[] = _("There is no more\nroom in the BAG.");
+const u8 gText_WithdrawHowManyItems[] = _("Withdraw how many\n{STR_VAR_1}(s)?");
+const u8 gText_WithdrawXItems[] = _("Withdrew {STR_VAR_2}\n{STR_VAR_1}(s).");
+const u8 gText_Read[] = _("READ");
+const u8 gText_MoveToBag[] = _("MOVE TO BAG");
+const u8 gText_Give2[] = _("GIVE");
+const u8 gText_NoMailHere[] = _("There’s no MAIL here.{PAUSE_UNTIL_PRESS}");
+const u8 gText_WhatToDoWithVar1sMail[] = _("What would you like to do with\n{STR_VAR_1}’s MAIL?");
+const u8 gText_MessageWillBeLost[] = _("The message will be lost.\nIs that okay?");
+const u8 gText_BagIsFull[] = _("The BAG is full.{PAUSE_UNTIL_PRESS}");
+const u8 gText_MailToBagMessageErased[] = _("The MAIL was returned to the BAG\nwith its message erased.{PAUSE_UNTIL_PRESS}");
+const u8 gText_Dad[] = _("DAD");
+const u8 gText_Mom[] = _("MOM");
+const u8 gText_Wallace[] = _("WALLACE");
+const u8 gText_Steven[] = _("STEVEN");
+const u8 gText_Brawly[] = _("BRAWLY");
+const u8 gText_Winona[] = _("WINONA");
+const u8 gText_Phoebe[] = _("PHOEBE");
+const u8 gText_Glacia[] = _("GLACIA");
+const u8 gUnknown_085EAD37[] = _("PETALBURG");
+const u8 gUnknown_085EAD41[] = _("SLATEPORT");
+const u8 gUnknown_085EAD4B[] = _("LITTLEROOT");
+const u8 gUnknown_085EAD56[] = _("LILYCOVE");
+const u8 gUnknown_085EAD5F[] = _("DEWFORD");
+const u8 gUnknown_085EAD67[] = _("ENTER");
+const u8 gUnknown_085EAD6D[] = _("INFO");
+const u8 gUnknown_085EAD72[] = _("What’s a CONTEST?");
+const u8 gUnknown_085EAD84[] = _("Types of CONTESTS");
+const u8 gUnknown_085EAD96[] = _("Ranks");
+const u8 gUnknown_085EAD9C[] = _("Judging");
+const u8 gUnknown_085EADA4[] = _("COOLNESS CONTEST");
+const u8 gUnknown_085EADB5[] = _("BEAUTY CONTEST");
+const u8 gUnknown_085EADC4[] = _("CUTENESS CONTEST");
+const u8 gUnknown_085EADD5[] = _("SMARTNESS CONTEST");
+const u8 gUnknown_085EADE7[] = _("TOUGHNESS CONTEST");
+const u8 gUnknown_085EADF9[] = _("DECORATION");
+const u8 gUnknown_085EAE04[] = _("PACK UP");
+const u8 gUnknown_085EAE0C[] = _("COUNT");
+const u8 gUnknown_085EAE12[] = _("REGISTRY");
+const u8 gUnknown_085EAE1B[] = _("INFORMATION");
+const u8 gUnknown_085EAE27[] = _("MACH");
+const u8 gUnknown_085EAE2C[] = _("ACRO");
+const u8 gUnknown_085EAE31[] = _("PSN");
+const u8 gUnknown_085EAE35[] = _("PAR");
+const u8 gUnknown_085EAE39[] = _("SLP");
+const u8 gUnknown_085EAE3D[] = _("BRN");
+const u8 gUnknown_085EAE41[] = _("FRZ");
+const u8 gUnknown_085EAE45[] = _("TOXIC");
+const u8 gUnknown_085EAE4B[] = _("OK");
+const u8 gUnknown_085EAE4E[] = _("QUIT");
+const u8 gUnknown_085EAE53[] = _("Saw it");
+const u8 gUnknown_085EAE5A[] = _("Not yet");
+const u8 gText_Yes[] = _("YES");
+const u8 gText_No[] = _("NO");
+const u8 gUnknown_085EAE69[] = _("INFO");
+const u8 gUnknown_085EAE6E[] = _("SINGLE BATTLE");
+const u8 gUnknown_085EAE7C[] = _("DOUBLE BATTLE");
+const u8 gUnknown_085EAE8A[] = _("MULTI BATTLE");
+const u8 gUnknown_085EAE97[] = _("MR. BRINEY");
+const u8 gUnknown_085EAEA2[] = _("CHALLENGE");
+const u8 gUnknown_085EAEAC[] = _("INFO");
+const u8 gText_Lv50[] = _("LV. 50");
+const u8 gText_OpenLevel[] = _("OPEN LEVEL");
+const u8 gUnknown_085EAEC3[] = _("FRESH WATER{CLEAR_TO 0x48}¥200");
+const u8 gUnknown_085EAED6[] = _("SODA POP{CLEAR_TO 0x48}¥300");
+const u8 gUnknown_085EAEE6[] = _("LEMONADE{CLEAR_TO 0x48}¥350");
+const u8 gUnknown_085EAEF6[] = _("HOW TO RIDE");
+const u8 gUnknown_085EAF02[] = _("HOW TO TURN");
+const u8 gUnknown_085EAF0E[] = _("SANDY SLOPES");
+const u8 gUnknown_085EAF1B[] = _("WHEELIES");
+const u8 gUnknown_085EAF24[] = _("BUNNY-HOPS");
+const u8 gUnknown_085EAF2F[] = _("JUMP");
+const u8 gUnknown_085EAF34[] = _("Satisfied");
+const u8 gUnknown_085EAF3E[] = _("Dissatisfied");
+const u8 gUnknown_085EAF4B[] = _("DEEPSEATOOTH");
+const u8 gUnknown_085EAF58[] = _("DEEPSEASCALE");
+const u8 gUnknown_085EAF65[] = _("BLUE FLUTE");
+const u8 gUnknown_085EAF70[] = _("YELLOW FLUTE");
+const u8 gUnknown_085EAF7D[] = _("RED FLUTE");
+const u8 gUnknown_085EAF87[] = _("WHITE FLUTE");
+const u8 gUnknown_085EAF93[] = _("BLACK FLUTE");
+const u8 gUnknown_085EAF9F[] = _("GLASS CHAIR");
+const u8 gUnknown_085EAFAB[] = _("GLASS DESK");
+const u8 gUnknown_085EAFB6[] = _("TREECKO DOLL 1,000 COINS");
+const u8 gUnknown_085EAFCF[] = _("TORCHIC DOLL 1,000 COINS");
+const u8 gUnknown_085EAFE8[] = _("MUDKIP DOLL 1,000 COINS");
+const u8 gUnknown_085EB002[] = _(" 50 COINS ¥1,000");
+const u8 gUnknown_085EB017[] = _("500 COINS ¥10,000");
+const u8 gUnknown_085EB02A[] = _("Excellent");
+const u8 gUnknown_085EB034[] = _("Not so good");
+const u8 gUnknown_085EB040[] = _("RED SHARD");
+const u8 gUnknown_085EB04A[] = _("YELLOW SHARD");
+const u8 gUnknown_085EB057[] = _("BLUE SHARD");
+const u8 gUnknown_085EB062[] = _("GREEN SHARD");
+const u8 gText_BattleFrontier[] = _("BATTLE FRONTIER");
+const u8 gUnknown_085EB07E[] = _("Right");
+const u8 gUnknown_085EB084[] = _("Left");
+const u8 gUnknown_085EB089[] = _("TM32{CLEAR_TO 0x48}1,500 COINS");
+const u8 gUnknown_085EB09C[] = _("TM29{CLEAR_TO 0x48}3,500 COINS");
+const u8 gUnknown_085EB0AF[] = _("TM35{CLEAR_TO 0x48}4,000 COINS");
+const u8 gUnknown_085EB0C2[] = _("TM24{CLEAR_TO 0x48}4,000 COINS");
+const u8 gUnknown_085EB0D5[] = _("TM13{CLEAR_TO 0x48}4,000 COINS");
+const u8 gText_Cool[] = _("COOL");
+const u8 gText_Beauty[] = _("BEAUTY");
+const u8 gText_Cute[] = _("CUTE");
+const u8 gText_Smart[] = _("SMART");
+const u8 gText_Tough[] = _("TOUGH");
+const u8 gText_Normal[] = _("NORMAL");
+const u8 gText_Super[] = _("SUPER");
+const u8 gText_Hyper[] = _("HYPER");
+const u8 gText_Master[] = _("MASTER");
+const u8 gText_Cool2[] = _("COOL");
+const u8 gText_Beauty2[] = _("BEAUTY");
+const u8 gText_Cute2[] = _("CUTE");
+const u8 gText_Smart2[] = _("SMART");
+const u8 gText_Tough2[] = _("TOUGH");
+const u8 gText_Items[] = _("ITEMS");
+const u8 gText_Key_Items[] = _("KEY ITEMS");
+const u8 gText_Poke_Balls[] = _("POKé BALLS");
+const u8 gText_TMs_Hms[] = _("TMs & HMs");
+const u8 gText_Berries2[] = _("BERRIES");
+const u8 gText_SomeonesPC[] = _("SOMEONE’S PC");
+const u8 gText_LanettesPC[] = _("LANETTE’S PC");
+const u8 gText_PlayersPC[] = _("{PLAYER}’s PC");
+const u8 gText_HallOfFame[] = _("HALL OF FAME");
+const u8 gText_LogOff[] = _("LOG OFF");
+const u8 gText_Opponent[] = _("OPPONENT");
+const u8 gText_Tourney_Tree[] = _("TOURNEY TREE");
+const u8 gText_ReadyToStart[] = _("READY TO START");
+const u8 gText_NormalRank[] = _("NORMAL RANK");
+const u8 gText_SuperRank[] = _("SUPER RANK");
+const u8 gText_HyperRank[] = _("HYPER RANK");
+const u8 gText_MasterRank[] = _("MASTER RANK");
+const u8 gText_Single2[] = _("SINGLE");
+const u8 gText_Double2[] = _("DOUBLE");
+const u8 gText_Multi[] = _("MULTI");
+const u8 gText_MultiLink[] = _("MULTI-LINK");
+const u8 gText_BattleBag[] = _("BATTLE BAG");
+const u8 gText_HeldItem[] = _("HELD ITEM");
+const u8 gText_LinkContest[] = _("LINK CONTEST");
+const u8 gText_AboutE_Mode[] = _("ABOUT E-MODE");
+const u8 gText_AboutG_Mode[] = _("ABOUT G-MODE");
+const u8 gText_E_Mode[] = _("E-MODE");
+const u8 gText_G_Mode[] = _("G-MODE");
+const u8 gText_MenuOptionPokedex[] = _("POKéDEX");
+const u8 gText_MenuOptionPokemon[] = _("POKéMON");
+const u8 gText_MenuOptionBag[] = _("BAG");
+const u8 gText_MenuOptionPokenav[] = _("POKéNAV");
+const u8 gUnknown_085EB278[] = _("");
+const u8 gText_MenuOptionSave[] = _("SAVE");
+const u8 gText_MenuOptionOption[] = _("OPTION");
+const u8 gText_MenuOptionExit[] = _("EXIT");
+const u8 gUnknown_085EB28A[] = __(" ");
+const u8 gUnknown_085EB28C[] = _("5BP");
+const u8 gUnknown_085EB290[] = _("10BP");
+const u8 gUnknown_085EB295[] = _("15BP");
+const u8 gUnknown_085EB29A[] = _("RED TENT");
+const u8 gUnknown_085EB2A3[] = _("BLUE TENT");
+const u8 gText_SouthernIsland[] = _("SOUTHERN ISLAND");
+const u8 gText_BirthIsland[] = _("BIRTH ISLAND");
+const u8 gText_FarawayIsland[] = _("FARAWAY ISLAND");
+const u8 gText_NavelRock[] = _("NAVEL ROCK");
+const u8 gUnknown_085EB2E4[] = _("CLAW FOSSIL");
+const u8 gUnknown_085EB2F0[] = _("ROOT FOSSIL");
+const u8 gUnknown_085EB2FC[] = _("NO");
+const u8 gUnknown_085EB2FF[] = _("I’ll battle now!");
+const u8 gUnknown_085EB310[] = _("I won!");
+const u8 gUnknown_085EB317[] = _("I lost!");
+const u8 gUnknown_085EB31F[] = _("I won’t tell.");
+const u8 gUnknown_085EB32D[] = _("NORMAL TAG MATCH");
+const u8 gUnknown_085EB33E[] = _("VARIETY TAG MATCH");
+const u8 gUnknown_085EB350[] = _("UNIQUE TAG MATCH");
+const u8 gUnknown_085EB361[] = _("EXPERT TAG MATCH");
+const u8 gUnknown_085EB372[] = _("TRADE CENTER");
+const u8 gUnknown_085EB37F[] = _("COLOSSEUM");
+const u8 gUnknown_085EB389[] = _("RECORD CORNER");
+const u8 gUnknown_085EB397[] = _("BERRY CRUSH");
+const u8 gUnknown_085EB3A3[] = _("");
+const u8 gUnknown_085EB3A4[] = _("POKéMON JUMP");
+const u8 gUnknown_085EB3B1[] = _("DODRIO BERRY-PICKING");
+const u8 gUnknown_085EB3C6[] = _("BECOME LEADER");
+const u8 gUnknown_085EB3D4[] = _("JOIN GROUP");
+const u8 gUnknown_085EB3DF[] = _("TWO STYLES");
+const u8 gUnknown_085EB3EA[] = _("LV. 50");
+const u8 gUnknown_085EB3F1[] = _("OPEN LEVEL");
+const u8 gUnknown_085EB3FC[] = _("{PKMN} TYPE & NO.");
+const u8 gUnknown_085EB40A[] = _("HOLD ITEMS");
+const u8 gUnknown_085EB415[] = _("SYMBOLS");
+const u8 gUnknown_085EB41D[] = _("RECORD");
+const u8 gUnknown_085EB424[] = _("BATTLE PTS");
+const u8 gUnknown_085EB42F[] = _("TOWER INFO");
+const u8 gUnknown_085EB43A[] = _("BATTLE {PKMN}");
+const u8 gUnknown_085EB444[] = _("BATTLE SALON");
+const u8 gUnknown_085EB451[] = _("MULTI-LINK");
+const u8 gUnknown_085EB45C[] = _("BATTLE RULES");
+const u8 gUnknown_085EB469[] = _("JUDGE: MIND");
+const u8 gUnknown_085EB475[] = _("JUDGE: SKILL");
+const u8 gUnknown_085EB482[] = _("JUDGE: BODY");
+const u8 gUnknown_085EB48E[] = _("MATCHUP");
+const u8 gUnknown_085EB496[] = _("TOURNEY TREE");
+const u8 gUnknown_085EB4A3[] = _("DOUBLE KO");
+const u8 gUnknown_085EB4AD[] = _("BASIC RULES");
+const u8 gUnknown_085EB4B9[] = _("SWAP: PARTNER");
+const u8 gUnknown_085EB4C7[] = _("SWAP: NUMBER");
+const u8 gUnknown_085EB4D4[] = _("SWAP: NOTES");
+const u8 gUnknown_085EB4E0[] = _("OPEN LEVEL");
+const u8 gText_BattleBasics[] = _("BATTLE BASICS");
+const u8 gText_PokemonNature[] = _("POKéMON NATURE");
+const u8 gText_PokemonMoves[] = _("POKéMON MOVES");
+const u8 gText_Underpowered[] = _("UNDERPOWERED");
+const u8 gText_WhenInDanger[] = _("WHEN IN DANGER");
+const u8 gUnknown_085EB532[] = _("PYRAMID: POKéMON");
+const u8 gUnknown_085EB543[] = _("PYRAMID: TRAINERS");
+const u8 gUnknown_085EB555[] = _("PYRAMID: MAZE");
+const u8 gUnknown_085EB563[] = _("BATTLE BAG");
+const u8 gUnknown_085EB56E[] = _("POKéNAV AND BAG");
+const u8 gUnknown_085EB57E[] = _("HELD ITEMS");
+const u8 gUnknown_085EB589[] = _("POKéMON ORDER");
+const u8 gUnknown_085EB597[] = _("BATTLE POKéMON");
+const u8 gText_BattleTrainers[] = _("BATTLE TRAINERS");
+const u8 gUnknown_085EB5B6[] = _("GO ON");
+const u8 gUnknown_085EB5BC[] = _("RECORD");
+const u8 gUnknown_085EB5C3[] = _("REST");
+const u8 gUnknown_085EB5C8[] = _("RETIRE");
+const u8 gText_99TimesPlus[] = _("99 times +");
+const u8 gText_1MinutePlus[] = _("1 minute +");
+const u8 gText_SpaceSeconds[] = _(" seconds");
+const u8 gText_SpaceTimes[] = _(" time(s)");
+const u8 gUnknown_085EB5F7[] = _(".");
+const u8 gText_BigGuy[] = _("Big guy");
+const u8 gText_BigGirl[] = _("Big girl");
+const u8 gText_Son[] = _("son");
+const u8 gText_Daughter[] = _("daughter");
+const u8 gText_BlueFlute[] = _("BLUE FLUTE");
+const u8 gText_YellowFlute[] = _("YELLOW FLUTE");
+const u8 gText_RedFlute[] = _("RED FLUTE");
+const u8 gText_WhiteFlute[] = _("WHITE FLUTE");
+const u8 gText_BlackFlute[] = _("BLACK FLUTE");
+const u8 gText_PrettyChair[] = _("PRETTY CHAIR");
+const u8 gText_PrettyDesk[] = _("PRETTY DESK");
+const u8 gText_1F[] = _("1F");
+const u8 gText_2F[] = _("2F");
+const u8 gText_3F[] = _("3F");
+const u8 gText_4F[] = _("4F");
+const u8 gText_5F[] = _("5F");
+const u8 gText_6F[] = _("6F");
+const u8 gText_7F[] = _("7F");
+const u8 gText_8F[] = _("8F");
+const u8 gText_9F[] = _("9F");
+const u8 gText_10F[] = _("10F");
+const u8 gText_11F[] = _("11F");
+const u8 gText_B1F[] = _("B1F");
+const u8 gText_B2F[] = _("B2F");
+const u8 gText_B3F[] = _("B3F");
+const u8 gText_B4F[] = _("B4F");
+const u8 gText_Rooftop[] = _("ROOFTOP");
+const u8 gText_ElevatorNowOn[] = _("Now on:");
+const u8 gText_BP[] = _("BP");
+const u8 gText_EnergyPowder50[] = _("ENERGYPOWDER{CLEAR_TO 0x72}{SIZE 0}50");
+const u8 gText_EnergyRoot80[] = _("ENERGY ROOT{CLEAR_TO 0x72}{SIZE 0}80");
+const u8 gText_HealPowder50[] = _("HEAL POWDER{CLEAR_TO 0x72}{SIZE 0}50");
+const u8 gText_RevivalHerb300[] = _("REVIVAL HERB{CLEAR_TO 0x6C}{SIZE 0}300");
+const u8 gText_Protein1000[] = _("PROTEIN{CLEAR_TO 0x63}{SIZE 0}1,000");
+const u8 gText_Iron1000[] = _("IRON{CLEAR_TO 0x63}{SIZE 0}1,000");
+const u8 gText_Carbos1000[] = _("CARBOS{CLEAR_TO 0x63}{SIZE 0}1,000");
+const u8 gText_Calcium1000[] = _("CALCIUM{CLEAR_TO 0x63}{SIZE 0}1,000");
+const u8 gText_Zinc1000[] = _("ZINC{CLEAR_TO 0x63}{SIZE 0}1,000");
+const u8 gText_HPUp1000[] = _("HP UP{CLEAR_TO 0x63}{SIZE 0}1,000");
+const u8 gText_PPUp3000[] = _("PP UP{CLEAR_TO 0x63}{SIZE 0}3,000");
+const u8 gText_RankingHall[] = _("RANKING HALL");
+const u8 gText_ExchangeService[] = _("EXCHANGE SERVICE");
+const u8 gText_LilycoveCity[] = _("LILYCOVE CITY");
+const u8 gText_SlateportCity[] = _("SLATEPORT CITY");
+const u8 gText_CaveOfOrigin[] = _("CAVE OF ORIGIN");
+const u8 gText_MtPyre[] = _("MT. PYRE");
+const u8 gText_SkyPillar[] = _("SKY PILLAR");
+const u8 gText_DontRemember[] = _("Don’t remember");
+const u8 gText_Exit[] = _("EXIT");
+const u8 gText_ExitFromBox[] = _("Exit from the BOX?");
+const u8 gText_WhatDoYouWantToDo[] = _("What do you want to do?");
+const u8 gText_PleasePickATheme[] = _("Please pick a theme.");
+const u8 gText_PickTheWallpaper[] = _("Pick the wallpaper.");
+const u8 gText_PkmnIsSelected[] = _("{SPECIAL_F7 0x00} is selected.");
+const u8 gText_JumpToWhichBox[] = _("Jump to which BOX?");
+const u8 gText_DepositInWhichBox[] = _("Deposit in which BOX?");
+const u8 gText_PkmnWasDeposited[] = _("{SPECIAL_F7 0x00} was deposited.");
+const u8 gText_BoxIsFull2[] = _("The BOX is full.");
+const u8 gText_ReleaseThisPokemon[] = _("Release this POKéMON?");
+const u8 gText_PkmnWasReleased[] = _("{SPECIAL_F7 0x00} was released.");
+const u8 gText_ByeByePkmn[] = _("Bye-bye, {SPECIAL_F7 0x00}!");
+const u8 gText_MarkYourPkmn[] = _("Mark your POKéMON.");
+const u8 gText_ThatsYourLastPkmn[] = _("That’s your last POKéMON!");
+const u8 gText_YourPartysFull[] = _("Your party’s full!");
+const u8 gText_YoureHoldingAPkmn[] = _("You’re holding a POKéMON!");
+const u8 gText_WhichOneWillYouTake[] = _("Which one will you take?");
+const u8 gText_YouCantReleaseAnEgg[] = _("You can’t release an EGG.");
+const u8 gText_ContinueBoxOperations[] = _("Continue BOX operations?");
+const u8 gText_PkmnCameBack[] = _("{SPECIAL_F7 0x00} came back!");
+const u8 gText_WasItWorriedAboutYou[] = _("Was it worried about you?");
+const u8 gText_FourEllipsesExclamation[] = _("… … … … !");
+const u8 gText_PleaseRemoveTheMail[] = _("Please remove the MAIL.");
+const u8 gText_GiveToAPkmn[] = _("GIVE to a POKéMON?");
+const u8 gText_PlacedItemInBag[] = _("Placed item in the BAG.");
+const u8 gText_BagIsFull2[] = _("The BAG is full.");
+const u8 gText_PutItemInBag[] = _("Put this item in the BAG?");
+const u8 gText_ItemIsNowHeld[] = _("{SPECIAL_F7 0x00} is now held.");
+const u8 gText_ChangedToNewItem[] = _("Changed to {SPECIAL_F7 0x00}.");
+const u8 gText_MailCantBeStored[] = _("MAIL can’t be stored!");
+const u8 gPCText_Cancel[] = _("CANCEL");
+const u8 gPCText_Store[] = _("STORE");
+const u8 gPCText_Withdraw[] = _("WITHDRAW");
+const u8 gPCText_Shift[] = _("SHIFT");
+const u8 gPCText_Move[] = _("MOVE");
+const u8 gPCText_Place[] = _("PLACE");
+const u8 gPCText_Summary[] = _("SUMMARY");
+const u8 gPCText_Release[] = _("RELEASE");
+const u8 gPCText_Mark[] = _("MARK");
+const u8 gPCText_Name[] = _("NAME");
+const u8 gPCText_Jump[] = _("JUMP");
+const u8 gPCText_Wallpaper[] = _("WALLPAPER");
+const u8 gPCText_Take[] = _("TAKE");
+const u8 gPCText_Give[] = _("GIVE");
+const u8 gPCText_Switch[] = _("SWITCH");
+const u8 gPCText_Bag[] = _("BAG");
+const u8 gPCText_Info[] = _("INFO");
+const u8 gPCText_Scenery1[] = _("SCENERY 1");
+const u8 gPCText_Scenery2[] = _("SCENERY 2");
+const u8 gPCText_Scenery3[] = _("SCENERY 3");
+const u8 gPCText_Etcetera[] = _("ETCETERA");
+const u8 gPCText_Friends[] = _("FRIENDS");
+const u8 gPCText_Forest[] = _("FOREST");
+const u8 gPCText_City[] = _("CITY");
+const u8 gPCText_Desert[] = _("DESERT");
+const u8 gPCText_Savanna[] = _("SAVANNA");
+const u8 gPCText_Crag[] = _("CRAG");
+const u8 gPCText_Volcano[] = _("VOLCANO");
+const u8 gPCText_Snow[] = _("SNOW");
+const u8 gPCText_Cave[] = _("CAVE");
+const u8 gPCText_Beach[] = _("BEACH");
+const u8 gPCText_Seafloor[] = _("SEAFLOOR");
+const u8 gPCText_River[] = _("RIVER");
+const u8 gPCText_Sky[] = _("SKY");
+const u8 gPCText_PolkaDot[] = _("POLKA-DOT");
+const u8 gPCText_Pokecenter[] = _("POKéCENTER");
+const u8 gPCText_Machine[] = _("MACHINE");
+const u8 gPCText_Simple[] = _("SIMPLE");
+const u8 gUnknown_085EBB56[] = _("What would you like to do?");
+const u8 gText_WithdrawPokemon[] = _("WITHDRAW POKéMON");
+const u8 gText_DepositPokemon[] = _("DEPOSIT POKéMON");
+const u8 gText_MovePokemon[] = _("MOVE POKéMON");
+const u8 gText_MoveItems[] = _("MOVE ITEMS");
+const u8 gText_SeeYa[] = _("SEE YA!");
+const u8 gText_WithdrawMonDescription[] = _("Move POKéMON stored in BOXES to\nyour party.");
+const u8 gText_DepositMonDescription[] = _("Store POKéMON in your party in BOXES.");
+const u8 gText_MoveMonDescription[] = _("Organize the POKéMON in BOXES and\nin your party.");
+const u8 gText_MoveItemsDescription[] = _("Move items held by any POKéMON\nin a BOX or your party.");
+const u8 gText_SeeYaDescription[] = _("Return to the previous menu.");
+const u8 gText_JustOnePkmn[] = _("There is just one POKéMON with you.");
+const u8 gText_PartyFull[] = _("Your party is full!");
+const u8 gText_Box[] = _("BOX");
+const u8 gUnknown_085EBCC5[] = _("Check the map of the HOENN region.");
+const u8 gUnknown_085EBCE8[] = _("Check POKéMON in detail.");
+const u8 gUnknown_085EBD01[] = _("Call a registered TRAINER.");
+const u8 gUnknown_085EBD1C[] = _("Check obtained RIBBONS.");
+const u8 gUnknown_085EBD34[] = _("Put away the POKéNAV.");
+const u8 gText_NoRibbonWinners[] = _("There are no RIBBON winners.");
+const u8 gUnknown_085EBD67[] = _("No TRAINERS are registered.");
+const u8 gUnknown_085EBD83[] = _("Check party POKéMON in detail.");
+const u8 gUnknown_085EBDA2[] = _("Check all POKéMON in detail.");
+const u8 gUnknown_085EBDBF[] = _("Return to the POKéNAV menu.");
+const u8 gUnknown_085EBDDB[] = _("Find cool POKéMON.");
+const u8 gUnknown_085EBDEE[] = _("Find beautiful POKéMON.");
+const u8 gUnknown_085EBE06[] = _("Find cute POKéMON.");
+const u8 gUnknown_085EBE19[] = _("Find smart POKéMON.");
+const u8 gUnknown_085EBE2D[] = _("Find tough POKéMON.");
+const u8 gUnknown_085EBE41[] = _("Return to the CONDITION menu.");
+const u8 gText_NumberRegistered[] = _("No. registered");
+const u8 gText_NumberOfBattles[] = _("No. of battles");
+const u8 gUnknown_085EBE7D[] = _("DETAIL");
+const u8 gUnknown_085EBE84[] = _("CALL");
+const u8 gUnknown_085EBE89[] = _("EXIT");
+const u8 gUnknown_085EBE8E[] = _("Can’t call opponent here.");
+const u8 gUnknown_085EBEA8[] = _("STRATEGY");
+const u8 gUnknown_085EBEB1[] = _("TRAINER’S POKéMON");
+const u8 gUnknown_085EBEC3[] = _("SELF-INTRODUCTION");
+const u8 gUnknown_085EBED5[] = _("{CLEAR 0x80}");
+const u8 gUnknown_085EBED9[] = _("{A_BUTTON}ZOOM {B_BUTTON}CANCEL");
+const u8 gUnknown_085EBEE9[] = _("{A_BUTTON}FULL {B_BUTTON}CANCEL");
+const u8 gUnknown_085EBEF9[] = _("{A_BUTTON}CONDITION {B_BUTTON}CANCEL");
+const u8 gUnknown_085EBF0E[] = _("{A_BUTTON}MARKINGS {B_BUTTON}CANCEL");
+const u8 gUnknown_085EBF22[] = _("{A_BUTTON}SELECT MARK {B_BUTTON}CANCEL");
+const u8 gUnknown_085EBF39[] = _("{A_BUTTON}MENU {B_BUTTON}CANCEL");
+const u8 gUnknown_085EBF49[] = _("{A_BUTTON}OK {B_BUTTON}CANCEL");
+const u8 gUnknown_085EBF57[] = _("{B_BUTTON}CANCEL");
+const u8 gUnknown_085EBF60[] = _("{A_BUTTON}RIBBONS {B_BUTTON}CANCEL");
+const u8 gUnknown_085EBF73[] = _("{A_BUTTON}CHECK {B_BUTTON}CANCEL");
+const u8 gUnknown_085EBF84[] = _("{B_BUTTON}CANCEL");
+const u8 gText_NatureSlash[] = _("NATURE/");
+const u8 gText_TrainerCloseBy[] = _("That TRAINER is close by.\nTalk to the TRAINER in person!");
+const u8 gText_InParty[] = _("IN PARTY");
+const u8 gText_Number2[] = _("No. ");
+const u8 gUnknown_085EBFDC[] = _("RIBBONS");
+const u8 gUnknown_085EBFE4[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}");
+const u8 gUnknown_085EBFF6[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}");
+const u8 gUnknown_085EC008[] = _("{SPECIAL_F7 0x00}/{LV}{SPECIAL_F7 0x01}");
+const u8 gText_Unknown[] = _("UNKNOWN");
+const u8 gUnknown_085EC017[] = _("CALL");
+const u8 gUnknown_085EC01C[] = _("CHECK");
+const u8 gUnknown_085EC022[] = _("CANCEL");
+const u8 gText_NumberF700[] = _("No. {SPECIAL_F7 0x00}");
+const u8 gText_RibbonsF700[] = _("RIBBONS {SPECIAL_F7 0x00}");
+const u8 gUnknown_085EC03B[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}");
+const u8 gUnknown_085EC04F[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}");
+const u8 gUnknown_085EC063[] = _("{SPECIAL_F7 0x00}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}");
+const u8 gText_CombineFourWordsOrPhrases[] = _("Combine four words or phrases");
+const u8 gText_AndMakeYourProfile[] = _("and make your profile.");
+const u8 gText_CombineSixWordsOrPhrases[] = _("Combine six words or phrases");
+const u8 gText_AndMakeAMessage[] = _("and make a message.");
+const u8 gText_FindWordsThatDescribeYour[] = _("Find words that describe your");
+const u8 gText_FeelingsRightNow[] = _("feelings right now.");
+const u8 gUnknown_085EC104[] = _("With four phrases,");
+const u8 gText_CombineNineWordsOrPhrases[] = _("Combine nine words or phrases");
+const u8 gText_AndMakeAMessage2[] = _("and make a message.");
+const u8 gText_ChangeJustOneWordOrPhrase[] = _("Change just one word or phrase");
+const u8 gText_AndImproveTheBardsSong[] = _("and improve the BARD’s song.");
+const u8 gText_YourProfile[] = _("Your profile");
+const u8 gText_YourFeelingAtTheBattlesStart[] = _("Your feeling at the battle’s start");
+const u8 gText_WhatYouSayIfYouWin[] = _("What you say if you win a battle");
+const u8 gText_WhatYouSayIfYouLose[] = _("What you say if you lose a battle");
+const u8 gText_TheAnswer[] = _("The answer");
+const u8 gText_TheMailMessage[] = _("The MAIL message");
+const u8 gUnknown_085EC214[] = _("The MAIL salutation");
+const u8 gText_TheBardsSong2[] = _("The new song");
+const u8 gText_CombineTwoWordsOrPhrases[] = _("Combine two words or phrases");
+const u8 gText_AndMakeATrendySaying[] = _("and make a trendy saying.");
+const u8 gText_TheTrendySaying[] = _("The trendy saying");
+const u8 gText_IsAsShownOkay[] = _("is as shown. Okay?");
+const u8 gText_CombineTwoWordsOrPhrases2[] = _("Combine two words or phrases");
+const u8 gText_ToTeachHerAGoodSaying[] = _("to teach her a good saying.");
+const u8 gText_FindWordsWhichFit[] = _("Find words which fit");
+const u8 gText_TheTrainersImage[] = _("the TRAINER’s image.");
+const u8 gText_TheImage[] = _("The image:");
+const u8 gText_OutOfTheListedChoices[] = _("Out of the listed choices,");
+const u8 gText_SelectTheAnswerToTheQuiz[] = _("select the answer to the quiz!");
+const u8 gText_AndCreateAQuiz[] = _("and create a quiz!");
+const u8 gText_PickAWordOrPhraseAnd[] = _("Pick a word or phrase and");
+const u8 gText_SetTheQuizAnswer[] = _("set the quiz answer.");
+const u8 gText_TheAnswerColon[] = _("The answer:");
+const u8 gUnknown_085EC387[] = _("The quiz:");
+const u8 gText_ApprenticePhrase[] = _("Apprentice’s phrase:");
+const u8 gText_QuitEditing[] = _("Quit editing?");
+const u8 gText_StopGivingPkmnMail[] = _("Stop giving the POKéMON MAIL?");
+const u8 gText_AndFillOutTheQuestionnaire[] = _("and fill out the questionnaire.");
+const u8 gText_LetsReplyToTheInterview[] = _("Let’s reply to the interview!");
+const u8 gText_AllTextBeingEditedWill[] = _("All the text being edited will");
+const u8 gText_BeDeletedThatOkay[] = _("be deleted. Is that okay?");
+const u8 gUnknown_085EC449[] = _("Quit editing?");
+const u8 gUnknown_085EC457[] = _("The edited text will not be saved.");
+const u8 gUnknown_085EC47A[] = _("Is that okay?");
+const u8 gUnknown_085EC488[] = _("Please enter a phrase or word.");
+const u8 gUnknown_085EC4A7[] = _("The entire text can’t be deleted.");
+const u8 gText_OnlyOnePhrase[] = _("Only one phrase may be changed.");
+const u8 gText_OriginalSongWillBeUsed[] = _("The original song will be used.");
+const u8 gUnknown_085EC509[] = _("That’s trendy already!");
+const u8 gText_CombineTwoWordsOrPhrases3[] = _("Combine two words or phrases.");
+const u8 gUnknown_085EC53E[] = _("Quit giving information?");
+const u8 gUnknown_085EC557[] = _("Stop giving the POKéMON MAIL?");
+const u8 gUnknown_085EC575[] = _("Create a quiz!");
+const u8 gUnknown_085EC584[] = _("Set the answer!");
+const u8 gUnknown_085EC594[] = _("Cancel the selection?");
+const u8 gText_Profile[] = _("PROFILE");
+const u8 gText_AtTheBattlesStart[] = _("At the battle’s start:");
+const u8 gText_UponWinningABattle[] = _("Upon winning a battle:");
+const u8 gText_UponLosingABattle[] = _("Upon losing a battle:");
+const u8 gText_TheBardsSong[] = _("The BARD’s Song");
+const u8 gText_WhatsHipAndHappening[] = _("What’s hip and happening?");
+const u8 gText_Interview[] = _("Interview");
+const u8 gText_GoodSaying[] = _("Good saying");
+const u8 gText_FansQuestion[] = _("Fan’s question");
+const u8 gUnknown_085EC645[] = _("クイズの こたえは?");
+const u8 gText_ApprenticesPhrase[] = _("Apprentice’s phrase");
+const u8 gText_Questionnaire[] = _("QUESTIONNAIRE");
+const u8 gText_YouCannotQuitHere[] = _("You cannot quit here.");
+const u8 gText_SectionMustBeCompleted[] = _("This section must be completed.");
+const u8 gText_F700sQuiz[] = _("{SPECIAL_F7 0x00}’s quiz");
+const u8 gText_Lady[] = _("Lady");
+const u8 gText_AfterYouHaveReadTheQuiz[] = _("After you have read the quiz");
+const u8 gText_QuestionPressTheAButton[] = _("question, press the A Button.");
+const u8 gText_TheQuizAnswerIs[] = _("The quiz answer is?");
+const u8 gText_LikeToQuitQuiz[] = _("Would you like to quit this quiz");
+const u8 gText_ChallengeQuestionMark[] = _("challenge?");
+const u8 gText_IsThisQuizOK[] = _("Is this quiz OK?");
+const u8 gText_CreateAQuiz[] = _("Create a quiz!");
+const u8 gText_SelectTheAnswer[] = _("Select the answer!");
+const u8 gText_LyricsCantBeDeleted[] = _("The lyrics can’t be deleted.");
+const u8 gText_PokemonLeague[] = _("POKéMON LEAGUE");
+const u8 gText_PokemonCenter[] = _("POKéMON CENTER");
+const u8 gText_GetsAPokeBlockQuestion[] = _(" gets a {POKEBLOCK}?");
+const u8 gText_Coolness[] = _("Coolness ");
+const u8 gText_Beauty3[] = _("Beauty ");
+const u8 gText_Cuteness[] = _("Cuteness ");
+const u8 gText_Smartness[] = _("Smartness ");
+const u8 gText_Toughness[] = _("Toughness ");
+const u8 gText_WasEnhanced[] = _("was enhanced!");
+const u8 gText_NothingChanged[] = _("Nothing changed!");
+const u8 gText_WontEatAnymore[] = _("It won’t eat anymore…");
+const u8 gText_SaveFailedCheckingBackup[] = _("Save failed. Checking the backup\nmemory… Please wait.\n{COLOR RED}“Time required: about 1 minute”");
+const u8 gText_BackupMemoryDamaged[] = _("The backup memory is damaged, or\nthe internal battery has run dry.\nYou can still play, but not save.");
+const u8 gText_GamePlayCannotBeContinued[] = _("{COLOR RED}“Game play cannot be continued.\nReturning to the title screen…”");
+const u8 gText_CheckCompleted[] = _("Check completed.\nAttempting to save again.\nPlease wait.");
+const u8 gText_SaveCompleteGameCannotContinue[] = _("Save completed.\n{COLOR RED}“Game play cannot be continued.\nReturning to the title screen.”");
+const u8 gText_SaveCompletePressA[] = _("Save completed.\n{COLOR RED}“Please press the A Button.”");
+const u8 gText_Ferry[] = _("FERRY");
+const u8 gText_SecretBase[] = _("SECRET BASE");
+const u8 gText_Hideout[] = _("HIDEOUT");
+const u8 gText_ResetRTCConfirmCancel[] = _("Reset RTC?\nA: Confirm, B: Cancel");
+const u8 gText_PresentTime[] = _("Present time in game");
+const u8 gText_PreviousTime[] = _("Previous time in game");
+const u8 gText_PleaseResetTime[] = _("Please reset the time.");
+const u8 gText_ClockHasBeenReset[] = _("The clock has been reset.\nData will be saved. Please wait.");
+const u8 gText_SaveCompleted[] = _("Save completed.");
+const u8 gText_SaveFailed[] = _("Save failed…");
+const u8 gText_NoSaveFileCantSetTime[] = _("There is no save file, so the time\ncan’t be set.");
+const u8 gText_InGameClockUsable[] = _("The in-game clock adjustment system\nis now useable.");
+const u8 gText_Slots[] = _("SLOTS");
+const u8 gText_Roulette[] = _("ROULETTE");
+const u8 gText_Good[] = _("Good");
+const u8 gText_VeryGood[] = _("Very good");
+const u8 gText_Excellent[] = _("Excellent");
+const u8 gText_SoSo[] = _("So-so");
+const u8 gText_Bad[] = _("Bad");
+const u8 gText_TheWorst[] = _("The worst");
+const u8 gText_Spicy2[] = _("spicy");
+const u8 gText_Dry2[] = _("dry");
+const u8 gText_Sweet2[] = _("sweet");
+const u8 gText_Bitter2[] = _("bitter");
+const u8 gText_Sour2[] = _("sour");
+const u8 gText_Single[] = _("SINGLE");
+const u8 gText_Double[] = _("DOUBLE");
+const u8 gText_Jackpot[] = _("jackpot");
+const u8 gText_First[] = _("first");
+const u8 gText_Second[] = _("second");
+const u8 gText_Third[] = _("third");
+const u8 gText_0Pts[] = _("0 pts");
+const u8 gText_10Pts[] = _("10 pts");
+const u8 gText_20Pts[] = _("20 pts");
+const u8 gText_30Pts[] = _("30 pts");
+const u8 gText_40Pts[] = _("40 pts");
+const u8 gText_50Pts[] = _("50 pts");
+const u8 gText_60Pts[] = _("60 pts");
+const u8 gText_70Pts[] = _("70 pts");
+const u8 gText_80Pts[] = _("80 pts");
+const u8 gText_90Pts[] = _("90 pts");
+const u8 gText_100Pts[] = _("100 pts");
+const u8 gText_QuestionMark[] = _("?");
+const u8 gText_KissPoster16BP[] = _("KISS POSTER{CLEAR_TO 0x5E}16BP");
+const u8 gText_KissCushion32BP[] = _("KISS CUSHION{CLEAR_TO 0x5E}32BP");
+const u8 gText_SmoochumDoll32BP[] = _("SMOOCHUM DOLL{CLEAR_TO 0x5E}32BP");
+const u8 gText_TogepiDoll48BP[] = _("TOGEPI DOLL{CLEAR_TO 0x5E}48BP");
+const u8 gText_MeowthDoll48BP[] = _("MEOWTH DOLL{CLEAR_TO 0x5E}48BP");
+const u8 gText_ClefairyDoll48BP[] = _("CLEFAIRY DOLL{CLEAR_TO 0x5E}48BP");
+const u8 gText_DittoDoll48BP[] = _("DITTO DOLL{CLEAR_TO 0x5E}48BP");
+const u8 gText_CyndaquilDoll80BP[] = _("CYNDAQUIL DOLL{CLEAR_TO 0x5E}80BP");
+const u8 gText_ChikoritaDoll80BP[] = _("CHIKORITA DOLL{CLEAR_TO 0x5E}80BP");
+const u8 gText_TotodileDoll80BP[] = _("TOTODILE DOLL{CLEAR_TO 0x5E}80BP");
+const u8 gText_LaprasDoll128BP[] = _("LAPRAS DOLL{CLEAR_TO 0x58}128BP");
+const u8 gText_SnorlaxDoll128BP[] = _("SNORLAX DOLL{CLEAR_TO 0x58}128BP");
+const u8 gText_VenusaurDoll256BP[] = _("VENUSAUR DOLL{CLEAR_TO 0x58}256BP");
+const u8 gText_CharizardDoll256BP[] = _("CHARIZARD DOLL{CLEAR_TO 0x58}256BP");
+const u8 gText_BlastoiseDoll256BP[] = _("BLASTOISE DOLL{CLEAR_TO 0x58}256BP");
+const u8 gText_Protein1BP[] = _("PROTEIN{CLEAR_TO 0x64}1BP");
+const u8 gText_Calcium1BP[] = _("CALCIUM{CLEAR_TO 0x64}1BP");
+const u8 gText_Iron1BP[] = _("IRON{CLEAR_TO 0x64}1BP");
+const u8 gText_Zinc1BP[] = _("ZINC{CLEAR_TO 0x64}1BP");
+const u8 gText_Carbos1BP[] = _("CARBOS{CLEAR_TO 0x64}1BP");
+const u8 gText_HpUp1BP[] = _("HP UP{CLEAR_TO 0x64}1BP");
+const u8 gText_Leftovers48BP[] = _("LEFTOVERS{CLEAR_TO 0x5E}48BP");
+const u8 gText_WhiteHerb48BP[] = _("WHITE HERB{CLEAR_TO 0x5E}48BP");
+const u8 gText_QuickClaw48BP[] = _("QUICK CLAW{CLEAR_TO 0x5E}48BP");
+const u8 gText_MentalHerb48BP[] = _("MENTAL HERB{CLEAR_TO 0x5E}48BP");
+const u8 gText_BrightPowder64BP[] = _("BRIGHTPOWDER{CLEAR_TO 0x5E}64BP");
+const u8 gText_ChoiceBand64BP[] = _("CHOICE BAND{CLEAR_TO 0x5E}64BP");
+const u8 gText_KingsRock64BP[] = _("KING’S ROCK{CLEAR_TO 0x5E}64BP");
+const u8 gText_FocusBand64BP[] = _("FOCUS BAND{CLEAR_TO 0x5E}64BP");
+const u8 gText_ScopeLens64BP[] = _("SCOPE LENS{CLEAR_TO 0x5E}64BP");
+const u8 gText_Softboiled16BP[] = _("SOFTBOILED{CLEAR_TO 0x4E}16BP");
+const u8 gText_SeismicToss24BP[] = _("SEISMIC TOSS{CLEAR_TO 0x4E}24BP");
+const u8 gText_DreamEater24BP[] = _("DREAM EATER{CLEAR_TO 0x4E}24BP");
+const u8 gText_MegaPunch24BP[] = _("MEGA PUNCH{CLEAR_TO 0x4E}24BP");
+const u8 gText_MegaKick48BP[] = _("MEGA KICK{CLEAR_TO 0x4E}48BP");
+const u8 gText_BodySlam48BP[] = _("BODY SLAM{CLEAR_TO 0x4E}48BP");
+const u8 gText_RockSlide48BP[] = _("ROCK SLIDE{CLEAR_TO 0x4E}48BP");
+const u8 gText_Counter48BP[] = _("COUNTER{CLEAR_TO 0x4E}48BP");
+const u8 gText_ThunderWave48BP[] = _("THUNDER WAVE{CLEAR_TO 0x4E}48BP");
+const u8 gText_SwordsDance48BP[] = _("SWORDS DANCE{CLEAR_TO 0x4E}48BP");
+const u8 gText_DefenseCurl16BP[] = _("DEFENSE CURL{CLEAR_TO 0x4E}16BP");
+const u8 gText_Snore24BP[] = _("SNORE{CLEAR_TO 0x4E}24BP");
+const u8 gText_MudSlap24BP[] = _("MUD-SLAP{CLEAR_TO 0x4E}24BP");
+const u8 gText_Swift24BP[] = _("SWIFT{CLEAR_TO 0x4E}24BP");
+const u8 gText_IcyWind24BP[] = _("ICY WIND{CLEAR_TO 0x4E}24BP");
+const u8 gText_Endure48BP[] = _("ENDURE{CLEAR_TO 0x4E}48BP");
+const u8 gText_PsychUp48BP[] = _("PSYCH UP{CLEAR_TO 0x4E}48BP");
+const u8 gText_IcePunch48BP[] = _("ICE PUNCH{CLEAR_TO 0x4E}48BP");
+const u8 gText_ThunderPunch48BP[] = _("THUNDERPUNCH{CLEAR_TO 0x4E}48BP");
+const u8 gText_FirePunch48BP[] = _("FIRE PUNCH{CLEAR_TO 0x4E}48BP");
+const u8 gText_PkmnFainted3[] = _("{STR_VAR_1} fainted…\p\n");
+const u8 gText_Marco[] = _("MARCO");
+const u8 gText_TrainerCardName[] = _("NAME: ");
+const u8 gText_TrainerCardIDNo[] = _("IDNo.");
+const u8 gText_TrainerCardMoney[] = _("MONEY");
+const u8 gUnknown_085ECF84[] = _("¥");
+const u8 gText_TrainerCardPokedex[] = _("POKéDEX");
+const u8 gText_EmptyString6[] = _("");
+const u8 gText_Colon2[] = _(":");
+const u8 gUnknown_085ECF91[] = _(" points");
+const u8 gText_TrainerCardTime[] = _("TIME");
+const u8 gUnknown_085ECF9E[] = _("ゲ-ムポイント");
+const u8 gText_Var1sTrainerCard[] = _("{STR_VAR_1}’s TRAINER CARD");
+const u8 gText_HallOfFameDebut[] = _("HALL OF FAME DEBUT ");
+const u8 gText_LinkBattles[] = _("LINK BATTLES");
+const u8 gText_LinkCableBattles[] = _("LINK CABLE BATTLES");
+const u8 gText_WinsLosses[] = _("W:{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY} L:{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_2}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}");
+const u8 gText_PokemonTrades[] = _("POKéMON TRADES");
+const u8 gText_UnionTradesAndBattles[] = _("UNION TRADES & BATTLES");
+const u8 gText_BerryCrush[] = _("BERRY CRUSH");
+const u8 gText_WaitingTrainerFinishReading[] = _("Waiting for the other TRAINER to\nfinish reading your TRAINER CARD.");
+const u8 gText_PokeblocksWithFriends[] = _("{POKEBLOCK}S W/FRIENDS");
+const u8 gText_Var1DarkGreyShadowLightGrey[] = _("{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}");
+const u8 gText_WonContestsWFriends[] = _("WON CONTESTS W/FRIENDS");
+const u8 gText_BattlePtsWon[] = _("BATTLE POINTS WON");
+const u8 gText_Var1DarkLightGreyBP[] = _("{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}BP");
+const u8 gText_BattleTower[] = _("BATTLE TOWER");
+const u8 gText_WSlashStraightSlash[] = _("W/{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY} STRAIGHT/{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_2}");
+const u8 gText_BattleTower2[] = _("BATTLE TOWER");
+const u8 gText_BattleDome[] = _("BATTLE DOME");
+const u8 gText_BattlePalace[] = _("BATTLE PALACE");
+const u8 gText_BattleFactory[] = _("BATTLE FACTORY");
+const u8 gText_BattleArena[] = _("BATTLE ARENA");
+const u8 gText_BattlePike[] = _("BATTLE PIKE");
+const u8 gText_BattlePyramid[] = _("BATTLE PYRAMID");
+
+asm(".align 2");
+const u8 gUnknown_085ED164[] = _("{STR_VAR_1} SINGLE");
+
+asm(".align 2");
+const u8 gUnknown_085ED170[] = _("{STR_VAR_1} DOUBLE");
+
+asm(".align 2");
+const u8 gUnknown_085ED17C[] = _("{STR_VAR_1} MULTI");
+
+asm(".align 2");
+const u8 gUnknown_085ED188[] = _("{STR_VAR_1} LINK");
+
+asm(".align 2");
+const u8 gUnknown_085ED190[] = _("{STR_VAR_1}");
+const u8 gText_Give[] = _("Give");
+const u8 gText_NoNeed[] = _("No need");
+const u8 gText_ColorLightShadowDarkGrey[] = _("{COLOR LIGHT_GREY}{SHADOW DARK_GREY}");
+const u8 gText_ColorBlue[] = _("{COLOR BLUE}");
+const u8 gText_ColorTransparent[] = _("{HIGHLIGHT TRANSPARENT}{COLOR TRANSPARENT}");
+const u8 gText_CDot[] = _("C.");
+const u8 gText_BDot[] = _("B.");
+const u8 gText_AnnouncingResults[] = _("Announcing the results!");
+const u8 gText_PreliminaryResults[] = _("The preliminary results!");
+const u8 gText_Round2Results[] = _("Round 2 results!");
+const u8 gText_Var1sVar2Won[] = _("{STR_VAR_1}’s {STR_VAR_2} won!");
+const u8 gText_CommunicationStandby[] = _("Communication standby…");
+const u8 gText_ColorDarkGrey[] = _("{COLOR DARK_GREY}");
+const u8 gUnknown_085ED222[] = _("{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR6 WHITE DYNAMIC_COLOR5}");
+const u8 gText_HighlightDarkGrey[] = _("{HIGHLIGHT DARK_GREY}");
+const u8 gUnknown_085ED22C[] = _(" ");
+const u8 gText_DynColor2Male[] = _("{COLOR DYNAMIC_COLOR2}♂");
+const u8 gText_DynColor1Female[] = _("{COLOR DYNAMIC_COLOR1}♀");
+const u8 gText_DynColor2[] = _("{COLOR DYNAMIC_COLOR2}");
+const u8 gText_Upper[] = _("UPPER");
+const u8 gText_Lower[] = _("lower");
+const u8 gText_Others[] = _("OTHERS");
+const u8 gText_Symbols[] = _("SYMBOLS");
+const u8 gText_Register2[] = _("REGISTER");
+const u8 gText_Exit2[] = _("EXIT");
+const u8 gText_QuitChatting[] = _("Quit chatting?");
+const u8 gText_RegisterTextWhere[] = _("Register text where?");
+const u8 gText_RegisterTextHere[] = _("Register text here?");
+const u8 gText_InputText[] = _("Input text.");
+const u8 gText_F700JoinedChat[] = _("{SPECIAL_F7 0x00} joined the chat!");
+const u8 gText_F700LeftChat[] = _("{SPECIAL_F7 0x00} left the chat.");
+const u8 gUnknown_085ED2CF[] = _("{SPECIAL_F7 0x00}の{SPECIAL_F7 0x01}ひきめ:");
+const u8 gUnknown_085ED2D9[] = _("{SPECIAL_F7 0x00}の{SPECIAL_F7 0x01}ひきめは いません");
+const u8 gText_ExitingChat[] = _("Exiting the chat…");
+const u8 gText_LeaderLeftEndingChat[] = _("The LEADER, {SPECIAL_F7 0x00}, has\nleft, ending the chat.");
+const u8 gText_RegisteredTextChanged[] = _("The registered text has been changed.\nIs it okay to save the game?");
+const u8 gText_AlreadySavedFile_Unused[] = _("There is already a saved file.\nIs it okay to overwrite it?");
+const u8 gText_SavingDontTurnOff_Unused[] = _("SAVING…\nDON’T TURN OFF THE POWER.");
+const u8 gText_PlayerSavedGame_Unused[] = _("{SPECIAL_F7 0x00} saved the game.");
+const u8 gText_IfLeaderLeavesChatEnds[] = _("If the LEADER leaves, the chat\nwill end. Is that okay?");
+const u8 gText_Hello[] = _("HELLO");
+const u8 gText_Pokemon2[] = _("POKéMON");
+const u8 gText_Trade[] = _("TRADE");
+const u8 gText_Battle[] = _("BATTLE");
+const u8 gText_Lets[] = _("LET’S");
+const u8 gText_Ok[] = _("OK!");
+const u8 gText_Sorry[] = _("SORRY");
+const u8 gText_YayUnkF9F9[] = _("YAY{EMOJI_BIGSMILE}");
+const u8 gText_ThankYou[] = _("THANK YOU");
+const u8 gText_ByeBye[] = _("BYE-BYE!");
+const u8 gMatchCallStevenStrategyText[] = _("Attack the weak points!");
+const u8 gMatchCall_StevenTrainersPokemonText[] = _("Ultimate STEEL POKéMON.");
+const u8 gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle[] = _("I’d climb even waterfalls");
+const u8 gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle[] = _("to find a rare stone!");
+const u8 gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle[] = _("I’m the strongest and most");
+const u8 gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle[] = _("energetic after all!");
+const u8 gMatchCall_BrendanStrategyText[] = _("Battle with knowledge!");
+const u8 gMatchCall_BrendanTrainersPokemonText[] = _("I will use various POKéMON.");
+const u8 gMatchCall_BrendanSelfIntroductionText_Line1[] = _("I’ll be a better POKéMON");
+const u8 gMatchCall_BrendanSelfIntroductionText_Line2[] = _("prof than my father is!");
+const u8 gMatchCall_MayStrategyText[] = _("I’m not so good at battles.");
+const u8 gMatchCall_MayTrainersPokemonText[] = _("I’ll use any POKéMON!");
+const u8 gMatchCall_MaySelfIntroductionText_Line1[] = _("My POKéMON and I help");
+const u8 gMatchCall_MaySelfIntroductionText_Line2[] = _("my father’s research.");
+const u8 gText_HatchedFromEgg[] = _("{STR_VAR_1} hatched from the EGG!");
+const u8 gText_NickHatchPrompt[] = _("Would you like to nickname the newly\nhatched {STR_VAR_1}?");
+
+asm(".align 2");
+const u8 gText_ReadyToBerryCrush[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p");
+
+asm(".align 2");
+const u8 gText_WaitForAllChooseBerry[] = _("Please wait while each member\nchooses a BERRY.");
+
+asm(".align 2");
+const u8 gText_EndedWithXUnitsPowder[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_FANFA1}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p");
+
+asm(".align 2");
+const u8 gText_RecordingGameResults[] = _("Recording your game results in the\nsave file.\lPlease wait.");
+
+asm(".align 2");
+const u8 gText_PlayBerryCrushAgain[] = _("Want to play BERRY CRUSH again?");
+
+asm(".align 2");
+const u8 gText_YouHaveNoBerries[] = _("You have no BERRIES.\nThe game will be canceled.");
+
+asm(".align 2");
+const u8 gText_MemberDroppedOut[] = _("A member dropped out.\nThe game will be canceled.");
+
+asm(".align 2");
+const u8 gText_TimesUpNoGoodPowder[] = _("Time’s up.\pGood BERRY POWDER could not be\nmade…\p");
+
+asm(".align 2");
+const u8 gText_CommunicationStandby2[] = _("Communication standby…");
+
+asm(".align 2");
+const u8 gText_1DotBlueF700[] = _("1. {COLOR BLUE}{SHADOW LIGHT_BLUE}{SPECIAL_F7 0x00}");
+
+asm(".align 2");
+const u8 gText_1DotF700[] = _("1. {SPECIAL_F7 0x00}");
+
+asm(".align 2");
+const u8 gText_SpaceTimes2[] = _(" time(s)");
+
+asm(".align 2");
+const u8 gText_XDotY[] = _("{STR_VAR_1}.{STR_VAR_2}");
+
+asm(".align 2");
+const u8 gText_Var1Berry[] = _("{STR_VAR_1} BERRY");
+
+asm(".align 2");
+const u8 gText_TimeColon[] = _("Time:");
+
+asm(".align 2");
+const u8 gText_PressingSpeed[] = _("Pressing Speed:");
+
+asm(".align 2");
+const u8 gText_Silkiness[] = _("Silkiness:");
+
+asm(".align 2");
+const u8 gText_StrVar1[] = _("{STR_VAR_1}");
+
+asm(".align 2");
+const u8 gText_SpaceMin[] = _(" min. ");
+
+asm(".align 2");
+const u8 gText_XDotY2[] = _("{STR_VAR_1}.{STR_VAR_2}");
+
+asm(".align 2");
+const u8 gText_SpaceSec[] = _(" sec.");
+
+asm(".align 2");
+const u8 gText_XDotY3[] = _("{STR_VAR_1}.{STR_VAR_2}");
+
+asm(".align 2");
+const u8 gText_TimesPerSec[] = _(" Times/sec.");
+
+asm(".align 2");
+const u8 gText_Var1Percent[] = _("{STR_VAR_1}%");
+
+asm(".align 2");
+const u8 gText_PressesRankings[] = _("No. of Presses Rankings");
+
+asm(".align 2");
+const u8 gText_CrushingResults[] = _("Crushing Results");
+
+asm(".align 2");
+const u8 gText_NeatnessRankings[] = _("Neatness Rankings");
+
+asm(".align 2");
+const u8 gText_CoopRankings[] = _("Cooperative Rankings");
+
+asm(".align 2");
+const u8 gText_PressingPowerRankings[] = _("Pressing-Power Rankings");
+const u8 gText_BerryCrush2[] = _("BERRY CRUSH");
+const u8 gText_PressingSpeedRankings[] = _("Pressing-Speed Rankings");
+const u8 gText_Var1Players[] = _("{STR_VAR_1} PLAYERS");
+const u8 gText_SymbolsEarned[] = _("Symbols Earned");
+const u8 gText_BattleRecord[] = _("Battle Record");
+const u8 gText_BattlePoints[] = _("Battle Points");
+const u8 gUnknown_085ED92A[] = _("CANCEL");
+const u8 gUnknown_085ED931[] = _("");
+const u8 gUnknown_085ED932[] = _("Check BATTLE FRONTIER MAP.");
+const u8 gUnknown_085ED94D[] = _("Check TRAINER CARD.");
+const u8 gUnknown_085ED961[] = _("View recorded battle.");
+const u8 gUnknown_085ED977[] = _("Put away the FRONTIER PASS.");
+const u8 gUnknown_085ED993[] = _("Your current Battle Points.");
+const u8 gUnknown_085ED9AF[] = _("Your collected Symbols.");
+const u8 gUnknown_085ED9C7[] = _("Battle Tower - Ability Symbol");
+const u8 gUnknown_085ED9E5[] = _("Battle Dome - Tactics Symbol");
+const u8 gUnknown_085EDA02[] = _("Battle Palace - Spirits Symbol");
+const u8 gUnknown_085EDA21[] = _("Battle Arena - Guts Symbol");
+const u8 gUnknown_085EDA3C[] = _("Battle Factory - Knowledge Symbol");
+const u8 gUnknown_085EDA5E[] = _("Battle Pike - Luck Symbol");
+const u8 gUnknown_085EDA78[] = _("Battle Pyramid - Brave Symbol");
+const u8 gUnknown_085EDA96[] = _("There is no Battle Record.");
+const u8 gUnknown_085EDAB1[] = _("BATTLE TOWER");
+const u8 gUnknown_085EDABE[] = _("BATTLE DOME");
+const u8 gUnknown_085EDACA[] = _("BATTLE PALACE");
+const u8 gUnknown_085EDAD8[] = _("BATTLE ARENA");
+const u8 gUnknown_085EDAE5[] = _("BATTLE FACTORY");
+const u8 gUnknown_085EDAF4[] = _("BATTLE PIKE");
+const u8 gUnknown_085EDB00[] = _("BATTLE PYRAMID");
+const u8 gUnknown_085EDB0F[] = _("KO opponents and aim for the top!\nYour ability will be tested.");
+const u8 gUnknown_085EDB4E[] = _("Keep winning at the tournament!\nYour tactics will be tested.");
+const u8 gUnknown_085EDB8B[] = _("Watch your POKéMON battle!\nYour spirit will be tested.");
+const u8 gUnknown_085EDBC2[] = _("Win battles with teamed-up POKéMON!\nYour guts will be tested.");
+const u8 gUnknown_085EDC00[] = _("Aim for victory using rental POKéMON!\nYour knowledge will be tested.");
+const u8 gUnknown_085EDC45[] = _("Select one of three paths to battle!\nYour luck will be tested.");
+const u8 gUnknown_085EDC84[] = _("Aim for the top with exploration!\nYour bravery will be tested.");
+const u8 gText_ContinueMenuPlayer[] = _("PLAYER");
+const u8 gText_ContinueMenuTime[] = _("TIME");
+const u8 gText_ContinueMenuPokedex[] = _("POKéDEX");
+const u8 gText_ContinueMenuBadges[] = _("BADGES");
+const u8 gText_Powder[] = _("POWDER");
+const u8 gText_BerryPickingRecords[] = _("DODRIO BERRY-PICKING RECORDS");
+const u8 gText_BerriesPicked[] = _("BERRIES picked:");
+const u8 gText_BestScore[] = _("Best score:");
+const u8 gText_BerriesInRowFivePlayers[] = _("BERRIES picked in a row with\nfive players:");
+const u8 gText_BerryPickingResults[] = _("Announcing BERRY-PICKING results!");
+const u8 gText_10P30P50P50P[] = _("{CLEAR_TO 0x03}10P{CLEAR_TO 0x2B}30P{CLEAR_TO 0x53}50P{CLEAR_TO 0x77}{EMOJI_MINUS}50P");
+const u8 gText_AnnouncingRankings[] = _("Announcing rankings!");
+const u8 gText_AnnouncingPrizes[] = _("Announcing prizes!");
+const u8 gText_1Colon[] = _("1:");
+const u8 gText_2Colon[] = _("2:");
+const u8 gText_3Colon[] = _("3:");
+const u8 gText_4Colon[] = _("4:");
+const u8 gText_5Colon[] = _("5:");
+const u8 gText_FirstPlacePrize[] = _("The first-place winner gets\nthis {SPECIAL_F7 0x00}!");
+const u8 gText_CantHoldAnyMore[] = _("You can’t hold any more!");
+const u8 gText_FilledStorageSpace[] = _("It filled its storage space.");
+const u8 gText_WantToPlayAgain[] = _("Want to play again?");
+const u8 gText_SomeoneDroppedOut[] = _("Somebody dropped out.\nThe link will be canceled.");
+const u8 gText_SpacePoints[] = _(" points");
+const u8 gText_CommunicationStandby3[] = _("Communication standby…");
+const u8 gText_SpacePoints2[] = _(" points");
+const u8 gText_SpaceTimes3[] = _(" time(s)");
+const u8 gText_PkmnJumpRecords[] = _("POKéMON JUMP RECORDS");
+const u8 gText_JumpsInARow[] = _("Jumps in a row:");
+const u8 gText_BestScore2[] = _("Best score:");
+const u8 gText_ExcellentsInARow[] = _("EXCELLENTS in a row:");
+const u8 gText_AwesomeWonF701F700[] = _("Awesome score! You’ve\nwon {SPECIAL_F7 0x01} {SPECIAL_F7 0x00}!");
+const u8 gText_FilledStorageSpace2[] = _("It filled its storage space.");
+const u8 gText_CantHoldMore[] = _("You can’t hold any more!");
+const u8 gText_WantToPlayAgain2[] = _("Want to play again?");
+const u8 gText_SomeoneDroppedOut2[] = _("Somebody dropped out.\nThe link will be canceled.");
+const u8 gText_CommunicationStandby4[] = _("Communication standby…");
+const u8 gText_LinkContestResults[] = _("{PLAYER}’s Link Contest Results");
+const u8 gText_1st[] = _("1st");
+const u8 gText_2nd[] = _("2nd");
+const u8 gText_3rd[] = _("3rd");
+const u8 gText_4th[] = _("4th");
+const u8 gText_Friend[] = _("Friend");
+const u8 gUnknown_085EDFB7[] = _("POKeMON");
+const u8 gJPText_MysteryGift[] = _("ふしぎなもらいもの");
+const u8 gJPText_DecideStop[] = _("{A_BUTTON}けってい {B_BUTTON}やめる");
+const u8 gUnknown_085EDFD6[] = _("カードeリーダー{PLUS} で\nふしぎなもらいものを よみこみます");
+const u8 gUnknown_085EDFF5[] = _("カードeリーダー{PLUS}の メニューから\n‘つうしん’を えらび");
+const u8 gUnknown_085EE014[] = _("‘ゲームボーイアドバンスとつうしん’\nを せんたく してください");
+const u8 gUnknown_085EE035[] = _("カードeリーダー{PLUS}の ‘つうしん’を\nえらんで Aボタンを おしてください");
+const u8 gUnknown_085EE05C[] = _("せつぞくが まちがっています");
+const u8 gUnknown_085EE06B[] = _("カードの よみこみを\nちゅうし しました");
+const u8 gUnknown_085EE080[] = _("カードeリーダー{PLUS}と\nつうしん できません");
+const u8 gUnknown_085EE097[] = _("つうしん ちゅう です");
+const u8 gUnknown_085EE0A3[] = _("つうしん エラーです\nせつぞくを たしかめて ください");
+const u8 gUnknown_085EE0BF[] = _("つうしん エラーです\nはじめから やりなおして ください");
+const u8 gUnknown_085EE0DC[] = _("カードeリーダー{PLUS} に\nカードを よみこませて ください");
+const u8 gUnknown_085EE0FA[] = _("つうしん しゅうりょう!");
+const u8 gUnknown_085EE107[] = _("あらたな トレーナーが\nホウエンに やってきた!");
+const u8 gUnknown_085EE120[] = _("しばらく おまちください");
+const u8 gUnknown_085EE12D[] = _("かきこみ エラー です\nデータが ほぞん できませんでした");
+const u8 gUnknown_085EE14B[] = _("RED");
+const u8 gUnknown_085EE14F[] = _("BLUE");
+const u8 gUnknown_085EE154[] = _("---");
+const u8 gText_SingleBattleRoomResults[] = _("{PLAYER}’s Single Battle Room Results");
+const u8 gText_DoubleBattleRoomResults[] = _("{PLAYER}’s Double Battle Room Results");
+const u8 gText_MultiBattleRoomResults[] = _("{PLAYER}’s Multi Battle Room Results");
+const u8 gText_LinkMultiBattleRoomResults[] = _("{PLAYER}’s Link Multi Battle Room Results");
+const u8 gText_SingleBattleTourneyResults[] = _("{PLAYER}’s Single Battle Tourney Results");
+const u8 gText_DoubleBattleTourneyResults[] = _("{PLAYER}’s Double Battle Tourney Results");
+const u8 gText_SingleBattleHallResults[] = _("{PLAYER}’s Single Battle Hall Results");
+const u8 gText_DoubleBattleHallResults[] = _("{PLAYER}’s Double Battle Hall Results");
+const u8 gText_BattleChoiceResults[] = _("{PLAYER}’s Battle Choice Results");
+const u8 gText_SetKOTourneyResults[] = _("{PLAYER}’s Set KO Tourney Results");
+const u8 gText_BattleSwapSingleResults[] = _("{PLAYER}’s Battle Swap Single Results");
+const u8 gText_BattleSwapDoubleResults[] = _("{PLAYER}’s Battle Swap Double Results");
+const u8 gText_BattleQuestResults[] = _("{PLAYER}’s Battle Quest Results");
+const u8 gText_Lv502[] = _("LV. 50");
+const u8 gText_OpenLv[] = _("OPEN LV.");
+const u8 gText_WinStreak[] = _("Win streak: {STR_VAR_1}");
+const u8 gText_Current[] = _("CURRENT");
+const u8 gText_Record[] = _("RECORD");
+const u8 gText_Prev[] = _("PREV.");
+const u8 gText_RentalSwap[] = _("Rental/Swap");
+const u8 gText_Total[] = _("Total");
+const u8 gText_ClearStreak[] = _("Clear streak: {STR_VAR_1}");
+const u8 gText_Championships[] = _("Championships: {STR_VAR_1}");
+const u8 gText_RoomsCleared[] = _("Rooms cleared: {STR_VAR_1}");
+const u8 gText_TimesCleared[] = _("Times cleared:{CLEAR 0x05}{STR_VAR_1}");
+const u8 gText_KOsInARow[] = _("KOs in a row: {STR_VAR_1}");
+const u8 gText_TimesVar1[] = _("Times: {STR_VAR_1}");
+const u8 gText_FloorsCleared[] = _("Floors cleared: {STR_VAR_1}");
+
+asm(".align 2");
+const u8 gUnknown_085EE3B0[] = _("LV. 50");
+
+asm(".align 2");
+const u8 gUnknown_085EE3B8[] = _("OPEN LEVEL");
+
+asm(".align 2");
+const u8 gUnknown_085EE3C4[] = _("Win streak: {STR_VAR_2}");
+
+asm(".align 2");
+const u8 gUnknown_085EE3D4[] = _("Clear streak: {STR_VAR_2}");
+
+asm(".align 2");
+const u8 gUnknown_085EE3E8[] = _("Rooms cleared: {STR_VAR_2}");
+
+asm(".align 2");
+const u8 gUnknown_085EE3FC[] = _("KOs in a row: {STR_VAR_2}");
+
+asm(".align 2");
+const u8 gUnknown_085EE410[] = _("Floors cleared: {STR_VAR_2}");
+
+asm(".align 2");
+const u8 gText_1Dot[] = _("1.");
+const u8 gUnknown_085EE427[] = _("2.");
+const u8 gUnknown_085EE42A[] = _("3.");
+const u8 gText_SavingDontTurnOff2[] = _("SAVING…\nDON’T TURN OFF THE POWER.");
+const u8 gText_BlenderMaxSpeedRecord[] = _("BERRY BLENDER\nMAXIMUM SPEED RECORD!");
+const u8 gText_234Players[] = _("2 PLAYERS\n3 PLAYERS\n4 PLAYERS");
+const u8 gText_YesNo[] = _("YES\nNO");
+const u8 gText_SelectorArrow3[] = _("▶");
+const u8 gText_Peekaboo[] = _("PEEKABOO!");
+const u8 gText_CommErrorCheckConnections[] = _("Communication error…\nPlease check all connections,\nthen turn the power OFF and ON.");
+const u8 gText_CommErrorEllipsis[] = _("Communication error…");
+const u8 gText_MoveCloserToLinkPartner[] = _("Move closer to your link partner(s).\nAvoid obstacles between partners.");
+const u8 gText_ABtnRegistrationCounter[] = _("A Button: Registration Counter");
+const u8 gText_ABtnTitleScreen[] = _("A Button: Title Screen");
+const u8 gText_Option[] = _("OPTION");
+const u8 gText_TextSpeed[] = _("TEXT SPEED");
+const u8 gText_BattleScene[] = _("BATTLE SCENE");
+const u8 gText_BattleStyle[] = _("BATTLE STYLE");
+const u8 gText_Sound[] = _("SOUND");
+const u8 gText_Frame[] = _("FRAME");
+const u8 gText_OptionMenuCancel[] = _("CANCEL");
+const u8 gText_ButtonMode[] = _("BUTTON MODE");
+const u8 gText_TextSpeedSlow[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}SLOW");
+const u8 gText_TextSpeedMid[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}MID");
+const u8 gText_TextSpeedFast[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}FAST");
+const u8 gText_BattleSceneOn[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}ON");
+const u8 gText_BattleSceneOff[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}OFF");
+const u8 gText_BattleStyleShift[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}SHIFT");
+const u8 gText_BattleStyleSet[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}SET");
+const u8 gText_SoundMono[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}MONO");
+const u8 gText_SoundStereo[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}STEREO");
+const u8 gText_FrameType[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}TYPE");
+const u8 gText_FrameTypeNumber[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}");
+const u8 gText_ButtonTypeNormal[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}NORMAL");
+const u8 gText_ButtonTypeLR[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}LR");
+const u8 gText_ButtonTypeLEqualsA[] = _("{COLOR GREEN}{SHADOW LIGHT_GREEN}L=A");
+const u8 gText_XPLink[] = _("{STR_VAR_1}P LINK");
+const u8 gText_BronzeCard[] = _("BRONZE");
+const u8 gText_CopperCard[] = _("COPPER");
+const u8 gText_SilverCard[] = _("SILVER");
+const u8 gText_GoldCard[] = _("GOLD");
+const u8 gText_Day[] = _("DAY");
+const u8 gText_Colon3[] = _(":");
+const u8 gText_Confirm2[] = _("CONFIRM");
+const u8 gUnknown_085EE698[] = _("Days");
+const u8 gUnknown_085EE69D[] = _("Time:");
+const u8 gUnknown_085EE6A3[] = _("Game time");
+const u8 gUnknown_085EE6AD[] = _("RTC time");
+const u8 gUnknown_085EE6B6[] = _("Updated time");
+const u8 gText_MenuPokedex[] = _("POKéDEX");
+const u8 gText_MenuPokemon[] = _("POKéMON");
+const u8 gText_MenuBag[] = _("BAG");
+const u8 gText_MenuPokenav[] = _("POKéNAV");
+const u8 gText_MenuPlayer[] = _("{PLAYER}");
+const u8 gText_MenuSave[] = _("SAVE");
+const u8 gText_MenuOption[] = _("OPTION");
+const u8 gText_MenuExit[] = _("EXIT");
+const u8 gText_MenuRetire[] = _("RETIRE");
+const u8 gText_MenuRest[] = _("REST");
+const u8 gText_SafariBallStock[] = _("SAFARI BALLS\nStock: {STR_VAR_1}");
+const u8 gText_BattlePyramidFloor[] = _("Battle Pyramid\n{STR_VAR_1}");
+const u8 gText_Floor1[] = _("Floor 1");
+const u8 gText_Floor2[] = _("Floor 2");
+const u8 gText_Floor3[] = _("Floor 3");
+const u8 gText_Floor4[] = _("Floor 4");
+const u8 gText_Floor5[] = _("Floor 5");
+const u8 gText_Floor6[] = _("Floor 6");
+const u8 gText_Floor7[] = _("Floor 7");
+const u8 gText_Peak[] = _("Peak");
+const u8 gText_LinkStandby2[] = _("Link standby…\n… … B Button: Cancel");
+const u8 gText_PressAToLoadEvent[] = _("Press the A Button to load event.\n… … B Button: Cancel");
+const u8 gText_LoadingEvent[] = _("Loading event…");
+const u8 gText_DontRemoveCableTurnOff[] = _("Don’t remove the Game Link cable.\nDon’t turn off the power.");
+const u8 gText_EventSafelyLoaded[] = _("The event was safely loaded.");
+const u8 gText_LoadErrorEndingSession[] = _("Loading error.\nEnding session.");
+const u8 gUnknown_085EE846[] = _("プレイヤー");
+const u8 gUnknown_085EE84C[] = _("さま");
+const u8 gText_DexHoenn[] = _("HOENN");
+const u8 gText_DexNational[] = _("NATIONAL");
+const u8 gText_PokedexDiploma[] = _("PLAYER: {CLEAR 0x10}{COLOR RED}{SHADOW LIGHT_RED}{PLAYER}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}\n\nThis document certifies\nthat you have successfully\ncompleted your\n{STR_VAR_1} POKéDEX.\n\n{CLEAR_TO 0x42}{COLOR RED}{SHADOW LIGHT_RED}GAME FREAK");
+const u8 gUnknown_085EE8DC[] = _("{COLOR RED}{SHADOW LIGHT_RED}ゲ-ムフリ-ク");
+const u8 gUnknown_085EE8EA[] = _("{COLOR RED}{SHADOW LIGHT_RED}");
+const u8 gText_Hoenn[] = _("HOENN");
+const u8 gText_OhABite[] = _("Oh! A bite!");
+const u8 gText_PokemonOnHook[] = _("A POKéMON’s on the hook!{PAUSE_UNTIL_PRESS}");
+const u8 gText_NotEvenANibble[] = _("Not even a nibble…{PAUSE_UNTIL_PRESS}");
+const u8 gText_ItGotAway[] = _("It got away…{PAUSE_UNTIL_PRESS}");
+const u8 gText_XWillBeSentToY[] = _("{STR_VAR_2} will be\nsent to {STR_VAR_1}.");
+const u8 gText_ByeByeVar1[] = _("Bye-bye, {STR_VAR_2}!");
+const u8 gText_XSentOverY[] = _("{STR_VAR_1} sent over {STR_VAR_3}.");
+const u8 gText_TakeGoodCareOfX[] = _("Take good care of {STR_VAR_3}!");
+
+// Easy chat group names
+const u8 gEasyChatGroupName_Pokemon[] = _("POKéMON");
+const u8 gEasyChatGroupName_Trainer[] = _("TRAINER");
+const u8 gEasyChatGroupName_Status[] = _("STATUS");
+const u8 gEasyChatGroupName_Battle[] = _("BATTLE");
+const u8 gEasyChatGroupName_Greetings[] = _("GREETINGS");
+const u8 gEasyChatGroupName_People[] = _("PEOPLE");
+const u8 gEasyChatGroupName_Voices[] = _("VOICES");
+const u8 gEasyChatGroupName_Speech[] = _("SPEECH");
+const u8 gEasyChatGroupName_Endings[] = _("ENDINGS");
+const u8 gEasyChatGroupName_Feelings[] = _("FEELINGS");
+const u8 gEasyChatGroupName_Conditions[] = _("CONDITIONS");
+const u8 gEasyChatGroupName_Actions[] = _("ACTIONS");
+const u8 gEasyChatGroupName_Lifestyle[] = _("LIFESTYLE");
+const u8 gEasyChatGroupName_Hobbies[] = _("HOBBIES");
+const u8 gEasyChatGroupName_Time[] = _("TIME");
+const u8 gEasyChatGroupName_Misc[] = _("MISC.");
+const u8 gEasyChatGroupName_Adjectives[] = _("ADJECTIVES");
+const u8 gEasyChatGroupName_Events[] = _("EVENTS");
+const u8 gEasyChatGroupName_Move1[] = _("MOVE 1");
+const u8 gEasyChatGroupName_Move2[] = _("MOVE 2");
+const u8 gEasyChatGroupName_TrendySaying[] = _("TRENDY SAYING");
+const u8 gEasyChatGroupName_Pokemon2[] = _("POKéMON2");
+
+const u8 gText_ThreeQuestionMarks[] = _("???");
+const u8 gUnknown_085EEA46[] = _("MAX. HP");
+const u8 gUnknown_085EEA4E[] = _("ATTACK");
+const u8 gUnknown_085EEA55[] = _("DEFENSE");
+const u8 gUnknown_085EEA5D[] = _("SPEED");
+const u8 gUnknown_085EEA63[] = _("SP. ATK");
+const u8 gUnknown_085EEA6B[] = _("SP. DEF");
+const u8 gText_UnkCtrlF904[] = _("{PLUS}");
+const u8 gText_Dash[] = _("-");
+const u8 gText_FromSpace[] = _("From ");
+const u8 gText_MixingRecords[] = _("Mixing records…");
+const u8 gText_RecordMixingComplete[] = _("Record mixing completed.\nThank you for waiting.");
+const u8 gText_YourName[] = _("YOUR NAME?");
+const u8 gText_BoxName[] = _("BOX NAME?");
+const u8 gText_PkmnsNickname[] = _("{STR_VAR_1}’s nickname?");
+const u8 gText_TellHimTheWords[] = _("Tell him the words.");
+const u8 gText_MoveOkBack[] = _("{DPAD_NONE}MOVE {A_BUTTON}OK {B_BUTTON}BACK");
+const u8 gText_CallCantBeMadeHere[] = _("A call can’t be made from here.");
+const u8 gUnknown_085EEB2B[] = _("HANDSOME");
+const u8 gUnknown_085EEB34[] = _("VINNY");
+const u8 gUnknown_085EEB3A[] = _("MOREME");
+const u8 gUnknown_085EEB41[] = _("IRONHARD");
+const u8 gUnknown_085EEB4A[] = _("MUSCLE");
+const u8 gUnknown_085EEB51[] = _("coolness");
+const u8 gUnknown_085EEB5A[] = _("beauty");
+const u8 gUnknown_085EEB61[] = _("cuteness");
+const u8 gUnknown_085EEB6A[] = _("smartness");
+const u8 gUnknown_085EEB74[] = _("toughness");
+const u8 gText_Lady2[] = _("Lady");
+const u8 gUnknown_085EEB83[] = _("slippery");
+const u8 gUnknown_085EEB8C[] = _("roundish");
+const u8 gUnknown_085EEB95[] = _("wham-ish");
+const u8 gUnknown_085EEB9E[] = _("shiny");
+const u8 gUnknown_085EEBA4[] = _("sticky");
+const u8 gUnknown_085EEBAB[] = _("pointy");
+const u8 gText_RentalPkmn2[] = _("RENTAL POKéMON");
+const u8 gText_SelectFirstPkmn[] = _("Select the first POKéMON.");
+const u8 gText_SelectSecondPkmn[] = _("Select the second POKéMON.");
+const u8 gText_SelectThirdPkmn[] = _("Select the third POKéMON.");
+const u8 gText_Rent[] = _("RENT");
+const u8 gText_Summary[] = _("SUMMARY");
+const u8 gText_Others2[] = _("OTHERS");
+const u8 gText_Deselect[] = _("DESELECT");
+const u8 gText_TheseThreePkmnOkay[] = _("Are these three POKéMON OK?");
+const u8 gText_Yes2[] = _("YES");
+const u8 gText_No2[] = _("NO");
+const u8 gText_CantSelectSamePkmn[] = _("Can’t select same {PKMN}.");
+const u8 gText_PkmnSwap[] = _("POKéMON SWAP");
+const u8 gText_SelectPkmnToSwap[] = _("Select POKéMON to swap.");
+const u8 gText_SelectPkmnToAccept[] = _("Select POKéMON to accept.");
+const u8 gText_Swap[] = _("SWAP");
+const u8 gText_Summary2[] = _("SUMMARY");
+const u8 gText_Rechoose[] = _("RECHOOSE");
+const u8 gText_QuitSwapping[] = _("Quit swapping?");
+const u8 gText_Yes3[] = _("YES");
+const u8 gText_No3[] = _("NO");
+const u8 gText_PkmnForSwap[] = _("{PKMN} FOR SWAP");
+const u8 gText_Cancel3[] = _("CANCEL");
+const u8 gUnknown_085EECE4[] = _("SWAP");
+const u8 gUnknown_085EECE9[] = _("ACCEPT");
+const u8 gText_AcceptThisPkmn[] = _("Accept this POKéMON?");
+const u8 gUnknown_085EED05[] = _(" ");
+const u8 gText_SamePkmnInPartyAlready[] = _("Same {PKMN} in party already.");
+const u8 gText_DecimalPoint[] = _(".");
+const u8 gText_SavingPlayer[] = _("PLAYER");
+const u8 gText_SavingBadges[] = _("BADGES");
+const u8 gText_SavingPokedex[] = _("POKéDEX");
+const u8 gText_SavingTime[] = _("TIME");
+const u8 gText_WirelessCommStatus[] = _("Wireless Communication Status");
+const u8 gText_PeopleTrading[] = _("People trading:");
+const u8 gText_PeopleBattling[] = _("People battling:");
+const u8 gText_PeopleInUnionRoom[] = _("People in the UNION ROOM:");
+const u8 gText_PeopleCommunicating[] = _("People communicating:");
+const u8 gText_F700Players[] = _("{SPECIAL_F7 0} players");
+const u8 gText_F701Players[] = _("{SPECIAL_F7 1} players");
+const u8 gText_F702Players[] = _("{SPECIAL_F7 2} players");
+const u8 gText_F703Players[] = _("{SPECIAL_F7 3} players");
+
+const u8 *const gTextTable_Players[] = {
+ gText_F700Players,
+ gText_F701Players,
+ gText_F702Players,
+ gText_F703Players
+};
+
+asm(".align 2");
+const u8 gText_WonderCards[] = _("WONDER CARDS");
+
+asm(".align 2");
+const u8 gText_WonderNews[] = _("WONDER NEWS");
+
+asm(".align 2");
+const u8 gText_WirelessCommunication[] = _("WIRELESS COMMUNICATION");
+
+asm(".align 2");
+const u8 gText_Friend2[] = _("FRIEND");
+
+asm(".align 2");
+const u8 gText_Exit3[] = _("EXIT");
+
+asm(".align 2");
+const u8 gText_Receive[] = _("RECEIVE");
+
+asm(".align 2");
+const u8 gText_Send[] = _("SEND");
+
+asm(".align 2");
+const u8 gText_Toss[] = _("TOSS");
+
+asm(".align 2");
+const u8 gText_VarietyOfEventsImportedWireless[] = _("A variety of events will be imported\nover Wireless Communication.");
+
+asm(".align 2");
+const u8 gText_WonderCardsInPossession[] = _("Read the WONDER CARDS in your\npossession.");
+
+asm(".align 2");
+const u8 gText_ReadNewsThatArrived[] = _("Read the NEWS that arrived.");
+
+asm(".align 2");
+const u8 gText_ReturnToTitle[] = _("Return to the title screen.");
+
+asm(".align 2");
+const u8 gText_DontHaveCardNewOneInput[] = _("You don’t have a WONDER CARD,\nso a new CARD will be input.");
+
+asm(".align 2");
+const u8 gText_DontHaveNewsNewOneInput[] = _("You don’t have any WONDER NEWS,\nso new NEWS will be input.");
+
+asm(".align 2");
+const u8 gText_WhereShouldCardBeAccessed[] = _("Where should the WONDER CARD\nbe accessed?");
+
+asm(".align 2");
+const u8 gText_WhereShouldNewsBeAccessed[] = _("Where should the WONDER NEWS\nbe accessed?");
+
+asm(".align 2");
+const u8 gUnknown_085EEFC0[] = _("Communication standby…\nB Button: Cancel");
+
+asm(".align 2");
+const u8 gText_Communicating[] = _("Communicating…");
+
+asm(".align 2");
+const u8 gText_CommunicationCompleted[] = _("Communication completed.");
+
+asm(".align 2");
+const u8 gText_CommunicationError[] = _("Communication error.");
+
+asm(".align 2");
+const u8 gText_CommunicationCanceled[] = _("Communication has been canceled.");
+
+asm(".align 2");
+const u8 gText_ThrowAwayWonderCard[] = _("Throw away the WONDER CARD\nand input a new CARD?");
+
+asm(".align 2");
+const u8 gText_HaventReceivedCardsGift[] = _("You haven’t received the CARD’s gift\nyet. Input a new CARD anyway?");
+
+asm(".align 2");
+const u8 gText_WonderCardReceivedFrom[] = _("A WONDER CARD has been received\nfrom {STR_VAR_1}.");
+
+asm(".align 2");
+const u8 gText_WonderNewsReceivedFrom[] = _("A WONDER NEWS item has been\nreceived from {STR_VAR_1}.");
+
+asm(".align 2");
+const u8 gText_WonderCardReceived[] = _("A new WONDER CARD has been\nreceived.");
+
+asm(".align 2");
+const u8 gText_WonderNewsReceived[] = _("A new WONDER NEWS item has been\nreceived.");
+
+asm(".align 2");
+const u8 gText_NewStampReceived[] = _("A new STAMP has been received.");
+
+asm(".align 2");
+const u8 gText_NewTrainerReceived[] = _("A new TRAINER has arrived.");
+
+asm(".align 2");
+const u8 gText_AlreadyHadCard[] = _("You already had that\nWONDER CARD.");
+
+asm(".align 2");
+const u8 gText_AlreadyHadNews[] = _("You already had that\nWONDER NEWS item.");
+
+asm(".align 2");
+const u8 gText_AlreadyHadStamp[] = _("You already had that\nSTAMP.");
+
+asm(".align 2");
+const u8 gText_NoMoreRoomForStamps[] = _("There’s no more room for adding\nSTAMPS.");
+
+asm(".align 2");
+const u8 gText_RecordUploadedViaWireless[] = _("Your record has been uploaded via\nWIRELESS COMMUNICATION.");
+
+asm(".align 2");
+const u8 gText_CantAcceptCardFromTrainer[] = _("You can’t accept a WONDER CARD\nfrom this TRAINER.");
+
+asm(".align 2");
+const u8 gText_CantAcceptNewsFromTrainer[] = _("You can’t accept WONDER NEWS\nfrom this TRAINER.");
+
+asm(".align 2");
+const u8 gText_NothingSentOver[] = _("Nothing was sent over…");
+
+asm(".align 2");
+const u8 gText_WhatToDoWithCards[] = _("What would you like to do\nwith the WONDER CARDS?");
+
+asm(".align 2");
+const u8 gText_WhatToDoWithNews[] = _("What would you like to do\nwith the WONDER NEWS?");
+
+asm(".align 2");
+const u8 gText_SendingWonderCard[] = _("Sending your WONDER CARD…");
+
+asm(".align 2");
+const u8 gText_SendingWonderNews[] = _("Sending your WONDER NEWS item…");
+
+asm(".align 2");
+const u8 gText_WonderCardSentTo[] = _("Your WONDER CARD has been sent\nto {STR_VAR_1}.");
+
+asm(".align 2");
+const u8 gText_WonderNewsSentTo[] = _("Your WONDER NEWS item has been\nsent to {STR_VAR_1}.");
+
+asm(".align 2");
+const u8 gText_StampSentTo[] = _("A STAMP has been sent to {STR_VAR_1}.");
+
+asm(".align 2");
+const u8 gText_GiftSentTo[] = _("A GIFT has been sent to {STR_VAR_1}.");
+
+asm(".align 2");
+const u8 gText_OtherTrainerHasCard[] = _("The other TRAINER has the same\nWONDER CARD already.");
+
+asm(".align 2");
+const u8 gText_OtherTrainerHasNews[] = _("The other TRAINER has the same\nWONDER NEWS already.");
+
+asm(".align 2");
+const u8 gText_OtherTrainerHasStamp[] = _("The other TRAINER has the same\nSTAMP already.");
+
+asm(".align 2");
+const u8 gText_OtherTrainerCanceled[] = _("The other TRAINER canceled\ncommunication.");
+
+asm(".align 2");
+const u8 gText_CantSendGiftToTrainer[] = _("You can’t send a MYSTERY GIFT to\nthis TRAINER.");
+
+asm(".align 2");
+const u8 gText_IfThrowAwayCardEventWontHappen[] = _("If you throw away the CARD,\nits event won’t happen. Okay?");
+
+asm(".align 2");
+const u8 gText_OkayToDiscardNews[] = _("Is it okay to discard this\nNEWS item?");
+
+asm(".align 2");
+const u8 gText_HaventReceivedGiftOkayToDiscard[] = _("You haven’t received the\nGIFT. Is it okay to discard?");
+
+asm(".align 2");
+const u8 gText_DataWillBeSaved[] = _("Data will be saved.\nPlease wait.");
+
+asm(".align 2");
+const u8 gText_SaveCompletedPressA[] = _("Save completed.\nPlease press the A Button.");
+
+asm(".align 2");
+const u8 gText_WonderCardThrownAway[] = _("The WONDER CARD was thrown away.");
+
+asm(".align 2");
+const u8 gText_WonderNewsThrownAway[] = _("The WONDER NEWS was thrown away.");
+
+asm(".align 2");
+const u8 gText_MysteryGift[] = _("MYSTERY GIFT");
+
+asm(".align 2");
+const u8 gText_PickOKExit[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}OK {B_BUTTON}EXIT");
+
+asm(".align 2");
+const u8 gText_PickOKCancel[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}OK {B_BUTTON}CANCEL");
+const u8 gText_PlayersBattleResults[] = _("{PLAYER}’s BATTLE RESULTS");
+const u8 gText_TotalRecordWLD[] = _("TOTAL RECORD W:{STR_VAR_1} L:{STR_VAR_2} D:{STR_VAR_3}");
+const u8 gText_WinLoseDraw[] = _("{CLEAR_TO 0x53}WIN{CLEAR_TO 0x80}LOSE{CLEAR_TO 0xB0}DRAW");
+const u8 gText_CommunicationStandby5[] = _("Communication standby…");
+const u8 gText_QuitTheGame[] = _("Quit the game?");
+const u8 gText_YouveGot9999Coins[] = _("You’ve got 9,999 COINS.");
+const u8 gText_YouveRunOutOfCoins[] = _("You’ve run out of COINS.\nGame over!");
+const u8 gText_YouDontHaveThreeCoins[] = _("You don’t have three COINS.");
+const u8 gText_ReelTimeHelp[] = _("REEL TIME\nHere’s your chance to take\naim and nail marks!\nReel Time continues for the\nawarded number of spins.\nIt all ends on a Big Bonus.");
+const u8 gDaycareText_GetAlongVeryWell[] = _("The two seem to get along\nvery well.");
+const u8 gDaycareText_GetAlong[] = _("The two seem to get along.");
+const u8 gDaycareText_DontLikeOther[] = _("The two don’t seem to like\neach other much.");
+const u8 gDaycareText_PlayOther[] = _("The two prefer to play with other\nPOKéMON than each other.");
+const u8 gText_NewLine2[] = _("\n");
+const u8 gText_Exit4[] = _("EXIT");
+const u8 gText_Lv[] = _("{LV}");
+const u8 gText_TimeBoard[] = _("TIME BOARD");
+const u8 gText_TimeCleared[] = _("TIME CLEARED ");
+const u8 gText_XMinYDotZSec[] = _("{STR_VAR_1} min. {STR_VAR_2}.{STR_VAR_3} sec.");
+const u8 gUnknown_085EF8B6[] = _("1F");
+const u8 gUnknown_085EF8B9[] = _("2F");
+const u8 gUnknown_085EF8BC[] = _("3F");
+const u8 gUnknown_085EF8BF[] = _("4F");
+const u8 gText_TeachWhichMoveToPkmn[] = _("Teach which move to {STR_VAR_1}?");
+const u8 gText_TeachX[] = _("Teach {STR_VAR_2}?");
+const u8 gText_PkmnLearnedMove4[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!");
+const u8 gText_PkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can’t learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?");
+const u8 gText_StopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?");
+const u8 gText_12AndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p");
+const u8 gText_PkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}.");
+const u8 gUnknown_085EF9C8[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.");
+const u8 gText_GiveUpTeachingNewMove[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?");
+const u8 gText_WhichMoveToForget2[] = _("Which move should be\nforgotten?\p");
+const u8 gText_BattleMoves2[] = _("BATTLE MOVES");
+const u8 gText_ContestMoves2[] = _("CONTEST MOVES");
+const u8 gUnknown_085EFA4C[] = _("TYPE/");
+const u8 gText_PPSlash[] = _("PP/");
+const u8 gText_PowerSlash[] = _("POWER/");
+const u8 gText_AccuracySlash[] = _("ACCURACY/");
+const u8 gText_Appeal2[] = _("APPEAL");
+const u8 gText_Jam2[] = _("JAM");
+const u8 gText_Kira[] = _("KIRA");
+const u8 gText_Amy[] = _("AMY");
+const u8 gText_John[] = _("JOHN");
+const u8 gText_Roy[] = _("ROY");
+const u8 gText_Gabby[] = _("GABBY");
+const u8 gText_Anna[] = _("ANNA");
+const u8 gText_ClearAllSaveData[] = _("Clear all save data areas?");
+const u8 gText_ClearingData[] = _("Clearing data…\nPlease wait.");
+const u8 gText_IsThisTheCorrectTime[] = _("Is this the correct time?");
+const u8 gText_Confirm3[] = _("CONFIRM");
+const u8 gText_Cancel4[] = _("CANCEL");
+const u8 gMrStoneMatchCallDesc[] = _("DEVON PRES");
+const u8 gMrStoneMatchCallName[] = _("MR. STONE");
+const u8 gStevenMatchCallDesc[] = _("HARD AS ROCK");
+const u8 gStevenMatchCallName[] = _("STEVEN");
+const u8 gMayBrendanMatchCallDesc[] = _("RAD NEIGHBOR");
+const u8 gNormanMatchCallDesc[] = _("RELIABLE ONE");
+const u8 gMomMatchCallDesc[] = _("CALM & KIND");
+const u8 gWallyMatchCallDesc[] = _("{PKMN} LOVER");
+const u8 gNormanMatchCallName[] = _("DAD");
+const u8 gMomMatchCallName[] = _("MOM");
+const u8 gScottMatchCallDesc[] = _("ELUSIVE EYES");
+const u8 gScottMatchCallName[] = _("SCOTT");
+const u8 gRoxanneMatchCallDesc[] = _("ROCKIN’ WHIZ");
+const u8 gBrawlyMatchCallDesc[] = _("THE BIG HIT");
+const u8 gWattsonMatchCallDesc[] = _("SWELL SHOCK");
+const u8 gFlanneryMatchCallDesc[] = _("PASSION BURN");
+const u8 gWinonaMatchCallDesc[] = _("SKY TAMER");
+const u8 gTateLizaMatchCallDesc[] = _("MYSTIC DUO");
+const u8 gJuanMatchCallDesc[] = _("DANDY CHARM");
+const u8 gEliteFourMatchCallDesc[] = _("ELITE FOUR");
+const u8 gChampionMatchCallDesc[] = _("CHAMPION");
+const u8 gProfBirchMatchCallDesc[] = _("{PKMN} PROF.");
+const u8 gText_CommStandbyAwaitingOtherPlayer[] = _("Communication standby…\nAwaiting another player to choose.");
+const u8 gText_BattleWasRefused[] = _("The battle was refused.{PAUSE 60}");
+const u8 gText_RefusedBattle[] = _("Refused the battle.{PAUSE 60}");
+const u8 gUnknown_085EFC3E[] = _("NO WEATHER");
+const u8 gUnknown_085EFC49[] = _("SUNNY");
+const u8 gUnknown_085EFC4F[] = _("SUNNY2");
+const u8 gUnknown_085EFC56[] = _("RAIN");
+const u8 gUnknown_085EFC5B[] = _("SNOW");
+const u8 gUnknown_085EFC60[] = _("LIGHTNING");
+const u8 gUnknown_085EFC6A[] = _("FOG");
+const u8 gUnknown_085EFC6E[] = _("VOLCANO ASH");
+const u8 gUnknown_085EFC7A[] = _("SANDSTORM");
+const u8 gUnknown_085EFC84[] = _("FOG2");
+const u8 gUnknown_085EFC89[] = _("SEAFLOOR");
+const u8 gUnknown_085EFC92[] = _("CLOUDY");
+const u8 gUnknown_085EFC99[] = _("SUNNY3");
+const u8 gUnknown_085EFCA0[] = _("HEAVY RAIN");
+const u8 gUnknown_085EFCAB[] = _("SEAFLOOR2");
+const u8 gText_DelAll[] = _("DEL. ALL");
+const u8 gText_Cancel5[] = _("CANCEL");
+const u8 gText_Ok2[] = _("OK");
+const u8 gText_Quiz[] = _("QUIZ");
+const u8 gText_Answer[] = _("ANSWER");
+const u8 gText_PokeBalls[] = _("POKé BALLS");
+const u8 gText_Berry[] = _("BERRY");
+const u8 gText_Berries[] = _("BERRIES");
diff --git a/src/text.c b/src/text.c
index 0fc00c9b9..ed70f767b 100644
--- a/src/text.c
+++ b/src/text.c
@@ -13,7 +13,7 @@
extern u8 GetKeypadIconWidth(u8 keypadIconId);
extern u16 Font6Func(struct TextPrinter *textPrinter);
extern u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese);
-extern u8* UnkTextUtil_GetPtrI(u8 a1);
+extern u8* DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 a1);
extern int sub_8197964();
EWRAM_DATA struct TextPrinter gTempTextPrinter = {0};
@@ -3227,7 +3227,7 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
}
case 0xF7:
if (bufferPointer == NULL)
- bufferPointer = UnkTextUtil_GetPtrI(*++str);
+ bufferPointer = DynamicPlaceholderTextUtil_GetPlaceholderPtr(*++str);
while (*bufferPointer != 0xFF)
{
glyphWidth = func(*bufferPointer++, isJapanese);
diff --git a/src/tv.c b/src/tv.c
index c6d8a48e7..2e915697e 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -3454,7 +3454,7 @@ void ChangePokemonNickname(void)
void ChangePokemonNickname_CB(void)
{
SetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2);
- CB2_ReturnToFieldContinueScript();
+ CB2_ReturnToFieldContinueScriptPlayMapMusic();
}
void ChangeBoxPokemonNickname(void)
@@ -3470,7 +3470,7 @@ void ChangeBoxPokemonNickname(void)
void ChangeBoxPokemonNickname_CB(void)
{
SetBoxMonNickFromAnyBox(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos, gStringVar2);
- CB2_ReturnToFieldContinueScript();
+ CB2_ReturnToFieldContinueScriptPlayMapMusic();
}
void TV_CopyNicknameToStringVar1AndEnsureTerminated(void)
diff --git a/src/walda_phrase.c b/src/walda_phrase.c
index 0aa6f5aca..4a82be14f 100644
--- a/src/walda_phrase.c
+++ b/src/walda_phrase.c
@@ -13,7 +13,6 @@ extern const u8 gText_Peekaboo[];
extern u8 *GetWaldaPhrasePtr(void);
extern bool32 IsWaldaPhraseEmpty(void);
extern void sub_80AF168(void);
-extern void CB2_ReturnToField(void);
extern void SetWaldaPhrase(const u8 *src);
extern void SetWaldaWallpaperPatternId(u8 patternId);
extern void SetWaldaWallpaperIconId(u8 iconId);
diff --git a/src/wallclock.c b/src/wallclock.c
index 9b96d416c..3d95d75ac 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -602,7 +602,7 @@ static void WallClockInit(void)
ShowBg(3);
}
-void Cb2_StartWallClock(void)
+void CB2_StartWallClock(void)
{
u8 taskId;
u8 spriteId;
@@ -644,7 +644,7 @@ void Cb2_StartWallClock(void)
schedule_bg_copy_tilemap_to_vram(2);
}
-void Cb2_ViewWallClock(void)
+void CB2_ViewWallClock(void)
{
u8 taskId;
u8 spriteId;