summaryrefslogtreecommitdiff
path: root/include/constants
diff options
context:
space:
mode:
Diffstat (limited to 'include/constants')
-rw-r--r--include/constants/apprentice.h100
-rw-r--r--include/constants/battle_frontier.h60
-rw-r--r--include/constants/battle_script_commands.h79
-rw-r--r--include/constants/battle_setup.h2
-rw-r--r--include/constants/battle_tower.h21
-rw-r--r--include/constants/coins.h6
-rw-r--r--include/constants/contest.h19
-rw-r--r--include/constants/easy_chat.h9
-rw-r--r--include/constants/field_specials.h26
-rw-r--r--include/constants/flags.h177
-rw-r--r--include/constants/frontier_util.h32
-rw-r--r--include/constants/global.h22
-rw-r--r--include/constants/items.h23
-rwxr-xr-xinclude/constants/layouts.h18
-rwxr-xr-xinclude/constants/map_groups.h202
-rw-r--r--include/constants/mauville_man.h10
-rw-r--r--include/constants/mauville_old_man.h12
-rwxr-xr-xinclude/constants/metatile_behaviors.h2
-rw-r--r--include/constants/metatile_labels.h14
-rw-r--r--include/constants/mevent.h15
-rw-r--r--include/constants/opponents.h1712
-rw-r--r--include/constants/party_menu.h94
-rw-r--r--include/constants/pokemon.h8
-rw-r--r--include/constants/trade.h6
-rw-r--r--include/constants/trainer_hill.h49
-rw-r--r--include/constants/tv.h3
-rw-r--r--include/constants/union_room.h28
-rw-r--r--include/constants/vars.h32
28 files changed, 1623 insertions, 1158 deletions
diff --git a/include/constants/apprentice.h b/include/constants/apprentice.h
index 9db58bb8e..63434a4fc 100644
--- a/include/constants/apprentice.h
+++ b/include/constants/apprentice.h
@@ -1,22 +1,88 @@
#ifndef GUARD_CONSTANTS_APPRENTICE_H
#define GUARD_CONSTANTS_APPRENTICE_H
-#define APPRENTICE_ASK_WHICH_LEVEL 0
-#define APPRENTICE_ASK_3SPECIES 1
-#define APPRENTICE_ASK_2SPECIES 2
-#define APPRENTICE_ASK_MOVES 3
-#define APPRENTICE_ASK_GIVE 4
-#define APPRENTICE_ASK_YES_NO 6
-
-#define APPRENTICE_BUFF_SPECIES1 0
-#define APPRENTICE_BUFF_SPECIES2 1
-#define APPRENTICE_BUFF_SPECIES3 2
-#define APPRENTICE_BUFF_MOVE1 3
-#define APPRENTICE_BUFF_MOVE2 4
-#define APPRENTICE_BUFF_ITEM 5
-#define APPRENTICE_BUFF_NAME 6
-#define APPRENTICE_BUFF_EASY_CHAT 7
-#define APPRENTICE_BUFF_LEVEL 8
-#define APPRENTICE_BUFF_SPECIES4 9
+#define NUM_APPRENTICES 16
+#define APPRENTICE_SPECIES_COUNT 10
+
+#define NUM_WHICH_MON_QUESTIONS MULTI_PARTY_SIZE
+#define NUM_WHICH_MOVE_QUESTIONS 5
+
+#define APPRENTICE_LVL_MODE_50 (FRONTIER_LVL_50 + 1)
+#define APPRENTICE_LVL_MODE_OPEN (FRONTIER_LVL_OPEN + 1)
+
+#define APPRENTICE_FUNC_GAVE_LVLMODE 0
+#define APPRENTICE_FUNC_SET_LVLMODE 1
+#define APPRENTICE_FUNC_SET_ID 2
+#define APPRENTICE_FUNC_SHUFFLE_SPECIES 3
+#define APPRENTICE_FUNC_RANDOMIZE_QUESTIONS 4
+#define APPRENTICE_FUNC_ANSWERED_QUESTION 5
+#define APPRENTICE_FUNC_IS_FINAL_QUESTION 6
+#define APPRENTICE_FUNC_MENU 7
+#define APPRENTICE_FUNC_PRINT_MSG 8
+#define APPRENTICE_FUNC_RESET 9
+#define APPRENTICE_FUNC_CHECK_GONE 10
+#define APPRENTICE_FUNC_GET_QUESTION 11
+#define APPRENTICE_FUNC_GET_NUM_PARTY_MONS 12
+#define APPRENTICE_FUNC_SET_PARTY_MON 13
+#define APPRENTICE_FUNC_INIT_QUESTION_DATA 14
+#define APPRENTICE_FUNC_FREE_QUESTION_DATA 15
+#define APPRENTICE_FUNC_BUFFER_STRING 16
+#define APPRENTICE_FUNC_SET_MOVE 17
+#define APPRENTICE_FUNC_SET_LEAD_MON 18
+#define APPRENTICE_FUNC_OPEN_BAG 19
+#define APPRENTICE_FUNC_TRY_SET_HELD_ITEM 20
+#define APPRENTICE_FUNC_SAVE 21
+#define APPRENTICE_FUNC_SET_GFX_SAVED 22
+#define APPRENTICE_FUNC_SET_GFX 23
+#define APPRENTICE_FUNC_SHOULD_LEAVE 24
+#define APPRENTICE_FUNC_SHIFT_SAVED 25
+
+#define APPRENTICE_MSG_PLEASE_TEACH 0
+#define APPRENTICE_MSG_REJECT 1
+#define APPRENTICE_MSG_WHICH_LVL_MODE 2
+#define APPRENTICE_MSG_THANKS_LVL_MODE 3
+#define APPRENTICE_MSG_WHICH_MON_FIRST 4
+#define APPRENTICE_MSG_THANKS_MON_FIRST 5
+#define APPRENTICE_MSG_WHICH_MON 6
+#define APPRENTICE_MSG_THANKS_MON 7
+#define APPRENTICE_MSG_WHICH_MOVE 8
+#define APPRENTICE_MSG_THANKS_MOVE 9
+#define APPRENTICE_MSG_WHAT_HELD_ITEM 10
+#define APPRENTICE_MSG_PICK_WIN_SPEECH 11
+#define APPRENTICE_MSG_THANKS_HELD_ITEM 12
+#define APPRENTICE_MSG_HOLD_NOTHING 13
+#define APPRENTICE_MSG_THANKS_NO_HELD_ITEM 14
+#define APPRENTICE_MSG_THANKS_WIN_SPEECH 15
+#define APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED 16
+
+#define APPRENTICE_QUESTION_WHICH_FIRST 1
+#define APPRENTICE_QUESTION_WHICH_MON 2
+#define APPRENTICE_QUESTION_WHICH_MOVE 3
+#define APPRENTICE_QUESTION_WHAT_ITEM 4
+#define APPRENTICE_QUESTION_WIN_SPEECH 5
+
+// Would be redundant with the above set if they used the same values
+#define QUESTION_ID_WIN_SPEECH 0
+#define QUESTION_ID_WHAT_ITEM 1
+#define QUESTION_ID_WHICH_MOVE 2
+#define QUESTION_ID_WHICH_FIRST 3
+
+#define APPRENTICE_ASK_WHICH_LEVEL 0
+#define APPRENTICE_ASK_3SPECIES 1
+#define APPRENTICE_ASK_2SPECIES 2
+#define APPRENTICE_ASK_MOVES 3
+#define APPRENTICE_ASK_GIVE 4
+#define APPRENTICE_ASK_YES_NO 6
+
+#define APPRENTICE_BUFF_SPECIES1 0
+#define APPRENTICE_BUFF_SPECIES2 1
+#define APPRENTICE_BUFF_SPECIES3 2
+#define APPRENTICE_BUFF_MOVE1 3
+#define APPRENTICE_BUFF_MOVE2 4
+#define APPRENTICE_BUFF_ITEM 5
+#define APPRENTICE_BUFF_NAME 6
+#define APPRENTICE_BUFF_WIN_SPEECH 7
+#define APPRENTICE_BUFF_LEVEL 8
+#define APPRENTICE_BUFF_LEAD_MON_SPECIES 9
#endif // GUARD_CONSTANTS_APPRENTICE_H
diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h
index d287dd2db..54d50c18a 100644
--- a/include/constants/battle_frontier.h
+++ b/include/constants/battle_frontier.h
@@ -4,16 +4,17 @@
#define FRONTIER_CHALLENGE(facility, mode) ((facility << 8) + mode)
// Battle Frontier facility ids.
-#define FRONTIER_FACILITY_TOWER 0
-#define FRONTIER_FACILITY_DOME 1
-#define FRONTIER_FACILITY_PALACE 2
-#define FRONTIER_FACILITY_ARENA 3
-#define FRONTIER_FACILITY_FACTORY 4
-#define FRONTIER_FACILITY_PIKE 5
-#define FRONTIER_FACILITY_PYRAMID 6
-#define NUM_FRONTIER_FACILITIES 7
+#define FRONTIER_FACILITY_TOWER 0
+#define FRONTIER_FACILITY_DOME 1
+#define FRONTIER_FACILITY_PALACE 2
+#define FRONTIER_FACILITY_ARENA 3
+#define FRONTIER_FACILITY_FACTORY 4
+#define FRONTIER_FACILITY_PIKE 5
+#define FRONTIER_FACILITY_PYRAMID 6
+#define NUM_FRONTIER_FACILITIES 7
// The multiplayer battle colosseum rooms re-use VAR_FRONTIER_FACILITY.
-#define FRONTIER_FACILITY_DOUBLE_COLOSSEUM 9
+#define FACILITY_UNION_ROOM 8
+#define FACILITY_MULTI_OR_EREADER 9 // Direct Corner multi battles, multi battle with Steven, and e-Reader battles
#define TENT_VERDANTURF 2
#define TENT_FALLARBOR 3
@@ -45,18 +46,30 @@
#define MAX_BATTLE_FRONTIER_POINTS 9999
-// Frontier Maniac
-#define FRONTIER_MANIAC_BATTLE_TOWER_SINGLES 0
-#define FRONTIER_MANIAC_BATTLE_TOWER_DOUBLES 1
-#define FRONTIER_MANIAC_BATTLE_TOWER_MULTIS 2
-#define FRONTIER_MANIAC_BATTLE_TOWER_LINK_MULTIS 3
-#define FRONTIER_MANIAC_BATTLE_DOME 4
-#define FRONTIER_MANIAC_BATTLE_FACTORY 5
-#define FRONTIER_MANIAC_BATTLE_PALACE 6
-#define FRONTIER_MANIAC_BATTLE_ARENA 7
-#define FRONTIER_MANIAC_BATTLE_PIKE 8
-#define FRONTIER_MANIAC_BATTLE_PYRAMID 9
-#define FRONTIER_MANIAC_FACILITY_COUNT 10
+// These sets of facility ids would be redunant if the order was consistent
+// The order is important for this set so that all the non-link records can be continuous
+#define RANKING_HALL_BATTLE_TOWER_SINGLES 0
+#define RANKING_HALL_BATTLE_TOWER_DOUBLES 1
+#define RANKING_HALL_BATTLE_TOWER_MULTIS 2
+#define RANKING_HALL_BATTLE_DOME 3
+#define RANKING_HALL_BATTLE_PALACE 4
+#define RANKING_HALL_BATTLE_ARENA 5
+#define RANKING_HALL_BATTLE_FACTORY 6
+#define RANKING_HALL_BATTLE_PIKE 7
+#define RANKING_HALL_BATTLE_PYRAMID 8
+#define RANKING_HALL_BATTLE_TOWER_LINK 9
+
+#define FRONTIER_MANIAC_BATTLE_TOWER_SINGLES 0
+#define FRONTIER_MANIAC_BATTLE_TOWER_DOUBLES 1
+#define FRONTIER_MANIAC_BATTLE_TOWER_MULTIS 2
+#define FRONTIER_MANIAC_BATTLE_TOWER_LINK 3
+#define FRONTIER_MANIAC_BATTLE_DOME 4
+#define FRONTIER_MANIAC_BATTLE_FACTORY 5
+#define FRONTIER_MANIAC_BATTLE_PALACE 6
+#define FRONTIER_MANIAC_BATTLE_ARENA 7
+#define FRONTIER_MANIAC_BATTLE_PIKE 8
+#define FRONTIER_MANIAC_BATTLE_PYRAMID 9
+#define FRONTIER_MANIAC_FACILITY_COUNT 10
#define FRONTIER_MANIAC_MESSAGE_COUNT 3
@@ -76,6 +89,11 @@
// For 'ShowFacilityResultsWindow' function which is a part of the 'CallFrontierUtilFunc' special.
#define RESULTS_LINK_CONTEST 7
+#define EXCHANGE_CORNER_DECOR1_CLERK 0
+#define EXCHANGE_CORNER_DECOR2_CLERK 1
+#define EXCHANGE_CORNER_VITAMIN_CLERK 2
+#define EXCHANGE_CORNER_HOLD_ITEM_CLERK 3
+
#define F_EV_SPREAD_HP (1 << 0)
#define F_EV_SPREAD_ATTACK (1 << 1)
#define F_EV_SPREAD_DEFENSE (1 << 2)
diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h
index 894bd13b6..dfcf79128 100644
--- a/include/constants/battle_script_commands.h
+++ b/include/constants/battle_script_commands.h
@@ -39,16 +39,16 @@
#define BS_EFFECT_BATTLER 2
#define BS_FAINTED 3
#define BS_BATTLER_0 7
-#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
-#define BS_ATTACKER_SIDE 8 // for atk1E_jumpifability
-#define BS_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
+#define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon
+#define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability
+#define BS_NOT_ATTACKER_SIDE 9 // for Cmd_jumpifability
#define BS_SCRIPTING 10
#define BS_PLAYER1 11
#define BS_OPPONENT1 12
#define BS_PLAYER2 13
#define BS_OPPONENT2 14
-// atk 01, accuracy calc
+// Cmd_accuracycheck
#define NO_ACC_CALC 0xFFFE
#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
#define ACC_CURR_MOVE 0
@@ -61,7 +61,7 @@
#define CMP_COMMON_BITS 0x4
#define CMP_NO_COMMON_BITS 0x5
-// atk76, various
+// Cmd_various
#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
#define VARIOUS_SET_MAGIC_COAT_TARGET 1
#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
@@ -84,44 +84,25 @@
#define VARIOUS_SET_TELEPORT_OUTCOME 25
#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26
-// atk80, dmg manipulation
-#define ATK80_DMG_CHANGE_SIGN 0
-#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1
-#define ATK80_DMG_DOUBLED 2
+// Cmd_manipulatedmg
+#define DMG_CHANGE_SIGN 0
+#define DMG_RECOIL_FROM_MISS 1
+#define DMG_DOUBLED 2
-// atk4F, a flag used for the jumpifcantswitch command
-#define ATK4F_DONT_CHECK_STATUSES 0x80
+// Cmd_jumpifcantswitch
+#define SWITCH_IGNORE_ESCAPE_PREVENTION 0x80
-// statchange defines
-#define STAT_CHANGE_BS_PTR 0x1
-#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20
+// Cmd_statbuffchange
+#define STAT_BUFF_ALLOW_PTR 0x1 // If set, allow use of jumpptr. Set in every use of statbuffchange
+#define STAT_BUFF_NOT_PROTECT_AFFECTED 0x20
-// atk48
-#define ATK48_STAT_NEGATIVE 0x1
-#define ATK48_STAT_BY_TWO 0x2
-#define ATK48_ONLY_MULTIPLE 0x4
-#define ATK48_DONT_CHECK_LOWER 0x8
-
-// atk49, moveend cases
-#define ATK49_RAGE 0
-#define ATK49_DEFROST 1
-#define ATK49_SYNCHRONIZE_TARGET 2
-#define ATK49_MOVE_END_ABILITIES 3
-#define ATK49_STATUS_IMMUNITY_ABILITIES 4
-#define ATK49_SYNCHRONIZE_ATTACKER 5
-#define ATK49_CHOICE_MOVE 6
-#define ATK49_CHANGED_ITEMS 7
-#define ATK49_ATTACKER_INVISIBLE 8
-#define ATK49_ATTACKER_VISIBLE 9
-#define ATK49_TARGET_VISIBLE 10
-#define ATK49_ITEM_EFFECTS_ALL 11
-#define ATK49_KINGSROCK_SHELLBELL 12
-#define ATK49_SUBSTITUTE 13
-#define ATK49_UPDATE_LAST_MOVES 14
-#define ATK49_MIRROR_MOVE 15
-#define ATK49_NEXT_TARGET 16
-#define ATK49_COUNT 17
+// stat change flags for Cmd_playstatchangeanimation
+#define STAT_CHANGE_NEGATIVE 0x1
+#define STAT_CHANGE_BY_TWO 0x2
+#define STAT_CHANGE_MULTIPLE_STATS 0x4
+#define STAT_CHANGE_CANT_PREVENT 0x8
+// stat flags for Cmd_playstatchangeanimation
#define BIT_HP 0x1
#define BIT_ATK 0x2
#define BIT_DEF 0x4
@@ -131,4 +112,24 @@
#define BIT_ACC 0x40
#define BIT_EVASION 0x80
+// cases for Cmd_moveend
+#define MOVEEND_RAGE 0
+#define MOVEEND_DEFROST 1
+#define MOVEEND_SYNCHRONIZE_TARGET 2
+#define MOVEEND_ON_DAMAGE_ABILITIES 3
+#define MOVEEND_IMMUNITY_ABILITIES 4
+#define MOVEEND_SYNCHRONIZE_ATTACKER 5
+#define MOVEEND_CHOICE_MOVE 6
+#define MOVEEND_CHANGED_ITEMS 7
+#define MOVEEND_ATTACKER_INVISIBLE 8
+#define MOVEEND_ATTACKER_VISIBLE 9
+#define MOVEEND_TARGET_VISIBLE 10
+#define MOVEEND_ITEM_EFFECTS_ALL 11
+#define MOVEEND_KINGSROCK_SHELLBELL 12
+#define MOVEEND_SUBSTITUTE 13
+#define MOVEEND_UPDATE_LAST_MOVES 14
+#define MOVEEND_MIRROR_MOVE 15
+#define MOVEEND_NEXT_TARGET 16
+#define MOVEEND_COUNT 17
+
#endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
diff --git a/include/constants/battle_setup.h b/include/constants/battle_setup.h
index d98e1762f..d825c88bc 100644
--- a/include/constants/battle_setup.h
+++ b/include/constants/battle_setup.h
@@ -13,6 +13,6 @@
#define TRAINER_BATTLE_PYRAMID 9
#define TRAINER_BATTLE_SET_TRAINER_A 10
#define TRAINER_BATTLE_SET_TRAINER_B 11
-#define TRAINER_BATTLE_12 12
+#define TRAINER_BATTLE_HILL 12
#endif // GUARD_CONSTANTS_BATTLE_SETUP_H
diff --git a/include/constants/battle_tower.h b/include/constants/battle_tower.h
new file mode 100644
index 000000000..508656fab
--- /dev/null
+++ b/include/constants/battle_tower.h
@@ -0,0 +1,21 @@
+#ifndef GUARD_CONSTANTS_BATTLE_TOWER_H
+#define GUARD_CONSTANTS_BATTLE_TOWER_H
+
+#define BATTLE_TOWER_FUNC_0 0
+#define BATTLE_TOWER_FUNC_1 1
+#define BATTLE_TOWER_FUNC_2 2
+#define BATTLE_TOWER_FUNC_CHOOSE_TRAINER 3
+#define BATTLE_TOWER_FUNC_4 4
+#define BATTLE_TOWER_FUNC_GIVE_RIBBONS 5
+#define BATTLE_TOWER_FUNC_SAVE 6
+#define BATTLE_TOWER_FUNC_7 7
+#define BATTLE_TOWER_FUNC_NOP 8
+#define BATTLE_TOWER_FUNC_NOP2 9
+#define BATTLE_TOWER_FUNC_10 10
+#define BATTLE_TOWER_FUNC_11 11
+#define BATTLE_TOWER_FUNC_12 12
+#define BATTLE_TOWER_FUNC_13 13
+#define BATTLE_TOWER_FUNC_14 14
+#define BATTLE_TOWER_FUNC_15 15
+
+#endif //GUARD_CONSTANTS_BATTLE_TOWER_H
diff --git a/include/constants/coins.h b/include/constants/coins.h
new file mode 100644
index 000000000..fd68f3f9e
--- /dev/null
+++ b/include/constants/coins.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_CONSTANTS_COINS_H
+#define GUARD_CONSTANTS_COINS_H
+
+#define MAX_COINS 9999
+
+#endif // GUARD_CONSTANTS_COINS_H \ No newline at end of file
diff --git a/include/constants/contest.h b/include/constants/contest.h
index d3296222b..186c56e2b 100644
--- a/include/constants/contest.h
+++ b/include/constants/contest.h
@@ -9,6 +9,19 @@
#define LINK_CONTEST_FLAG_IS_WIRELESS (1 << 1)
#define LINK_CONTEST_FLAG_HAS_RS_PLAYER (1 << 2)
+#define CONTEST_RANK_NORMAL 0
+#define CONTEST_RANK_SUPER 1
+#define CONTEST_RANK_HYPER 2
+#define CONTEST_RANK_MASTER 3
+#define CONTEST_RANK_LINK 4
+
+// States for VAR_CONTEST_TYPE
+#define CONTEST_TYPE_NPC_NORMAL (CONTEST_RANK_NORMAL + 1)
+#define CONTEST_TYPE_NPC_SUPER (CONTEST_RANK_SUPER + 1)
+#define CONTEST_TYPE_NPC_HYPER (CONTEST_RANK_HYPER + 1)
+#define CONTEST_TYPE_NPC_MASTER (CONTEST_RANK_MASTER + 1)
+#define CONTEST_TYPE_LINK (CONTEST_RANK_LINK + 1)
+
#define CONTEST_CATEGORY_COOL 0
#define CONTEST_CATEGORY_BEAUTY 1
#define CONTEST_CATEGORY_CUTE 2
@@ -16,4 +29,10 @@
#define CONTEST_CATEGORY_TOUGH 4
#define CONTEST_CATEGORIES_COUNT 5
+#define CANT_ENTER_CONTEST 0
+#define CAN_ENTER_CONTEST_EQUAL_RANK 1
+#define CAN_ENTER_CONTEST_HIGH_RANK 2
+#define CANT_ENTER_CONTEST_EGG 3
+#define CANT_ENTER_CONTEST_FAINTED 4
+
#endif // GUARD_CONSTANTS_CONTEST_H
diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h
index 50f5994f4..8e82cfef0 100644
--- a/include/constants/easy_chat.h
+++ b/include/constants/easy_chat.h
@@ -1095,6 +1095,15 @@
#define EC_WORD_OLD (EC_GROUP_TRENDY_SAYING << 9) | 0x1e
#define EC_WORD_YOUNG (EC_GROUP_TRENDY_SAYING << 9) | 0x1f
#define EC_WORD_UGLY (EC_GROUP_TRENDY_SAYING << 9) | 0x20
+#define NUM_ADDITIONAL_PHRASES 33
+
+// Special Berry Masters Wife phrases
+#define NOT_SPECIAL_PHRASE 0
+#define PHRASE_GREAT_BATTLE 1
+#define PHRASE_CHALLENGE_CONTEST 2
+#define PHRASE_OVERWHELMING_LATIAS 3
+#define PHRASE_COOL_LATIOS 4
+#define PHRASE_SUPER_HUSTLE 5
#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 9) | SPECIES_##mon)
#define EC_POKEMON2(mon) ((EC_GROUP_POKEMON_2 << 9) | SPECIES_##mon)
diff --git a/include/constants/field_specials.h b/include/constants/field_specials.h
index 5ec38d1d4..5dde18058 100644
--- a/include/constants/field_specials.h
+++ b/include/constants/field_specials.h
@@ -13,6 +13,19 @@
#define SS_TIDAL_LOCATION_ROUTE124 3
#define SS_TIDAL_LOCATION_ROUTE131 4
+#define SS_TIDAL_BOARD_SLATEPORT 1
+#define SS_TIDAL_DEPART_SLATEPORT 2
+#define SS_TIDAL_HALFWAY_LILYCOVE 3
+#define SS_TIDAL_LAND_LILYCOVE 4
+#define SS_TIDAL_BOARD_LILYCOVE 5
+#define SS_TIDAL_DEPART_LILYCOVE 6
+#define SS_TIDAL_HALFWAY_SLATEPORT 7
+#define SS_TIDAL_LAND_SLATEPORT 8
+#define SS_TIDAL_EXIT_CURRENTS_RIGHT 9
+#define SS_TIDAL_EXIT_CURRENTS_LEFT 10
+
+#define SS_TIDAL_MAX_STEPS 205
+
// Scrollable Multichoice Menus
#define SCROLL_MULTI_NONE 0
#define SCROLL_MULTI_GLASS_WORKSHOP_VENDOR 1
@@ -49,4 +62,17 @@
#define DEPT_STORE_FLOORNUM_11F 14
#define DEPT_STORE_FLOORNUM_ROOFTOP 15
+// Lilycove Pokemon Trainer Fan Club
+#define NUM_TRAINER_FAN_CLUB_MEMBERS 8
+
+#define FANCLUB_GOT_FIRST_FANS 7
+#define FANCLUB_MEMBER1 8
+#define FANCLUB_MEMBER2 9
+#define FANCLUB_MEMBER3 10
+#define FANCLUB_MEMBER4 11
+#define FANCLUB_MEMBER5 12
+#define FANCLUB_MEMBER6 13
+#define FANCLUB_MEMBER7 14
+#define FANCLUB_MEMBER8 15
+
#endif // GUARD_CONSTANTS_FIELD_SPECIALS_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
index e9f9aa770..1eb8a0673 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -87,7 +87,7 @@
#define FLAG_UNUSED_0x04F 0x4F // Unused Flag
// Scripts
-#define FLAG_RAYQUAZA_ON_SKY_TOWER_SUMMIT 0x50
+#define FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT 0x50
#define FLAG_SET_WALL_CLOCK 0x51
#define FLAG_RESCUED_BIRCH 0x52
#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
@@ -95,7 +95,7 @@
#define FLAG_UNUSED_0x054 0x54 // Unused Flag
#define FLAG_UNUSED_0x055 0x55 // Unused Flag
-#define FLAG_LINK_CONTEST_POKE_BALL 0x56
+#define FLAG_HIDE_CONTEST_POKE_BALL 0x56 // Always set after new game, object it hides is added directly
#define FLAG_MET_RIVAL_MOM 0x57
#define FLAG_BIRCH_AIDE_MET 0x58
#define FLAG_DECLINED_BIKE 0x59
@@ -119,13 +119,13 @@
#define FLAG_OCEANIC_MUSEUM_MET_REPORTER 0x69
#define FLAG_RECEIVED_HM04 0x6A
#define FLAG_RECEIVED_HM06 0x6B
-#define FLAG_FLANNERY_GIVES_BADGE_INFO 0x6C
+#define FLAG_WHITEOUT_TO_LAVARIDGE 0x6C // Set after defeating Flannery, so the player cant white out from poison before receiving Go Goggles
#define FLAG_RECEIVED_HM05 0x6D
#define FLAG_RECEIVED_HM02 0x6E
#define FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT 0x6F
#define FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE 0x70
#define FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE 0x71 // Unused Flag. Used in R/S to indicate whether player defeated or caught Groudon/Kyogre in Cave of Origin.
-#define FLAG_SCOTT_CALL_NATIONAL_DEX 0x72 // Used in order to activate a phone call from Scott, inviting the player to the SS Tidal.
+#define FLAG_SCOTT_CALL_BATTLE_FRONTIER 0x72 // Used in order to activate a phone call from Scott, inviting the player to the SS Tidal.
#define FLAG_RECEIVED_METEORITE 0x73
#define FLAG_ADVENTURE_STARTED 0x74 // RECEIVED Pokédex.
#define FLAG_DEFEATED_MAGMA_SPACE_CENTER 0x75 // Set when Team Magma is defeated at Mossdeep's Space Center.
@@ -146,12 +146,12 @@
#define FLAG_DEFEATED_RIVAL_ROUTE103 0x82
#define FLAG_RECEIVED_DOLL_LANETTE 0x83
#define FLAG_RECEIVED_POTION_OLDALE 0x84
-#define FLAG_MOM_SAYS_GOODBYE 0x85
+#define FLAG_RECEIVED_AMULET_COIN 0x85
#define FLAG_PENDING_DAYCARE_EGG 0x86
#define FLAG_THANKED_FOR_PLAYING_WITH_WALLY 0x87
#define FLAG_ENABLE_FIRST_WALLY_POKENAV_CALL 0x88 // Set after defeating Wally outside Mauville Gym. Will activate a call later to register Wally.
#define FLAG_RECEIVED_HM01 0x89
-#define FLAG_REGISTER_WINONA_POKENAV 0x8A // Set after obtaining registering Winona, and cleared after Scott's call.
+#define FLAG_SCOTT_CALL_FORTREE_GYM 0x8A // Triggers call from Scott after defeating Winona
#define FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY 0x8B
#define FLAG_RECEIVED_6_SODA_POP 0x8C
#define FLAG_DEFEATED_SEASHORE_HOUSE 0x8D
@@ -163,9 +163,7 @@
#define FLAG_MR_BRINEY_SAILING_INTRO 0x93
#define FLAG_DOCK_REJECTED_DEVON_GOODS 0x94
#define FLAG_DELIVERED_DEVON_GOODS 0x95
-
-#define FLAG_UNUSED_0x096 0x96 // Unused Flag
-
+#define FLAG_RECEIVED_CONTEST_PASS 0x96 // Unused, leftover from R/S
#define FLAG_RECEIVED_CASTFORM 0x97
#define FLAG_RECEIVED_SUPER_ROD 0x98
#define FLAG_RUSTBORO_NPC_TRADE_COMPLETED 0x99
@@ -209,11 +207,11 @@
#define FLAG_DEFEATED_GRUNT_SPACE_CENTER_1F 0xBF
#define FLAG_RECEIVED_SUN_STONE_MOSSDEEP 0xC0
#define FLAG_WALLY_SPEECH 0xC1
-#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 0xC2
-#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2 0xC3
-#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3 0xC4
-#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4 0xC5
-#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5 0xC6
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 0xC2 // Leftover from the RS version of Puzzle Room 7, functionally unused
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2 0xC3 //
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3 0xC4 //
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4 0xC5 //
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5 0xC6 //
#define FLAG_RUSTURF_TUNNEL_OPENED 0xC7
#define FLAG_RECEIVED_RED_SCARF 0xC8
#define FLAG_RECEIVED_BLUE_SCARF 0xC9
@@ -263,7 +261,7 @@
#define FLAG_USED_ROOM_2_KEY 0xF1
#define FLAG_USED_ROOM_4_KEY 0xF2
#define FLAG_USED_ROOM_6_KEY 0xF3
-#define FLAG_MET_PROF_COSMO 0xF4
+#define FLAG_MET_PROF_COZMO 0xF4
#define FLAG_RECEIVED_WAILMER_DOLL 0xF5
#define FLAG_RECEIVED_CHESTO_BERRY_ROUTE_104 0xF6
#define FLAG_DEFEATED_SS_TIDAL_TRAINERS 0xF7
@@ -289,7 +287,7 @@
#define FLAG_RECEIVED_REVIVED_FOSSIL_MON 0x10B
#define FLAG_SECRET_BASE_REGISTRY_ENABLED 0x10C
#define FLAG_RECEIVED_TM46 0x10D
-#define FLAG_CONTEST_SKETCH_CREATED 0x10E
+#define FLAG_CONTEST_SKETCH_CREATED 0x10E // Set but never read
#define FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE 0x10F
#define FLAG_RECEIVED_EXP_SHARE 0x110
#define FLAG_POKERUS_EXPLAINED 0x111
@@ -332,10 +330,10 @@
#define FLAG_MET_SCOTT_RUSTBORO 0x136
#define FLAG_WALLACE_GOES_TO_SKY_PILLAR 0x137 // Set after speaking to Wallace within the Cave of Origin.
#define FLAG_RECEIVED_HM07 0x138
-#define FLAG_BEAT_MAGMA_GRUNT_JAGGED_PASS 0x139 // Beat Magma Grunt blocking Magma Hideout entrance.
-#define FLAG_RECEIVED_AURORA_TICKET 0x13A // RECEIVED Aurora Ticket in Mystery Gift
-#define FLAG_RECEIVED_MYSTIC_TICKET 0x13B // RECEIVED Mystic Ticket in Mystery Gift
-#define FLAG_RECEIVED_OLD_SEA_MAP 0x13C // RECEIVED Old Sea Map in Mystery Gift
+#define FLAG_BEAT_MAGMA_GRUNT_JAGGED_PASS 0x139
+#define FLAG_RECEIVED_AURORA_TICKET 0x13A
+#define FLAG_RECEIVED_MYSTIC_TICKET 0x13B
+#define FLAG_RECEIVED_OLD_SEA_MAP 0x13C
#define FLAG_UNUSED_MYSTERY_GIFT_0x13D 0x13D
#define FLAG_UNUSED_MYSTERY_GIFT_0x13E 0x13E
#define FLAG_UNUSED_MYSTERY_GIFT_0x13F 0x13F
@@ -355,17 +353,17 @@
#define FLAG_UNUSED_MYSTERY_GIFT_0x14D 0x14D
#define FLAG_MIRAGE_TOWER_VISIBLE 0x14E
-#define FLAG_CHOSE_CLAW_FOSSIL 0x14F // Player chose Claw Fossil
-#define FLAG_CHOSE_ROOT_FOSSIL 0x150 // Player chose Root Fossil
+#define FLAG_CHOSE_ROOT_FOSSIL 0x14F
+#define FLAG_CHOSE_CLAW_FOSSIL 0x150
#define FLAG_RECEIVED_POWDER_JAR 0x151
#define FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER 0x152
#define FLAG_MET_BATTLE_FRONTIER_BREEDER 0x153
#define FLAG_MET_BATTLE_FRONTIER_MANIAC 0x154
-#define FLAG_ENTERED_LINK_CONTEST 0x155
+#define FLAG_ENTERED_CONTEST 0x155
#define FLAG_MET_SLATEPORT_FANCLUB_CHAIRMAN 0x156
-#define FLAG_MET_BATTLE_FRONTIER_BETTOR 0x157
+#define FLAG_MET_BATTLE_FRONTIER_GAMBLER 0x157
#define FLAG_ENABLE_MR_STONE_POKENAV 0x158
#define FLAG_NURSE_MENTIONS_GOLD_CARD 0x159
#define FLAG_MET_FRONTIER_BEAUTY_MOVE_TUTOR 0x15A
@@ -493,7 +491,7 @@
#define FLAG_MET_SCOTT_IN_EVERGRANDE 0x1CF
#define FLAG_MET_SCOTT_ON_SS_TIDAL 0x1D0
#define FLAG_SCOTT_GIVES_BATTLE_POINTS 0x1D1
-#define FLAG_RECEIVED_STARF_BERRY_FROM_SCOTT 0x1D2
+#define FLAG_COLLECTED_ALL_GOLD_SYMBOLS 0x1D2
#define FLAG_ENABLE_ROXANNE_MATCH_CALL 0x1D3
#define FLAG_ENABLE_BRAWLY_MATCH_CALL 0x1D4
#define FLAG_ENABLE_WATTSON_MATCH_CALL 0x1D5
@@ -650,6 +648,95 @@
#define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 0x5D)
#define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_3 (FLAG_HIDDEN_ITEMS_START + 0x5E)
+#define FLAG_UNUSED_0x264 0x264 // Unused Flag
+#define FLAG_UNUSED_0x265 0x265 // Unused Flag
+#define FLAG_UNUSED_0x266 0x266 // Unused Flag
+#define FLAG_UNUSED_0x267 0x267 // Unused Flag
+#define FLAG_UNUSED_0x268 0x268 // Unused Flag
+#define FLAG_UNUSED_0x269 0x269 // Unused Flag
+#define FLAG_UNUSED_0x26A 0x26A // Unused Flag
+#define FLAG_UNUSED_0x26B 0x26B // Unused Flag
+#define FLAG_UNUSED_0x26C 0x26C // Unused Flag
+#define FLAG_UNUSED_0x26D 0x26D // Unused Flag
+#define FLAG_UNUSED_0x26E 0x26E // Unused Flag
+#define FLAG_UNUSED_0x26F 0x26F // Unused Flag
+#define FLAG_UNUSED_0x270 0x270 // Unused Flag
+#define FLAG_UNUSED_0x271 0x271 // Unused Flag
+#define FLAG_UNUSED_0x272 0x272 // Unused Flag
+#define FLAG_UNUSED_0x273 0x273 // Unused Flag
+#define FLAG_UNUSED_0x274 0x274 // Unused Flag
+#define FLAG_UNUSED_0x275 0x275 // Unused Flag
+#define FLAG_UNUSED_0x276 0x276 // Unused Flag
+#define FLAG_UNUSED_0x277 0x277 // Unused Flag
+#define FLAG_UNUSED_0x278 0x278 // Unused Flag
+#define FLAG_UNUSED_0x279 0x279 // Unused Flag
+#define FLAG_UNUSED_0x27A 0x27A // Unused Flag
+#define FLAG_UNUSED_0x27B 0x27B // Unused Flag
+#define FLAG_UNUSED_0x27C 0x27C // Unused Flag
+#define FLAG_UNUSED_0x27D 0x27D // Unused Flag
+#define FLAG_UNUSED_0x27E 0x27E // Unused Flag
+#define FLAG_UNUSED_0x27F 0x27F // Unused Flag
+#define FLAG_UNUSED_0x280 0x280 // Unused Flag
+#define FLAG_UNUSED_0x281 0x281 // Unused Flag
+#define FLAG_UNUSED_0x282 0x282 // Unused Flag
+#define FLAG_UNUSED_0x283 0x283 // Unused Flag
+#define FLAG_UNUSED_0x284 0x284 // Unused Flag
+#define FLAG_UNUSED_0x285 0x285 // Unused Flag
+#define FLAG_UNUSED_0x286 0x286 // Unused Flag
+#define FLAG_UNUSED_0x287 0x287 // Unused Flag
+#define FLAG_UNUSED_0x288 0x288 // Unused Flag
+#define FLAG_UNUSED_0x289 0x289 // Unused Flag
+#define FLAG_UNUSED_0x28A 0x28A // Unused Flag
+#define FLAG_UNUSED_0x28B 0x28B // Unused Flag
+#define FLAG_UNUSED_0x28C 0x28C // Unused Flag
+#define FLAG_UNUSED_0x28D 0x28D // Unused Flag
+#define FLAG_UNUSED_0x28E 0x28E // Unused Flag
+#define FLAG_UNUSED_0x28F 0x28F // Unused Flag
+#define FLAG_UNUSED_0x290 0x290 // Unused Flag
+#define FLAG_UNUSED_0x291 0x291 // Unused Flag
+#define FLAG_UNUSED_0x292 0x292 // Unused Flag
+#define FLAG_UNUSED_0x293 0x293 // Unused Flag
+#define FLAG_UNUSED_0x294 0x294 // Unused Flag
+#define FLAG_UNUSED_0x295 0x295 // Unused Flag
+#define FLAG_UNUSED_0x296 0x296 // Unused Flag
+#define FLAG_UNUSED_0x297 0x297 // Unused Flag
+#define FLAG_UNUSED_0x298 0x298 // Unused Flag
+#define FLAG_UNUSED_0x299 0x299 // Unused Flag
+#define FLAG_UNUSED_0x29A 0x29A // Unused Flag
+#define FLAG_UNUSED_0x29B 0x29B // Unused Flag
+#define FLAG_UNUSED_0x29C 0x29C // Unused Flag
+#define FLAG_UNUSED_0x29D 0x29D // Unused Flag
+#define FLAG_UNUSED_0x29E 0x29E // Unused Flag
+#define FLAG_UNUSED_0x29F 0x29F // Unused Flag
+#define FLAG_UNUSED_0x2A0 0x2A0 // Unused Flag
+#define FLAG_UNUSED_0x2A1 0x2A1 // Unused Flag
+#define FLAG_UNUSED_0x2A2 0x2A2 // Unused Flag
+#define FLAG_UNUSED_0x2A3 0x2A3 // Unused Flag
+#define FLAG_UNUSED_0x2A4 0x2A4 // Unused Flag
+#define FLAG_UNUSED_0x2A5 0x2A5 // Unused Flag
+#define FLAG_UNUSED_0x2A6 0x2A6 // Unused Flag
+#define FLAG_UNUSED_0x2A7 0x2A7 // Unused Flag
+#define FLAG_UNUSED_0x2A8 0x2A8 // Unused Flag
+#define FLAG_UNUSED_0x2A9 0x2A9 // Unused Flag
+#define FLAG_UNUSED_0x2AA 0x2AA // Unused Flag
+#define FLAG_UNUSED_0x2AB 0x2AB // Unused Flag
+#define FLAG_UNUSED_0x2AC 0x2AC // Unused Flag
+#define FLAG_UNUSED_0x2AD 0x2AD // Unused Flag
+#define FLAG_UNUSED_0x2AE 0x2AE // Unused Flag
+#define FLAG_UNUSED_0x2AF 0x2AF // Unused Flag
+#define FLAG_UNUSED_0x2B0 0x2B0 // Unused Flag
+#define FLAG_UNUSED_0x2B1 0x2B1 // Unused Flag
+#define FLAG_UNUSED_0x2B2 0x2B2 // Unused Flag
+#define FLAG_UNUSED_0x2B3 0x2B3 // Unused Flag
+#define FLAG_UNUSED_0x2B4 0x2B4 // Unused Flag
+#define FLAG_UNUSED_0x2B5 0x2B5 // Unused Flag
+#define FLAG_UNUSED_0x2B6 0x2B6 // Unused Flag
+#define FLAG_UNUSED_0x2B7 0x2B7 // Unused Flag
+#define FLAG_UNUSED_0x2B8 0x2B8 // Unused Flag
+#define FLAG_UNUSED_0x2B9 0x2B9 // Unused Flag
+#define FLAG_UNUSED_0x2BA 0x2BA // Unused Flag
+#define FLAG_UNUSED_0x2BB 0x2BB // Unused Flag
+
// Event Flags
#define FLAG_HIDE_ROUTE_101_BIRCH_STARTERS_BAG 0x2BC
#define FLAG_HIDE_APPRENTICE 0x2BD
@@ -690,16 +777,16 @@
#define FLAG_HIDE_PLAYERS_HOUSE_DAD 0x2DE
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_SIBLING 0x2DF
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_SIBLING 0x2E0
-#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_INVISIBLE_NINJA_BOY 0x2E1
+#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_MAGMA_NOTE 0x2E1
#define FLAG_HIDE_ROUTE_104_MR_BRINEY 0x2E2
#define FLAG_HIDE_BRINEYS_HOUSE_MR_BRINEY 0x2E3
#define FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN 0x2E4
-#define FLAG_HIDE_ROUTE_108_MR_BRINEY 0x2E5
+#define FLAG_HIDE_ROUTE_109_MR_BRINEY 0x2E5
#define FLAG_HIDE_ROUTE_104_MR_BRINEY_BOAT 0x2E6
#define FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN 0x2E7
#define FLAG_HIDE_ROUTE_109_MR_BRINEY_BOAT 0x2E8
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_BRENDAN 0x2E9
-#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_BRENDAN 0x2EA
+#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MAY 0x2EA
#define FLAG_HIDE_SAFARI_ZONE_SOUTH_EAST_EXPANSION 0x2EB
#define FLAG_HIDE_LILYCOVE_HARBOR_EVENT_TICKET_TAKER 0x2EC
#define FLAG_HIDE_SLATEPORT_CITY_SCOTT 0x2ED
@@ -720,7 +807,7 @@
#define FLAG_HIDE_BIRTH_ISLAND_DEOXYS_TRIANGLE 0x2FC
#define FLAG_HIDE_MAUVILLE_CITY_SCOTT 0x2FD
#define FLAG_HIDE_VERDANTURF_TOWN_SCOTT 0x2FE
-#define FLAG_HIDE_FALLORBOR_TOWN_BATTLE_TENT_SCOTT 0x2FF
+#define FLAG_HIDE_FALLARBOR_TOWN_BATTLE_TENT_SCOTT 0x2FF
#define FLAG_HIDE_ROUTE_111_VICTOR_WINSTRATE 0x300
#define FLAG_HIDE_ROUTE_111_VICTORIA_WINSTRATE 0x301
#define FLAG_HIDE_ROUTE_111_VIVI_WINSTRATE 0x302
@@ -760,14 +847,14 @@
#define FLAG_HIDE_MAUVILLE_CITY_WALLY 0x324
#define FLAG_HIDE_MAUVILLE_CITY_WALLYS_UNCLE 0x325
#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLY 0x326
-#define FLAG_HIDE_RUSTURF_TUNNEL_LOVER_MAN 0x327
-#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_LOVER_MAN 0x328
+#define FLAG_HIDE_RUSTURF_TUNNEL_WANDAS_BOYFRIEND 0x327
+#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WANDAS_BOYFRIEND 0x328
#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLYS_UNCLE 0x329
#define FLAG_HIDE_SS_TIDAL_CORRIDOR_SCOTT 0x32A
#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_POKEBALL_CYNDAQUIL 0x32B
#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_POKEBALL_TOTODILE 0x32C
#define FLAG_HIDE_ROUTE_116_DROPPED_GLASSES_MAN 0x32D
-#define FLAG_HIDE_RUSBORO_CITY_RIVAL 0x32E
+#define FLAG_HIDE_RUSTBORO_CITY_RIVAL 0x32E
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_SWABLU_DOLL 0x32F
#define FLAG_HIDE_SOOTOPOLIS_CITY_WALLACE 0x330
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_POKE_BALL 0x331
@@ -778,16 +865,14 @@
#define FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_2_BLOCKING_ENTRANCE 0x336
#define FLAG_HIDE_MOSSDEEP_CITY_TEAM_MAGMA 0x337
#define FLAG_HIDE_PETALBURG_GYM_WALLYS_UNCLE 0x338
-
-#define FLAG_UNUSED_0x339 0x339 // Unused Flag
-
+#define FLAG_HIDE_LEGEND_MON_CAVE_OF_ORIGIN 0x339 // Unused, leftover from R/S
#define FLAG_HIDE_SOOTOPOLIS_CITY_ARCHIE 0x33A
#define FLAG_HIDE_SOOTOPOLIS_CITY_MAXIE 0x33B
#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE 0x33C
#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE 0x33D
#define FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE 0x33E
#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS 0x33F
-#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER_ONLOOKERS 0x340
+#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER 0x340
#define FLAG_HIDE_GRANITE_CAVE_STEVEN 0x341
#define FLAG_HIDE_ROUTE_128_STEVEN 0x342
#define FLAG_HIDE_SLATEPORT_CITY_GABBY_AND_TY 0x343
@@ -828,13 +913,13 @@
#define FLAG_HIDE_LANETTES_HOUSE_LANETTE 0x366
#define FLAG_HIDE_FALLORBOR_POKEMON_CENTER_LANETTE 0x367
#define FLAG_HIDE_TRICK_HOUSE_ENTRANCE_MAN 0x368
-#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_POKEBLOCK_EXPERT 0x369
+#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER_REPLACEMENT 0x369
#define FLAG_HIDE_DESERT_UNDERPASS_FOSSIL 0x36A
#define FLAG_HIDE_ROUTE_111_PLAYER_DESCENT 0x36B
#define FLAG_HIDE_ROUTE_111_DESERT_FOSSIL 0x36C
#define FLAG_HIDE_MT_CHIMNEY_TRAINERS 0x36D
#define FLAG_HIDE_RUSTURF_TUNNEL_AQUA_GRUNT 0x36E
-#define FLAG_HIDE_RUSTURF_TUNNEL_OLD_MAN 0x36F
+#define FLAG_HIDE_RUSTURF_TUNNEL_BRINEY 0x36F
#define FLAG_HIDE_RUSTURF_TUNNEL_PEEKO 0x370
#define FLAG_HIDE_BRINEYS_HOUSE_PEEKO 0x371
#define FLAG_HIDE_SLATEPORT_CITY_TEAM_AQUA 0x372
@@ -849,7 +934,7 @@
#define FLAG_HIDE_ROUTE_116_MR_BRINEY 0x37B
#define FLAG_HIDE_WEATHER_INSTITUTE_1F_WORKERS 0x37C
#define FLAG_HIDE_WEATHER_INSTITUTE_2F_WORKERS 0x37D
-#define FLAG_HIDE_ROUTE_116_TUNNELER 0x37E
+#define FLAG_HIDE_ROUTE_116_WANDAS_BOYFRIEND 0x37E
#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_CONTEST_ATTENDANT_2 0x37F
#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_UNKNOWN_0x380 0x380
#define FLAG_HIDE_ROUTE_101_BIRCH 0x381
@@ -883,9 +968,9 @@
#define FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS 0x39D
#define FLAG_HIDE_MT_CHIMNEY_TEAM_AQUA 0x39E
#define FLAG_HIDE_MT_CHIMNEY_TEAM_MAGMA 0x39F
-#define FLAG_HIDE_FALLARBOR_HOUSE_1_PROF_COZMO 0x3A0
-#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_1 0x3A1
-#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_2 0x3A2
+#define FLAG_HIDE_FALLARBOR_HOUSE_PROF_COZMO 0x3A0
+#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL 0x3A1
+#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_ON_BIKE 0x3A2
#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3
#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2 0x3A4
#define FLAG_HIDE_FORTREE_CITY_HOUSE_4_WINGULL 0x3A5
@@ -938,8 +1023,8 @@
#define FLAG_HIDE_UNDERWATER_SEA_FLOOR_CAVERN_STOLEN_SUBMARINE 0x3D4
#define FLAG_HIDE_ROUTE_120_KECLEON_BRIDGE_VISIBLE 0x3D5
#define FLAG_HIDE_ROUTE_120_KECLEON_1 0x3D6
-#define FLAG_HIDE_RUSTURF_TUNNEL_LOVER_WOMAN 0x3D7
-#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_LOVER_WOMAN 0x3D8
+#define FLAG_HIDE_RUSTURF_TUNNEL_WANDA 0x3D7
+#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WANDA 0x3D8
#define FLAG_HIDE_ROUTE_120_KECLEON_2 0x3D9
#define FLAG_HIDE_ROUTE_120_KECLEON_3 0x3DA
#define FLAG_HIDE_ROUTE_120_KECLEON_4 0x3DB
@@ -948,7 +1033,7 @@
#define FLAG_HIDE_ROUTE_119_KECLEON_2 0x3DE
#define FLAG_HIDE_ROUTE_101_BOY 0x3DF
#define FLAG_HIDE_WEATHER_INSTITUTE_2F_AQUA_GRUNT_M 0x3E0
-#define FLAG_HIDE_LILYCOVE_POKEMON_CENTER_LADY 0x3E1
+#define FLAG_HIDE_LILYCOVE_POKEMON_CENTER_CONTEST_LADY_MON 0x3E1
#define FLAG_HIDE_MT_CHIMNEY_LAVA_COOKIE_LADY 0x3E2
#define FLAG_HIDE_PETALBURG_CITY_SCOTT 0x3E3
#define FLAG_HIDE_SOOTOPOLIS_CITY_RAYQUAZA 0x3E4
@@ -1552,6 +1637,6 @@
#define FLAG_DONT_TRANSITION_MUSIC 0x4001
#define FLAG_SPECIAL_FLAG_0x4002 0x4002
#define FLAG_SPECIAL_FLAG_0x4003 0x4003
-#define FLAG_SPECIAL_FLAG_0x4004 0x4004
+#define FLAG_STORING_ITEMS_IN_PYRAMID_BAG 0x4004
#endif // GUARD_CONSTANTS_FLAGS_H
diff --git a/include/constants/frontier_util.h b/include/constants/frontier_util.h
new file mode 100644
index 000000000..52bde509f
--- /dev/null
+++ b/include/constants/frontier_util.h
@@ -0,0 +1,32 @@
+#ifndef GUARD_CONSTANTS_FRONTIER_UTIL_H
+#define GUARD_CONSTANTS_FRONTIER_UTIL_H
+
+#define FRONTIER_BEFORE_TEXT 0
+#define FRONTIER_PLAYER_LOST_TEXT 1
+#define FRONTIER_PLAYER_WON_TEXT 2
+
+#define FRONTIER_UTIL_FUNC_0 0
+#define FRONTIER_UTIL_FUNC_1 1
+#define FRONTIER_UTIL_FUNC_2 2
+#define FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY 3
+#define FRONTIER_UTIL_FUNC_SOFT_RESET 4
+#define FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS 5
+#define FRONTIER_UTIL_FUNC_6 6
+#define FRONTIER_UTIL_FUNC_RESULTS_WINDOW 7
+#define FRONTIER_UTIL_FUNC_8 8
+#define FRONTIER_UTIL_FUNC_9 9
+#define FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN 10
+#define FRONTIER_UTIL_FUNC_11 11
+#define FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS 12
+#define FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL 13
+#define FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE 14
+#define FRONTIER_UTIL_FUNC_15 15
+#define FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER 16
+#define FRONTIER_UTIL_FUNC_17 17
+#define FRONTIER_UTIL_FUNC_18 18
+#define FRONTIER_UTIL_FUNC_19 19
+#define FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME 20
+#define FRONTIER_UTIL_FUNC_21 21
+#define FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT 22
+
+#endif // GUARD_CONSTANTS_FRONTIER_UTIL_H
diff --git a/include/constants/global.h b/include/constants/global.h
index 091f735f4..3ee7650a8 100644
--- a/include/constants/global.h
+++ b/include/constants/global.h
@@ -18,12 +18,13 @@
#define VERSION_GAMECUBE 15
#define LANGUAGE_JAPANESE 1
-#define LANGUAGE_ENGLISH 2
-#define LANGUAGE_FRENCH 3
-#define LANGUAGE_ITALIAN 4
-#define LANGUAGE_GERMAN 5
-#define LANGUAGE_KOREAN 6 // 6 goes unused but the theory is it was meant to be Korean
-#define LANGUAGE_SPANISH 7
+#define LANGUAGE_ENGLISH 2
+#define LANGUAGE_FRENCH 3
+#define LANGUAGE_ITALIAN 4
+#define LANGUAGE_GERMAN 5
+#define LANGUAGE_KOREAN 6 // 6 goes unused but the theory is it was meant to be Korean
+#define LANGUAGE_SPANISH 7
+#define NUM_LANGUAGES 7
#define GAME_VERSION (VERSION_EMERALD)
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
@@ -48,12 +49,16 @@
#define EVENT_OBJECT_TEMPLATES_COUNT 64
#define DECOR_MAX_SECRET_BASE 16
#define DECOR_MAX_PLAYERS_HOUSE 12
+#define APPRENTICE_COUNT 4
+#define APPRENTICE_MAX_QUESTIONS 9
#define PYRAMID_BAG_ITEMS_COUNT 10
#define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode.
#define TRAINER_ID_LENGTH 4
#define PARTY_SIZE 6
+#define FRONTIER_PARTY_SIZE 3
+#define MULTI_PARTY_SIZE PARTY_SIZE / 2
#define MAX_MON_MOVES 4
// string lengths
@@ -61,12 +66,17 @@
#define POKEMON_NAME_LENGTH 10
#define PLAYER_NAME_LENGTH 7
#define MAIL_WORDS_COUNT 9
+#define EASY_CHAT_BATTLE_WORDS_COUNT 6
#define MOVE_NAME_LENGTH 12
#define MALE 0
#define FEMALE 1
#define GENDER_COUNT 2
+#define BARD_SONG_LENGTH 6
+#define NUM_STORYTELLER_TALES 4
+#define NUM_TRADER_ITEMS 4
+
#define OPTIONS_BUTTON_MODE_NORMAL 0
#define OPTIONS_BUTTON_MODE_LR 1
#define OPTIONS_BUTTON_MODE_L_EQUALS_A 2
diff --git a/include/constants/items.h b/include/constants/items.h
index 3a894f8ff..db3474a72 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -465,8 +465,27 @@
#define ITEMS_COUNT 377
#define ITEM_FIELD_ARROW ITEMS_COUNT
-#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
-#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
+#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
+#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
+
+// Range of berries given out by various NPCS
+#define FIRST_BERRY_MASTER_BERRY ITEM_POMEG_BERRY
+#define LAST_BERRY_MASTER_BERRY ITEM_NOMEL_BERRY
+#define FIRST_BERRY_MASTER_WIFE_BERRY ITEM_CHERI_BERRY
+#define LAST_BERRY_MASTER_WIFE_BERRY ITEM_SITRUS_BERRY
+#define FIRST_KIRI_BERRY ITEM_POMEG_BERRY
+#define LAST_KIRI_BERRY ITEM_NOMEL_BERRY
+#define FIRST_ROUTE_114_MAN_BERRY ITEM_RAZZ_BERRY
+#define LAST_ROUTE_114_MAN_BERRY ITEM_PINAP_BERRY
+
+#define NUM_BERRY_MASTER_BERRIES LAST_BERRY_MASTER_BERRY - FIRST_BERRY_MASTER_BERRY + 1
+#define NUM_BERRY_MASTER_BERRIES_SKIPPED FIRST_BERRY_MASTER_BERRY - FIRST_BERRY_INDEX
+#define NUM_BERRY_MASTER_WIFE_BERRIES LAST_BERRY_MASTER_WIFE_BERRY - FIRST_BERRY_MASTER_WIFE_BERRY + 1
+#define NUM_KIRI_BERRIES LAST_KIRI_BERRY - FIRST_KIRI_BERRY + 1
+#define NUM_KIRI_BERRIES_SKIPPED FIRST_KIRI_BERRY - FIRST_BERRY_INDEX
+#define NUM_ROUTE_114_MAN_BERRIES LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1
+#define NUM_ROUTE_114_MAN_BERRIES_SKIPPED FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX
+
#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
#define NUM_TECHNICAL_MACHINES 50
diff --git a/include/constants/layouts.h b/include/constants/layouts.h
index d4819c46a..fe905a2c6 100755
--- a/include/constants/layouts.h
+++ b/include/constants/layouts.h
@@ -221,22 +221,22 @@
#define LAYOUT_SECRET_BASE_YELLOW_CAVE4 218
#define LAYOUT_SECRET_BASE_TREE4 219
#define LAYOUT_SECRET_BASE_SHRUB4 220
-#define LAYOUT_SINGLE_BATTLE_COLOSSEUM 221
+#define LAYOUT_BATTLE_COLOSSEUM_2P 221
#define LAYOUT_TRADE_CENTER 222
#define LAYOUT_RECORD_CORNER 223
-#define LAYOUT_DOUBLE_BATTLE_COLOSSEUM 224
-#define LAYOUT_LINK_CONTEST_ROOM1 225
+#define LAYOUT_BATTLE_COLOSSEUM_4P 224
+#define LAYOUT_CONTEST_HALL 225
#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29 226
#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30 227
#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31 228
#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32 229
#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33 230
#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34 231
-#define LAYOUT_LINK_CONTEST_ROOM2 232
-#define LAYOUT_LINK_CONTEST_ROOM3 233
-#define LAYOUT_LINK_CONTEST_ROOM4 234
-#define LAYOUT_LINK_CONTEST_ROOM5 235
-#define LAYOUT_LINK_CONTEST_ROOM6 236
+#define LAYOUT_CONTEST_HALL_BEAUTY 232
+#define LAYOUT_CONTEST_HALL_TOUGH 233
+#define LAYOUT_CONTEST_HALL_COOL 234
+#define LAYOUT_CONTEST_HALL_SMART 235
+#define LAYOUT_CONTEST_HALL_CUTE 236
#define LAYOUT_INSIDE_OF_TRUCK 237
#define LAYOUT_SAFARI_ZONE_NORTHWEST 238
#define LAYOUT_SAFARI_ZONE_NORTH 239
@@ -398,7 +398,7 @@
#define LAYOUT_SAFARI_ZONE_SOUTHEAST 395
#define LAYOUT_BATTLE_FRONTIER_RANKING_HALL 396
#define LAYOUT_BATTLE_FRONTIER_LOUNGE1 397
-#define LAYOUT_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER 398
+#define LAYOUT_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER 398
#define LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE 399
#define LAYOUT_ARTISAN_CAVE_B1F 400
#define LAYOUT_ARTISAN_CAVE_1F 401
diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h
index 6a3276b44..bedaaca2a 100755
--- a/include/constants/map_groups.h
+++ b/include/constants/map_groups.h
@@ -98,8 +98,8 @@
#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8))
#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8))
#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_HOUSE1 (6 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_HOUSE2 (7 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_COZMOS_HOUSE (6 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_MOVE_RELEARNERS_HOUSE (7 | (5 << 8))
// Map Group 6
#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8))
@@ -136,12 +136,12 @@
#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8))
#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8))
#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8))
-#define MAP_SLATEPORT_CITY_HOUSE1 (5 | (9 << 8))
+#define MAP_SLATEPORT_CITY_NAME_RATERS_HOUSE (5 | (9 << 8))
#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8))
#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8))
#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8))
#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8))
-#define MAP_SLATEPORT_CITY_HOUSE2 (10 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HOUSE (10 | (9 << 8))
#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8))
#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8))
#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8))
@@ -422,22 +422,22 @@
#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8))
#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8))
#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8))
-#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8))
+#define MAP_BATTLE_COLOSSEUM_2P (24 | (25 << 8))
#define MAP_TRADE_CENTER (25 | (25 << 8))
#define MAP_RECORD_CORNER (26 | (25 << 8))
-#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8))
+#define MAP_BATTLE_COLOSSEUM_4P (27 | (25 << 8))
+#define MAP_CONTEST_HALL (28 | (25 << 8))
#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_29 (29 | (25 << 8))
#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_30 (30 | (25 << 8))
#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_31 (31 | (25 << 8))
#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_32 (32 | (25 << 8))
#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_33 (33 | (25 << 8))
#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_34 (34 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8))
+#define MAP_CONTEST_HALL_BEAUTY (35 | (25 << 8))
+#define MAP_CONTEST_HALL_TOUGH (36 | (25 << 8))
+#define MAP_CONTEST_HALL_COOL (37 | (25 << 8))
+#define MAP_CONTEST_HALL_SMART (38 | (25 << 8))
+#define MAP_CONTEST_HALL_CUTE (39 | (25 << 8))
#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8))
#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
@@ -461,95 +461,95 @@
#define MAP_UNION_ROOM (60 | (25 << 8))
// Map Group 26
-#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
-#define MAP_SAFARI_ZONE_NORTH (1 | (26 << 8))
-#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
-#define MAP_SAFARI_ZONE_SOUTH (3 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
-#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
-#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
-#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
-#define MAP_SAFARI_ZONE_NORTHEAST (12 | (26 << 8))
-#define MAP_SAFARI_ZONE_SOUTHEAST (13 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR2 (16 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM2 (17 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 (37 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 (38 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 (39 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER (42 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE2 (43 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE3 (44 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE4 (45 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE5 (47 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE6 (48 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE7 (49 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE8 (51 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE9 (52 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8))
-#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8))
-#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8))
-#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8))
-#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8))
-#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8))
-#define MAP_TRAINER_HILL_1F (61 | (26 << 8))
-#define MAP_TRAINER_HILL_2F (62 | (26 << 8))
-#define MAP_TRAINER_HILL_3F (63 | (26 << 8))
-#define MAP_TRAINER_HILL_4F (64 | (26 << 8))
-#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8))
-#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8))
-#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8))
-#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8))
-#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8))
-#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP1 (71 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP2 (72 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP3 (73 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP4 (74 | (26 << 8))
-#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN01 (76 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN02 (77 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN03 (78 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN04 (79 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN05 (80 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN06 (81 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN07 (82 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN08 (83 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN09 (84 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN10 (85 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN11 (86 | (26 << 8))
-#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8))
-#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTH (1 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTH (3 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
+#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTHEAST (12 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHEAST (13 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR2 (16 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM2 (17 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 (37 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 (38 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 (39 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER (42 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE2 (43 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE3 (44 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE4 (45 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE5 (47 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE6 (48 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE7 (49 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE8 (51 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE9 (52 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8))
+#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8))
+#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8))
+#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8))
+#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8))
+#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8))
+#define MAP_TRAINER_HILL_1F (61 | (26 << 8))
+#define MAP_TRAINER_HILL_2F (62 | (26 << 8))
+#define MAP_TRAINER_HILL_3F (63 | (26 << 8))
+#define MAP_TRAINER_HILL_4F (64 | (26 << 8))
+#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8))
+#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8))
+#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8))
+#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8))
+#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8))
+#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP1 (71 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP2 (72 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP3 (73 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP4 (74 | (26 << 8))
+#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN01 (76 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN02 (77 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN03 (78 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN04 (79 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN05 (80 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN06 (81 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN07 (82 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN08 (83 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN09 (84 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN10 (85 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN11 (86 | (26 << 8))
+#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8))
+#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8))
// Map Group 27
#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8))
diff --git a/include/constants/mauville_man.h b/include/constants/mauville_man.h
deleted file mode 100644
index b00e3a291..000000000
--- a/include/constants/mauville_man.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef GUARD_CONSTANTS_MAUVILLE_MAN_H
-#define GUARD_CONSTANTS_MAUVILLE_MAN_H
-
-#define MAUVILLE_MAN_BARD 0
-#define MAUVILLE_MAN_HIPSTER 1
-#define MAUVILLE_MAN_TRADER 2
-#define MAUVILLE_MAN_STORYTELLER 3
-#define MAUVILLE_MAN_GIDDY 4
-
-#endif // GUARD_CONSTANTS_MAUVILLE_MAN_H
diff --git a/include/constants/mauville_old_man.h b/include/constants/mauville_old_man.h
new file mode 100644
index 000000000..c1fb0bf24
--- /dev/null
+++ b/include/constants/mauville_old_man.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_CONSTANTS_MAUVILLE_OLD_MAN_H
+#define GUARD_CONSTANTS_MAUVILLE_OLD_MAN_H
+
+#define MAUVILLE_MAN_BARD 0
+#define MAUVILLE_MAN_HIPSTER 1
+#define MAUVILLE_MAN_TRADER 2
+#define MAUVILLE_MAN_STORYTELLER 3
+#define MAUVILLE_MAN_GIDDY 4
+#define MAUVILLE_MAN_UNUSED1 5
+#define MAUVILLE_MAN_UNUSED2 6
+
+#endif // GUARD_CONSTANTS_MAUVILLE_OLD_MAN_H
diff --git a/include/constants/metatile_behaviors.h b/include/constants/metatile_behaviors.h
index 44bbd9729..94cb0ffca 100755
--- a/include/constants/metatile_behaviors.h
+++ b/include/constants/metatile_behaviors.h
@@ -235,7 +235,7 @@
#define MB_CABLE_BOX_RESULTS_2 0xE7
#define MB_WIRELESS_BOX_RESULTS 0xE8
#define MB_TRAINER_HILL_TIMER 0xE9
-#define MB_UNKNOWN_CLOSED_DOOR 0xEA
+#define MB_SKY_PILLAR_CLOSED_DOOR 0xEA
#define MB_UNUSED_EB 0xEB
#define MB_UNUSED_EC 0xEC
#define MB_UNUSED_ED 0xED
diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h
index 2f3ce5f71..58ac90eab 100644
--- a/include/constants/metatile_labels.h
+++ b/include/constants/metatile_labels.h
@@ -149,8 +149,8 @@
#define METATILE_Fortree_SecretBase_LongGrass_BottomLeft 0x281
#define METATILE_Fortree_SecretBase_LongGrass_BottomMid 0x282
#define METATILE_Fortree_SecretBase_LongGrass_BottomRight 0x283
-#define METATILE_Fortree_WoodBridge_Kecleon0 0x297
-#define METATILE_Fortree_WoodBridge_Kecleon1 0x29F
+#define METATILE_Fortree_WoodBridge1_Top 0x297
+#define METATILE_Fortree_WoodBridge1_Bottom 0x29F
// gTileset_Sootopolis
#define METATILE_Sootopolis_Door_Closed 0x248
@@ -255,10 +255,10 @@
#define METATILE_EliteFour_EntryDoor_ClosedBottom 0x20E
// gTileset_InsideShip
-#define METATILE_InsideShip_InTactDoor0_Bottom 0x233
-#define METATILE_InsideShip_InTactDoor1_Bottom 0x22B
-#define METATILE_InsideShip_DoorIndent1 0x21A
-#define METATILE_InsideShip_DoorIndent0 0x234
+#define METATILE_InsideShip_IntactDoor_Bottom_Unlocked 0x22B
+#define METATILE_InsideShip_IntactDoor_Bottom_Locked 0x233
+#define METATILE_InsideShip_DoorIndent_Unlocked 0x21A
+#define METATILE_InsideShip_DoorIndent_Locked 0x234
// gTileset_BattlePike
#define METATILE_BattlePike_Curtain_Stage0_Tile0 0x24A
@@ -381,7 +381,7 @@
#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Right_Alt 0x27C
#define METATILE_TrickHousePuzzle_Arrow_YellowOnWhite_Right 0x298
-// gTileset_BikeShop
+// gTileset_BikeShop (also used by New Mauville)
#define METATILE_BikeShop_Barrier_Hidden_Top 0x269
#define METATILE_BikeShop_Barrier_Hidden_Bottom 0x271
#define METATILE_BikeShop_Floor_Shadow_Top 0x26D
diff --git a/include/constants/mevent.h b/include/constants/mevent.h
new file mode 100644
index 000000000..25bbcdf36
--- /dev/null
+++ b/include/constants/mevent.h
@@ -0,0 +1,15 @@
+#ifndef GUARD_CONSTANTS_MEVENT_H
+#define GUARD_CONSTANTS_MEVENT_H
+
+// mevent2.c
+#define GET_NUM_STAMPS 0
+#define GET_MAX_STAMPS 1
+#define GET_CARD_BATTLES_WON 2
+
+#define GET_NUM_STAMPS_INTERNAL 3
+#define GET_MAX_STAMPS_INTERNAL 4
+#define GET_CARD_BATTLES_WON_INTERNAL 0
+
+#define REQUIRED_CARD_BATTLES 3
+
+#endif //GUARD_MEVENT_H
diff --git a/include/constants/opponents.h b/include/constants/opponents.h
index 9f74baf67..9917b84ba 100644
--- a/include/constants/opponents.h
+++ b/include/constants/opponents.h
@@ -1,862 +1,862 @@
#ifndef GUARD_CONSTANTS_OPPONENTS_H
#define GUARD_CONSTANTS_OPPONENTS_H
-#define TRAINER_NONE 0
-#define TRAINER_SAWYER_1 1
-#define TRAINER_GRUNT_1 2
-#define TRAINER_GRUNT_2 3
-#define TRAINER_GRUNT_3 4
-#define TRAINER_GRUNT_4 5
-#define TRAINER_GRUNT_5 6
-#define TRAINER_GRUNT_6 7
-#define TRAINER_GRUNT_7 8
-#define TRAINER_GABRIELLE_1 9
-#define TRAINER_GRUNT_8 10
-#define TRAINER_MARCEL 11
-#define TRAINER_ALBERTO 12
-#define TRAINER_ED 13
-#define TRAINER_GRUNT_9 14
-#define TRAINER_DECLAN 15
-#define TRAINER_GRUNT_10 16
-#define TRAINER_GRUNT_11 17
-#define TRAINER_GRUNT_12 18
-#define TRAINER_GRUNT_13 19
-#define TRAINER_GRUNT_14 20
-#define TRAINER_GRUNT_15 21
-#define TRAINER_GRUNT_16 22
-#define TRAINER_GRUNT_17 23
-#define TRAINER_GRUNT_18 24
-#define TRAINER_GRUNT_19 25
-#define TRAINER_GRUNT_20 26
-#define TRAINER_GRUNT_21 27
-#define TRAINER_GRUNT_22 28
-#define TRAINER_FREDRICK 29
-#define TRAINER_MATT 30
-#define TRAINER_ZANDER 31
-#define TRAINER_SHELLY_1 32
-#define TRAINER_SHELLY_2 33
-#define TRAINER_ARCHIE 34
-#define TRAINER_LEAH 35
-#define TRAINER_DAISY 36
-#define TRAINER_ROSE_1 37
-#define TRAINER_FELIX 38
-#define TRAINER_VIOLET 39
-#define TRAINER_ROSE_2 40
-#define TRAINER_ROSE_3 41
-#define TRAINER_ROSE_4 42
-#define TRAINER_ROSE_5 43
-#define TRAINER_DUSTY_1 44
-#define TRAINER_CHIP 45
-#define TRAINER_FOSTER 46
-#define TRAINER_DUSTY_2 47
-#define TRAINER_DUSTY_3 48
-#define TRAINER_DUSTY_4 49
-#define TRAINER_DUSTY_5 50
-#define TRAINER_GABBY_AND_TY_1 51
-#define TRAINER_GABBY_AND_TY_2 52
-#define TRAINER_GABBY_AND_TY_3 53
-#define TRAINER_GABBY_AND_TY_4 54
-#define TRAINER_GABBY_AND_TY_5 55
-#define TRAINER_GABBY_AND_TY_6 56
-#define TRAINER_LOLA_1 57
-#define TRAINER_AUSTINA 58
-#define TRAINER_GWEN 59
-#define TRAINER_LOLA_2 60
-#define TRAINER_LOLA_3 61
-#define TRAINER_LOLA_4 62
-#define TRAINER_LOLA_5 63
-#define TRAINER_RICKY_1 64
-#define TRAINER_SIMON 65
-#define TRAINER_CHARLIE 66
-#define TRAINER_RICKY_2 67
-#define TRAINER_RICKY_3 68
-#define TRAINER_RICKY_4 69
-#define TRAINER_RICKY_5 70
-#define TRAINER_RANDALL 71
-#define TRAINER_PARKER 72
-#define TRAINER_GEORGE 73
-#define TRAINER_BERKE 74
-#define TRAINER_BRAXTON 75
-#define TRAINER_VINCENT 76
-#define TRAINER_LEROY 77
-#define TRAINER_WILTON_1 78
-#define TRAINER_EDGAR 79
-#define TRAINER_ALBERT 80
-#define TRAINER_SAMUEL 81
-#define TRAINER_VITO 82
-#define TRAINER_OWEN 83
-#define TRAINER_WILTON_2 84
-#define TRAINER_WILTON_3 85
-#define TRAINER_WILTON_4 86
-#define TRAINER_WILTON_5 87
-#define TRAINER_WARREN 88
-#define TRAINER_MARY 89
-#define TRAINER_ALEXIA 90
-#define TRAINER_JODY 91
-#define TRAINER_WENDY 92
-#define TRAINER_KEIRA 93
-#define TRAINER_BROOKE_1 94
-#define TRAINER_JENNIFER 95
-#define TRAINER_HOPE 96
-#define TRAINER_SHANNON 97
-#define TRAINER_MICHELLE 98
-#define TRAINER_CAROLINE 99
-#define TRAINER_JULIE 100
-#define TRAINER_BROOKE_2 101
-#define TRAINER_BROOKE_3 102
-#define TRAINER_BROOKE_4 103
-#define TRAINER_BROOKE_5 104
-#define TRAINER_PATRICIA 105
-#define TRAINER_KINDRA 106
-#define TRAINER_TAMMY 107
-#define TRAINER_VALERIE_1 108
-#define TRAINER_TASHA 109
-#define TRAINER_VALERIE_2 110
-#define TRAINER_VALERIE_3 111
-#define TRAINER_VALERIE_4 112
-#define TRAINER_VALERIE_5 113
-#define TRAINER_CINDY_1 114
-#define TRAINER_DAPHNE 115
-#define TRAINER_GRUNT_23 116
-#define TRAINER_CINDY_2 117
-#define TRAINER_BRIANNA 118
-#define TRAINER_NAOMI 119
-#define TRAINER_CINDY_3 120
-#define TRAINER_CINDY_4 121
-#define TRAINER_CINDY_5 122
-#define TRAINER_CINDY_6 123
-#define TRAINER_MELISSA 124
-#define TRAINER_SHEILA 125
-#define TRAINER_SHIRLEY 126
-#define TRAINER_JESSICA_1 127
-#define TRAINER_CONNIE 128
-#define TRAINER_BRIDGET 129
-#define TRAINER_OLIVIA 130
-#define TRAINER_TIFFANY 131
-#define TRAINER_JESSICA_2 132
-#define TRAINER_JESSICA_3 133
-#define TRAINER_JESSICA_4 134
-#define TRAINER_JESSICA_5 135
-#define TRAINER_WINSTON_1 136
-#define TRAINER_MOLLIE 137
-#define TRAINER_GARRET 138
-#define TRAINER_WINSTON_2 139
-#define TRAINER_WINSTON_3 140
-#define TRAINER_WINSTON_4 141
-#define TRAINER_WINSTON_5 142
-#define TRAINER_STEVE_1 143
-#define TRAINER_THALIA_1 144
-#define TRAINER_MARK 145
-#define TRAINER_GRUNT_24 146
-#define TRAINER_STEVE_2 147
-#define TRAINER_STEVE_3 148
-#define TRAINER_STEVE_4 149
-#define TRAINER_STEVE_5 150
-#define TRAINER_LUIS 151
-#define TRAINER_DOMINIK 152
-#define TRAINER_DOUGLAS 153
-#define TRAINER_DARRIN 154
-#define TRAINER_TONY_1 155
-#define TRAINER_JEROME 156
-#define TRAINER_MATTHEW 157
-#define TRAINER_DAVID 158
-#define TRAINER_SPENCER 159
-#define TRAINER_ROLAND 160
-#define TRAINER_NOLEN 161
-#define TRAINER_STAN 162
-#define TRAINER_BARRY 163
-#define TRAINER_DEAN 164
-#define TRAINER_RODNEY 165
-#define TRAINER_RICHARD 166
-#define TRAINER_HERMAN 167
-#define TRAINER_SANTIAGO 168
-#define TRAINER_GILBERT 169
-#define TRAINER_FRANKLIN 170
-#define TRAINER_KEVIN 171
-#define TRAINER_JACK 172
-#define TRAINER_DUDLEY 173
-#define TRAINER_CHAD 174
-#define TRAINER_TONY_2 175
-#define TRAINER_TONY_3 176
-#define TRAINER_TONY_4 177
-#define TRAINER_TONY_5 178
-#define TRAINER_TAKAO 179
-#define TRAINER_HITOSHI 180
-#define TRAINER_KIYO 181
-#define TRAINER_KOICHI 182
-#define TRAINER_NOB_1 183
-#define TRAINER_NOB_2 184
-#define TRAINER_NOB_3 185
-#define TRAINER_NOB_4 186
-#define TRAINER_NOB_5 187
-#define TRAINER_YUJI 188
-#define TRAINER_DAISUKE 189
-#define TRAINER_ATSUSHI 190
-#define TRAINER_KIRK 191
-#define TRAINER_GRUNT_25 192
-#define TRAINER_GRUNT_26 193
-#define TRAINER_SHAWN 194
-#define TRAINER_FERNANDO_1 195
-#define TRAINER_DALTON_1 196
-#define TRAINER_DALTON_2 197
-#define TRAINER_DALTON_3 198
-#define TRAINER_DALTON_4 199
-#define TRAINER_DALTON_5 200
-#define TRAINER_COLE 201
-#define TRAINER_JEFF 202
-#define TRAINER_AXLE 203
-#define TRAINER_JACE 204
-#define TRAINER_KEEGAN 205
-#define TRAINER_BERNIE_1 206
-#define TRAINER_BERNIE_2 207
-#define TRAINER_BERNIE_3 208
-#define TRAINER_BERNIE_4 209
-#define TRAINER_BERNIE_5 210
-#define TRAINER_DREW 211
-#define TRAINER_BEAU 212
-#define TRAINER_LARRY 213
-#define TRAINER_SHANE 214
-#define TRAINER_JUSTIN 215
-#define TRAINER_ETHAN_1 216
-#define TRAINER_AUTUMN 217
-#define TRAINER_TRAVIS 218
-#define TRAINER_ETHAN_2 219
-#define TRAINER_ETHAN_3 220
-#define TRAINER_ETHAN_4 221
-#define TRAINER_ETHAN_5 222
-#define TRAINER_BRENT 223
-#define TRAINER_DONALD 224
-#define TRAINER_TAYLOR 225
-#define TRAINER_JEFFREY_1 226
-#define TRAINER_DEREK 227
-#define TRAINER_JEFFREY_2 228
-#define TRAINER_JEFFREY_3 229
-#define TRAINER_JEFFREY_4 230
-#define TRAINER_JEFFREY_5 231
-#define TRAINER_EDWARD 232
-#define TRAINER_PRESTON 233
-#define TRAINER_VIRGIL 234
-#define TRAINER_BLAKE 235
-#define TRAINER_WILLIAM 236
-#define TRAINER_JOSHUA 237
-#define TRAINER_CAMERON_1 238
-#define TRAINER_CAMERON_2 239
-#define TRAINER_CAMERON_3 240
-#define TRAINER_CAMERON_4 241
-#define TRAINER_CAMERON_5 242
-#define TRAINER_JACLYN 243
-#define TRAINER_HANNAH 244
-#define TRAINER_SAMANTHA 245
-#define TRAINER_MAURA 246
-#define TRAINER_KAYLA 247
-#define TRAINER_ALEXIS 248
-#define TRAINER_JACKI_1 249
-#define TRAINER_JACKI_2 250
-#define TRAINER_JACKI_3 251
-#define TRAINER_JACKI_4 252
-#define TRAINER_JACKI_5 253
-#define TRAINER_WALTER_1 254
-#define TRAINER_MICAH 255
-#define TRAINER_THOMAS 256
-#define TRAINER_WALTER_2 257
-#define TRAINER_WALTER_3 258
-#define TRAINER_WALTER_4 259
-#define TRAINER_WALTER_5 260
-#define TRAINER_SIDNEY 261
-#define TRAINER_PHOEBE 262
-#define TRAINER_GLACIA 263
-#define TRAINER_DRAKE 264
-#define TRAINER_ROXANNE_1 265
-#define TRAINER_BRAWLY_1 266
-#define TRAINER_WATTSON_1 267
-#define TRAINER_FLANNERY_1 268
-#define TRAINER_NORMAN_1 269
-#define TRAINER_WINONA_1 270
-#define TRAINER_TATE_AND_LIZA_1 271
-#define TRAINER_JUAN_1 272
-#define TRAINER_JERRY_1 273
-#define TRAINER_TED 274
-#define TRAINER_PAUL 275
-#define TRAINER_JERRY_2 276
-#define TRAINER_JERRY_3 277
-#define TRAINER_JERRY_4 278
-#define TRAINER_JERRY_5 279
-#define TRAINER_KAREN_1 280
-#define TRAINER_GEORGIA 281
-#define TRAINER_KAREN_2 282
-#define TRAINER_KAREN_3 283
-#define TRAINER_KAREN_4 284
-#define TRAINER_KAREN_5 285
-#define TRAINER_KATE_AND_JOY 286
-#define TRAINER_ANNA_AND_MEG_1 287
-#define TRAINER_ANNA_AND_MEG_2 288
-#define TRAINER_ANNA_AND_MEG_3 289
-#define TRAINER_ANNA_AND_MEG_4 290
-#define TRAINER_ANNA_AND_MEG_5 291
-#define TRAINER_VICTOR 292
-#define TRAINER_MIGUEL_1 293
-#define TRAINER_COLTON 294
-#define TRAINER_MIGUEL_2 295
-#define TRAINER_MIGUEL_3 296
-#define TRAINER_MIGUEL_4 297
-#define TRAINER_MIGUEL_5 298
-#define TRAINER_VICTORIA 299
-#define TRAINER_VANESSA 300
-#define TRAINER_BETHANY 301
-#define TRAINER_ISABEL_1 302
-#define TRAINER_ISABEL_2 303
-#define TRAINER_ISABEL_3 304
-#define TRAINER_ISABEL_4 305
-#define TRAINER_ISABEL_5 306
-#define TRAINER_TIMOTHY_1 307
-#define TRAINER_TIMOTHY_2 308
-#define TRAINER_TIMOTHY_3 309
-#define TRAINER_TIMOTHY_4 310
-#define TRAINER_TIMOTHY_5 311
-#define TRAINER_VICKY 312
-#define TRAINER_SHELBY_1 313
-#define TRAINER_SHELBY_2 314
-#define TRAINER_SHELBY_3 315
-#define TRAINER_SHELBY_4 316
-#define TRAINER_SHELBY_5 317
-#define TRAINER_CALVIN_1 318
-#define TRAINER_BILLY 319
-#define TRAINER_JOSH 320
-#define TRAINER_TOMMY 321
-#define TRAINER_JOEY 322
-#define TRAINER_BEN 323
-#define TRAINER_QUINCY 324
-#define TRAINER_KATELYNN 325
-#define TRAINER_JAYLEN 326
-#define TRAINER_DILLON 327
-#define TRAINER_CALVIN_2 328
-#define TRAINER_CALVIN_3 329
-#define TRAINER_CALVIN_4 330
-#define TRAINER_CALVIN_5 331
-#define TRAINER_EDDIE 332
-#define TRAINER_ALLEN 333
-#define TRAINER_TIMMY 334
-#define TRAINER_WALLACE 335
-#define TRAINER_ANDREW 336
-#define TRAINER_IVAN 337
-#define TRAINER_CLAUDE 338
-#define TRAINER_ELLIOT_1 339
-#define TRAINER_NED 340
-#define TRAINER_DALE 341
-#define TRAINER_NOLAN 342
-#define TRAINER_BARNY 343
-#define TRAINER_WADE 344
-#define TRAINER_CARTER 345
-#define TRAINER_ELLIOT_2 346
-#define TRAINER_ELLIOT_3 347
-#define TRAINER_ELLIOT_4 348
-#define TRAINER_ELLIOT_5 349
-#define TRAINER_RONALD 350
-#define TRAINER_JACOB 351
-#define TRAINER_ANTHONY 352
-#define TRAINER_BENJAMIN_1 353
-#define TRAINER_BENJAMIN_2 354
-#define TRAINER_BENJAMIN_3 355
-#define TRAINER_BENJAMIN_4 356
-#define TRAINER_BENJAMIN_5 357
-#define TRAINER_ABIGAIL_1 358
-#define TRAINER_JASMINE 359
-#define TRAINER_ABIGAIL_2 360
-#define TRAINER_ABIGAIL_3 361
-#define TRAINER_ABIGAIL_4 362
-#define TRAINER_ABIGAIL_5 363
-#define TRAINER_DYLAN_1 364
-#define TRAINER_DYLAN_2 365
-#define TRAINER_DYLAN_3 366
-#define TRAINER_DYLAN_4 367
-#define TRAINER_DYLAN_5 368
-#define TRAINER_MARIA_1 369
-#define TRAINER_MARIA_2 370
-#define TRAINER_MARIA_3 371
-#define TRAINER_MARIA_4 372
-#define TRAINER_MARIA_5 373
-#define TRAINER_CAMDEN 374
-#define TRAINER_DEMETRIUS 375
-#define TRAINER_ISAIAH_1 376
-#define TRAINER_PABLO_1 377
-#define TRAINER_CHASE 378
-#define TRAINER_ISAIAH_2 379
-#define TRAINER_ISAIAH_3 380
-#define TRAINER_ISAIAH_4 381
-#define TRAINER_ISAIAH_5 382
-#define TRAINER_ISOBEL 383
-#define TRAINER_DONNY 384
-#define TRAINER_TALIA 385
-#define TRAINER_KATELYN_1 386
-#define TRAINER_ALLISON 387
-#define TRAINER_KATELYN_2 388
-#define TRAINER_KATELYN_3 389
-#define TRAINER_KATELYN_4 390
-#define TRAINER_KATELYN_5 391
-#define TRAINER_NICOLAS_1 392
-#define TRAINER_NICOLAS_2 393
-#define TRAINER_NICOLAS_3 394
-#define TRAINER_NICOLAS_4 395
-#define TRAINER_NICOLAS_5 396
-#define TRAINER_AARON 397
-#define TRAINER_PERRY 398
-#define TRAINER_HUGH 399
-#define TRAINER_PHIL 400
-#define TRAINER_JARED 401
-#define TRAINER_HUMBERTO 402
-#define TRAINER_PRESLEY 403
-#define TRAINER_EDWARDO 404
-#define TRAINER_COLIN 405
-#define TRAINER_ROBERT_1 406
-#define TRAINER_BENNY 407
-#define TRAINER_CHESTER 408
-#define TRAINER_ROBERT_2 409
-#define TRAINER_ROBERT_3 410
-#define TRAINER_ROBERT_4 411
-#define TRAINER_ROBERT_5 412
-#define TRAINER_ALEX 413
-#define TRAINER_BECK 414
-#define TRAINER_YASU 415
-#define TRAINER_TAKASHI 416
-#define TRAINER_DIANNE 417
-#define TRAINER_JANI 418
-#define TRAINER_LAO_1 419
-#define TRAINER_LUNG 420
-#define TRAINER_LAO_2 421
-#define TRAINER_LAO_3 422
-#define TRAINER_LAO_4 423
-#define TRAINER_LAO_5 424
-#define TRAINER_JOCELYN 425
-#define TRAINER_LAURA 426
-#define TRAINER_CYNDY_1 427
-#define TRAINER_CORA 428
-#define TRAINER_PAULA 429
-#define TRAINER_CYNDY_2 430
-#define TRAINER_CYNDY_3 431
-#define TRAINER_CYNDY_4 432
-#define TRAINER_CYNDY_5 433
-#define TRAINER_MADELINE_1 434
-#define TRAINER_CLARISSA 435
-#define TRAINER_ANGELICA 436
-#define TRAINER_MADELINE_2 437
-#define TRAINER_MADELINE_3 438
-#define TRAINER_MADELINE_4 439
-#define TRAINER_MADELINE_5 440
-#define TRAINER_BEVERLY 441
-#define TRAINER_IMANI 442
-#define TRAINER_KYLA 443
-#define TRAINER_DENISE 444
-#define TRAINER_BETH 445
-#define TRAINER_TARA 446
-#define TRAINER_MISSY 447
-#define TRAINER_ALICE 448
-#define TRAINER_JENNY_1 449
-#define TRAINER_GRACE 450
-#define TRAINER_TANYA 451
-#define TRAINER_SHARON 452
-#define TRAINER_NIKKI 453
-#define TRAINER_BRENDA 454
-#define TRAINER_KATIE 455
-#define TRAINER_SUSIE 456
-#define TRAINER_KARA 457
-#define TRAINER_DANA 458
-#define TRAINER_SIENNA 459
-#define TRAINER_DEBRA 460
-#define TRAINER_LINDA 461
-#define TRAINER_KAYLEE 462
-#define TRAINER_LAUREL 463
-#define TRAINER_CARLEE 464
-#define TRAINER_JENNY_2 465
-#define TRAINER_JENNY_3 466
-#define TRAINER_JENNY_4 467
-#define TRAINER_JENNY_5 468
-#define TRAINER_HEIDI 469
-#define TRAINER_BECKY 470
-#define TRAINER_CAROL 471
-#define TRAINER_NANCY 472
-#define TRAINER_MARTHA 473
-#define TRAINER_DIANA_1 474
-#define TRAINER_CEDRIC 475
-#define TRAINER_IRENE 476
-#define TRAINER_DIANA_2 477
-#define TRAINER_DIANA_3 478
-#define TRAINER_DIANA_4 479
-#define TRAINER_DIANA_5 480
-#define TRAINER_AMY_AND_LIV_1 481
-#define TRAINER_AMY_AND_LIV_2 482
-#define TRAINER_GINA_AND_MIA_1 483
-#define TRAINER_MIU_AND_YUKI 484
-#define TRAINER_AMY_AND_LIV_3 485
-#define TRAINER_GINA_AND_MIA_2 486
-#define TRAINER_AMY_AND_LIV_4 487
-#define TRAINER_AMY_AND_LIV_5 488
-#define TRAINER_AMY_AND_LIV_6 489
-#define TRAINER_HUEY 490
-#define TRAINER_EDMOND 491
-#define TRAINER_ERNEST_1 492
-#define TRAINER_DWAYNE 493
-#define TRAINER_PHILLIP 494
-#define TRAINER_LEONARD 495
-#define TRAINER_DUNCAN 496
-#define TRAINER_ERNEST_2 497
-#define TRAINER_ERNEST_3 498
-#define TRAINER_ERNEST_4 499
-#define TRAINER_ERNEST_5 500
-#define TRAINER_ELI 501
-#define TRAINER_ANNIKA 502
-#define TRAINER_JAZMYN 503
-#define TRAINER_JONAS 504
-#define TRAINER_KAYLEY 505
-#define TRAINER_AURON 506
-#define TRAINER_KELVIN 507
-#define TRAINER_MARLEY 508
-#define TRAINER_REYNA 509
-#define TRAINER_HUDSON 510
-#define TRAINER_CONOR 511
-#define TRAINER_EDWIN_1 512
-#define TRAINER_HECTOR 513
-#define TRAINER_TABITHA_1 514
-#define TRAINER_EDWIN_2 515
-#define TRAINER_EDWIN_3 516
-#define TRAINER_EDWIN_4 517
-#define TRAINER_EDWIN_5 518
-#define TRAINER_WALLY_1 519
-#define TRAINER_BRENDAN_1 520
-#define TRAINER_BRENDAN_2 521
-#define TRAINER_BRENDAN_3 522
-#define TRAINER_BRENDAN_4 523
-#define TRAINER_BRENDAN_5 524
-#define TRAINER_BRENDAN_6 525
-#define TRAINER_BRENDAN_7 526
-#define TRAINER_BRENDAN_8 527
-#define TRAINER_BRENDAN_9 528
-#define TRAINER_MAY_1 529
-#define TRAINER_MAY_2 530
-#define TRAINER_MAY_3 531
-#define TRAINER_MAY_4 532
-#define TRAINER_MAY_5 533
-#define TRAINER_MAY_6 534
-#define TRAINER_MAY_7 535
-#define TRAINER_MAY_8 536
-#define TRAINER_MAY_9 537
-#define TRAINER_ISAAC_1 538
-#define TRAINER_DAVIS 539
-#define TRAINER_MITCHELL 540
-#define TRAINER_ISAAC_2 541
-#define TRAINER_ISAAC_3 542
-#define TRAINER_ISAAC_4 543
-#define TRAINER_ISAAC_5 544
-#define TRAINER_LYDIA_1 545
-#define TRAINER_HALLE 546
-#define TRAINER_GARRISON 547
-#define TRAINER_LYDIA_2 548
-#define TRAINER_LYDIA_3 549
-#define TRAINER_LYDIA_4 550
-#define TRAINER_LYDIA_5 551
-#define TRAINER_JACKSON_1 552
-#define TRAINER_LORENZO 553
-#define TRAINER_SEBASTIAN 554
-#define TRAINER_JACKSON_2 555
-#define TRAINER_JACKSON_3 556
-#define TRAINER_JACKSON_4 557
-#define TRAINER_JACKSON_5 558
-#define TRAINER_CATHERINE_1 559
-#define TRAINER_JENNA 560
-#define TRAINER_SOPHIA 561
-#define TRAINER_CATHERINE_2 562
-#define TRAINER_CATHERINE_3 563
-#define TRAINER_CATHERINE_4 564
-#define TRAINER_CATHERINE_5 565
-#define TRAINER_JULIO 566
-#define TRAINER_GRUNT_27 567
-#define TRAINER_GRUNT_28 568
-#define TRAINER_GRUNT_29 569
-#define TRAINER_GRUNT_30 570
-#define TRAINER_MARC 571
-#define TRAINER_BRENDEN 572
-#define TRAINER_LILITH 573
-#define TRAINER_CRISTIAN 574
-#define TRAINER_SYLVIA 575
-#define TRAINER_LEONARDO 576
-#define TRAINER_ATHENA 577
-#define TRAINER_HARRISON 578
-#define TRAINER_GRUNT_31 579
-#define TRAINER_CLARENCE 580
-#define TRAINER_TERRY 581
-#define TRAINER_NATE 582
-#define TRAINER_KATHLEEN 583
-#define TRAINER_CLIFFORD 584
-#define TRAINER_NICHOLAS 585
-#define TRAINER_GRUNT_32 586
-#define TRAINER_GRUNT_33 587
-#define TRAINER_GRUNT_34 588
-#define TRAINER_GRUNT_35 589
-#define TRAINER_GRUNT_36 590
-#define TRAINER_MACEY 591
-#define TRAINER_BRENDAN_10 592
-#define TRAINER_BRENDAN_11 593
-#define TRAINER_PAXTON 594
-#define TRAINER_ISABELLA 595
-#define TRAINER_GRUNT_37 596
-#define TRAINER_TABITHA_2 597
-#define TRAINER_JONATHAN 598
-#define TRAINER_BRENDAN_12 599
-#define TRAINER_MAY_10 600
-#define TRAINER_MAXIE_1 601
-#define TRAINER_MAXIE_2 602
-#define TRAINER_TIANA 603
-#define TRAINER_HALEY_1 604
-#define TRAINER_JANICE 605
-#define TRAINER_VIVI 606
-#define TRAINER_HALEY_2 607
-#define TRAINER_HALEY_3 608
-#define TRAINER_HALEY_4 609
-#define TRAINER_HALEY_5 610
-#define TRAINER_SALLY 611
-#define TRAINER_ROBIN 612
-#define TRAINER_ANDREA 613
-#define TRAINER_CRISSY 614
-#define TRAINER_RICK 615
-#define TRAINER_LYLE 616
-#define TRAINER_JOSE 617
-#define TRAINER_DOUG 618
-#define TRAINER_GREG 619
-#define TRAINER_KENT 620
-#define TRAINER_JAMES_1 621
-#define TRAINER_JAMES_2 622
-#define TRAINER_JAMES_3 623
-#define TRAINER_JAMES_4 624
-#define TRAINER_JAMES_5 625
-#define TRAINER_BRICE 626
-#define TRAINER_TRENT_1 627
-#define TRAINER_LENNY 628
-#define TRAINER_LUCAS_1 629
-#define TRAINER_ALAN 630
-#define TRAINER_CLARK 631
-#define TRAINER_ERIC 632
-#define TRAINER_LUCAS_2 633
-#define TRAINER_MIKE_1 634
-#define TRAINER_MIKE_2 635
-#define TRAINER_TRENT_2 636
-#define TRAINER_TRENT_3 637
-#define TRAINER_TRENT_4 638
-#define TRAINER_TRENT_5 639
-#define TRAINER_DEZ_AND_LUKE 640
-#define TRAINER_LEA_AND_JED 641
-#define TRAINER_KIRA_AND_DAN_1 642
-#define TRAINER_KIRA_AND_DAN_2 643
-#define TRAINER_KIRA_AND_DAN_3 644
-#define TRAINER_KIRA_AND_DAN_4 645
-#define TRAINER_KIRA_AND_DAN_5 646
-#define TRAINER_JOHANNA 647
-#define TRAINER_GERALD 648
-#define TRAINER_VIVIAN 649
-#define TRAINER_DANIELLE 650
-#define TRAINER_HIDEO 651
-#define TRAINER_KEIGO 652
-#define TRAINER_RILEY 653
-#define TRAINER_FLINT 654
-#define TRAINER_ASHLEY 655
-#define TRAINER_WALLY_2 656
-#define TRAINER_WALLY_3 657
-#define TRAINER_WALLY_4 658
-#define TRAINER_WALLY_5 659
-#define TRAINER_WALLY_6 660
-#define TRAINER_BRENDAN_13 661
-#define TRAINER_BRENDAN_14 662
-#define TRAINER_BRENDAN_15 663
-#define TRAINER_MAY_11 664
-#define TRAINER_MAY_12 665
-#define TRAINER_MAY_13 666
-#define TRAINER_JONAH 667
-#define TRAINER_HENRY 668
-#define TRAINER_ROGER 669
-#define TRAINER_ALEXA 670
-#define TRAINER_RUBEN 671
-#define TRAINER_KOJI_1 672
-#define TRAINER_WAYNE 673
-#define TRAINER_AIDAN 674
-#define TRAINER_REED 675
-#define TRAINER_TISHA 676
-#define TRAINER_TORI_AND_TIA 677
-#define TRAINER_KIM_AND_IRIS 678
-#define TRAINER_TYRA_AND_IVY 679
-#define TRAINER_MEL_AND_PAUL 680
-#define TRAINER_JOHN_AND_JAY_1 681
-#define TRAINER_JOHN_AND_JAY_2 682
-#define TRAINER_JOHN_AND_JAY_3 683
-#define TRAINER_JOHN_AND_JAY_4 684
-#define TRAINER_JOHN_AND_JAY_5 685
-#define TRAINER_RELI_AND_IAN 686
-#define TRAINER_LILA_AND_ROY_1 687
-#define TRAINER_LILA_AND_ROY_2 688
-#define TRAINER_LILA_AND_ROY_3 689
-#define TRAINER_LILA_AND_ROY_4 690
-#define TRAINER_LILA_AND_ROY_5 691
-#define TRAINER_LISA_AND_RAY 692
-#define TRAINER_CHRIS 693
-#define TRAINER_DAWSON 694
-#define TRAINER_SARAH 695
-#define TRAINER_DARIAN 696
-#define TRAINER_HAILEY 697
-#define TRAINER_CHANDLER 698
-#define TRAINER_KALEB 699
-#define TRAINER_JOSEPH 700
-#define TRAINER_ALYSSA 701
-#define TRAINER_MARCOS 702
-#define TRAINER_RHETT 703
-#define TRAINER_TYRON 704
-#define TRAINER_CELINA 705
-#define TRAINER_BIANCA 706
-#define TRAINER_HAYDEN 707
-#define TRAINER_SOPHIE 708
-#define TRAINER_COBY 709
-#define TRAINER_LAWRENCE 710
-#define TRAINER_WYATT 711
-#define TRAINER_ANGELINA 712
-#define TRAINER_KAI 713
-#define TRAINER_CHARLOTTE 714
-#define TRAINER_DEANDRE 715
-#define TRAINER_GRUNT_38 716
-#define TRAINER_GRUNT_39 717
-#define TRAINER_GRUNT_40 718
-#define TRAINER_GRUNT_41 719
-#define TRAINER_GRUNT_42 720
-#define TRAINER_GRUNT_43 721
-#define TRAINER_GRUNT_44 722
-#define TRAINER_GRUNT_45 723
-#define TRAINER_GRUNT_46 724
-#define TRAINER_GRUNT_47 725
-#define TRAINER_GRUNT_48 726
-#define TRAINER_GRUNT_49 727
-#define TRAINER_GRUNT_50 728
-#define TRAINER_GRUNT_51 729
-#define TRAINER_GRUNT_52 730
-#define TRAINER_GRUNT_53 731
-#define TRAINER_TABITHA_3 732
-#define TRAINER_DARCY 733
-#define TRAINER_MAXIE_3 734
-#define TRAINER_PETE 735
-#define TRAINER_ISABELLE 736
-#define TRAINER_ANDRES_1 737
-#define TRAINER_JOSUE 738
-#define TRAINER_CAMRON 739
-#define TRAINER_CORY_1 740
-#define TRAINER_CAROLINA 741
-#define TRAINER_ELIJAH 742
-#define TRAINER_CELIA 743
-#define TRAINER_BRYAN 744
-#define TRAINER_BRANDEN 745
-#define TRAINER_BRYANT 746
-#define TRAINER_SHAYLA 747
-#define TRAINER_KYRA 748
-#define TRAINER_JAIDEN 749
-#define TRAINER_ALIX 750
-#define TRAINER_HELENE 751
-#define TRAINER_MARLENE 752
-#define TRAINER_DEVAN 753
-#define TRAINER_JOHNSON 754
-#define TRAINER_MELINA 755
-#define TRAINER_BRANDI 756
-#define TRAINER_AISHA 757
-#define TRAINER_MAKAYLA 758
-#define TRAINER_FABIAN 759
-#define TRAINER_DAYTON 760
-#define TRAINER_RACHEL 761
-#define TRAINER_LEONEL 762
-#define TRAINER_CALLIE 763
-#define TRAINER_CALE 764
-#define TRAINER_MYLES 765
-#define TRAINER_PAT 766
-#define TRAINER_CRISTIN_1 767
-#define TRAINER_MAY_14 768
-#define TRAINER_MAY_15 769
-#define TRAINER_ROXANNE_2 770
-#define TRAINER_ROXANNE_3 771
-#define TRAINER_ROXANNE_4 772
-#define TRAINER_ROXANNE_5 773
-#define TRAINER_BRAWLY_2 774
-#define TRAINER_BRAWLY_3 775
-#define TRAINER_BRAWLY_4 776
-#define TRAINER_BRAWLY_5 777
-#define TRAINER_WATTSON_2 778
-#define TRAINER_WATTSON_3 779
-#define TRAINER_WATTSON_4 780
-#define TRAINER_WATTSON_5 781
-#define TRAINER_FLANNERY_2 782
-#define TRAINER_FLANNERY_3 783
-#define TRAINER_FLANNERY_4 784
-#define TRAINER_FLANNERY_5 785
-#define TRAINER_NORMAN_2 786
-#define TRAINER_NORMAN_3 787
-#define TRAINER_NORMAN_4 788
-#define TRAINER_NORMAN_5 789
-#define TRAINER_WINONA_2 790
-#define TRAINER_WINONA_3 791
-#define TRAINER_WINONA_4 792
-#define TRAINER_WINONA_5 793
-#define TRAINER_TATE_AND_LIZA_2 794
-#define TRAINER_TATE_AND_LIZA_3 795
-#define TRAINER_TATE_AND_LIZA_4 796
-#define TRAINER_TATE_AND_LIZA_5 797
-#define TRAINER_JUAN_2 798
-#define TRAINER_JUAN_3 799
-#define TRAINER_JUAN_4 800
-#define TRAINER_JUAN_5 801
-#define TRAINER_ANGELO 802
-#define TRAINER_DARIUS 803
-#define TRAINER_STEVEN 804
-#define TRAINER_ANABEL 805
-#define TRAINER_TUCKER 806
-#define TRAINER_SPENSER 807
-#define TRAINER_GRETA 808
-#define TRAINER_NOLAND 809
-#define TRAINER_LUCY 810
-#define TRAINER_BRANDON 811
-#define TRAINER_ANDRES_2 812
-#define TRAINER_ANDRES_3 813
-#define TRAINER_ANDRES_4 814
-#define TRAINER_ANDRES_5 815
-#define TRAINER_CORY_2 816
-#define TRAINER_CORY_3 817
-#define TRAINER_CORY_4 818
-#define TRAINER_CORY_5 819
-#define TRAINER_PABLO_2 820
-#define TRAINER_PABLO_3 821
-#define TRAINER_PABLO_4 822
-#define TRAINER_PABLO_5 823
-#define TRAINER_KOJI_2 824
-#define TRAINER_KOJI_3 825
-#define TRAINER_KOJI_4 826
-#define TRAINER_KOJI_5 827
-#define TRAINER_CRISTIN_2 828
-#define TRAINER_CRISTIN_3 829
-#define TRAINER_CRISTIN_4 830
-#define TRAINER_CRISTIN_5 831
-#define TRAINER_FERNANDO_2 832
-#define TRAINER_FERNANDO_3 833
-#define TRAINER_FERNANDO_4 834
-#define TRAINER_FERNANDO_5 835
-#define TRAINER_SAWYER_2 836
-#define TRAINER_SAWYER_3 837
-#define TRAINER_SAWYER_4 838
-#define TRAINER_SAWYER_5 839
-#define TRAINER_GABRIELLE_2 840
-#define TRAINER_GABRIELLE_3 841
-#define TRAINER_GABRIELLE_4 842
-#define TRAINER_GABRIELLE_5 843
-#define TRAINER_THALIA_2 844
-#define TRAINER_THALIA_3 845
-#define TRAINER_THALIA_4 846
-#define TRAINER_THALIA_5 847
-#define TRAINER_MARIELA 848
-#define TRAINER_ALVARO 849
-#define TRAINER_EVERETT 850
-#define TRAINER_RED 851
-#define TRAINER_LEAF 852
-#define TRAINER_BRENDAN_16 853
-#define TRAINER_MAY_16 854
+#define TRAINER_NONE 0
+#define TRAINER_SAWYER_1 1
+#define TRAINER_GRUNT_AQUA_HIDEOUT_1 2
+#define TRAINER_GRUNT_AQUA_HIDEOUT_2 3
+#define TRAINER_GRUNT_AQUA_HIDEOUT_3 4
+#define TRAINER_GRUNT_AQUA_HIDEOUT_4 5
+#define TRAINER_GRUNT_SEAFLOOR_CAVERN_1 6
+#define TRAINER_GRUNT_SEAFLOOR_CAVERN_2 7
+#define TRAINER_GRUNT_SEAFLOOR_CAVERN_3 8
+#define TRAINER_GABRIELLE_1 9
+#define TRAINER_GRUNT_PETALBURG_WOODS 10
+#define TRAINER_MARCEL 11
+#define TRAINER_ALBERTO 12
+#define TRAINER_ED 13
+#define TRAINER_GRUNT_SEAFLOOR_CAVERN_4 14
+#define TRAINER_DECLAN 15
+#define TRAINER_GRUNT_RUSTURF_TUNNEL 16
+#define TRAINER_GRUNT_WEATHER_INST_1 17
+#define TRAINER_GRUNT_WEATHER_INST_2 18
+#define TRAINER_GRUNT_WEATHER_INST_3 19
+#define TRAINER_GRUNT_MUSEUM_1 20
+#define TRAINER_GRUNT_MUSEUM_2 21
+#define TRAINER_GRUNT_SPACE_CENTER_1 22
+#define TRAINER_GRUNT_MT_PYRE_1 23
+#define TRAINER_GRUNT_MT_PYRE_2 24
+#define TRAINER_GRUNT_MT_PYRE_3 25
+#define TRAINER_GRUNT_WEATHER_INST_4 26
+#define TRAINER_GRUNT_AQUA_HIDEOUT_5 27
+#define TRAINER_GRUNT_AQUA_HIDEOUT_6 28
+#define TRAINER_FREDRICK 29
+#define TRAINER_MATT 30
+#define TRAINER_ZANDER 31
+#define TRAINER_SHELLY_1 32
+#define TRAINER_SHELLY_2 33
+#define TRAINER_ARCHIE 34
+#define TRAINER_LEAH 35
+#define TRAINER_DAISY 36
+#define TRAINER_ROSE_1 37
+#define TRAINER_FELIX 38
+#define TRAINER_VIOLET 39
+#define TRAINER_ROSE_2 40
+#define TRAINER_ROSE_3 41
+#define TRAINER_ROSE_4 42
+#define TRAINER_ROSE_5 43
+#define TRAINER_DUSTY_1 44
+#define TRAINER_CHIP 45
+#define TRAINER_FOSTER 46
+#define TRAINER_DUSTY_2 47
+#define TRAINER_DUSTY_3 48
+#define TRAINER_DUSTY_4 49
+#define TRAINER_DUSTY_5 50
+#define TRAINER_GABBY_AND_TY_1 51
+#define TRAINER_GABBY_AND_TY_2 52
+#define TRAINER_GABBY_AND_TY_3 53
+#define TRAINER_GABBY_AND_TY_4 54
+#define TRAINER_GABBY_AND_TY_5 55
+#define TRAINER_GABBY_AND_TY_6 56
+#define TRAINER_LOLA_1 57
+#define TRAINER_AUSTINA 58
+#define TRAINER_GWEN 59
+#define TRAINER_LOLA_2 60
+#define TRAINER_LOLA_3 61
+#define TRAINER_LOLA_4 62
+#define TRAINER_LOLA_5 63
+#define TRAINER_RICKY_1 64
+#define TRAINER_SIMON 65
+#define TRAINER_CHARLIE 66
+#define TRAINER_RICKY_2 67
+#define TRAINER_RICKY_3 68
+#define TRAINER_RICKY_4 69
+#define TRAINER_RICKY_5 70
+#define TRAINER_RANDALL 71
+#define TRAINER_PARKER 72
+#define TRAINER_GEORGE 73
+#define TRAINER_BERKE 74
+#define TRAINER_BRAXTON 75
+#define TRAINER_VINCENT 76
+#define TRAINER_LEROY 77
+#define TRAINER_WILTON_1 78
+#define TRAINER_EDGAR 79
+#define TRAINER_ALBERT 80
+#define TRAINER_SAMUEL 81
+#define TRAINER_VITO 82
+#define TRAINER_OWEN 83
+#define TRAINER_WILTON_2 84
+#define TRAINER_WILTON_3 85
+#define TRAINER_WILTON_4 86
+#define TRAINER_WILTON_5 87
+#define TRAINER_WARREN 88
+#define TRAINER_MARY 89
+#define TRAINER_ALEXIA 90
+#define TRAINER_JODY 91
+#define TRAINER_WENDY 92
+#define TRAINER_KEIRA 93
+#define TRAINER_BROOKE_1 94
+#define TRAINER_JENNIFER 95
+#define TRAINER_HOPE 96
+#define TRAINER_SHANNON 97
+#define TRAINER_MICHELLE 98
+#define TRAINER_CAROLINE 99
+#define TRAINER_JULIE 100
+#define TRAINER_BROOKE_2 101
+#define TRAINER_BROOKE_3 102
+#define TRAINER_BROOKE_4 103
+#define TRAINER_BROOKE_5 104
+#define TRAINER_PATRICIA 105
+#define TRAINER_KINDRA 106
+#define TRAINER_TAMMY 107
+#define TRAINER_VALERIE_1 108
+#define TRAINER_TASHA 109
+#define TRAINER_VALERIE_2 110
+#define TRAINER_VALERIE_3 111
+#define TRAINER_VALERIE_4 112
+#define TRAINER_VALERIE_5 113
+#define TRAINER_CINDY_1 114
+#define TRAINER_DAPHNE 115
+#define TRAINER_GRUNT_SPACE_CENTER_2 116
+#define TRAINER_CINDY_2 117
+#define TRAINER_BRIANNA 118
+#define TRAINER_NAOMI 119
+#define TRAINER_CINDY_3 120
+#define TRAINER_CINDY_4 121
+#define TRAINER_CINDY_5 122
+#define TRAINER_CINDY_6 123
+#define TRAINER_MELISSA 124
+#define TRAINER_SHEILA 125
+#define TRAINER_SHIRLEY 126
+#define TRAINER_JESSICA_1 127
+#define TRAINER_CONNIE 128
+#define TRAINER_BRIDGET 129
+#define TRAINER_OLIVIA 130
+#define TRAINER_TIFFANY 131
+#define TRAINER_JESSICA_2 132
+#define TRAINER_JESSICA_3 133
+#define TRAINER_JESSICA_4 134
+#define TRAINER_JESSICA_5 135
+#define TRAINER_WINSTON_1 136
+#define TRAINER_MOLLIE 137
+#define TRAINER_GARRET 138
+#define TRAINER_WINSTON_2 139
+#define TRAINER_WINSTON_3 140
+#define TRAINER_WINSTON_4 141
+#define TRAINER_WINSTON_5 142
+#define TRAINER_STEVE_1 143
+#define TRAINER_THALIA_1 144
+#define TRAINER_MARK 145
+#define TRAINER_GRUNT_MT_CHIMNEY_1 146
+#define TRAINER_STEVE_2 147
+#define TRAINER_STEVE_3 148
+#define TRAINER_STEVE_4 149
+#define TRAINER_STEVE_5 150
+#define TRAINER_LUIS 151
+#define TRAINER_DOMINIK 152
+#define TRAINER_DOUGLAS 153
+#define TRAINER_DARRIN 154
+#define TRAINER_TONY_1 155
+#define TRAINER_JEROME 156
+#define TRAINER_MATTHEW 157
+#define TRAINER_DAVID 158
+#define TRAINER_SPENCER 159
+#define TRAINER_ROLAND 160
+#define TRAINER_NOLEN 161
+#define TRAINER_STAN 162
+#define TRAINER_BARRY 163
+#define TRAINER_DEAN 164
+#define TRAINER_RODNEY 165
+#define TRAINER_RICHARD 166
+#define TRAINER_HERMAN 167
+#define TRAINER_SANTIAGO 168
+#define TRAINER_GILBERT 169
+#define TRAINER_FRANKLIN 170
+#define TRAINER_KEVIN 171
+#define TRAINER_JACK 172
+#define TRAINER_DUDLEY 173
+#define TRAINER_CHAD 174
+#define TRAINER_TONY_2 175
+#define TRAINER_TONY_3 176
+#define TRAINER_TONY_4 177
+#define TRAINER_TONY_5 178
+#define TRAINER_TAKAO 179
+#define TRAINER_HITOSHI 180
+#define TRAINER_KIYO 181
+#define TRAINER_KOICHI 182
+#define TRAINER_NOB_1 183
+#define TRAINER_NOB_2 184
+#define TRAINER_NOB_3 185
+#define TRAINER_NOB_4 186
+#define TRAINER_NOB_5 187
+#define TRAINER_YUJI 188
+#define TRAINER_DAISUKE 189
+#define TRAINER_ATSUSHI 190
+#define TRAINER_KIRK 191
+#define TRAINER_GRUNT_AQUA_HIDEOUT_7 192
+#define TRAINER_GRUNT_AQUA_HIDEOUT_8 193
+#define TRAINER_SHAWN 194
+#define TRAINER_FERNANDO_1 195
+#define TRAINER_DALTON_1 196
+#define TRAINER_DALTON_2 197
+#define TRAINER_DALTON_3 198
+#define TRAINER_DALTON_4 199
+#define TRAINER_DALTON_5 200
+#define TRAINER_COLE 201
+#define TRAINER_JEFF 202
+#define TRAINER_AXLE 203
+#define TRAINER_JACE 204
+#define TRAINER_KEEGAN 205
+#define TRAINER_BERNIE_1 206
+#define TRAINER_BERNIE_2 207
+#define TRAINER_BERNIE_3 208
+#define TRAINER_BERNIE_4 209
+#define TRAINER_BERNIE_5 210
+#define TRAINER_DREW 211
+#define TRAINER_BEAU 212
+#define TRAINER_LARRY 213
+#define TRAINER_SHANE 214
+#define TRAINER_JUSTIN 215
+#define TRAINER_ETHAN_1 216
+#define TRAINER_AUTUMN 217
+#define TRAINER_TRAVIS 218
+#define TRAINER_ETHAN_2 219
+#define TRAINER_ETHAN_3 220
+#define TRAINER_ETHAN_4 221
+#define TRAINER_ETHAN_5 222
+#define TRAINER_BRENT 223
+#define TRAINER_DONALD 224
+#define TRAINER_TAYLOR 225
+#define TRAINER_JEFFREY_1 226
+#define TRAINER_DEREK 227
+#define TRAINER_JEFFREY_2 228
+#define TRAINER_JEFFREY_3 229
+#define TRAINER_JEFFREY_4 230
+#define TRAINER_JEFFREY_5 231
+#define TRAINER_EDWARD 232
+#define TRAINER_PRESTON 233
+#define TRAINER_VIRGIL 234
+#define TRAINER_BLAKE 235
+#define TRAINER_WILLIAM 236
+#define TRAINER_JOSHUA 237
+#define TRAINER_CAMERON_1 238
+#define TRAINER_CAMERON_2 239
+#define TRAINER_CAMERON_3 240
+#define TRAINER_CAMERON_4 241
+#define TRAINER_CAMERON_5 242
+#define TRAINER_JACLYN 243
+#define TRAINER_HANNAH 244
+#define TRAINER_SAMANTHA 245
+#define TRAINER_MAURA 246
+#define TRAINER_KAYLA 247
+#define TRAINER_ALEXIS 248
+#define TRAINER_JACKI_1 249
+#define TRAINER_JACKI_2 250
+#define TRAINER_JACKI_3 251
+#define TRAINER_JACKI_4 252
+#define TRAINER_JACKI_5 253
+#define TRAINER_WALTER_1 254
+#define TRAINER_MICAH 255
+#define TRAINER_THOMAS 256
+#define TRAINER_WALTER_2 257
+#define TRAINER_WALTER_3 258
+#define TRAINER_WALTER_4 259
+#define TRAINER_WALTER_5 260
+#define TRAINER_SIDNEY 261
+#define TRAINER_PHOEBE 262
+#define TRAINER_GLACIA 263
+#define TRAINER_DRAKE 264
+#define TRAINER_ROXANNE_1 265
+#define TRAINER_BRAWLY_1 266
+#define TRAINER_WATTSON_1 267
+#define TRAINER_FLANNERY_1 268
+#define TRAINER_NORMAN_1 269
+#define TRAINER_WINONA_1 270
+#define TRAINER_TATE_AND_LIZA_1 271
+#define TRAINER_JUAN_1 272
+#define TRAINER_JERRY_1 273
+#define TRAINER_TED 274
+#define TRAINER_PAUL 275
+#define TRAINER_JERRY_2 276
+#define TRAINER_JERRY_3 277
+#define TRAINER_JERRY_4 278
+#define TRAINER_JERRY_5 279
+#define TRAINER_KAREN_1 280
+#define TRAINER_GEORGIA 281
+#define TRAINER_KAREN_2 282
+#define TRAINER_KAREN_3 283
+#define TRAINER_KAREN_4 284
+#define TRAINER_KAREN_5 285
+#define TRAINER_KATE_AND_JOY 286
+#define TRAINER_ANNA_AND_MEG_1 287
+#define TRAINER_ANNA_AND_MEG_2 288
+#define TRAINER_ANNA_AND_MEG_3 289
+#define TRAINER_ANNA_AND_MEG_4 290
+#define TRAINER_ANNA_AND_MEG_5 291
+#define TRAINER_VICTOR 292
+#define TRAINER_MIGUEL_1 293
+#define TRAINER_COLTON 294
+#define TRAINER_MIGUEL_2 295
+#define TRAINER_MIGUEL_3 296
+#define TRAINER_MIGUEL_4 297
+#define TRAINER_MIGUEL_5 298
+#define TRAINER_VICTORIA 299
+#define TRAINER_VANESSA 300
+#define TRAINER_BETHANY 301
+#define TRAINER_ISABEL_1 302
+#define TRAINER_ISABEL_2 303
+#define TRAINER_ISABEL_3 304
+#define TRAINER_ISABEL_4 305
+#define TRAINER_ISABEL_5 306
+#define TRAINER_TIMOTHY_1 307
+#define TRAINER_TIMOTHY_2 308
+#define TRAINER_TIMOTHY_3 309
+#define TRAINER_TIMOTHY_4 310
+#define TRAINER_TIMOTHY_5 311
+#define TRAINER_VICKY 312
+#define TRAINER_SHELBY_1 313
+#define TRAINER_SHELBY_2 314
+#define TRAINER_SHELBY_3 315
+#define TRAINER_SHELBY_4 316
+#define TRAINER_SHELBY_5 317
+#define TRAINER_CALVIN_1 318
+#define TRAINER_BILLY 319
+#define TRAINER_JOSH 320
+#define TRAINER_TOMMY 321
+#define TRAINER_JOEY 322
+#define TRAINER_BEN 323
+#define TRAINER_QUINCY 324
+#define TRAINER_KATELYNN 325
+#define TRAINER_JAYLEN 326
+#define TRAINER_DILLON 327
+#define TRAINER_CALVIN_2 328
+#define TRAINER_CALVIN_3 329
+#define TRAINER_CALVIN_4 330
+#define TRAINER_CALVIN_5 331
+#define TRAINER_EDDIE 332
+#define TRAINER_ALLEN 333
+#define TRAINER_TIMMY 334
+#define TRAINER_WALLACE 335
+#define TRAINER_ANDREW 336
+#define TRAINER_IVAN 337
+#define TRAINER_CLAUDE 338
+#define TRAINER_ELLIOT_1 339
+#define TRAINER_NED 340
+#define TRAINER_DALE 341
+#define TRAINER_NOLAN 342
+#define TRAINER_BARNY 343
+#define TRAINER_WADE 344
+#define TRAINER_CARTER 345
+#define TRAINER_ELLIOT_2 346
+#define TRAINER_ELLIOT_3 347
+#define TRAINER_ELLIOT_4 348
+#define TRAINER_ELLIOT_5 349
+#define TRAINER_RONALD 350
+#define TRAINER_JACOB 351
+#define TRAINER_ANTHONY 352
+#define TRAINER_BENJAMIN_1 353
+#define TRAINER_BENJAMIN_2 354
+#define TRAINER_BENJAMIN_3 355
+#define TRAINER_BENJAMIN_4 356
+#define TRAINER_BENJAMIN_5 357
+#define TRAINER_ABIGAIL_1 358
+#define TRAINER_JASMINE 359
+#define TRAINER_ABIGAIL_2 360
+#define TRAINER_ABIGAIL_3 361
+#define TRAINER_ABIGAIL_4 362
+#define TRAINER_ABIGAIL_5 363
+#define TRAINER_DYLAN_1 364
+#define TRAINER_DYLAN_2 365
+#define TRAINER_DYLAN_3 366
+#define TRAINER_DYLAN_4 367
+#define TRAINER_DYLAN_5 368
+#define TRAINER_MARIA_1 369
+#define TRAINER_MARIA_2 370
+#define TRAINER_MARIA_3 371
+#define TRAINER_MARIA_4 372
+#define TRAINER_MARIA_5 373
+#define TRAINER_CAMDEN 374
+#define TRAINER_DEMETRIUS 375
+#define TRAINER_ISAIAH_1 376
+#define TRAINER_PABLO_1 377
+#define TRAINER_CHASE 378
+#define TRAINER_ISAIAH_2 379
+#define TRAINER_ISAIAH_3 380
+#define TRAINER_ISAIAH_4 381
+#define TRAINER_ISAIAH_5 382
+#define TRAINER_ISOBEL 383
+#define TRAINER_DONNY 384
+#define TRAINER_TALIA 385
+#define TRAINER_KATELYN_1 386
+#define TRAINER_ALLISON 387
+#define TRAINER_KATELYN_2 388
+#define TRAINER_KATELYN_3 389
+#define TRAINER_KATELYN_4 390
+#define TRAINER_KATELYN_5 391
+#define TRAINER_NICOLAS_1 392
+#define TRAINER_NICOLAS_2 393
+#define TRAINER_NICOLAS_3 394
+#define TRAINER_NICOLAS_4 395
+#define TRAINER_NICOLAS_5 396
+#define TRAINER_AARON 397
+#define TRAINER_PERRY 398
+#define TRAINER_HUGH 399
+#define TRAINER_PHIL 400
+#define TRAINER_JARED 401
+#define TRAINER_HUMBERTO 402
+#define TRAINER_PRESLEY 403
+#define TRAINER_EDWARDO 404
+#define TRAINER_COLIN 405
+#define TRAINER_ROBERT_1 406
+#define TRAINER_BENNY 407
+#define TRAINER_CHESTER 408
+#define TRAINER_ROBERT_2 409
+#define TRAINER_ROBERT_3 410
+#define TRAINER_ROBERT_4 411
+#define TRAINER_ROBERT_5 412
+#define TRAINER_ALEX 413
+#define TRAINER_BECK 414
+#define TRAINER_YASU 415
+#define TRAINER_TAKASHI 416
+#define TRAINER_DIANNE 417
+#define TRAINER_JANI 418
+#define TRAINER_LAO_1 419
+#define TRAINER_LUNG 420
+#define TRAINER_LAO_2 421
+#define TRAINER_LAO_3 422
+#define TRAINER_LAO_4 423
+#define TRAINER_LAO_5 424
+#define TRAINER_JOCELYN 425
+#define TRAINER_LAURA 426
+#define TRAINER_CYNDY_1 427
+#define TRAINER_CORA 428
+#define TRAINER_PAULA 429
+#define TRAINER_CYNDY_2 430
+#define TRAINER_CYNDY_3 431
+#define TRAINER_CYNDY_4 432
+#define TRAINER_CYNDY_5 433
+#define TRAINER_MADELINE_1 434
+#define TRAINER_CLARISSA 435
+#define TRAINER_ANGELICA 436
+#define TRAINER_MADELINE_2 437
+#define TRAINER_MADELINE_3 438
+#define TRAINER_MADELINE_4 439
+#define TRAINER_MADELINE_5 440
+#define TRAINER_BEVERLY 441
+#define TRAINER_IMANI 442
+#define TRAINER_KYLA 443
+#define TRAINER_DENISE 444
+#define TRAINER_BETH 445
+#define TRAINER_TARA 446
+#define TRAINER_MISSY 447
+#define TRAINER_ALICE 448
+#define TRAINER_JENNY_1 449
+#define TRAINER_GRACE 450
+#define TRAINER_TANYA 451
+#define TRAINER_SHARON 452
+#define TRAINER_NIKKI 453
+#define TRAINER_BRENDA 454
+#define TRAINER_KATIE 455
+#define TRAINER_SUSIE 456
+#define TRAINER_KARA 457
+#define TRAINER_DANA 458
+#define TRAINER_SIENNA 459
+#define TRAINER_DEBRA 460
+#define TRAINER_LINDA 461
+#define TRAINER_KAYLEE 462
+#define TRAINER_LAUREL 463
+#define TRAINER_CARLEE 464
+#define TRAINER_JENNY_2 465
+#define TRAINER_JENNY_3 466
+#define TRAINER_JENNY_4 467
+#define TRAINER_JENNY_5 468
+#define TRAINER_HEIDI 469
+#define TRAINER_BECKY 470
+#define TRAINER_CAROL 471
+#define TRAINER_NANCY 472
+#define TRAINER_MARTHA 473
+#define TRAINER_DIANA_1 474
+#define TRAINER_CEDRIC 475
+#define TRAINER_IRENE 476
+#define TRAINER_DIANA_2 477
+#define TRAINER_DIANA_3 478
+#define TRAINER_DIANA_4 479
+#define TRAINER_DIANA_5 480
+#define TRAINER_AMY_AND_LIV_1 481
+#define TRAINER_AMY_AND_LIV_2 482
+#define TRAINER_GINA_AND_MIA_1 483
+#define TRAINER_MIU_AND_YUKI 484
+#define TRAINER_AMY_AND_LIV_3 485
+#define TRAINER_GINA_AND_MIA_2 486
+#define TRAINER_AMY_AND_LIV_4 487
+#define TRAINER_AMY_AND_LIV_5 488
+#define TRAINER_AMY_AND_LIV_6 489
+#define TRAINER_HUEY 490
+#define TRAINER_EDMOND 491
+#define TRAINER_ERNEST_1 492
+#define TRAINER_DWAYNE 493
+#define TRAINER_PHILLIP 494
+#define TRAINER_LEONARD 495
+#define TRAINER_DUNCAN 496
+#define TRAINER_ERNEST_2 497
+#define TRAINER_ERNEST_3 498
+#define TRAINER_ERNEST_4 499
+#define TRAINER_ERNEST_5 500
+#define TRAINER_ELI 501
+#define TRAINER_ANNIKA 502
+#define TRAINER_JAZMYN 503
+#define TRAINER_JONAS 504
+#define TRAINER_KAYLEY 505
+#define TRAINER_AURON 506
+#define TRAINER_KELVIN 507
+#define TRAINER_MARLEY 508
+#define TRAINER_REYNA 509
+#define TRAINER_HUDSON 510
+#define TRAINER_CONOR 511
+#define TRAINER_EDWIN_1 512
+#define TRAINER_HECTOR 513
+#define TRAINER_TABITHA_1 514
+#define TRAINER_EDWIN_2 515
+#define TRAINER_EDWIN_3 516
+#define TRAINER_EDWIN_4 517
+#define TRAINER_EDWIN_5 518
+#define TRAINER_WALLY_1 519
+#define TRAINER_BRENDAN_1 520
+#define TRAINER_BRENDAN_2 521
+#define TRAINER_BRENDAN_3 522
+#define TRAINER_BRENDAN_4 523
+#define TRAINER_BRENDAN_5 524
+#define TRAINER_BRENDAN_6 525
+#define TRAINER_BRENDAN_7 526
+#define TRAINER_BRENDAN_8 527
+#define TRAINER_BRENDAN_9 528
+#define TRAINER_MAY_1 529
+#define TRAINER_MAY_2 530
+#define TRAINER_MAY_3 531
+#define TRAINER_MAY_4 532
+#define TRAINER_MAY_5 533
+#define TRAINER_MAY_6 534
+#define TRAINER_MAY_7 535
+#define TRAINER_MAY_8 536
+#define TRAINER_MAY_9 537
+#define TRAINER_ISAAC_1 538
+#define TRAINER_DAVIS 539
+#define TRAINER_MITCHELL 540
+#define TRAINER_ISAAC_2 541
+#define TRAINER_ISAAC_3 542
+#define TRAINER_ISAAC_4 543
+#define TRAINER_ISAAC_5 544
+#define TRAINER_LYDIA_1 545
+#define TRAINER_HALLE 546
+#define TRAINER_GARRISON 547
+#define TRAINER_LYDIA_2 548
+#define TRAINER_LYDIA_3 549
+#define TRAINER_LYDIA_4 550
+#define TRAINER_LYDIA_5 551
+#define TRAINER_JACKSON_1 552
+#define TRAINER_LORENZO 553
+#define TRAINER_SEBASTIAN 554
+#define TRAINER_JACKSON_2 555
+#define TRAINER_JACKSON_3 556
+#define TRAINER_JACKSON_4 557
+#define TRAINER_JACKSON_5 558
+#define TRAINER_CATHERINE_1 559
+#define TRAINER_JENNA 560
+#define TRAINER_SOPHIA 561
+#define TRAINER_CATHERINE_2 562
+#define TRAINER_CATHERINE_3 563
+#define TRAINER_CATHERINE_4 564
+#define TRAINER_CATHERINE_5 565
+#define TRAINER_JULIO 566
+#define TRAINER_GRUNT_SEAFLOOR_CAVERN_5 567
+#define TRAINER_GRUNT_UNUSED 568
+#define TRAINER_GRUNT_MT_PYRE_4 569
+#define TRAINER_GRUNT_JAGGED_PASS 570
+#define TRAINER_MARC 571
+#define TRAINER_BRENDEN 572
+#define TRAINER_LILITH 573
+#define TRAINER_CRISTIAN 574
+#define TRAINER_SYLVIA 575
+#define TRAINER_LEONARDO 576
+#define TRAINER_ATHENA 577
+#define TRAINER_HARRISON 578
+#define TRAINER_GRUNT_MT_CHIMNEY_2 579
+#define TRAINER_CLARENCE 580
+#define TRAINER_TERRY 581
+#define TRAINER_NATE 582
+#define TRAINER_KATHLEEN 583
+#define TRAINER_CLIFFORD 584
+#define TRAINER_NICHOLAS 585
+#define TRAINER_GRUNT_SPACE_CENTER_3 586
+#define TRAINER_GRUNT_SPACE_CENTER_4 587
+#define TRAINER_GRUNT_SPACE_CENTER_5 588
+#define TRAINER_GRUNT_SPACE_CENTER_6 589
+#define TRAINER_GRUNT_SPACE_CENTER_7 590
+#define TRAINER_MACEY 591
+#define TRAINER_BRENDAN_10 592
+#define TRAINER_BRENDAN_11 593
+#define TRAINER_PAXTON 594
+#define TRAINER_ISABELLA 595
+#define TRAINER_GRUNT_WEATHER_INST_5 596
+#define TRAINER_TABITHA_2 597
+#define TRAINER_JONATHAN 598
+#define TRAINER_BRENDAN_12 599
+#define TRAINER_MAY_10 600
+#define TRAINER_MAXIE_1 601
+#define TRAINER_MAXIE_2 602
+#define TRAINER_TIANA 603
+#define TRAINER_HALEY_1 604
+#define TRAINER_JANICE 605
+#define TRAINER_VIVI 606
+#define TRAINER_HALEY_2 607
+#define TRAINER_HALEY_3 608
+#define TRAINER_HALEY_4 609
+#define TRAINER_HALEY_5 610
+#define TRAINER_SALLY 611
+#define TRAINER_ROBIN 612
+#define TRAINER_ANDREA 613
+#define TRAINER_CRISSY 614
+#define TRAINER_RICK 615
+#define TRAINER_LYLE 616
+#define TRAINER_JOSE 617
+#define TRAINER_DOUG 618
+#define TRAINER_GREG 619
+#define TRAINER_KENT 620
+#define TRAINER_JAMES_1 621
+#define TRAINER_JAMES_2 622
+#define TRAINER_JAMES_3 623
+#define TRAINER_JAMES_4 624
+#define TRAINER_JAMES_5 625
+#define TRAINER_BRICE 626
+#define TRAINER_TRENT_1 627
+#define TRAINER_LENNY 628
+#define TRAINER_LUCAS_1 629
+#define TRAINER_ALAN 630
+#define TRAINER_CLARK 631
+#define TRAINER_ERIC 632
+#define TRAINER_LUCAS_2 633
+#define TRAINER_MIKE_1 634
+#define TRAINER_MIKE_2 635
+#define TRAINER_TRENT_2 636
+#define TRAINER_TRENT_3 637
+#define TRAINER_TRENT_4 638
+#define TRAINER_TRENT_5 639
+#define TRAINER_DEZ_AND_LUKE 640
+#define TRAINER_LEA_AND_JED 641
+#define TRAINER_KIRA_AND_DAN_1 642
+#define TRAINER_KIRA_AND_DAN_2 643
+#define TRAINER_KIRA_AND_DAN_3 644
+#define TRAINER_KIRA_AND_DAN_4 645
+#define TRAINER_KIRA_AND_DAN_5 646
+#define TRAINER_JOHANNA 647
+#define TRAINER_GERALD 648
+#define TRAINER_VIVIAN 649
+#define TRAINER_DANIELLE 650
+#define TRAINER_HIDEO 651
+#define TRAINER_KEIGO 652
+#define TRAINER_RILEY 653
+#define TRAINER_FLINT 654
+#define TRAINER_ASHLEY 655
+#define TRAINER_WALLY_2 656
+#define TRAINER_WALLY_3 657
+#define TRAINER_WALLY_4 658
+#define TRAINER_WALLY_5 659
+#define TRAINER_WALLY_6 660
+#define TRAINER_BRENDAN_13 661
+#define TRAINER_BRENDAN_14 662
+#define TRAINER_BRENDAN_15 663
+#define TRAINER_MAY_11 664
+#define TRAINER_MAY_12 665
+#define TRAINER_MAY_13 666
+#define TRAINER_JONAH 667
+#define TRAINER_HENRY 668
+#define TRAINER_ROGER 669
+#define TRAINER_ALEXA 670
+#define TRAINER_RUBEN 671
+#define TRAINER_KOJI_1 672
+#define TRAINER_WAYNE 673
+#define TRAINER_AIDAN 674
+#define TRAINER_REED 675
+#define TRAINER_TISHA 676
+#define TRAINER_TORI_AND_TIA 677
+#define TRAINER_KIM_AND_IRIS 678
+#define TRAINER_TYRA_AND_IVY 679
+#define TRAINER_MEL_AND_PAUL 680
+#define TRAINER_JOHN_AND_JAY_1 681
+#define TRAINER_JOHN_AND_JAY_2 682
+#define TRAINER_JOHN_AND_JAY_3 683
+#define TRAINER_JOHN_AND_JAY_4 684
+#define TRAINER_JOHN_AND_JAY_5 685
+#define TRAINER_RELI_AND_IAN 686
+#define TRAINER_LILA_AND_ROY_1 687
+#define TRAINER_LILA_AND_ROY_2 688
+#define TRAINER_LILA_AND_ROY_3 689
+#define TRAINER_LILA_AND_ROY_4 690
+#define TRAINER_LILA_AND_ROY_5 691
+#define TRAINER_LISA_AND_RAY 692
+#define TRAINER_CHRIS 693
+#define TRAINER_DAWSON 694
+#define TRAINER_SARAH 695
+#define TRAINER_DARIAN 696
+#define TRAINER_HAILEY 697
+#define TRAINER_CHANDLER 698
+#define TRAINER_KALEB 699
+#define TRAINER_JOSEPH 700
+#define TRAINER_ALYSSA 701
+#define TRAINER_MARCOS 702
+#define TRAINER_RHETT 703
+#define TRAINER_TYRON 704
+#define TRAINER_CELINA 705
+#define TRAINER_BIANCA 706
+#define TRAINER_HAYDEN 707
+#define TRAINER_SOPHIE 708
+#define TRAINER_COBY 709
+#define TRAINER_LAWRENCE 710
+#define TRAINER_WYATT 711
+#define TRAINER_ANGELINA 712
+#define TRAINER_KAI 713
+#define TRAINER_CHARLOTTE 714
+#define TRAINER_DEANDRE 715
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_1 716
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_2 717
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_3 718
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_4 719
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_5 720
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_6 721
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_7 722
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_8 723
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_9 724
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_10 725
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_11 726
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_12 727
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_13 728
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_14 729
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_15 730
+#define TRAINER_GRUNT_MAGMA_HIDEOUT_16 731
+#define TRAINER_TABITHA_3 732
+#define TRAINER_DARCY 733
+#define TRAINER_MAXIE_3 734
+#define TRAINER_PETE 735
+#define TRAINER_ISABELLE 736
+#define TRAINER_ANDRES_1 737
+#define TRAINER_JOSUE 738
+#define TRAINER_CAMRON 739
+#define TRAINER_CORY_1 740
+#define TRAINER_CAROLINA 741
+#define TRAINER_ELIJAH 742
+#define TRAINER_CELIA 743
+#define TRAINER_BRYAN 744
+#define TRAINER_BRANDEN 745
+#define TRAINER_BRYANT 746
+#define TRAINER_SHAYLA 747
+#define TRAINER_KYRA 748
+#define TRAINER_JAIDEN 749
+#define TRAINER_ALIX 750
+#define TRAINER_HELENE 751
+#define TRAINER_MARLENE 752
+#define TRAINER_DEVAN 753
+#define TRAINER_JOHNSON 754
+#define TRAINER_MELINA 755
+#define TRAINER_BRANDI 756
+#define TRAINER_AISHA 757
+#define TRAINER_MAKAYLA 758
+#define TRAINER_FABIAN 759
+#define TRAINER_DAYTON 760
+#define TRAINER_RACHEL 761
+#define TRAINER_LEONEL 762
+#define TRAINER_CALLIE 763
+#define TRAINER_CALE 764
+#define TRAINER_MYLES 765
+#define TRAINER_PAT 766
+#define TRAINER_CRISTIN_1 767
+#define TRAINER_MAY_14 768
+#define TRAINER_MAY_15 769
+#define TRAINER_ROXANNE_2 770
+#define TRAINER_ROXANNE_3 771
+#define TRAINER_ROXANNE_4 772
+#define TRAINER_ROXANNE_5 773
+#define TRAINER_BRAWLY_2 774
+#define TRAINER_BRAWLY_3 775
+#define TRAINER_BRAWLY_4 776
+#define TRAINER_BRAWLY_5 777
+#define TRAINER_WATTSON_2 778
+#define TRAINER_WATTSON_3 779
+#define TRAINER_WATTSON_4 780
+#define TRAINER_WATTSON_5 781
+#define TRAINER_FLANNERY_2 782
+#define TRAINER_FLANNERY_3 783
+#define TRAINER_FLANNERY_4 784
+#define TRAINER_FLANNERY_5 785
+#define TRAINER_NORMAN_2 786
+#define TRAINER_NORMAN_3 787
+#define TRAINER_NORMAN_4 788
+#define TRAINER_NORMAN_5 789
+#define TRAINER_WINONA_2 790
+#define TRAINER_WINONA_3 791
+#define TRAINER_WINONA_4 792
+#define TRAINER_WINONA_5 793
+#define TRAINER_TATE_AND_LIZA_2 794
+#define TRAINER_TATE_AND_LIZA_3 795
+#define TRAINER_TATE_AND_LIZA_4 796
+#define TRAINER_TATE_AND_LIZA_5 797
+#define TRAINER_JUAN_2 798
+#define TRAINER_JUAN_3 799
+#define TRAINER_JUAN_4 800
+#define TRAINER_JUAN_5 801
+#define TRAINER_ANGELO 802
+#define TRAINER_DARIUS 803
+#define TRAINER_STEVEN 804
+#define TRAINER_ANABEL 805
+#define TRAINER_TUCKER 806
+#define TRAINER_SPENSER 807
+#define TRAINER_GRETA 808
+#define TRAINER_NOLAND 809
+#define TRAINER_LUCY 810
+#define TRAINER_BRANDON 811
+#define TRAINER_ANDRES_2 812
+#define TRAINER_ANDRES_3 813
+#define TRAINER_ANDRES_4 814
+#define TRAINER_ANDRES_5 815
+#define TRAINER_CORY_2 816
+#define TRAINER_CORY_3 817
+#define TRAINER_CORY_4 818
+#define TRAINER_CORY_5 819
+#define TRAINER_PABLO_2 820
+#define TRAINER_PABLO_3 821
+#define TRAINER_PABLO_4 822
+#define TRAINER_PABLO_5 823
+#define TRAINER_KOJI_2 824
+#define TRAINER_KOJI_3 825
+#define TRAINER_KOJI_4 826
+#define TRAINER_KOJI_5 827
+#define TRAINER_CRISTIN_2 828
+#define TRAINER_CRISTIN_3 829
+#define TRAINER_CRISTIN_4 830
+#define TRAINER_CRISTIN_5 831
+#define TRAINER_FERNANDO_2 832
+#define TRAINER_FERNANDO_3 833
+#define TRAINER_FERNANDO_4 834
+#define TRAINER_FERNANDO_5 835
+#define TRAINER_SAWYER_2 836
+#define TRAINER_SAWYER_3 837
+#define TRAINER_SAWYER_4 838
+#define TRAINER_SAWYER_5 839
+#define TRAINER_GABRIELLE_2 840
+#define TRAINER_GABRIELLE_3 841
+#define TRAINER_GABRIELLE_4 842
+#define TRAINER_GABRIELLE_5 843
+#define TRAINER_THALIA_2 844
+#define TRAINER_THALIA_3 845
+#define TRAINER_THALIA_4 846
+#define TRAINER_THALIA_5 847
+#define TRAINER_MARIELA 848
+#define TRAINER_ALVARO 849
+#define TRAINER_EVERETT 850
+#define TRAINER_RED 851
+#define TRAINER_LEAF 852
+#define TRAINER_BRENDAN_16 853
+#define TRAINER_MAY_16 854
-#define TRAINERS_COUNT 855
+#define TRAINERS_COUNT 855
#endif // GUARD_CONSTANTS_OPPONENTS_H
diff --git a/include/constants/party_menu.h b/include/constants/party_menu.h
index 213263b47..7953967ed 100644
--- a/include/constants/party_menu.h
+++ b/include/constants/party_menu.h
@@ -10,13 +10,6 @@
#define AILMENT_PKRS 6
#define AILMENT_FNT 7
-#define PARTY_CHOOSE_MON 0
-#define PARTY_MUST_CHOOSE_MON 1
-#define PARTY_CANT_SWITCH 2
-#define PARTY_USE_ITEM_ON 3
-#define PARTY_ABILITY_PREVENTS 4
-#define PARTY_GIVE_ITEM 5
-
#define TUTOR_MOVE_MEGA_PUNCH 0
#define TUTOR_MOVE_SWORDS_DANCE 1
#define TUTOR_MOVE_MEGA_KICK 2
@@ -49,4 +42,91 @@
#define TUTOR_MOVE_FURY_CUTTER 29
#define TUTOR_MOVE_COUNT 30
+#define PARTY_LAYOUT_SINGLE 0
+#define PARTY_LAYOUT_DOUBLE 1
+#define PARTY_LAYOUT_MULTI 2
+#define PARTY_LAYOUT_MULTI_SHOWCASE 3 // The layout during the screen that appears just before a multi battle
+#define PARTY_LAYOUT_COUNT 4
+#define KEEP_PARTY_LAYOUT 0xFF
+
+#define PARTY_MENU_TYPE_FIELD 0
+#define PARTY_MENU_TYPE_IN_BATTLE 1
+#define PARTY_MENU_TYPE_CONTEST 2
+#define PARTY_MENU_TYPE_CHOOSE_MON 3
+#define PARTY_MENU_TYPE_CHOOSE_HALF 4 // multi battles, eReader battles, and some battle facilities
+#define PARTY_MENU_TYPE_MULTI_SHOWCASE 5
+#define PARTY_MENU_TYPE_DAYCARE 6
+#define PARTY_MENU_TYPE_MOVE_RELEARNER 7
+#define PARTY_MENU_TYPE_UNION_ROOM_REGISTER 8 // trading board
+#define PARTY_MENU_TYPE_UNION_ROOM_TRADE 9 // trading board
+#define PARTY_MENU_TYPE_SPIN_TRADE 10 // Unused beta for Gen IV's Spin Trade
+#define PARTY_MENU_TYPE_MINIGAME 11
+#define PARTY_MENU_TYPE_STORE_PYRAMID_HELD_ITEMS 12
+
+#define PARTY_ACTION_CHOOSE_MON 0
+#define PARTY_ACTION_SEND_OUT 1
+#define PARTY_ACTION_CANT_SWITCH 2
+#define PARTY_ACTION_USE_ITEM 3
+#define PARTY_ACTION_ABILITY_PREVENTS 4
+#define PARTY_ACTION_GIVE_ITEM 5
+#define PARTY_ACTION_GIVE_PC_ITEM 6 // Unused. Not possible to give non-mail items directly from PC
+#define PARTY_ACTION_GIVE_MAILBOX_MAIL 7
+#define PARTY_ACTION_SWITCH 8
+#define PARTY_ACTION_SWITCHING 9
+#define PARTY_ACTION_SOFTBOILED 10
+#define PARTY_ACTION_CHOOSE_AND_CLOSE 11
+#define PARTY_ACTION_MOVE_TUTOR 12
+#define PARTY_ACTION_MINIGAME 13
+#define PARTY_ACTION_REUSABLE_ITEM 14 // Unused. The only reusable items are handled separately
+
+// IDs for DisplayPartyMenuStdMessage, to display the message at the bottom of the party menu
+#define PARTY_MSG_CHOOSE_MON 0
+#define PARTY_MSG_CHOOSE_MON_OR_CANCEL 1
+#define PARTY_MSG_CHOOSE_MON_AND_CONFIRM 2
+#define PARTY_MSG_MOVE_TO_WHERE 3
+#define PARTY_MSG_TEACH_WHICH_MON 4
+#define PARTY_MSG_USE_ON_WHICH_MON 5
+#define PARTY_MSG_GIVE_TO_WHICH_MON 6
+#define PARTY_MSG_NOTHING_TO_CUT 7
+#define PARTY_MSG_CANT_SURF_HERE 8
+#define PARTY_MSG_ALREADY_SURFING 9
+#define PARTY_MSG_CURRENT_TOO_FAST 10
+#define PARTY_MSG_ENJOY_CYCLING 11
+#define PARTY_MSG_ALREADY_IN_USE 12
+#define PARTY_MSG_CANT_USE_HERE 13
+#define PARTY_MSG_NO_MON_FOR_BATTLE 14
+#define PARTY_MSG_CHOOSE_MON_2 15
+#define PARTY_MSG_NOT_ENOUGH_HP 16
+#define PARTY_MSG_X_MONS_ARE_NEEDED 17
+#define PARTY_MSG_MONS_CANT_BE_SAME 18
+#define PARTY_MSG_NO_SAME_HOLD_ITEMS 19
+#define PARTY_MSG_UNUSED 20
+#define PARTY_MSG_DO_WHAT_WITH_MON 21
+#define PARTY_MSG_RESTORE_WHICH_MOVE 22
+#define PARTY_MSG_BOOST_PP_WHICH_MOVE 23
+#define PARTY_MSG_DO_WHAT_WITH_ITEM 24
+#define PARTY_MSG_DO_WHAT_WITH_MAIL 25
+#define PARTY_MSG_ALREADY_HOLDING_ONE 26
+#define PARTY_MSG_NONE 127
+
+// IDs for DisplayPartyPokemonDescriptionText, to display a message in the party pokemon's box
+#define PARTYBOX_DESC_NO_USE 0
+#define PARTYBOX_DESC_ABLE_3 1
+#define PARTYBOX_DESC_FIRST 2
+#define PARTYBOX_DESC_SECOND 3
+#define PARTYBOX_DESC_THIRD 4
+#define PARTYBOX_DESC_FOURTH 5
+#define PARTYBOX_DESC_ABLE 6
+#define PARTYBOX_DESC_NOT_ABLE 7
+#define PARTYBOX_DESC_ABLE_2 8
+#define PARTYBOX_DESC_NOT_ABLE_2 9
+#define PARTYBOX_DESC_LEARNED 10
+#define PARTYBOX_DESC_HAVE 11
+#define PARTYBOX_DESC_DONT_HAVE 12
+
+#define SELECTWINDOW_ACTIONS 0
+#define SELECTWINDOW_ITEM 1
+#define SELECTWINDOW_MAIL 2
+#define SELECTWINDOW_MOVES 3
+
#endif // GUARD_CONSTANTS_PARTY_MENU_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index 5cd98d3f3..5610a470c 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -184,7 +184,6 @@
#define OT_ID_PRESET 1
#define OT_ID_RANDOM_NO_SHINY 2
-
#define MON_GIVEN_TO_PARTY 0
#define MON_GIVEN_TO_PC 1
#define MON_CANT_GIVE 2
@@ -193,6 +192,13 @@
#define PLAYER_HAS_ONE_MON 1
#define PLAYER_HAS_ONE_USABLE_MON 2
+#define MON_ALREADY_KNOWS_MOVE 0xFFFE
+#define MON_HAS_MAX_MOVES 0xFFFF
+
+#define LEVEL_UP_MOVE_ID 0x01FF
+#define LEVEL_UP_MOVE_LV 0xFE00
+#define LEVEL_UP_END 0xFFFF
+
#define MON_MALE 0x00
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
diff --git a/include/constants/trade.h b/include/constants/trade.h
index 4fb8966d0..fa42e6b43 100644
--- a/include/constants/trade.h
+++ b/include/constants/trade.h
@@ -20,13 +20,13 @@
#define READY_FINISH_TRADE 1
#define FINISH_TRADE 2
-// Return values for CanTradeSelectedMon and CanTradeSelectedPartyMenuMon
+// Return values for CanTradeSelectedMon and CanSpinTradeMon
#define CAN_TRADE_MON 0
#define CANT_TRADE_LAST_MON 1
#define CANT_TRADE_NATIONAL 2
-#define CANT_TRADE_EGG 3
+#define CANT_TRADE_EGG_YET 3
#define CANT_TRADE_INVALID_MON 4
-#define CANT_TRADE_EGG2 5
+#define CANT_TRADE_EGG_YET2 5
// Return values for CheckValidityOfTradeMons
#define PLAYER_MON_INVALID 0
diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h
index cab56a5ac..f7a270428 100644
--- a/include/constants/trainer_hill.h
+++ b/include/constants/trainer_hill.h
@@ -1,27 +1,46 @@
#ifndef GUARD_CONSTANTS_TRAINER_HILL_H
#define GUARD_CONSTANTS_TRAINER_HILL_H
+#define TRAINER_HILL_1F 1
+#define TRAINER_HILL_2F 2
+#define TRAINER_HILL_3F 3
+#define TRAINER_HILL_4F 4
+#define TRAINER_HILL_ROOF 5
+#define TRAINER_HILL_ENTRANCE 6
+
+#define NUM_TRAINER_HILL_FLOORS 4
+#define NUM_TRAINER_HILL_FLOORS_JP 2
+
+#define NUM_TRAINER_HILL_PRIZE_LISTS 10
+
#define TRAINER_HILL_FUNC_START 0
-#define TRAINER_HILL_FUNC_1 1
-#define TRAINER_HILL_FUNC_2 2
-#define TRAINER_HILL_FUNC_3 3
+#define TRAINER_HILL_FUNC_GET_OWNER_STATE 1
+#define TRAINER_HILL_FUNC_GIVE_PRIZE 2
+#define TRAINER_HILL_FUNC_CHECK_FINAL_TIME 3
#define TRAINER_HILL_FUNC_RESUME_TIMER 4
#define TRAINER_HILL_FUNC_SET_LOST 5
#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6
-#define TRAINER_HILL_FUNC_7 7
-#define TRAINER_HILL_FUNC_8 8
-#define TRAINER_HILL_FUNC_9 9
-#define TRAINER_HILL_FUNC_IS_IN 10
-#define TRAINER_HILL_FUNC_11 11
-#define TRAINER_HILL_FUNC_12 12
-#define TRAINER_HILL_FUNC_13 13
-#define TRAINER_HILL_FUNC_14 14
-#define TRAINER_HILL_FUNC_15 15
-#define TRAINER_HILL_FUNC_16 16
+#define TRAINER_HILL_FUNC_GET_CHALLENGE_TIME 7
+#define TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED 8
+#define TRAINER_HILL_FUNC_CLEAR_RESULT 9
+#define TRAINER_HILL_FUNC_IN_CHALLENGE 10
+#define TRAINER_HILL_FUNC_POST_BATTLE_TEXT 11
+#define TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS 12
+#define TRAINER_HILL_FUNC_GET_GAME_SAVED 13
+#define TRAINER_HILL_FUNC_SET_GAME_SAVED 14
+#define TRAINER_HILL_FUNC_CLEAR_GAME_SAVED 15
+#define TRAINER_HILL_FUNC_GET_WON 16
#define TRAINER_HILL_FUNC_SET_TAG 17
-// Values returned by the TrainerHillGetChallengeStatus
-// function.
+#define TRAINER_HILL_TEXT_INTRO 2
+#define TRAINER_HILL_TEXT_PLAYER_LOST 3
+#define TRAINER_HILL_TEXT_PLAYER_WON 4
+#define TRAINER_HILL_TEXT_AFTER 5
+
+#define NUM_TRAINER_HILL_TRAINERS (NUM_TRAINER_HILL_FLOORS * 2)
+#define NUM_TRAINER_HILL_TRAINERS_JP (NUM_TRAINER_HILL_FLOORS_JP * 2)
+
+// Values returned by TrainerHillGetChallengeStatus
#define TRAINER_HILL_PLAYER_STATUS_LOST 0
#define TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED 1
#define TRAINER_HILL_PLAYER_STATUS_NORMAL 2
diff --git a/include/constants/tv.h b/include/constants/tv.h
index c22bec9a3..fddf650e4 100644
--- a/include/constants/tv.h
+++ b/include/constants/tv.h
@@ -43,4 +43,7 @@
// //
#define TVSHOW_MASS_OUTBREAK 41
+// Number of ribbons to put Spot the Cuties on air
+#define NUM_CUTIES_RIBBONS 4
+
#endif //GUARD_CONSTANTS_TV_H
diff --git a/include/constants/union_room.h b/include/constants/union_room.h
new file mode 100644
index 000000000..2314f85a0
--- /dev/null
+++ b/include/constants/union_room.h
@@ -0,0 +1,28 @@
+#ifndef GUARD_CONSTANTS_UNION_ROOM_H
+#define GUARD_CONSTANTS_UNION_ROOM_H
+
+#define LINK_GROUP_SINGLE_BATTLE 0
+#define LINK_GROUP_DOUBLE_BATTLE 1
+#define LINK_GROUP_MULTI_BATTLE 2
+#define LINK_GROUP_TRADE 3
+#define LINK_GROUP_POKEMON_JUMP 4
+#define LINK_GROUP_BERRY_CRUSH 5
+#define LINK_GROUP_BERRY_PICKING 6
+#define LINK_GROUP_WONDER_CARD 7
+#define LINK_GROUP_WONDER_NEWS 8
+#define LINK_GROUP_UNK_9 9
+#define LINK_GROUP_UNK_10 10
+#define LINK_GROUP_UNK_11 11
+#define LINK_GROUP_RECORD_CORNER 12
+#define LINK_GROUP_BERRY_BLENDER 13
+#define LINK_GROUP_UNK_14 14
+#define LINK_GROUP_COOL_CONTEST 15
+#define LINK_GROUP_BEAUTY_CONTEST 16
+#define LINK_GROUP_CUTE_CONTEST 17
+#define LINK_GROUP_SMART_CONTEST 18
+#define LINK_GROUP_TOUGH_CONTEST 19
+#define LINK_GROUP_BATTLE_TOWER 20
+#define LINK_GROUP_BATTLE_TOWER_OPEN 21
+#define NUM_LINK_GROUP_TYPES 22
+
+#endif //GUARD_CONSTANTS_UNION_ROOM_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
index cfafccd9b..d39323831 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -79,8 +79,8 @@
#define VAR_ALTERING_CAVE_WILD_SET 0x403E
#define VAR_DISTRIBUTE_EON_TICKET 0x403F // This var is read and written, but is always zero. The only way to obtain the Eon Ticket in Emerald is via Record Mixing
#define VAR_DAYS 0x4040
-#define VAR_FANCLUB_UNKNOWN_1 0x4041
-#define VAR_FANCLUB_UNKNOWN_2 0x4042
+#define VAR_FANCLUB_FAN_COUNTER 0x4041
+#define VAR_FANCLUB_LOSE_FAN_TIMER 0x4042
#define VAR_DEPT_STORE_FLOOR 0x4043
#define VAR_TRICK_HOUSE_LEVEL 0x4044
#define VAR_POKELOT_PRIZE_ITEM 0x4045
@@ -144,17 +144,17 @@
#define VAR_ROUTE132_STATE 0x407F // Unused Var
#define VAR_ROUTE133_STATE 0x4080 // Unused Var
#define VAR_ROUTE134_STATE 0x4081 // Unused Var
-#define VAR_LITTLEROOT_HOUSES_STATE 0x4082
+#define VAR_LITTLEROOT_HOUSES_STATE_MAY 0x4082
#define VAR_UNUSED_0x4083 0x4083 // Unused Var
#define VAR_BIRCH_LAB_STATE 0x4084
#define VAR_PETALBURG_GYM_STATE 0x4085 // 0-1: Wally tutorial, 2-6: 0-4 badges, 7: Defeated Norman, 8: Rematch Norman
-#define VAR_LINK_CONTEST_ROOM_STATE 0x4086
+#define VAR_CONTEST_HALL_STATE 0x4086
#define VAR_CABLE_CLUB_STATE 0x4087
-#define VAR_CONTEST_LOCATION 0x4088
+#define VAR_CONTEST_TYPE 0x4088
#define VAR_SECRET_BASE_INITIALIZED 0x4089
#define VAR_CONTEST_PRIZE_PICKUP 0x408A
#define VAR_UNUSED_0x408B 0x408B // Unused Var
-#define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C
+#define VAR_LITTLEROOT_HOUSES_STATE_BRENDAN 0x408C
#define VAR_LITTLEROOT_RIVAL_STATE 0x408D
#define VAR_BOARD_BRINEY_BOAT_STATE 0x408E
#define VAR_DEVON_CORP_3F_STATE 0x408F
@@ -172,16 +172,16 @@
#define VAR_UNUSED_0x409B 0x409B // Unused Var
#define VAR_ELITE_4_STATE 0x409C
#define VAR_UNUSED_0x409D 0x409D // Unused Var
-#define VAR_MOSSDEEP_SPACE_CENTER_STATE_1 0x409E
-#define VAR_MOSSDEEP_SPACE_CENTER_STATE_2 0x409F
+#define VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE 0x409E
+#define VAR_MOSSDEEP_SPACE_CENTER_STATE 0x409F
#define VAR_SLATEPORT_HARBOR_STATE 0x40A0
#define VAR_UNUSED_0x40A1 0x40A1 // Unused var
#define VAR_SEAFLOOR_CAVERN_STATE 0x40A2
#define VAR_CABLE_CAR_STATION_STATE 0x40A3
#define VAR_SAFARI_ZONE_STATE 0x40A4 // 0: In or out of SZ, 1: Player exiting SZ, 2: Player entering SZ
-#define VAR_TRICK_HOUSE_ENTRANCE_STATE_1 0x40A5
-#define VAR_TRICK_HOUSE_ENTRANCE_STATE_2 0x40A6
-#define VAR_TRICK_HOUSE_ENTRANCE_STATE_3 0x40A7
+#define VAR_TRICK_HOUSE_BEING_WATCHED_STATE 0x40A5
+#define VAR_TRICK_HOUSE_FOUND_TRICK_MASTER 0x40A6
+#define VAR_TRICK_HOUSE_ENTRANCE_STATE 0x40A7
#define VAR_UNUSED_0x40A8 0x40A8 // Unused Var
#define VAR_CYCLING_CHALLENGE_STATE 0x40A9
#define VAR_SLATEPORT_MUSEUM_1F_STATE 0x40AA
@@ -194,9 +194,9 @@
#define VAR_TRICK_HOUSE_PUZZLE_7_STATE 0x40B1
#define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2
#define VAR_WEATHER_INSTITUTE_STATE 0x40B3
-#define VAR_PORTHOLE_STATE 0x40B4
-#define VAR_TRICK_HOUSE_STATE 0x40B5 // TODO: needs some further investigation
-#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6
+#define VAR_SS_TIDAL_STATE 0x40B4
+#define VAR_TRICK_HOUSE_ENTER_FROM_CORRIDOR 0x40B5
+#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6 // Leftover from RS, never set
#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7
#define VAR_UNUSED_0x40B8 0x40B8 // Unused Var
#define VAR_MT_PYRE_STATE 0x40B9
@@ -257,9 +257,9 @@
#define VAR_SECRET_BASE_IS_NOT_LOCAL 0x40F0 // Set to TRUE while in another player's secret base.
#define VAR_DAILY_BP 0x40F1
#define VAR_WALLY_CALL_STEP_COUNTER 0x40F2
-#define VAR_WINONA_CALL_STEP_COUNTER 0x40F3
+#define VAR_SCOTT_FORTREE_CALL_STEP_COUNTER 0x40F3
#define VAR_ROXANNE_CALL_STEP_COUNTER 0x40F4
-#define VAR_SCOTT_CALL_STEP_COUNTER 0x40F5
+#define VAR_SCOTT_BF_CALL_STEP_COUNTER 0x40F5
#define VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER 0x40F6
#define VAR_UNUSED_0x40F7 0x40F7 // Unused Var
#define VAR_UNUSED_0x40F8 0x40F8 // Unused Var