summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h35
-rw-r--r--include/battle_bg.h13
-rw-r--r--include/battle_setup.h87
-rw-r--r--include/battle_transition.h50
-rw-r--r--include/constants/flags.h4
-rw-r--r--include/constants/trainers.h1129
-rw-r--r--include/constants/vars.h13
-rw-r--r--include/data/region_map/region_map_entries.h820
-rw-r--r--include/dewford_trend.h1
-rwxr-xr-xinclude/event_scripts.h8
-rw-r--r--include/field_effect.h3
-rw-r--r--include/field_effect_helpers.h1
-rwxr-xr-xinclude/field_map_obj.h14
-rw-r--r--include/field_player_avatar.h1
-rw-r--r--include/field_screen.h1
-rw-r--r--include/gba/macro.h75
-rw-r--r--include/gba/types.h2
-rw-r--r--include/global.fieldmap.h4
-rw-r--r--include/global.h44
-rw-r--r--include/graphics.h110
-rw-r--r--include/international_string_util.h2
-rw-r--r--include/lilycove_lady.h2
-rw-r--r--include/list_menu.h23
-rw-r--r--include/mail.h14
-rw-r--r--include/mail_data.h12
-rw-r--r--include/map_obj_8097404.h2
-rw-r--r--include/menu.h9
-rw-r--r--include/menu_helpers.h13
-rw-r--r--include/new_menu_helpers.h1
-rw-r--r--include/party_menu.h4
-rw-r--r--include/pokeblock.h41
-rw-r--r--include/pokemon.h1
-rw-r--r--include/pokemon_3.h2
-rw-r--r--include/pokemon_icon.h1
-rw-r--r--include/pokenav.h11
-rw-r--r--include/rom6.h8
-rw-r--r--include/safari_zone.h2
-rw-r--r--include/secret_base.h1
-rw-r--r--include/songs.h93
-rw-r--r--include/strings.h64
-rw-r--r--include/text_window.h4
-rw-r--r--include/trainer_classes.h74
-rw-r--r--include/trainer_front_sprites.h101
-rw-r--r--include/trainer_ids.h7
-rw-r--r--include/trainer_see.h30
-rw-r--r--include/tv.h1
-rw-r--r--include/wallclock.h6
47 files changed, 2225 insertions, 719 deletions
diff --git a/include/battle.h b/include/battle.h
index 7c8c81f52..602d3eb53 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -8,6 +8,7 @@
#include "battle_ai_switch_items.h"
#include "battle_gfx_sfx_util.h"
#include "battle_util2.h"
+#include "battle_bg.h"
/*
Banks are a name given to what could be called a 'battlerId' or 'monControllerId'.
@@ -53,7 +54,7 @@
#define BATTLE_TYPE_PALACE 0x20000
#define BATTLE_TYPE_ARENA 0x40000
#define BATTLE_TYPE_FACTORY 0x80000
-#define BATTLE_TYPE_x100000 0x100000
+#define BATTLE_TYPE_PIKE 0x100000
#define BATTLE_TYPE_PYRAMID 0x200000
#define BATTLE_TYPE_INGAME_PARTNER 0x400000
#define BATTLE_TYPE_x800000 0x800000
@@ -62,7 +63,7 @@
#define BATTLE_TYPE_x4000000 0x4000000
#define BATTLE_TYPE_SECRET_BASE 0x8000000
#define BATTLE_TYPE_GROUDON 0x10000000
-#define BATTLE_TYPE_KYORGE 0x20000000
+#define BATTLE_TYPE_KYOGRE 0x20000000
#define BATTLE_TYPE_RAYQUAZA 0x40000000
#define BATTLE_TYPE_x80000000 0x80000000
@@ -72,8 +73,8 @@
#define STEVEN_PARTNER_ID 0xC03
#define SECRET_BASE_OPPONENT 0x400
-#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID)
-#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000)
+#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)
+#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE)
#define BATTLE_WON 0x1
#define BATTLE_LOST 0x2
@@ -229,9 +230,9 @@
#define BATTLE_TERRAIN_UNDERWATER 3
#define BATTLE_TERRAIN_WATER 4
#define BATTLE_TERRAIN_POND 5
-#define BATTLE_TERRAIN_ROCK 6
+#define BATTLE_TERRAIN_MOUNTAIN 6
#define BATTLE_TERRAIN_CAVE 7
-#define BATTLE_TERRAIN_INSIDE 8
+#define BATTLE_TERRAIN_BUILDING 8
#define BATTLE_TERRAIN_PLAIN 9
// array entries for battle communication
@@ -298,7 +299,6 @@ struct TrainerMonNoItemDefaultMoves
u16 species;
};
-u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg);
u8 GetBankSide(u8 bank);
struct TrainerMonItemDefaultMoves
@@ -328,10 +328,10 @@ struct TrainerMonItemCustomMoves
union TrainerMonPtr
{
- struct TrainerMonNoItemDefaultMoves* NoItemDefaultMoves;
- struct TrainerMonNoItemCustomMoves* NoItemCustomMoves;
- struct TrainerMonItemDefaultMoves* ItemDefaultMoves;
- struct TrainerMonItemCustomMoves* ItemCustomMoves;
+ struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves;
+ struct TrainerMonNoItemCustomMoves *NoItemCustomMoves;
+ struct TrainerMonItemDefaultMoves *ItemDefaultMoves;
+ struct TrainerMonItemCustomMoves *ItemCustomMoves;
};
struct Trainer
@@ -348,9 +348,6 @@ struct Trainer
/*0x24*/ union TrainerMonPtr party;
};
-#define PARTY_FLAG_CUSTOM_MOVES 0x1
-#define PARTY_FLAG_HAS_ITEM 0x2
-
extern const struct Trainer gTrainers[];
#define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F))
@@ -867,16 +864,6 @@ struct BattleScripting
extern struct BattleScripting gBattleScripting;
-// functions
-
-// battle_1
-void LoadBattleTextboxAndBackground(void);
-void LoadBattleEntryBackground(void);
-void ApplyPlayerChosenFrameToBattleMenu(void);
-bool8 LoadChosenBattleElement(u8 caseId);
-void DrawMainBattleBackground(void);
-void task00_0800F6FC(u8 taskId);
-
enum
{
BACK_PIC_BRENDAN,
diff --git a/include/battle_bg.h b/include/battle_bg.h
new file mode 100644
index 000000000..7fc09fbf7
--- /dev/null
+++ b/include/battle_bg.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_BATTLE_BG_H
+#define GUARD_BATTLE_BG_H
+
+void sub_8035658(void);
+void sub_80356D0(void);
+void ApplyPlayerChosenFrameToBattleMenu(void);
+void DrawMainBattleBackground(void);
+void LoadBattleTextboxAndBackground(void);
+void sub_8035D74(u8 taskId);
+void LoadBattleEntryBackground(void);
+bool8 LoadChosenBattleElement(u8 caseId);
+
+#endif // GUARD_BATTLE_BG_H
diff --git a/include/battle_setup.h b/include/battle_setup.h
index 0168022cc..e4bae6fdb 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -1,18 +1,85 @@
#ifndef GUARD_BATTLE_SETUP_H
#define GUARD_BATTLE_SETUP_H
-void BattleSetup_StartScriptedWildBattle(void);
-u8 BattleSetup_GetTerrainId(void);
-u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
-void BattleSetup_StartBattlePikeWildBattle(void);
+enum
+{
+ TRAINER_BATTLE_NORMAL,
+ TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC,
+ TRAINER_BATTLE_CONTINUE_SCRIPT,
+ TRAINER_BATTLE_NORMAL_NO_INTRO_TEXT,
+ TRAINER_BATTLE_DOUBLE,
+ TRAINER_BATTLE_REMATCH,
+ TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE,
+ TRAINER_BATTLE_REMATCH_DOUBLE,
+ TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC,
+ TRAINER_BATTLE_9,
+ TRAINER_BATTLE_SET_TRAINER_A,
+ TRAINER_BATTLE_SET_TRAINER_B,
+ TRAINER_BATTLE_12,
+};
+
+#define REMATCHES_COUNT 5
+#define REMATCH_TABLE_ENTRIES 78
+#define REMATCH_WALLY_ENTRY 64
+#define REMATCH_ELITE_FOUR_ENTRIES 73
+
+struct RematchTrainer
+{
+ u16 trainerIds[REMATCHES_COUNT];
+ u16 mapGroup;
+ u16 mapNum;
+};
+
+extern const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES];
+
+extern u16 gTrainerBattleOpponent_A;
+extern u16 gTrainerBattleOpponent_B;
+extern u16 gPartnerTrainerId;
+
void BattleSetup_StartWildBattle(void);
+void BattleSetup_StartBattlePikeWildBattle(void);
void BattleSetup_StartRoamerBattle(void);
-
-u8 HasTrainerAlreadyBeenFought(u16);
-void trainer_flag_set(u16);
-void trainer_flag_clear(u16);
+void StartWallyTutorialBattle(void);
+void BattleSetup_StartScriptedWildBattle(void);
+void BattleSetup_StartLatiBattle(void);
+void BattleSetup_StartLegendaryBattle(void);
+void StartGroudonKyogreBattle(void);
+void StartRegiBattle(void);
+u8 BattleSetup_GetTerrainId(void);
+u8 sub_80B100C(s32 arg0);
+void ChooseStarter(void);
+void ResetTrainerOpponentIds(void);
+void SetMapVarsToTrainer(void);
+const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
+void ConfigureAndSetUpOneTrainerBattle(u8 trainerMapObjId, const u8 *trainerScript);
+void ConfigureTwoTrainersBattle(u8 trainerMapObjId, const u8 *trainerScript);
+void SetUpTwoTrainersBattle(void);
+bool32 GetTrainerFlagFromScriptPointer(const u8 *data);
+void sub_80B16D8(void);
+u8 GetTrainerBattleMode(void);
+bool8 GetTrainerFlag(void);
+bool8 HasTrainerBeenFought(u16 trainerId);
+void SetTrainerFlag(u16 trainerId);
+void ClearTrainerFlag(u16 trainerId);
void BattleSetup_StartTrainerBattle(void);
-u8 *BattleSetup_GetScriptAddrAfterBattle(void);
-u8 *BattleSetup_GetTrainerPostBattleScript(void);
+void BattleSetup_StartRematchBattle(void);
+void ShowTrainerIntroSpeech(void);
+const u8 *BattleSetup_GetScriptAddrAfterBattle(void);
+const u8 *BattleSetup_GetTrainerPostBattleScript(void);
+void ShowTrainerCantBattleSpeech(void);
+void SetUpTrainerEncounterMusic(void);
+const u8 *GetTrainerALoseText(void);
+const u8 *GetTrainerBLoseText(void);
+const u8 *GetTrainerWonSpeech(void);
+void UpdateRematchIfDefeated(s32 rematchTableId);
+void IncrementRematchStepCounter(void);
+void TryUpdateRandomTrainerRematches(u16 mapGroup, u16 mapNum);
+bool32 DoesSomeoneWantRematchIn(u16 mapGroup, u16 mapNum);
+bool32 IsRematchTrainerIn(u16 mapGroup, u16 mapNum);
+u16 GetLastBeatenRematchTrainerId(u16 trainerId);
+bool8 ShouldTryRematchBattle(void);
+bool8 IsTrainerReadyForRematch(void);
+void ShouldTryGetTrainerScript(void);
+u16 CountBattledRematchTeams(u16 trainerId);
#endif // GUARD_BATTLE_SETUP_H
diff --git a/include/battle_transition.h b/include/battle_transition.h
index 1603f5c93..84b5e37ec 100644
--- a/include/battle_transition.h
+++ b/include/battle_transition.h
@@ -2,5 +2,55 @@
#define GUARD_BATTLE_TRANSITION_H
void sub_8149DFC(u8 a1);
+void BattleTransition_StartOnField(u8 transitionID);
+void BattleTransition_Start(u8 transitionID);
+bool8 IsBattleTransitionDone(void);
+
+// credits for the names go to Dyskinesia and Tetrable
+// names are naturally subject to change
+
+#define B_TRANSITION_BLUR 0
+#define B_TRANSITION_SWIRL 1
+#define B_TRANSITION_SHUFFLE 2
+#define B_TRANSITION_BIG_POKEBALL 3
+#define B_TRANSITION_POKEBALLS_TRAIL 4
+#define B_TRANSITION_CLOCKWISE_BLACKFADE 5
+#define B_TRANSITION_RIPPLE 6
+#define B_TRANSITION_WAVE 7
+#define B_TRANSITION_SLICE 8
+#define B_TRANSITION_WHITEFADE 9
+#define B_TRANSITION_GRID_SQUARES 10
+#define B_TRANSITION_SHARDS 11
+#define B_TRANSITION_SYDNEY 12
+#define B_TRANSITION_PHOEBE 13
+#define B_TRANSITION_GLACIA 14
+#define B_TRANSITION_DRAKE 15
+#define B_TRANSITION_CHAMPION 16
+// added in Emerald
+#define B_TRANSITION_AQUA 17
+#define B_TRANSITION_MAGMA 18
+#define B_TRANSITION_REGICE 19
+#define B_TRANSITION_REGISTEEL 20
+#define B_TRANSITION_REGIROCK 21
+#define B_TRANSITION_KYOGRE 22
+#define B_TRANSITION_GROUDON 23
+#define B_TRANSITION_RAYQUAZA 24
+#define B_TRANSITION_25 25
+#define B_TRANSITION_26 26
+#define B_TRANSITION_27 27
+#define B_TRANSITION_28 28
+#define B_TRANSITION_29 29
+#define B_TRANSITION_30 30
+#define B_TRANSITION_31 31
+#define B_TRANSITION_32 32
+#define B_TRANSITION_33 33
+#define B_TRANSITION_34 34
+#define B_TRANSITION_35 35
+#define B_TRANSITION_36 36
+#define B_TRANSITION_37 37
+#define B_TRANSITION_38 38
+#define B_TRANSITION_39 39
+#define B_TRANSITION_40 40
+#define B_TRANSITION_41 41
#endif // GUARD_BATTLE_TRANSITION_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
index e74ef1ef0..26d015c84 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -303,7 +303,7 @@
#define FLAG_0x12C 0x12C
#define FLAG_0x12D 0x12D
#define FLAG_0x12E 0x12E
-#define FLAG_0x12F 0x12F
+#define FLAG_HAS_MATCH_CALL 0x12F
#define FLAG_0x130 0x130
#define FLAG_0x131 0x131
#define FLAG_0x132 0x132
@@ -348,7 +348,7 @@
#define FLAG_0x159 0x159
#define FLAG_0x15A 0x15A
#define FLAG_0x15B 0x15B
-#define FLAG_0x15C 0x15C
+#define FLAG_MATCH_CALL_REGISTERED 0x15C
#define FLAG_0x15D 0x15D
#define FLAG_0x15E 0x15E
#define FLAG_0x15F 0x15F
diff --git a/include/constants/trainers.h b/include/constants/trainers.h
new file mode 100644
index 000000000..48d4f081e
--- /dev/null
+++ b/include/constants/trainers.h
@@ -0,0 +1,1129 @@
+#ifndef GUARD_TRAINERS_H
+#define GUARD_TRAINERS_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 NO_OF_TRAINERS 854
+
+#define TRAINER_PIC_HIKER 0
+#define TRAINER_PIC_AQUA_GRUNT_M 1
+#define TRAINER_PIC_POKEMON_BREEDER_F 2
+#define TRAINER_PIC_COOL_TRAINER_M 3
+#define TRAINER_PIC_BIRD_KEEPER 4
+#define TRAINER_PIC_COLLECTOR 5
+#define TRAINER_PIC_AQUA_GRUNT_F 6
+#define TRAINER_PIC_SWIMMER_M 7
+#define TRAINER_PIC_MAGMA_GRUNT_M 8
+#define TRAINER_PIC_EXPERT_M 9
+#define TRAINER_PIC_AQUA_ADMIN_M 10
+#define TRAINER_PIC_BLACK_BELT 11
+#define TRAINER_PIC_AQUA_ADMIN_F 12
+#define TRAINER_PIC_AQUA_LEADER_ARCHIE 13
+#define TRAINER_PIC_HEX_MANIAC 14
+#define TRAINER_PIC_AROMA_LADY 15
+#define TRAINER_PIC_RUIN_MANIAC 16
+#define TRAINER_PIC_INTERVIEWER 17
+#define TRAINER_PIC_TUBER_F 18
+#define TRAINER_PIC_TUBER_M 19
+#define TRAINER_PIC_COOL_TRAINER_F 20
+#define TRAINER_PIC_LADY 21
+#define TRAINER_PIC_BEAUTY 22
+#define TRAINER_PIC_RICH_BOY 23
+#define TRAINER_PIC_EXPERT_F 24
+#define TRAINER_PIC_POKEMANIAC 25
+#define TRAINER_PIC_MAGMA_GRUNT_F 26
+#define TRAINER_PIC_GUITARIST 27
+#define TRAINER_PIC_KINDLER 28
+#define TRAINER_PIC_CAMPER 29
+#define TRAINER_PIC_PICNICKER 30
+#define TRAINER_PIC_BUG_MANIAC 31
+#define TRAINER_PIC_POKEMON_BREEDER_M 32
+#define TRAINER_PIC_PSYCHIC_M 33
+#define TRAINER_PIC_PSYCHIC_F 34
+#define TRAINER_PIC_GENTLEMAN 35
+#define TRAINER_PIC_ELITE_FOUR_SIDNEY 36
+#define TRAINER_PIC_ELITE_FOUR_PHOEBE 37
+#define TRAINER_PIC_ELITE_FOUR_GLACIA 38
+#define TRAINER_PIC_ELITE_FOUR_DRAKE 39
+#define TRAINER_PIC_LEADER_ROXANNE 40
+#define TRAINER_PIC_LEADER_BRAWLY 41
+#define TRAINER_PIC_LEADER_WATTSON 42
+#define TRAINER_PIC_LEADER_FLANNERY 43
+#define TRAINER_PIC_LEADER_NORMAN 44
+#define TRAINER_PIC_LEADER_WINONA 45
+#define TRAINER_PIC_LEADER_TATE_AND_LIZA 46
+#define TRAINER_PIC_LEADER_JUAN 47
+#define TRAINER_PIC_SCHOOL_KID_M 48
+#define TRAINER_PIC_SCHOOL_KID_F 49
+#define TRAINER_PIC_SR_AND_JR 50
+#define TRAINER_PIC_WINSTRATE_M 51
+#define TRAINER_PIC_WINSTRATE_F 52
+#define TRAINER_PIC_YOUNGSTER 53
+#define TRAINER_PIC_CHAMPION_WALLACE 54
+#define TRAINER_PIC_FISHERMAN 55
+#define TRAINER_PIC_CYCLING_TRIATHLETE_M 56
+#define TRAINER_PIC_CYCLING_TRIATHLETE_F 57
+#define TRAINER_PIC_RUNNING_TRIATHLETE_M 58
+#define TRAINER_PIC_RUNNING_TRIATHLETE_F 59
+#define TRAINER_PIC_SWIMMING_TRIATHLETE_M 60
+#define TRAINER_PIC_SWIMMING_TRIATHLETE_F 61
+#define TRAINER_PIC_DRAGON_TAMER 62
+#define TRAINER_PIC_NINJA_BOY 63
+#define TRAINER_PIC_BATTLE_GIRL 64
+#define TRAINER_PIC_PARASOL_LADY 65
+#define TRAINER_PIC_SWIMMER_F 66
+#define TRAINER_PIC_TWINS 67
+#define TRAINER_PIC_SAILOR 68
+#define TRAINER_PIC_MAGMA_ADMIN 69
+#define TRAINER_PIC_WALLY 70
+#define TRAINER_PIC_BRENDAN 71
+#define TRAINER_PIC_MAY 72
+#define TRAINER_PIC_BUG_CATCHER 73
+#define TRAINER_PIC_POKEMON_RANGER_M 74
+#define TRAINER_PIC_POKEMON_RANGER_F 75
+#define TRAINER_PIC_MAGMA_LEADER_MAXIE 76
+#define TRAINER_PIC_LASS 77
+#define TRAINER_PIC_YOUNG_COUPLE 78
+#define TRAINER_PIC_OLD_COUPLE 79
+#define TRAINER_PIC_SIS_AND_BRO 80
+#define TRAINER_PIC_STEVEN 81
+#define TRAINER_PIC_SALON_MAIDEN_ANABEL 82
+#define TRAINER_PIC_DOME_ACE_TUCKER 83
+#define TRAINER_PIC_PALACE_MAVEN_SPENSER 84
+#define TRAINER_PIC_ARENA_TYCOON_GRETA 85
+#define TRAINER_PIC_FACTORY_HEAD_NOLAND 86
+#define TRAINER_PIC_PIKE_QUEEN_LUCY 87
+#define TRAINER_PIC_PYRAMID_KING_BRANDON 88
+#define TRAINER_PIC_RED 89
+#define TRAINER_PIC_LEAF 90
+#define TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN 91
+#define TRAINER_PIC_RUBY_SAPPHIRE_MAY 92
+
+#define FACILITY_CLASS_HIKER 0x0
+#define FACILITY_CLASS_TEAM_AQUA_1 0x1
+#define FACILITY_CLASS_PKMN_BREEDER_1 0x2
+#define FACILITY_CLASS_COOLTRAINER_1 0x3
+#define FACILITY_CLASS_BIRD_KEEPER 0x4
+#define FACILITY_CLASS_COLLECTOR 0x5
+#define FACILITY_CLASS_TEAM_AQUA_2 0x6
+#define FACILITY_CLASS_SWIMMER_M 0x7
+#define FACILITY_CLASS_TEAM_MAGMA_1 0x8
+#define FACILITY_CLASS_EXPERT_1 0x9
+#define FACILITY_CLASS_BLACK_BELT 0xa
+#define FACILITY_CLASS_AQUA_LEADER 0xb
+#define FACILITY_CLASS_HEX_MANIAC 0xc
+#define FACILITY_CLASS_AROMA_LADY 0xd
+#define FACILITY_CLASS_RUIN_MANIAC 0xe
+#define FACILITY_CLASS_INTERVIEWER 0xf
+#define FACILITY_CLASS_TUBER_1 0x10
+#define FACILITY_CLASS_TUBER_2 0x11
+#define FACILITY_CLASS_COOLTRAINER_2 0x12
+#define FACILITY_CLASS_LADY 0x13
+#define FACILITY_CLASS_BEAUTY 0x14
+#define FACILITY_CLASS_RICH_BOY 0x15
+#define FACILITY_CLASS_EXPERT_2 0x16
+#define FACILITY_CLASS_POKEMANIAC 0x17
+#define FACILITY_CLASS_TEAM_MAGMA_2 0x18
+#define FACILITY_CLASS_GUITARIST 0x19
+#define FACILITY_CLASS_KINDLER 0x1a
+#define FACILITY_CLASS_CAMPER 0x1b
+#define FACILITY_CLASS_PICNICKER 0x1c
+#define FACILITY_CLASS_BUG_MANIAC 0x1d
+#define FACILITY_CLASS_PSYCHIC_1 0x1e
+#define FACILITY_CLASS_PSYCHIC_2 0x1f
+#define FACILITY_CLASS_GENTLEMAN 0x20
+#define FACILITY_CLASS_ELITE_FOUR_1 0x21
+#define FACILITY_CLASS_ELITE_FOUR_2 0x22
+#define FACILITY_CLASS_LEADER_1 0x23
+#define FACILITY_CLASS_LEADER_2 0x24
+#define FACILITY_CLASS_LEADER_3 0x25
+#define FACILITY_CLASS_SCHOOL_KID_1 0x26
+#define FACILITY_CLASS_SCHOOL_KID_2 0x27
+#define FACILITY_CLASS_SR_AND_JR 0x28
+#define FACILITY_CLASS_POKEFAN_1 0x29
+#define FACILITY_CLASS_POKEFAN_2 0x2a
+#define FACILITY_CLASS_YOUNGSTER 0x2b
+#define FACILITY_CLASS_CHAMPION 0x2c
+#define FACILITY_CLASS_FISHERMAN 0x2d
+#define FACILITY_CLASS_TRIATHLETE_1 0x2e
+#define FACILITY_CLASS_TRIATHLETE_2 0x2f
+#define FACILITY_CLASS_TRIATHLETE_3 0x30
+#define FACILITY_CLASS_TRIATHLETE_4 0x31
+#define FACILITY_CLASS_TRIATHLETE_5 0x32
+#define FACILITY_CLASS_TRIATHLETE_6 0x33
+#define FACILITY_CLASS_DRAGON_TAMER 0x34
+#define FACILITY_CLASS_NINJA_BOY 0x35
+#define FACILITY_CLASS_BATTLE_GIRL 0x36
+#define FACILITY_CLASS_PARASOL_LADY 0x37
+#define FACILITY_CLASS_SWIMMER_F 0x38
+#define FACILITY_CLASS_TWINS 0x39
+#define FACILITY_CLASS_SAILOR 0x3a
+#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b
+#define FACILITY_CLASS_PKMN_TRAINER_2 0x3c
+#define FACILITY_CLASS_PKMN_TRAINER_3 0x3d
+#define FACILITY_CLASS_PKMN_TRAINER_4 0x3e
+#define FACILITY_CLASS_PKMN_TRAINER_5 0x3f
+#define FACILITY_CLASS_PKMN_TRAINER_6 0x40
+#define FACILITY_CLASS_PKMN_TRAINER_7 0x41
+#define FACILITY_CLASS_PKMN_BREEDER_2 0x42
+#define FACILITY_CLASS_BUG_CATCHER 0x43
+#define FACILITY_CLASS_PKMN_RANGER_1 0x44
+#define FACILITY_CLASS_PKMN_RANGER_2 0x45
+#define FACILITY_CLASS_MAGMA_LEADER 0x46
+#define FACILITY_CLASS_LASS 0x47
+#define FACILITY_CLASS_YOUNG_COUPLE 0x48
+#define FACILITY_CLASS_OLD_COUPLE 0x49
+#define FACILITY_CLASS_SIS_AND_BRO 0x4a
+#define FACILITY_CLASS_PKMN_TRAINER_8 0x4b
+#define FACILITY_CLASS_SALON_MAIDEN 0x4c
+#define FACILITY_CLASS_DOME_ACE 0x4d
+#define FACILITY_CLASS_PKMN_TRAINER_9 0x4e
+#define FACILITY_CLASS_PKMN_TRAINER_10 0x4f
+#define FACILITY_CLASS_PKMN_TRAINER_11 0x50
+#define FACILITY_CLASS_PKMN_TRAINER_12 0x51
+
+#define TRAINER_CLASS_PKMN_TRAINER_1 0x0
+#define TRAINER_CLASS_PKMN_TRAINER_2 0x1
+#define TRAINER_CLASS_HIKER 0x2
+#define TRAINER_CLASS_TEAM_AQUA 0x3
+#define TRAINER_CLASS_PKMN_BREEDER 0x4
+#define TRAINER_CLASS_COOLTRAINER_1 0x5
+#define TRAINER_CLASS_BIRD_KEEPER 0x6
+#define TRAINER_CLASS_COLLECTOR 0x7
+#define TRAINER_CLASS_SWIMMER_M 0x8
+#define TRAINER_CLASS_TEAM_MAGMA 0x9
+#define TRAINER_CLASS_EXPERT 0xa
+#define TRAINER_CLASS_AQUA_ADMIN 0xb
+#define TRAINER_CLASS_BLACK_BELT 0xc
+#define TRAINER_CLASS_AQUA_LEADER 0xd
+#define TRAINER_CLASS_HEX_MANIAC 0xe
+#define TRAINER_CLASS_AROMA_LADY 0xf
+#define TRAINER_CLASS_RUIN_MANIAC 0x10
+#define TRAINER_CLASS_INTERVIEWER 0x11
+#define TRAINER_CLASS_TUBER_1 0x12
+#define TRAINER_CLASS_TUBER_2 0x13
+#define TRAINER_CLASS_LADY 0x14
+#define TRAINER_CLASS_BEAUTY 0x15
+#define TRAINER_CLASS_RICH_BOY 0x16
+#define TRAINER_CLASS_POKEMANIAC 0x17
+#define TRAINER_CLASS_GUITARIST 0x18
+#define TRAINER_CLASS_KINDLER 0x19
+#define TRAINER_CLASS_CAMPER 0x1a
+#define TRAINER_CLASS_PICNICKER 0x1b
+#define TRAINER_CLASS_BUG_MANIAC 0x1c
+#define TRAINER_CLASS_PSYCHIC 0x1d
+#define TRAINER_CLASS_GENTLEMAN 0x1e
+#define TRAINER_CLASS_ELITE_FOUR 0x1f
+#define TRAINER_CLASS_LEADER 0x20
+#define TRAINER_CLASS_SCHOOL_KID 0x21
+#define TRAINER_CLASS_SR_AND_JR 0x22
+#define TRAINER_CLASS_WINSTRATE 0x23
+#define TRAINER_CLASS_POKEFAN 0x24
+#define TRAINER_CLASS_YOUNGSTER 0x25
+#define TRAINER_CLASS_CHAMPION 0x26
+#define TRAINER_CLASS_FISHERMAN 0x27
+#define TRAINER_CLASS_TRIATHLETE 0x28
+#define TRAINER_CLASS_DRAGON_TAMER 0x29
+#define TRAINER_CLASS_NINJA_BOY 0x2a
+#define TRAINER_CLASS_BATTLE_GIRL 0x2b
+#define TRAINER_CLASS_PARASOL_LADY 0x2c
+#define TRAINER_CLASS_SWIMMER_F 0x2d
+#define TRAINER_CLASS_TWINS 0x2e
+#define TRAINER_CLASS_SAILOR 0x2f
+#define TRAINER_CLASS_COOLTRAINER_2 0x30
+#define TRAINER_CLASS_MAGMA_ADMIN 0x31
+#define TRAINER_CLASS_PKMN_TRAINER_3 0x32
+#define TRAINER_CLASS_BUG_CATCHER 0x33
+#define TRAINER_CLASS_PKMN_RANGER 0x34
+#define TRAINER_CLASS_MAGMA_LEADER 0x35
+#define TRAINER_CLASS_LASS 0x36
+#define TRAINER_CLASS_YOUNG_COUPLE 0x37
+#define TRAINER_CLASS_OLD_COUPLE 0x38
+#define TRAINER_CLASS_SIS_AND_BRO 0x39
+#define TRAINER_CLASS_SALON_MAIDEN 0x3a
+#define TRAINER_CLASS_DOME_ACE 0x3b
+#define TRAINER_CLASS_PALACE_MAVEN 0x3c
+#define TRAINER_CLASS_ARENA_TYCOON 0x3d
+#define TRAINER_CLASS_FACTORY_HEAD 0x3e
+#define TRAINER_CLASS_PIKE_QUEEN 0x3f
+#define TRAINER_CLASS_PYRAMID_KING 0x40
+#define TRAINER_CLASS_PKMN_TRAINER_4 0x41
+
+#define TRAINER_ENCOUNTER_MUSIC_MALE 0 // standard male encounter music
+#define TRAINER_ENCOUNTER_MUSIC_FEMALE 1 // standard female encounter music
+#define TRAINER_ENCOUNTER_MUSIC_GIRL 2 // used for male Tubers and Young Couples too
+#define TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS 3
+#define TRAINER_ENCOUNTER_MUSIC_INTENSE 4
+#define TRAINER_ENCOUNTER_MUSIC_COOL 5
+#define TRAINER_ENCOUNTER_MUSIC_AQUA 6
+#define TRAINER_ENCOUNTER_MUSIC_MAGMA 7
+#define TRAINER_ENCOUNTER_MUSIC_SWIMMER 8
+#define TRAINER_ENCOUNTER_MUSIC_TWINS 9 // used for other trainer classes too
+#define TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR 10
+#define TRAINER_ENCOUNTER_MUSIC_HIKER 11 // used for other trainer classes too
+#define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12
+#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen
+
+#define F_TRAINER_FEMALE (1 << 7)
+
+// All trainer parties specify the IV, level, and species for each Pokémon in the
+// party. Some trainer parties also specify held items and custom moves for each
+// Pokémon.
+#define F_TRAINER_PARTY_CUSTOM_MOVESET (1 << 0)
+#define F_TRAINER_PARTY_HELD_ITEM (1 << 1)
+
+#endif // GUARD_TRAINERS_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
index 6828614bf..6dc8d0ccd 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -50,11 +50,14 @@
#define VAR_RESET_RTC_ENABLE 0x402C
#define VAR_0x402D 0x402D
#define VAR_0x402E 0x402E
-#define VAR_0x402F 0x402F
-#define VAR_0x4030 0x4030
-#define VAR_0x4031 0x4031
-#define VAR_0x4032 0x4032
-#define VAR_0x4033 0x4033
+
+#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
+
+#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030
+#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031
+#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
+#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033
+
#define VAR_0x4034 0x4034
#define VAR_0x4035 0x4035
#define VAR_STORAGE_UNKNOWN 0x4036
diff --git a/include/data/region_map/region_map_entries.h b/include/data/region_map/region_map_entries.h
index 73599c704..9c7e3f2fc 100644
--- a/include/data/region_map/region_map_entries.h
+++ b/include/data/region_map/region_map_entries.h
@@ -1,421 +1,421 @@
#ifndef GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H
#define GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H
-static const u8 gMapName_LittlerootTown[] = _("LITTLEROOT TOWN");
-static const u8 gMapName_OldaleTown[] = _("OLDALE TOWN");
-static const u8 gMapName_DewfordTown[] = _("DEWFORD TOWN");
-static const u8 gMapName_LavaridgeTown[] = _("LAVARIDGE TOWN");
-static const u8 gMapName_FallarborTown[] = _("FALLARBOR TOWN");
-static const u8 gMapName_VerdanturfTown[] = _("VERDANTURF TOWN");
-static const u8 gMapName_PacifidlogTown[] = _("PACIFIDLOG TOWN");
-static const u8 gMapName_PetalburgCity[] = _("PETALBURG CITY");
-static const u8 gMapName_SlateportCity[] = _("SLATEPORT CITY");
-static const u8 gMapName_MauvilleCity[] = _("MAUVILLE CITY");
-static const u8 gMapName_RustboroCity[] = _("RUSTBORO CITY");
-static const u8 gMapName_FortreeCity[] = _("FORTREE CITY");
-static const u8 gMapName_LilycoveCity[] = _("LILYCOVE CITY");
-static const u8 gMapName_MossdeepCity[] = _("MOSSDEEP CITY");
-static const u8 gMapName_SootopolisCity[] = _("SOOTOPOLIS CITY");
-static const u8 gMapName_EverGrandeCity[] = _("EVER GRANDE CITY");
-static const u8 gMapName_Route101[] = _("ROUTE 101");
-static const u8 gMapName_Route102[] = _("ROUTE 102");
-static const u8 gMapName_Route103[] = _("ROUTE 103");
-static const u8 gMapName_Route104[] = _("ROUTE 104");
-static const u8 gMapName_Route105[] = _("ROUTE 105");
-static const u8 gMapName_Route106[] = _("ROUTE 106");
-static const u8 gMapName_Route107[] = _("ROUTE 107");
-static const u8 gMapName_Route108[] = _("ROUTE 108");
-static const u8 gMapName_Route109[] = _("ROUTE 109");
-static const u8 gMapName_Route110[] = _("ROUTE 110");
-static const u8 gMapName_Route111[] = _("ROUTE 111");
-static const u8 gMapName_Route112[] = _("ROUTE 112");
-static const u8 gMapName_Route113[] = _("ROUTE 113");
-static const u8 gMapName_Route114[] = _("ROUTE 114");
-static const u8 gMapName_Route115[] = _("ROUTE 115");
-static const u8 gMapName_Route116[] = _("ROUTE 116");
-static const u8 gMapName_Route117[] = _("ROUTE 117");
-static const u8 gMapName_Route118[] = _("ROUTE 118");
-static const u8 gMapName_Route119[] = _("ROUTE 119");
-static const u8 gMapName_Route120[] = _("ROUTE 120");
-static const u8 gMapName_Route121[] = _("ROUTE 121");
-static const u8 gMapName_Route122[] = _("ROUTE 122");
-static const u8 gMapName_Route123[] = _("ROUTE 123");
-static const u8 gMapName_Route124[] = _("ROUTE 124");
-static const u8 gMapName_Route125[] = _("ROUTE 125");
-static const u8 gMapName_Route126[] = _("ROUTE 126");
-static const u8 gMapName_Route127[] = _("ROUTE 127");
-static const u8 gMapName_Route128[] = _("ROUTE 128");
-static const u8 gMapName_Route129[] = _("ROUTE 129");
-static const u8 gMapName_Route130[] = _("ROUTE 130");
-static const u8 gMapName_Route131[] = _("ROUTE 131");
-static const u8 gMapName_Route132[] = _("ROUTE 132");
-static const u8 gMapName_Route133[] = _("ROUTE 133");
-static const u8 gMapName_Route134[] = _("ROUTE 134");
-static const u8 gMapName_Underwater[] = _("UNDERWATER");
-static const u8 gMapName_GraniteCave[] = _("GRANITE CAVE");
-static const u8 gMapName_MtChimney[] = _("MT. CHIMNEY");
-static const u8 gMapName_SafariZone[] = _("SAFARI ZONE");
-static const u8 gMapName_BattleFrontier[] = _("BATTLE FRONTIER");
-static const u8 gMapName_PetalburgWoods[] = _("PETALBURG WOODS");
-static const u8 gMapName_RusturfTunnel[] = _("RUSTURF TUNNEL");
-static const u8 gMapName_AbandonedShip[] = _("ABANDONED SHIP");
-static const u8 gMapName_NewMauville[] = _("NEW MAUVILLE");
-static const u8 gMapName_MeteorFalls[] = _("METEOR FALLS");
-static const u8 gMapName_MtPyre[] = _("MT. PYRE");
+static const u8 sMapName_LittlerootTown[] = _("LITTLEROOT TOWN");
+static const u8 sMapName_OldaleTown[] = _("OLDALE TOWN");
+static const u8 sMapName_DewfordTown[] = _("DEWFORD TOWN");
+static const u8 sMapName_LavaridgeTown[] = _("LAVARIDGE TOWN");
+static const u8 sMapName_FallarborTown[] = _("FALLARBOR TOWN");
+static const u8 sMapName_VerdanturfTown[] = _("VERDANTURF TOWN");
+static const u8 sMapName_PacifidlogTown[] = _("PACIFIDLOG TOWN");
+static const u8 sMapName_PetalburgCity[] = _("PETALBURG CITY");
+static const u8 sMapName_SlateportCity[] = _("SLATEPORT CITY");
+static const u8 sMapName_MauvilleCity[] = _("MAUVILLE CITY");
+static const u8 sMapName_RustboroCity[] = _("RUSTBORO CITY");
+static const u8 sMapName_FortreeCity[] = _("FORTREE CITY");
+static const u8 sMapName_LilycoveCity[] = _("LILYCOVE CITY");
+static const u8 sMapName_MossdeepCity[] = _("MOSSDEEP CITY");
+static const u8 sMapName_SootopolisCity[] = _("SOOTOPOLIS CITY");
+static const u8 sMapName_EverGrandeCity[] = _("EVER GRANDE CITY");
+static const u8 sMapName_Route101[] = _("ROUTE 101");
+static const u8 sMapName_Route102[] = _("ROUTE 102");
+static const u8 sMapName_Route103[] = _("ROUTE 103");
+static const u8 sMapName_Route104[] = _("ROUTE 104");
+static const u8 sMapName_Route105[] = _("ROUTE 105");
+static const u8 sMapName_Route106[] = _("ROUTE 106");
+static const u8 sMapName_Route107[] = _("ROUTE 107");
+static const u8 sMapName_Route108[] = _("ROUTE 108");
+static const u8 sMapName_Route109[] = _("ROUTE 109");
+static const u8 sMapName_Route110[] = _("ROUTE 110");
+static const u8 sMapName_Route111[] = _("ROUTE 111");
+static const u8 sMapName_Route112[] = _("ROUTE 112");
+static const u8 sMapName_Route113[] = _("ROUTE 113");
+static const u8 sMapName_Route114[] = _("ROUTE 114");
+static const u8 sMapName_Route115[] = _("ROUTE 115");
+static const u8 sMapName_Route116[] = _("ROUTE 116");
+static const u8 sMapName_Route117[] = _("ROUTE 117");
+static const u8 sMapName_Route118[] = _("ROUTE 118");
+static const u8 sMapName_Route119[] = _("ROUTE 119");
+static const u8 sMapName_Route120[] = _("ROUTE 120");
+static const u8 sMapName_Route121[] = _("ROUTE 121");
+static const u8 sMapName_Route122[] = _("ROUTE 122");
+static const u8 sMapName_Route123[] = _("ROUTE 123");
+static const u8 sMapName_Route124[] = _("ROUTE 124");
+static const u8 sMapName_Route125[] = _("ROUTE 125");
+static const u8 sMapName_Route126[] = _("ROUTE 126");
+static const u8 sMapName_Route127[] = _("ROUTE 127");
+static const u8 sMapName_Route128[] = _("ROUTE 128");
+static const u8 sMapName_Route129[] = _("ROUTE 129");
+static const u8 sMapName_Route130[] = _("ROUTE 130");
+static const u8 sMapName_Route131[] = _("ROUTE 131");
+static const u8 sMapName_Route132[] = _("ROUTE 132");
+static const u8 sMapName_Route133[] = _("ROUTE 133");
+static const u8 sMapName_Route134[] = _("ROUTE 134");
+static const u8 sMapName_Underwater[] = _("UNDERWATER");
+static const u8 sMapName_GraniteCave[] = _("GRANITE CAVE");
+static const u8 sMapName_MtChimney[] = _("MT. CHIMNEY");
+static const u8 sMapName_SafariZone[] = _("SAFARI ZONE");
+static const u8 sMapName_BattleFrontier[] = _("BATTLE FRONTIER");
+static const u8 sMapName_PetalburgWoods[] = _("PETALBURG WOODS");
+static const u8 sMapName_RusturfTunnel[] = _("RUSTURF TUNNEL");
+static const u8 sMapName_AbandonedShip[] = _("ABANDONED SHIP");
+static const u8 sMapName_NewMauville[] = _("NEW MAUVILLE");
+static const u8 sMapName_MeteorFalls[] = _("METEOR FALLS");
+static const u8 sMapName_MtPyre[] = _("MT. PYRE");
// This was the Aqua or Magma hideout in Ruby/Sapphire, but each team has a
// hideout in Emerald with their own new region map entries, and this name
// doesn't seem to be used anymore.
-static const u8 gMapName_AquaHideoutOld[] = _("{AQUA} HIDEOUT");
-static const u8 gMapName_ShoalCave[] = _("SHOAL CAVE");
-static const u8 gMapName_SeafloorCavern[] = _("SEAFLOOR CAVERN");
-static const u8 gMapName_VictoryRoad[] = _("VICTORY ROAD");
-static const u8 gMapName_MirageIsland[] = _("MIRAGE ISLAND");
-static const u8 gMapName_CaveOfOrigin[] = _("CAVE OF ORIGIN");
-static const u8 gMapName_SouthernIsland[] = _("SOUTHERN ISLAND");
-static const u8 gMapName_FieryPath[] = _("FIERY PATH");
-static const u8 gMapName_JaggedPass[] = _("JAGGED PASS");
-static const u8 gMapName_SealedChamber[] = _("SEALED CHAMBER");
-static const u8 gMapName_ScorchedSlab[] = _("SCORCHED SLAB");
-static const u8 gMapName_IslandCave[] = _("ISLAND CAVE");
-static const u8 gMapName_DesertRuins[] = _("DESERT RUINS");
-static const u8 gMapName_AncientTomb[] = _("ANCIENT TOMB");
-static const u8 gMapName_InsideOfTruck[] = _("INSIDE OF TRUCK");
-static const u8 gMapName_SkyPillar[] = _("SKY PILLAR");
-static const u8 gMapName_SecretBase[] = _("SECRET BASE");
-static const u8 gMapName_None[] = _("");
-static const u8 gMapName_PalletTown[] = _("PALLET TOWN");
-static const u8 gMapName_ViridianCity[] = _("VIRIDIAN CITY");
-static const u8 gMapName_PewterCity[] = _("PEWTER CITY");
-static const u8 gMapName_CeruleanCity[] = _("CERULEAN CITY");
-static const u8 gMapName_LavenderTown[] = _("LAVENDER TOWN");
-static const u8 gMapName_VermilionCity[] = _("VERMILION CITY");
-static const u8 gMapName_CeladonCity[] = _("CELADON CITY");
-static const u8 gMapName_FuchsiaCity[] = _("FUCHSIA CITY");
-static const u8 gMapName_CinnabarIsland[] = _("CINNABAR ISLAND");
-static const u8 gMapName_IndigoPlateau[] = _("INDIGO PLATEAU");
-static const u8 gMapName_SaffronCity[] = _("SAFFRON CITY");
-static const u8 gMapName_Route4[] = _("ROUTE 4");
-static const u8 gMapName_Route10[] = _("ROUTE 10");
-static const u8 gMapName_Route1[] = _("ROUTE 1");
-static const u8 gMapName_Route2[] = _("ROUTE 2");
-static const u8 gMapName_Route3[] = _("ROUTE 3");
-static const u8 gMapName_Route4_2[] = _("ROUTE 4");
-static const u8 gMapName_Route5[] = _("ROUTE 5");
-static const u8 gMapName_Route6[] = _("ROUTE 6");
-static const u8 gMapName_Route7[] = _("ROUTE 7");
-static const u8 gMapName_Route8[] = _("ROUTE 8");
-static const u8 gMapName_Route9[] = _("ROUTE 9");
-static const u8 gMapName_Route10_2[] = _("ROUTE 10");
-static const u8 gMapName_Route11[] = _("ROUTE 11");
-static const u8 gMapName_Route12[] = _("ROUTE 12");
-static const u8 gMapName_Route13[] = _("ROUTE 13");
-static const u8 gMapName_Route14[] = _("ROUTE 14");
-static const u8 gMapName_Route15[] = _("ROUTE 15");
-static const u8 gMapName_Route16[] = _("ROUTE 16");
-static const u8 gMapName_Route17[] = _("ROUTE 17");
-static const u8 gMapName_Route18[] = _("ROUTE 18");
-static const u8 gMapName_Route19[] = _("ROUTE 19");
-static const u8 gMapName_Route20[] = _("ROUTE 20");
-static const u8 gMapName_Route21[] = _("ROUTE 21");
-static const u8 gMapName_Route22[] = _("ROUTE 22");
-static const u8 gMapName_Route23[] = _("ROUTE 23");
-static const u8 gMapName_Route24[] = _("ROUTE 24");
-static const u8 gMapName_Route25[] = _("ROUTE 25");
-static const u8 gMapName_ViridianForest[] = _("VIRIDIAN FOREST");
-static const u8 gMapName_MtMoon[] = _("MT. MOON");
-static const u8 gMapName_SSAnne[] = _("S.S. ANNE");
-static const u8 gMapName_UndergroundPath[] = _("UNDERGROUND PATH");
-static const u8 gMapName_UndergroundPath2[] = _("UNDERGROUND PATH");
-static const u8 gMapName_DiglettsCave[] = _("DIGLETT’S CAVE");
-static const u8 gMapName_KantoVictoryRoad[] = _("VICTORY ROAD");
-static const u8 gMapName_RocketHideout[] = _("ROCKET HIDEOUT");
-static const u8 gMapName_SilphCo[] = _("SILPH CO.");
-static const u8 gMapName_PokemonMansion[] = _("POKéMON MANSION");
-static const u8 gMapName_KantoSafariZone[] = _("SAFARI ZONE");
-static const u8 gMapName_PokemonLeague[] = _("POKéMON LEAGUE");
-static const u8 gMapName_RockTunnel[] = _("ROCK TUNNEL");
-static const u8 gMapName_SeafoamIslands[] = _("SEAFOAM ISLANDS");
-static const u8 gMapName_PokemonTower[] = _("POKéMON TOWER");
-static const u8 gMapName_CeruleanCave[] = _("CERULEAN CAVE");
-static const u8 gMapName_PowerPlant[] = _("POWER PLANT");
-static const u8 gMapName_OneIsland[] = _("ONE ISLAND");
-static const u8 gMapName_TwoIsland[] = _("TWO ISLAND");
-static const u8 gMapName_ThreeIsland[] = _("THREE ISLAND");
-static const u8 gMapName_FourIsland[] = _("FOUR ISLAND");
-static const u8 gMapName_FiveIsland[] = _("FIVE ISLAND");
-static const u8 gMapName_SevenIsland[] = _("SEVEN ISLAND");
-static const u8 gMapName_SixIsland[] = _("SIX ISLAND");
-static const u8 gMapName_KindleRoad[] = _("KINDLE ROAD");
-static const u8 gMapName_TreasureBeach[] = _("TREASURE BEACH");
-static const u8 gMapName_CapeBrink[] = _("CAPE BRINK");
-static const u8 gMapName_BondBridge[] = _("BOND BRIDGE");
-static const u8 gMapName_ThreeIslePort[] = _("THREE ISLE PORT");
-static const u8 gMapName_SeviiIsle6[] = _("SEVII ISLE 6");
-static const u8 gMapName_SeviiIsle7[] = _("SEVII ISLE 7");
-static const u8 gMapName_SeviiIsle8[] = _("SEVII ISLE 8");
-static const u8 gMapName_SeviiIsle9[] = _("SEVII ISLE 9");
-static const u8 gMapName_ResortGorgeous[] = _("RESORT GORGEOUS");
-static const u8 gMapName_WaterLabyrinth[] = _("WATER LABYRINTH");
-static const u8 gMapName_FiveIsleMeadow[] = _("FIVE ISLE MEADOW");
-static const u8 gMapName_MemorialPillar[] = _("MEMORIAL PILLAR");
-static const u8 gMapName_OutcastIsland[] = _("OUTCAST ISLAND");
-static const u8 gMapName_GreenPath[] = _("GREEN PATH");
-static const u8 gMapName_WaterPath[] = _("WATER PATH");
-static const u8 gMapName_RuinValley[] = _("RUIN VALLEY");
-static const u8 gMapName_TrainerTower[] = _("TRAINER TOWER");
-static const u8 gMapName_CanyonEntrance[] = _("CANYON ENTRANCE");
-static const u8 gMapName_SevaultCanyon[] = _("SEVAULT CANYON");
-static const u8 gMapName_TanobyRuins[] = _("TANOBY RUINS");
-static const u8 gMapName_SeviiIsle22[] = _("SEVII ISLE 22");
-static const u8 gMapName_SeviiIsle23[] = _("SEVII ISLE 23");
-static const u8 gMapName_SeviiIsle24[] = _("SEVII ISLE 24");
-static const u8 gMapName_NavelRock[] = _("NAVEL ROCK");
-static const u8 gMapName_MtEmber[] = _("MT. EMBER");
-static const u8 gMapName_BerryForest[] = _("BERRY FOREST");
-static const u8 gMapName_IcefallCave[] = _("ICEFALL CAVE");
-static const u8 gMapName_RocketWarehouse[] = _("ROCKET WAREHOUSE");
-static const u8 gMapName_TrainerTower2[] = _("TRAINER TOWER");
-static const u8 gMapName_DottedHole[] = _("DOTTED HOLE");
-static const u8 gMapName_LostCave[] = _("LOST CAVE");
-static const u8 gMapName_PatternBush[] = _("PATTERN BUSH");
-static const u8 gMapName_AlteringCave[] = _("ALTERING CAVE");
-static const u8 gMapName_TanobyChambers[] = _("TANOBY CHAMBERS");
-static const u8 gMapName_ThreeIslePath[] = _("THREE ISLE PATH");
-static const u8 gMapName_TanobyKey[] = _("TANOBY KEY");
-static const u8 gMapName_BirthIsland[] = _("BIRTH ISLAND");
-static const u8 gMapName_MoneanChamber[] = _("MONEAN CHAMBER");
-static const u8 gMapName_LiptooChamber[] = _("LIPTOO CHAMBER");
-static const u8 gMapName_WeepthChamber[] = _("WEEPTH CHAMBER");
-static const u8 gMapName_DilfordChamber[] = _("DILFORD CHAMBER");
-static const u8 gMapName_ScufibChamber[] = _("SCUFIB CHAMBER");
-static const u8 gMapName_RixyChamber[] = _("RIXY CHAMBER");
-static const u8 gMapName_ViapoisChamber[] = _("VIAPOIS CHAMBER");
-static const u8 gMapName_EmberSpa[] = _("EMBER SPA");
-static const u8 gMapName_SpecialArea[] = _("SPECIAL AREA");
-static const u8 gMapName_AquaHideout[] = _("AQUA HIDEOUT");
-static const u8 gMapName_MagmaHideout[] = _("MAGMA HIDEOUT");
-static const u8 gMapName_MirageTower[] = _("MIRAGE TOWER");
-static const u8 gMapName_FarawayIsland[] = _("FARAWAY ISLAND");
-static const u8 gMapName_ArtisanCave[] = _("ARTISAN CAVE");
-static const u8 gMapName_MarineCave[] = _("MARINE CAVE");
-static const u8 gMapName_TerraCave[] = _("TERRA CAVE");
-static const u8 gMapName_DesertUnderpass[] = _("DESERT UNDERPASS");
-static const u8 gMapName_TrainerHill[] = _("TRAINER HILL");
+static const u8 sMapName_AquaHideoutOld[] = _("{AQUA} HIDEOUT");
+static const u8 sMapName_ShoalCave[] = _("SHOAL CAVE");
+static const u8 sMapName_SeafloorCavern[] = _("SEAFLOOR CAVERN");
+static const u8 sMapName_VictoryRoad[] = _("VICTORY ROAD");
+static const u8 sMapName_MirageIsland[] = _("MIRAGE ISLAND");
+static const u8 sMapName_CaveOfOrigin[] = _("CAVE OF ORIGIN");
+static const u8 sMapName_SouthernIsland[] = _("SOUTHERN ISLAND");
+static const u8 sMapName_FieryPath[] = _("FIERY PATH");
+static const u8 sMapName_JaggedPass[] = _("JAGGED PASS");
+static const u8 sMapName_SealedChamber[] = _("SEALED CHAMBER");
+static const u8 sMapName_ScorchedSlab[] = _("SCORCHED SLAB");
+static const u8 sMapName_IslandCave[] = _("ISLAND CAVE");
+static const u8 sMapName_DesertRuins[] = _("DESERT RUINS");
+static const u8 sMapName_AncientTomb[] = _("ANCIENT TOMB");
+static const u8 sMapName_InsideOfTruck[] = _("INSIDE OF TRUCK");
+static const u8 sMapName_SkyPillar[] = _("SKY PILLAR");
+static const u8 sMapName_SecretBase[] = _("SECRET BASE");
+static const u8 sMapName_None[] = _("");
+static const u8 sMapName_PalletTown[] = _("PALLET TOWN");
+static const u8 sMapName_ViridianCity[] = _("VIRIDIAN CITY");
+static const u8 sMapName_PewterCity[] = _("PEWTER CITY");
+static const u8 sMapName_CeruleanCity[] = _("CERULEAN CITY");
+static const u8 sMapName_LavenderTown[] = _("LAVENDER TOWN");
+static const u8 sMapName_VermilionCity[] = _("VERMILION CITY");
+static const u8 sMapName_CeladonCity[] = _("CELADON CITY");
+static const u8 sMapName_FuchsiaCity[] = _("FUCHSIA CITY");
+static const u8 sMapName_CinnabarIsland[] = _("CINNABAR ISLAND");
+static const u8 sMapName_IndigoPlateau[] = _("INDIGO PLATEAU");
+static const u8 sMapName_SaffronCity[] = _("SAFFRON CITY");
+static const u8 sMapName_Route4[] = _("ROUTE 4");
+static const u8 sMapName_Route10[] = _("ROUTE 10");
+static const u8 sMapName_Route1[] = _("ROUTE 1");
+static const u8 sMapName_Route2[] = _("ROUTE 2");
+static const u8 sMapName_Route3[] = _("ROUTE 3");
+static const u8 sMapName_Route4_2[] = _("ROUTE 4");
+static const u8 sMapName_Route5[] = _("ROUTE 5");
+static const u8 sMapName_Route6[] = _("ROUTE 6");
+static const u8 sMapName_Route7[] = _("ROUTE 7");
+static const u8 sMapName_Route8[] = _("ROUTE 8");
+static const u8 sMapName_Route9[] = _("ROUTE 9");
+static const u8 sMapName_Route10_2[] = _("ROUTE 10");
+static const u8 sMapName_Route11[] = _("ROUTE 11");
+static const u8 sMapName_Route12[] = _("ROUTE 12");
+static const u8 sMapName_Route13[] = _("ROUTE 13");
+static const u8 sMapName_Route14[] = _("ROUTE 14");
+static const u8 sMapName_Route15[] = _("ROUTE 15");
+static const u8 sMapName_Route16[] = _("ROUTE 16");
+static const u8 sMapName_Route17[] = _("ROUTE 17");
+static const u8 sMapName_Route18[] = _("ROUTE 18");
+static const u8 sMapName_Route19[] = _("ROUTE 19");
+static const u8 sMapName_Route20[] = _("ROUTE 20");
+static const u8 sMapName_Route21[] = _("ROUTE 21");
+static const u8 sMapName_Route22[] = _("ROUTE 22");
+static const u8 sMapName_Route23[] = _("ROUTE 23");
+static const u8 sMapName_Route24[] = _("ROUTE 24");
+static const u8 sMapName_Route25[] = _("ROUTE 25");
+static const u8 sMapName_ViridianForest[] = _("VIRIDIAN FOREST");
+static const u8 sMapName_MtMoon[] = _("MT. MOON");
+static const u8 sMapName_SSAnne[] = _("S.S. ANNE");
+static const u8 sMapName_UndergroundPath[] = _("UNDERGROUND PATH");
+static const u8 sMapName_UndergroundPath2[] = _("UNDERGROUND PATH");
+static const u8 sMapName_DiglettsCave[] = _("DIGLETT’S CAVE");
+static const u8 sMapName_KantoVictoryRoad[] = _("VICTORY ROAD");
+static const u8 sMapName_RocketHideout[] = _("ROCKET HIDEOUT");
+static const u8 sMapName_SilphCo[] = _("SILPH CO.");
+static const u8 sMapName_PokemonMansion[] = _("POKéMON MANSION");
+static const u8 sMapName_KantoSafariZone[] = _("SAFARI ZONE");
+static const u8 sMapName_PokemonLeague[] = _("POKéMON LEAGUE");
+static const u8 sMapName_RockTunnel[] = _("ROCK TUNNEL");
+static const u8 sMapName_SeafoamIslands[] = _("SEAFOAM ISLANDS");
+static const u8 sMapName_PokemonTower[] = _("POKéMON TOWER");
+static const u8 sMapName_CeruleanCave[] = _("CERULEAN CAVE");
+static const u8 sMapName_PowerPlant[] = _("POWER PLANT");
+static const u8 sMapName_OneIsland[] = _("ONE ISLAND");
+static const u8 sMapName_TwoIsland[] = _("TWO ISLAND");
+static const u8 sMapName_ThreeIsland[] = _("THREE ISLAND");
+static const u8 sMapName_FourIsland[] = _("FOUR ISLAND");
+static const u8 sMapName_FiveIsland[] = _("FIVE ISLAND");
+static const u8 sMapName_SevenIsland[] = _("SEVEN ISLAND");
+static const u8 sMapName_SixIsland[] = _("SIX ISLAND");
+static const u8 sMapName_KindleRoad[] = _("KINDLE ROAD");
+static const u8 sMapName_TreasureBeach[] = _("TREASURE BEACH");
+static const u8 sMapName_CapeBrink[] = _("CAPE BRINK");
+static const u8 sMapName_BondBridge[] = _("BOND BRIDGE");
+static const u8 sMapName_ThreeIslePort[] = _("THREE ISLE PORT");
+static const u8 sMapName_SeviiIsle6[] = _("SEVII ISLE 6");
+static const u8 sMapName_SeviiIsle7[] = _("SEVII ISLE 7");
+static const u8 sMapName_SeviiIsle8[] = _("SEVII ISLE 8");
+static const u8 sMapName_SeviiIsle9[] = _("SEVII ISLE 9");
+static const u8 sMapName_ResortGorgeous[] = _("RESORT GORGEOUS");
+static const u8 sMapName_WaterLabyrinth[] = _("WATER LABYRINTH");
+static const u8 sMapName_FiveIsleMeadow[] = _("FIVE ISLE MEADOW");
+static const u8 sMapName_MemorialPillar[] = _("MEMORIAL PILLAR");
+static const u8 sMapName_OutcastIsland[] = _("OUTCAST ISLAND");
+static const u8 sMapName_GreenPath[] = _("GREEN PATH");
+static const u8 sMapName_WaterPath[] = _("WATER PATH");
+static const u8 sMapName_RuinValley[] = _("RUIN VALLEY");
+static const u8 sMapName_TrainerTower[] = _("TRAINER TOWER");
+static const u8 sMapName_CanyonEntrance[] = _("CANYON ENTRANCE");
+static const u8 sMapName_SevaultCanyon[] = _("SEVAULT CANYON");
+static const u8 sMapName_TanobyRuins[] = _("TANOBY RUINS");
+static const u8 sMapName_SeviiIsle22[] = _("SEVII ISLE 22");
+static const u8 sMapName_SeviiIsle23[] = _("SEVII ISLE 23");
+static const u8 sMapName_SeviiIsle24[] = _("SEVII ISLE 24");
+static const u8 sMapName_NavelRock[] = _("NAVEL ROCK");
+static const u8 sMapName_MtEmber[] = _("MT. EMBER");
+static const u8 sMapName_BerryForest[] = _("BERRY FOREST");
+static const u8 sMapName_IcefallCave[] = _("ICEFALL CAVE");
+static const u8 sMapName_RocketWarehouse[] = _("ROCKET WAREHOUSE");
+static const u8 sMapName_TrainerTower2[] = _("TRAINER TOWER");
+static const u8 sMapName_DottedHole[] = _("DOTTED HOLE");
+static const u8 sMapName_LostCave[] = _("LOST CAVE");
+static const u8 sMapName_PatternBush[] = _("PATTERN BUSH");
+static const u8 sMapName_AlteringCave[] = _("ALTERING CAVE");
+static const u8 sMapName_TanobyChambers[] = _("TANOBY CHAMBERS");
+static const u8 sMapName_ThreeIslePath[] = _("THREE ISLE PATH");
+static const u8 sMapName_TanobyKey[] = _("TANOBY KEY");
+static const u8 sMapName_BirthIsland[] = _("BIRTH ISLAND");
+static const u8 sMapName_MoneanChamber[] = _("MONEAN CHAMBER");
+static const u8 sMapName_LiptooChamber[] = _("LIPTOO CHAMBER");
+static const u8 sMapName_WeepthChamber[] = _("WEEPTH CHAMBER");
+static const u8 sMapName_DilfordChamber[] = _("DILFORD CHAMBER");
+static const u8 sMapName_ScufibChamber[] = _("SCUFIB CHAMBER");
+static const u8 sMapName_RixyChamber[] = _("RIXY CHAMBER");
+static const u8 sMapName_ViapoisChamber[] = _("VIAPOIS CHAMBER");
+static const u8 sMapName_EmberSpa[] = _("EMBER SPA");
+static const u8 sMapName_SpecialArea[] = _("SPECIAL AREA");
+static const u8 sMapName_AquaHideout[] = _("AQUA HIDEOUT");
+static const u8 sMapName_MagmaHideout[] = _("MAGMA HIDEOUT");
+static const u8 sMapName_MirageTower[] = _("MIRAGE TOWER");
+static const u8 sMapName_FarawayIsland[] = _("FARAWAY ISLAND");
+static const u8 sMapName_ArtisanCave[] = _("ARTISAN CAVE");
+static const u8 sMapName_MarineCave[] = _("MARINE CAVE");
+static const u8 sMapName_TerraCave[] = _("TERRA CAVE");
+static const u8 sMapName_DesertUnderpass[] = _("DESERT UNDERPASS");
+static const u8 sMapName_TrainerHill[] = _("TRAINER HILL");
const struct RegionMapLocation gRegionMapEntries[] = {
- { 4, 11, 1, 1, gMapName_LittlerootTown},
- { 4, 9, 1, 1, gMapName_OldaleTown},
- { 2, 14, 1, 1, gMapName_DewfordTown},
- { 5, 3, 1, 1, gMapName_LavaridgeTown},
- { 3, 0, 1, 1, gMapName_FallarborTown},
- { 4, 6, 1, 1, gMapName_VerdanturfTown},
- {17, 10, 1, 1, gMapName_PacifidlogTown},
- { 1, 9, 1, 1, gMapName_PetalburgCity},
- { 8, 10, 1, 2, gMapName_SlateportCity},
- { 8, 6, 2, 1, gMapName_MauvilleCity},
- { 0, 5, 1, 2, gMapName_RustboroCity},
- {12, 0, 1, 1, gMapName_FortreeCity},
- {18, 3, 2, 1, gMapName_LilycoveCity},
- {24, 5, 2, 1, gMapName_MossdeepCity},
- {21, 7, 1, 1, gMapName_SootopolisCity},
- {27, 8, 1, 2, gMapName_EverGrandeCity},
- { 4, 10, 1, 1, gMapName_Route101},
- { 2, 9, 2, 1, gMapName_Route102},
- { 4, 8, 4, 1, gMapName_Route103},
- { 0, 7, 1, 3, gMapName_Route104},
- { 0, 10, 1, 3, gMapName_Route105},
- { 0, 13, 2, 1, gMapName_Route106},
- { 3, 14, 3, 1, gMapName_Route107},
- { 6, 14, 2, 1, gMapName_Route108},
- { 8, 12, 1, 3, gMapName_Route109},
- { 8, 7, 1, 3, gMapName_Route110},
- { 8, 0, 1, 6, gMapName_Route111},
- { 6, 3, 2, 1, gMapName_Route112},
- { 4, 0, 4, 1, gMapName_Route113},
- { 1, 0, 2, 3, gMapName_Route114},
- { 0, 2, 1, 3, gMapName_Route115},
- { 1, 5, 4, 1, gMapName_Route116},
- { 5, 6, 3, 1, gMapName_Route117},
- {10, 6, 2, 1, gMapName_Route118},
- {11, 0, 1, 6, gMapName_Route119},
- {13, 0, 1, 4, gMapName_Route120},
- {14, 3, 4, 1, gMapName_Route121},
- {16, 4, 1, 2, gMapName_Route122},
- {12, 6, 5, 1, gMapName_Route123},
- {20, 3, 4, 3, gMapName_Route124},
- {24, 3, 2, 2, gMapName_Route125},
- {20, 6, 3, 3, gMapName_Route126},
- {23, 6, 3, 3, gMapName_Route127},
- {23, 9, 4, 1, gMapName_Route128},
- {24, 10, 2, 1, gMapName_Route129},
- {21, 10, 3, 1, gMapName_Route130},
- {18, 10, 3, 1, gMapName_Route131},
- {15, 10, 2, 1, gMapName_Route132},
- {12, 10, 3, 1, gMapName_Route133},
- { 9, 10, 3, 1, gMapName_Route134},
- {20, 3, 4, 3, gMapName_Underwater},
- {20, 6, 3, 3, gMapName_Underwater},
- {23, 6, 3, 3, gMapName_Underwater},
- {23, 9, 4, 1, gMapName_Underwater},
- {21, 7, 1, 1, gMapName_Underwater},
- { 1, 13, 1, 1, gMapName_GraniteCave},
- { 6, 2, 1, 1, gMapName_MtChimney},
- {16, 2, 1, 1, gMapName_SafariZone},
- {22, 12, 1, 1, gMapName_BattleFrontier},
- { 0, 8, 1, 1, gMapName_PetalburgWoods},
- { 2, 5, 1, 1, gMapName_RusturfTunnel},
- { 6, 14, 1, 1, gMapName_AbandonedShip},
- { 8, 7, 1, 1, gMapName_NewMauville},
- { 0, 3, 1, 1, gMapName_MeteorFalls},
- { 1, 2, 1, 1, gMapName_MeteorFalls},
- {16, 4, 1, 1, gMapName_MtPyre},
- {19, 3, 1, 1, gMapName_AquaHideoutOld},
- {24, 4, 1, 1, gMapName_ShoalCave},
- {24, 9, 1, 1, gMapName_SeafloorCavern},
- {24, 9, 1, 1, gMapName_Underwater},
- {27, 9, 1, 1, gMapName_VictoryRoad},
- {17, 10, 1, 1, gMapName_MirageIsland},
- {21, 7, 1, 1, gMapName_CaveOfOrigin},
- {12, 14, 1, 1, gMapName_SouthernIsland},
- { 6, 3, 1, 1, gMapName_FieryPath},
- { 7, 3, 1, 1, gMapName_FieryPath},
- { 6, 3, 1, 1, gMapName_JaggedPass},
- { 7, 2, 1, 1, gMapName_JaggedPass},
- {11, 10, 1, 1, gMapName_SealedChamber},
- {11, 10, 1, 1, gMapName_Underwater},
- {13, 0, 1, 1, gMapName_ScorchedSlab},
- { 0, 10, 1, 1, gMapName_IslandCave},
- { 8, 3, 1, 1, gMapName_DesertRuins},
- {13, 2, 1, 1, gMapName_AncientTomb},
- { 0, 0, 1, 1, gMapName_InsideOfTruck},
- {19, 10, 1, 1, gMapName_SkyPillar},
- { 0, 0, 1, 1, gMapName_SecretBase},
- { 0, 0, 1, 1, gMapName_None},
- { 0, 0, 1, 1, gMapName_PalletTown},
- { 0, 0, 1, 1, gMapName_ViridianCity},
- { 0, 0, 1, 1, gMapName_PewterCity},
- { 0, 0, 1, 1, gMapName_CeruleanCity},
- { 0, 0, 1, 1, gMapName_LavenderTown},
- { 0, 0, 1, 1, gMapName_VermilionCity},
- { 0, 0, 1, 1, gMapName_CeladonCity},
- { 0, 0, 1, 1, gMapName_FuchsiaCity},
- { 0, 0, 1, 1, gMapName_CinnabarIsland},
- { 0, 0, 1, 1, gMapName_IndigoPlateau},
- { 0, 0, 1, 1, gMapName_SaffronCity},
- { 0, 0, 1, 1, gMapName_Route4},
- { 0, 0, 1, 1, gMapName_Route10},
- { 0, 0, 1, 1, gMapName_Route1},
- { 0, 0, 1, 1, gMapName_Route2},
- { 0, 0, 1, 1, gMapName_Route3},
- { 0, 0, 1, 1, gMapName_Route4_2},
- { 0, 0, 1, 1, gMapName_Route5},
- { 0, 0, 1, 1, gMapName_Route6},
- { 0, 0, 1, 1, gMapName_Route7},
- { 0, 0, 1, 1, gMapName_Route8},
- { 0, 0, 1, 1, gMapName_Route9},
- { 0, 0, 1, 1, gMapName_Route10_2},
- { 0, 0, 1, 1, gMapName_Route11},
- { 0, 0, 1, 1, gMapName_Route12},
- { 0, 0, 1, 1, gMapName_Route13},
- { 0, 0, 1, 1, gMapName_Route14},
- { 0, 0, 1, 1, gMapName_Route15},
- { 0, 0, 1, 1, gMapName_Route16},
- { 0, 0, 1, 1, gMapName_Route17},
- { 0, 0, 1, 1, gMapName_Route18},
- { 0, 0, 1, 1, gMapName_Route19},
- { 0, 0, 1, 1, gMapName_Route20},
- { 0, 0, 1, 1, gMapName_Route21},
- { 0, 0, 1, 1, gMapName_Route22},
- { 0, 0, 1, 1, gMapName_Route23},
- { 0, 0, 1, 1, gMapName_Route24},
- { 0, 0, 1, 1, gMapName_Route25},
- { 0, 0, 1, 1, gMapName_ViridianForest},
- { 0, 0, 1, 1, gMapName_MtMoon},
- { 0, 0, 1, 1, gMapName_SSAnne},
- { 0, 0, 1, 1, gMapName_UndergroundPath},
- { 0, 0, 1, 1, gMapName_UndergroundPath2},
- { 0, 0, 1, 1, gMapName_DiglettsCave},
- { 0, 0, 1, 1, gMapName_KantoVictoryRoad},
- { 0, 0, 1, 1, gMapName_RocketHideout},
- { 0, 0, 1, 1, gMapName_SilphCo},
- { 0, 0, 1, 1, gMapName_PokemonMansion},
- { 0, 0, 1, 1, gMapName_KantoSafariZone},
- { 0, 0, 1, 1, gMapName_PokemonLeague},
- { 0, 0, 1, 1, gMapName_RockTunnel},
- { 0, 0, 1, 1, gMapName_SeafoamIslands},
- { 0, 0, 1, 1, gMapName_PokemonTower},
- { 0, 0, 1, 1, gMapName_CeruleanCave},
- { 0, 0, 1, 1, gMapName_PowerPlant},
- { 0, 0, 1, 1, gMapName_OneIsland},
- { 0, 0, 1, 1, gMapName_TwoIsland},
- { 0, 0, 1, 1, gMapName_ThreeIsland},
- { 0, 0, 1, 1, gMapName_FourIsland},
- { 0, 0, 1, 1, gMapName_FiveIsland},
- { 0, 0, 1, 1, gMapName_SevenIsland},
- { 0, 0, 1, 1, gMapName_SixIsland},
- { 0, 0, 1, 1, gMapName_KindleRoad},
- { 0, 0, 1, 1, gMapName_TreasureBeach},
- { 0, 0, 1, 1, gMapName_CapeBrink},
- { 0, 0, 1, 1, gMapName_BondBridge},
- { 0, 0, 1, 1, gMapName_ThreeIslePort},
- { 0, 0, 1, 1, gMapName_SeviiIsle6},
- { 0, 0, 1, 1, gMapName_SeviiIsle7},
- { 0, 0, 1, 1, gMapName_SeviiIsle8},
- { 0, 0, 1, 1, gMapName_SeviiIsle9},
- { 0, 0, 1, 1, gMapName_ResortGorgeous},
- { 0, 0, 1, 1, gMapName_WaterLabyrinth},
- { 0, 0, 1, 1, gMapName_FiveIsleMeadow},
- { 0, 0, 1, 1, gMapName_MemorialPillar},
- { 0, 0, 1, 1, gMapName_OutcastIsland},
- { 0, 0, 1, 1, gMapName_GreenPath},
- { 0, 0, 1, 1, gMapName_WaterPath},
- { 0, 0, 1, 1, gMapName_RuinValley},
- { 0, 0, 1, 1, gMapName_TrainerTower},
- { 0, 0, 1, 1, gMapName_CanyonEntrance},
- { 0, 0, 1, 1, gMapName_SevaultCanyon},
- { 0, 0, 1, 1, gMapName_TanobyRuins},
- { 0, 0, 1, 1, gMapName_SeviiIsle22},
- { 0, 0, 1, 1, gMapName_SeviiIsle23},
- { 0, 0, 1, 1, gMapName_SeviiIsle24},
- { 0, 0, 1, 1, gMapName_NavelRock},
- { 0, 0, 1, 1, gMapName_MtEmber},
- { 0, 0, 1, 1, gMapName_BerryForest},
- { 0, 0, 1, 1, gMapName_IcefallCave},
- { 0, 0, 1, 1, gMapName_RocketWarehouse},
- { 0, 0, 1, 1, gMapName_TrainerTower2},
- { 0, 0, 1, 1, gMapName_DottedHole},
- { 0, 0, 1, 1, gMapName_LostCave},
- { 0, 0, 1, 1, gMapName_PatternBush},
- { 0, 0, 1, 1, gMapName_AlteringCave},
- { 0, 0, 1, 1, gMapName_TanobyChambers},
- { 0, 0, 1, 1, gMapName_ThreeIslePath},
- { 0, 0, 1, 1, gMapName_TanobyKey},
- { 0, 0, 1, 1, gMapName_BirthIsland},
- { 0, 0, 1, 1, gMapName_MoneanChamber},
- { 0, 0, 1, 1, gMapName_LiptooChamber},
- { 0, 0, 1, 1, gMapName_WeepthChamber},
- { 0, 0, 1, 1, gMapName_DilfordChamber},
- { 0, 0, 1, 1, gMapName_ScufibChamber},
- { 0, 0, 1, 1, gMapName_RixyChamber},
- { 0, 0, 1, 1, gMapName_ViapoisChamber},
- { 0, 0, 1, 1, gMapName_EmberSpa},
- { 0, 0, 1, 1, gMapName_SpecialArea},
- {19, 3, 1, 1, gMapName_AquaHideout},
- { 6, 3, 1, 1, gMapName_MagmaHideout},
- { 8, 2, 1, 1, gMapName_MirageTower},
- { 0, 0, 1, 1, gMapName_BirthIsland},
- { 0, 0, 1, 1, gMapName_FarawayIsland},
- {22, 12, 1, 1, gMapName_ArtisanCave},
- { 0, 0, 1, 1, gMapName_MarineCave},
- { 0, 0, 1, 1, gMapName_Underwater},
- { 0, 0, 1, 1, gMapName_TerraCave},
- { 0, 10, 1, 3, gMapName_Underwater},
- {24, 3, 2, 2, gMapName_Underwater},
- {24, 10, 2, 1, gMapName_Underwater},
- { 2, 0, 1, 1, gMapName_DesertUnderpass},
- { 6, 8, 1, 1, gMapName_AlteringCave},
- { 0, 0, 1, 1, gMapName_NavelRock},
- { 8, 4, 1, 1, gMapName_TrainerHill}
+ { 4, 11, 1, 1, sMapName_LittlerootTown},
+ { 4, 9, 1, 1, sMapName_OldaleTown},
+ { 2, 14, 1, 1, sMapName_DewfordTown},
+ { 5, 3, 1, 1, sMapName_LavaridgeTown},
+ { 3, 0, 1, 1, sMapName_FallarborTown},
+ { 4, 6, 1, 1, sMapName_VerdanturfTown},
+ {17, 10, 1, 1, sMapName_PacifidlogTown},
+ { 1, 9, 1, 1, sMapName_PetalburgCity},
+ { 8, 10, 1, 2, sMapName_SlateportCity},
+ { 8, 6, 2, 1, sMapName_MauvilleCity},
+ { 0, 5, 1, 2, sMapName_RustboroCity},
+ {12, 0, 1, 1, sMapName_FortreeCity},
+ {18, 3, 2, 1, sMapName_LilycoveCity},
+ {24, 5, 2, 1, sMapName_MossdeepCity},
+ {21, 7, 1, 1, sMapName_SootopolisCity},
+ {27, 8, 1, 2, sMapName_EverGrandeCity},
+ { 4, 10, 1, 1, sMapName_Route101},
+ { 2, 9, 2, 1, sMapName_Route102},
+ { 4, 8, 4, 1, sMapName_Route103},
+ { 0, 7, 1, 3, sMapName_Route104},
+ { 0, 10, 1, 3, sMapName_Route105},
+ { 0, 13, 2, 1, sMapName_Route106},
+ { 3, 14, 3, 1, sMapName_Route107},
+ { 6, 14, 2, 1, sMapName_Route108},
+ { 8, 12, 1, 3, sMapName_Route109},
+ { 8, 7, 1, 3, sMapName_Route110},
+ { 8, 0, 1, 6, sMapName_Route111},
+ { 6, 3, 2, 1, sMapName_Route112},
+ { 4, 0, 4, 1, sMapName_Route113},
+ { 1, 0, 2, 3, sMapName_Route114},
+ { 0, 2, 1, 3, sMapName_Route115},
+ { 1, 5, 4, 1, sMapName_Route116},
+ { 5, 6, 3, 1, sMapName_Route117},
+ {10, 6, 2, 1, sMapName_Route118},
+ {11, 0, 1, 6, sMapName_Route119},
+ {13, 0, 1, 4, sMapName_Route120},
+ {14, 3, 4, 1, sMapName_Route121},
+ {16, 4, 1, 2, sMapName_Route122},
+ {12, 6, 5, 1, sMapName_Route123},
+ {20, 3, 4, 3, sMapName_Route124},
+ {24, 3, 2, 2, sMapName_Route125},
+ {20, 6, 3, 3, sMapName_Route126},
+ {23, 6, 3, 3, sMapName_Route127},
+ {23, 9, 4, 1, sMapName_Route128},
+ {24, 10, 2, 1, sMapName_Route129},
+ {21, 10, 3, 1, sMapName_Route130},
+ {18, 10, 3, 1, sMapName_Route131},
+ {15, 10, 2, 1, sMapName_Route132},
+ {12, 10, 3, 1, sMapName_Route133},
+ { 9, 10, 3, 1, sMapName_Route134},
+ {20, 3, 4, 3, sMapName_Underwater},
+ {20, 6, 3, 3, sMapName_Underwater},
+ {23, 6, 3, 3, sMapName_Underwater},
+ {23, 9, 4, 1, sMapName_Underwater},
+ {21, 7, 1, 1, sMapName_Underwater},
+ { 1, 13, 1, 1, sMapName_GraniteCave},
+ { 6, 2, 1, 1, sMapName_MtChimney},
+ {16, 2, 1, 1, sMapName_SafariZone},
+ {22, 12, 1, 1, sMapName_BattleFrontier},
+ { 0, 8, 1, 1, sMapName_PetalburgWoods},
+ { 2, 5, 1, 1, sMapName_RusturfTunnel},
+ { 6, 14, 1, 1, sMapName_AbandonedShip},
+ { 8, 7, 1, 1, sMapName_NewMauville},
+ { 0, 3, 1, 1, sMapName_MeteorFalls},
+ { 1, 2, 1, 1, sMapName_MeteorFalls},
+ {16, 4, 1, 1, sMapName_MtPyre},
+ {19, 3, 1, 1, sMapName_AquaHideoutOld},
+ {24, 4, 1, 1, sMapName_ShoalCave},
+ {24, 9, 1, 1, sMapName_SeafloorCavern},
+ {24, 9, 1, 1, sMapName_Underwater},
+ {27, 9, 1, 1, sMapName_VictoryRoad},
+ {17, 10, 1, 1, sMapName_MirageIsland},
+ {21, 7, 1, 1, sMapName_CaveOfOrigin},
+ {12, 14, 1, 1, sMapName_SouthernIsland},
+ { 6, 3, 1, 1, sMapName_FieryPath},
+ { 7, 3, 1, 1, sMapName_FieryPath},
+ { 6, 3, 1, 1, sMapName_JaggedPass},
+ { 7, 2, 1, 1, sMapName_JaggedPass},
+ {11, 10, 1, 1, sMapName_SealedChamber},
+ {11, 10, 1, 1, sMapName_Underwater},
+ {13, 0, 1, 1, sMapName_ScorchedSlab},
+ { 0, 10, 1, 1, sMapName_IslandCave},
+ { 8, 3, 1, 1, sMapName_DesertRuins},
+ {13, 2, 1, 1, sMapName_AncientTomb},
+ { 0, 0, 1, 1, sMapName_InsideOfTruck},
+ {19, 10, 1, 1, sMapName_SkyPillar},
+ { 0, 0, 1, 1, sMapName_SecretBase},
+ { 0, 0, 1, 1, sMapName_None},
+ { 0, 0, 1, 1, sMapName_PalletTown},
+ { 0, 0, 1, 1, sMapName_ViridianCity},
+ { 0, 0, 1, 1, sMapName_PewterCity},
+ { 0, 0, 1, 1, sMapName_CeruleanCity},
+ { 0, 0, 1, 1, sMapName_LavenderTown},
+ { 0, 0, 1, 1, sMapName_VermilionCity},
+ { 0, 0, 1, 1, sMapName_CeladonCity},
+ { 0, 0, 1, 1, sMapName_FuchsiaCity},
+ { 0, 0, 1, 1, sMapName_CinnabarIsland},
+ { 0, 0, 1, 1, sMapName_IndigoPlateau},
+ { 0, 0, 1, 1, sMapName_SaffronCity},
+ { 0, 0, 1, 1, sMapName_Route4},
+ { 0, 0, 1, 1, sMapName_Route10},
+ { 0, 0, 1, 1, sMapName_Route1},
+ { 0, 0, 1, 1, sMapName_Route2},
+ { 0, 0, 1, 1, sMapName_Route3},
+ { 0, 0, 1, 1, sMapName_Route4_2},
+ { 0, 0, 1, 1, sMapName_Route5},
+ { 0, 0, 1, 1, sMapName_Route6},
+ { 0, 0, 1, 1, sMapName_Route7},
+ { 0, 0, 1, 1, sMapName_Route8},
+ { 0, 0, 1, 1, sMapName_Route9},
+ { 0, 0, 1, 1, sMapName_Route10_2},
+ { 0, 0, 1, 1, sMapName_Route11},
+ { 0, 0, 1, 1, sMapName_Route12},
+ { 0, 0, 1, 1, sMapName_Route13},
+ { 0, 0, 1, 1, sMapName_Route14},
+ { 0, 0, 1, 1, sMapName_Route15},
+ { 0, 0, 1, 1, sMapName_Route16},
+ { 0, 0, 1, 1, sMapName_Route17},
+ { 0, 0, 1, 1, sMapName_Route18},
+ { 0, 0, 1, 1, sMapName_Route19},
+ { 0, 0, 1, 1, sMapName_Route20},
+ { 0, 0, 1, 1, sMapName_Route21},
+ { 0, 0, 1, 1, sMapName_Route22},
+ { 0, 0, 1, 1, sMapName_Route23},
+ { 0, 0, 1, 1, sMapName_Route24},
+ { 0, 0, 1, 1, sMapName_Route25},
+ { 0, 0, 1, 1, sMapName_ViridianForest},
+ { 0, 0, 1, 1, sMapName_MtMoon},
+ { 0, 0, 1, 1, sMapName_SSAnne},
+ { 0, 0, 1, 1, sMapName_UndergroundPath},
+ { 0, 0, 1, 1, sMapName_UndergroundPath2},
+ { 0, 0, 1, 1, sMapName_DiglettsCave},
+ { 0, 0, 1, 1, sMapName_KantoVictoryRoad},
+ { 0, 0, 1, 1, sMapName_RocketHideout},
+ { 0, 0, 1, 1, sMapName_SilphCo},
+ { 0, 0, 1, 1, sMapName_PokemonMansion},
+ { 0, 0, 1, 1, sMapName_KantoSafariZone},
+ { 0, 0, 1, 1, sMapName_PokemonLeague},
+ { 0, 0, 1, 1, sMapName_RockTunnel},
+ { 0, 0, 1, 1, sMapName_SeafoamIslands},
+ { 0, 0, 1, 1, sMapName_PokemonTower},
+ { 0, 0, 1, 1, sMapName_CeruleanCave},
+ { 0, 0, 1, 1, sMapName_PowerPlant},
+ { 0, 0, 1, 1, sMapName_OneIsland},
+ { 0, 0, 1, 1, sMapName_TwoIsland},
+ { 0, 0, 1, 1, sMapName_ThreeIsland},
+ { 0, 0, 1, 1, sMapName_FourIsland},
+ { 0, 0, 1, 1, sMapName_FiveIsland},
+ { 0, 0, 1, 1, sMapName_SevenIsland},
+ { 0, 0, 1, 1, sMapName_SixIsland},
+ { 0, 0, 1, 1, sMapName_KindleRoad},
+ { 0, 0, 1, 1, sMapName_TreasureBeach},
+ { 0, 0, 1, 1, sMapName_CapeBrink},
+ { 0, 0, 1, 1, sMapName_BondBridge},
+ { 0, 0, 1, 1, sMapName_ThreeIslePort},
+ { 0, 0, 1, 1, sMapName_SeviiIsle6},
+ { 0, 0, 1, 1, sMapName_SeviiIsle7},
+ { 0, 0, 1, 1, sMapName_SeviiIsle8},
+ { 0, 0, 1, 1, sMapName_SeviiIsle9},
+ { 0, 0, 1, 1, sMapName_ResortGorgeous},
+ { 0, 0, 1, 1, sMapName_WaterLabyrinth},
+ { 0, 0, 1, 1, sMapName_FiveIsleMeadow},
+ { 0, 0, 1, 1, sMapName_MemorialPillar},
+ { 0, 0, 1, 1, sMapName_OutcastIsland},
+ { 0, 0, 1, 1, sMapName_GreenPath},
+ { 0, 0, 1, 1, sMapName_WaterPath},
+ { 0, 0, 1, 1, sMapName_RuinValley},
+ { 0, 0, 1, 1, sMapName_TrainerTower},
+ { 0, 0, 1, 1, sMapName_CanyonEntrance},
+ { 0, 0, 1, 1, sMapName_SevaultCanyon},
+ { 0, 0, 1, 1, sMapName_TanobyRuins},
+ { 0, 0, 1, 1, sMapName_SeviiIsle22},
+ { 0, 0, 1, 1, sMapName_SeviiIsle23},
+ { 0, 0, 1, 1, sMapName_SeviiIsle24},
+ { 0, 0, 1, 1, sMapName_NavelRock},
+ { 0, 0, 1, 1, sMapName_MtEmber},
+ { 0, 0, 1, 1, sMapName_BerryForest},
+ { 0, 0, 1, 1, sMapName_IcefallCave},
+ { 0, 0, 1, 1, sMapName_RocketWarehouse},
+ { 0, 0, 1, 1, sMapName_TrainerTower2},
+ { 0, 0, 1, 1, sMapName_DottedHole},
+ { 0, 0, 1, 1, sMapName_LostCave},
+ { 0, 0, 1, 1, sMapName_PatternBush},
+ { 0, 0, 1, 1, sMapName_AlteringCave},
+ { 0, 0, 1, 1, sMapName_TanobyChambers},
+ { 0, 0, 1, 1, sMapName_ThreeIslePath},
+ { 0, 0, 1, 1, sMapName_TanobyKey},
+ { 0, 0, 1, 1, sMapName_BirthIsland},
+ { 0, 0, 1, 1, sMapName_MoneanChamber},
+ { 0, 0, 1, 1, sMapName_LiptooChamber},
+ { 0, 0, 1, 1, sMapName_WeepthChamber},
+ { 0, 0, 1, 1, sMapName_DilfordChamber},
+ { 0, 0, 1, 1, sMapName_ScufibChamber},
+ { 0, 0, 1, 1, sMapName_RixyChamber},
+ { 0, 0, 1, 1, sMapName_ViapoisChamber},
+ { 0, 0, 1, 1, sMapName_EmberSpa},
+ { 0, 0, 1, 1, sMapName_SpecialArea},
+ {19, 3, 1, 1, sMapName_AquaHideout},
+ { 6, 3, 1, 1, sMapName_MagmaHideout},
+ { 8, 2, 1, 1, sMapName_MirageTower},
+ { 0, 0, 1, 1, sMapName_BirthIsland},
+ { 0, 0, 1, 1, sMapName_FarawayIsland},
+ {22, 12, 1, 1, sMapName_ArtisanCave},
+ { 0, 0, 1, 1, sMapName_MarineCave},
+ { 0, 0, 1, 1, sMapName_Underwater},
+ { 0, 0, 1, 1, sMapName_TerraCave},
+ { 0, 10, 1, 3, sMapName_Underwater},
+ {24, 3, 2, 2, sMapName_Underwater},
+ {24, 10, 2, 1, sMapName_Underwater},
+ { 2, 0, 1, 1, sMapName_DesertUnderpass},
+ { 6, 8, 1, 1, sMapName_AlteringCave},
+ { 0, 0, 1, 1, sMapName_NavelRock},
+ { 8, 4, 1, 1, sMapName_TrainerHill}
};
#endif //GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H
diff --git a/include/dewford_trend.h b/include/dewford_trend.h
index 01e5d9762..dac5ea6c9 100644
--- a/include/dewford_trend.h
+++ b/include/dewford_trend.h
@@ -3,5 +3,6 @@
void InitDewfordTrend(void);
void UpdateDewfordTrendPerDay(u16);
+void UpdateDewfordTrendPerDay(u16 days);
#endif // GUARD_DEWFORDTREND_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index 844f1052a..a54e0e463 100755
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -7,10 +7,18 @@
extern const u8 gUnknown_0823B4E8[];
extern const u8 gUnknown_0823B5E9[];
+extern const u8 EventScript_TestSignpostMsg[];
+extern const u8 EventScript_TryGetTrainerScript[];
extern const u8 EventScript_275BB7[];
extern const u8 EventScript_275D0C[];
extern const u8 EventScript_275D1F[];
extern const u8 EventScript_275D2E[];
+extern const u8 EventScript_271354[];
+extern const u8 EventScript_2713C2[];
+extern const u8 EventScript_TryDoDoubleTrainerBattle[];
+extern const u8 EventScript_271362[];
+extern const u8 EventScript_TryDoDoubleRematchBattle[];
+extern const u8 EventScript_2713D1[];
extern const u8 EventScript_2766A2[];
extern const u8 EventScript_2766A6[];
diff --git a/include/field_effect.h b/include/field_effect.h
index 629ae07c7..772b20d37 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -71,8 +71,9 @@ enum FieldEffectScriptIdx
extern u32 gFieldEffectArguments[8];
-u8 FieldEffectStart(u8);
+u32 FieldEffectStart(u8);
bool8 FieldEffectActiveListContains(u8 id);
void sub_80B69DC(void);
+void FieldEffectStop(struct Sprite *sprite, u8 id);
#endif //GUARD_FIELD_EFFECTS_H
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index e80daf3bd..15928eba3 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -12,5 +12,6 @@
// Exported ROM declarations
u8 sub_8154228(void);
bool8 sub_8155DA0(struct MapObject *);
+void sub_8155D78(struct MapObject *);
#endif //GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 0107fa10f..198dd9759 100755
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -60,7 +60,7 @@ void sub_808E82C(u8, u8, u8, s16, s16);
void sub_808E7E4(u8, u8, u8);
void sub_808E78C(u8, u8, u8, u8);
void sub_808E75C(s16, s16);
-void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
+void FieldObjectGetLocalIdAndMap(struct MapObject *mapObject, void *localId, void *mapNum, void *mapGroup);
void npc_coords_shift(struct MapObject *, s16, s16);
void sub_808EB08(struct MapObject *, s16, s16);
void sub_808F254(u8, u8, u8);
@@ -76,6 +76,18 @@ void MoveCoords(u8, s16 *, s16 *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
+void npc_set_running_behaviour_etc(struct MapObject *mapObject, u8 animPattern);
+u8 npc_running_behaviour_by_direction(u8 direction);
+const u8 *GetFieldObjectScriptPointerByFieldObjectId(u8 mapObjectId);
+u8 sub_8092C8C(struct MapObject *mapObject, s16 x, s16 y, u8 direction);
+u8 GetFaceDirectionAnimId(u32);
+u8 GetGoSpeed0AnimId(u32);
+u8 sub_80934BC(u32);
+bool8 FieldObjectSetSpecialAnim(struct MapObject *mapObject, u8 specialAnimId);
+bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *mapObject);
+u8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *mapObject);
+void sub_808F23C(const struct MapObject *mapObject, u8 movementType);
+void sub_808F208(const struct MapObject *mapObject);
// Exported data declarations
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 25b7f2d71..a3c40bc42 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -9,6 +9,7 @@ void PlayerGetDestCoords(s16 *, s16 *);
u8 player_get_direction_lower_nybble(void);
u8 player_get_direction_upper_nybble(void);
u8 player_get_x22(void);
+void sub_808BCE8(void);
void sub_808D074(u8);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
diff --git a/include/field_screen.h b/include/field_screen.h
index 089e79cc4..cfc0d081f 100644
--- a/include/field_screen.h
+++ b/include/field_screen.h
@@ -9,5 +9,6 @@
void pal_fill_black(void);
bool8 sub_80ABDFC(void);
void sub_80AF168(void);
+void UpdateWeatherPerDay(u16 days);
#endif //GUARD_FIELD_SCREEN_H
diff --git a/include/gba/macro.h b/include/gba/macro.h
index 7b6b98c06..ad4820bcf 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -78,6 +78,81 @@
#define DmaCopy16(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 16)
#define DmaCopy32(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 32)
+#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \
+{ \
+ const void *_src = src; \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ DmaCopy##bit(dmaNum, _src, _dest, (block)); \
+ _src += (block); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaCopy##bit(dmaNum, _src, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
+#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16)
+
+#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32)
+
+#define DmaFillLarge(dmaNum, value, dest, size, block, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ DmaFill##bit(dmaNum, value, _dest, (block)); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaFill##bit(dmaNum, value, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
+#define DmaFillLarge16(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 16)
+
+#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32)
+
+#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \
+{ \
+ const void *_src = src; \
+ void *_dest = dest; \
+ u32 _size = size; \
+ DmaCopy##bit(dmaNum, _src, _dest, _size); \
+}
+
+#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16)
+#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32)
+
+#define DmaFillDefvars(dmaNum, value, dest, size, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ DmaFill##bit(dmaNum, value, _dest, _size); \
+}
+
+#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16)
+#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32)
+
+#define DmaClearDefvars(dmaNum, dest, size, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ DmaClear##bit(dmaNum, _dest, _size); \
+}
+
+#define DmaClear16Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 16)
+#define DmaClear32Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 32)
+
#define DmaStop(dmaNum) \
{ \
vu16 *dmaRegs = (vu16 *)REG_ADDR_DMA##dmaNum; \
diff --git a/include/gba/types.h b/include/gba/types.h
index e9a380023..9f63489aa 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -49,7 +49,7 @@ struct OamData
u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode
u32 size:2;
- /*0x04*/ u16 tileNum:10; // 0x33F
+ /*0x04*/ u16 tileNum:10; // 0x3FF
u16 priority:2; // 0x400, 0x800 -> 0xC00
u16 paletteNum:4;
/*0x06*/ u16 affineParam;
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index ed5054b7d..3e9f13523 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -39,7 +39,7 @@ enum
MAP_BATTLE_SCENE_PHOEBE, // 5
MAP_BATTLE_SCENE_GLACIA, // 6
MAP_BATTLE_SCENE_DRAKE, // 7
- MAP_BATTLE_SCENE_BATTLE_TOWER, // 8
+ MAP_BATTLE_SCENE_FRONTIER, // 8
};
typedef void (*TilesetCB)(void);
@@ -224,7 +224,7 @@ struct MapObject
/*0x0C*/ struct Coords16 coords1;
/*0x10*/ struct Coords16 coords2;
/*0x14*/ struct Coords16 coords3;
- /*0x18*/ u8 mapobj_unk_18:4; //current direction?
+ /*0x18*/ u8 mapobj_unk_18:4; // current direction?
/*0x18*/ u8 placeholder18:4;
/*0x19*/ union __attribute__((packed)) {
u8 as_byte;
diff --git a/include/global.h b/include/global.h
index 0f486c235..b6a496dd1 100644
--- a/include/global.h
+++ b/include/global.h
@@ -36,6 +36,24 @@ extern u8 gStringVar2[];
extern u8 gStringVar3[];
extern u8 gStringVar4[];
+// There are many quirks in the source code which have overarching behavioral differences from
+// a number of other files. For example, diploma.c seems to declare rodata before each use while
+// other files declare out of order and must be at the beginning. There are also a number of
+// macros which differ from one file to the next due to the method of obtaining the result, such
+// as these below. Because of this, there is a theory (Two Team Theory) that states that these
+// programming projects had more than 1 "programming team" which utilized different macros for
+// each of the files that were worked on.
+#define T1_READ_8(ptr) ((ptr)[0])
+#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
+#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24))
+#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr)
+
+// T2_READ_8 is a duplicate to remain consistent with each group.
+#define T2_READ_8(ptr) ((ptr)[0])
+#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
+#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
+#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)
+
enum
{
VERSION_SAPPHIRE = 1,
@@ -45,7 +63,8 @@ enum
VERSION_LEAF_GREEN = 5,
};
-enum LanguageId {
+enum LanguageId
+{
LANGUAGE_JAPANESE = 1,
LANGUAGE_ENGLISH = 2,
LANGUAGE_FRENCH = 3,
@@ -222,7 +241,7 @@ struct SaveBlock2
/*0x1EC*/ struct BerryCrush berryCrush;
/*0x1FC*/ struct PokemonJumpResults pokeJump;
/*0x20C*/ struct BerryPickingResults berryPick;
- /*0x214*/ u8 field_214[1032];
+ /*0x21C*/ u8 field_21C[1032];
/*0x624*/ u16 contestLinkResults[20]; // 4 positions for 5 categories, possibly a struct or a 2d array
// All below could be a one giant struct
@@ -244,7 +263,7 @@ struct SaveBlock2
/*0xCA9*/ u8 field_CA9_f : 1; // 0x80
/*0xCAA*/ u16 field_CAA[4];
/*0xCB2*/ u16 battlePyramidWildHeaderId;
- /*0xCB4*/ u8 field_CB4[82];
+ /*0xCB4*/ u16 field_CB4[41];
/*0xD06*/ u8 field_D06;
/*0xD07*/ u8 field_D07;
/*0xD08*/ u8 filler_D08[0x112];
@@ -360,10 +379,12 @@ struct EasyChatPair
u16 words[2];
}; /*size = 0x8*/
+#define MAIL_WORDS_COUNT 9
+
struct MailStruct
{
- /*0x00*/ u16 words[9];
- /*0x12*/ u8 playerName[8];
+ /*0x00*/ u16 words[MAIL_WORDS_COUNT];
+ /*0x12*/ u8 playerName[PLAYER_NAME_LENGTH];
/*0x1A*/ u8 trainerId[4];
/*0x1E*/ u16 species;
/*0x20*/ u16 itemId;
@@ -493,11 +514,12 @@ struct RecordMixingDayCareMail
bool16 holdsItem[DAYCARE_MON_COUNT];
};
-#define MAP_OBJECTS_COUNT 16
-#define BERRY_TREES_COUNT 128
-#define FLAGS_COUNT 300
-#define VARS_COUNT 256
-#define MAIL_COUNT 16
+#define POKEBLOCKS_COUNT 40
+#define MAP_OBJECTS_COUNT 16
+#define BERRY_TREES_COUNT 128
+#define FLAGS_COUNT 300
+#define VARS_COUNT 256
+#define MAIL_COUNT 16
enum
{
@@ -590,7 +612,7 @@ struct SaveBlock1
/*0x650*/ struct ItemSlot bagPocket_PokeBalls[16];
/*0x690*/ struct ItemSlot bagPocket_TMHM[64];
/*0x790*/ struct ItemSlot bagPocket_Berries[46];
- /*0x848*/ struct Pokeblock pokeblocks[40];
+ /*0x848*/ struct Pokeblock pokeblocks[POKEBLOCKS_COUNT];
/*0x988*/ u8 seen1[52];
/*0x9BC*/ u16 berryBlenderRecords[3];
/*0x9C2*/ u8 field_9C2[6];
diff --git a/include/graphics.h b/include/graphics.h
index 4a522a429..0a38c9b82 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -1,10 +1,7 @@
-//
-// Created by scott on 10/21/2017.
-//
-
#ifndef GUARD_GRAPHICS_H
#define GUARD_GRAPHICS_H
+// interface pokeballs
extern const u8 gInterfaceGfx_PokeBall[];
extern const u8 gInterfacePal_PokeBall[];
extern const u8 gInterfaceGfx_GreatBall[];
@@ -31,6 +28,28 @@ extern const u8 gInterfaceGfx_PremierBall[];
extern const u8 gInterfacePal_PremierBall[];
extern const u8 gOpenPokeballGfx[];
+// pokeblock
+extern const u8 gMenuPokeblock_Gfx[];
+extern const u8 gMenuPokeblock_Pal[];
+extern const u8 gMenuPokeblock_Tilemap[];
+extern const u8 gMenuPokeblockDevice_Gfx[];
+extern const u8 gMenuPokeblockDevice_Pal[];
+extern const u8 gPokeblockRed_Pal[];
+extern const u8 gPokeblockBlue_Pal[];
+extern const u8 gPokeblockPink_Pal[];
+extern const u8 gPokeblockGreen_Pal[];
+extern const u8 gPokeblockYellow_Pal[];
+extern const u8 gPokeblockPurple_Pal[];
+extern const u8 gPokeblockIndigo_Pal[];
+extern const u8 gPokeblockBrown_Pal[];
+extern const u8 gPokeblockLiteBlue_Pal[];
+extern const u8 gPokeblockOlive_Pal[];
+extern const u8 gPokeblockGray_Pal[];
+extern const u8 gPokeblockBlack_Pal[];
+extern const u8 gPokeblockWhite_Pal[];
+extern const u8 gPokeblockGold_Pal[];
+extern const u8 gPokeblock_Gfx[];
+
extern const u8 gItemIcon_QuestionMark[];
extern const u8 gItemIconPalette_QuestionMark[];
extern const u8 gUnknown_08DB7AA0[];
@@ -117,6 +136,11 @@ extern const u8 gUnknown_08DB9F08[];
extern const u8 gUnknown_08DB9FFC[];
extern const u8 gUnknown_08DBA020[];
extern const u8 gUnknown_08DBA12C[];
+extern const u8 gUnknown_08DCC05C[];
+extern const u16 gUnknown_08DCC01C[];
+extern const u16 gUnknown_08DCC03C[];
+extern const u8 gUnknown_08DCC648[];
+extern const u8 gUnknown_08DCC908[];
extern const u8 gUnknown_08DD87C0[];
extern const u8 gUnknown_08DD8EE0[];
extern const u16 gUnknown_08DD8780[];
@@ -136,4 +160,82 @@ extern const u8 gUnknown_08DDB020[];
extern const u8 gUnknown_08DDB2C4[];
extern const u16 gUnknown_08DDAFE0[];
+extern const u8 gBattleTextboxTiles[];
+extern const u8 gBattleTextboxTilemap[];
+extern const u8 gBattleTextboxPalette[];
+extern const u8 gUnknown_08D778F0[];
+extern const u8 gUnknown_08D77B0C[];
+extern const u8 gUnknown_08D77AE4[];
+extern const u8 gUnknown_08D779D8[];
+extern const u8 gUnknown_08D857A8[];
+extern const u8 gUnknown_08D85A1C[];
+extern const u8 gUnknown_08D85600[];
+
+// battle terrains
+extern const u8 gBattleTerrainTiles_TallGrass[];
+extern const u8 gBattleTerrainTilemap_TallGrass[];
+extern const u8 gBattleTerrainAnimTiles_TallGrass[];
+extern const u8 gBattleTerrainAnimTilemap_TallGrass[];
+extern const u8 gBattleTerrainPalette_TallGrass[];
+extern const u8 gBattleTerrainTiles_LongGrass[];
+extern const u8 gBattleTerrainTilemap_LongGrass[];
+extern const u8 gBattleTerrainAnimTiles_LongGrass[];
+extern const u8 gBattleTerrainAnimTilemap_LongGrass[];
+extern const u8 gBattleTerrainPalette_LongGrass[];
+extern const u8 gBattleTerrainTiles_Sand[];
+extern const u8 gBattleTerrainTilemap_Sand[];
+extern const u8 gBattleTerrainAnimTiles_Sand[];
+extern const u8 gBattleTerrainAnimTilemap_Sand[];
+extern const u8 gBattleTerrainPalette_Sand[];
+extern const u8 gBattleTerrainTiles_Underwater[];
+extern const u8 gBattleTerrainTilemap_Underwater[];
+extern const u8 gBattleTerrainAnimTiles_Underwater[];
+extern const u8 gBattleTerrainAnimTilemap_Underwater[];
+extern const u8 gBattleTerrainPalette_Underwater[];
+extern const u8 gBattleTerrainTiles_Water[];
+extern const u8 gBattleTerrainTilemap_Water[];
+extern const u8 gBattleTerrainAnimTiles_Water[];
+extern const u8 gBattleTerrainAnimTilemap_Water[];
+extern const u8 gBattleTerrainPalette_Water[];
+extern const u8 gBattleTerrainTiles_PondWater[];
+extern const u8 gBattleTerrainTilemap_PondWater[];
+extern const u8 gBattleTerrainAnimTiles_PondWater[];
+extern const u8 gBattleTerrainAnimTilemap_PondWater[];
+extern const u8 gBattleTerrainPalette_PondWater[];
+extern const u8 gBattleTerrainTiles_Rock[];
+extern const u8 gBattleTerrainTilemap_Rock[];
+extern const u8 gBattleTerrainAnimTiles_Rock[];
+extern const u8 gBattleTerrainAnimTilemap_Rock[];
+extern const u8 gBattleTerrainPalette_Rock[];
+extern const u8 gBattleTerrainTiles_Cave[];
+extern const u8 gBattleTerrainTilemap_Cave[];
+extern const u8 gBattleTerrainAnimTiles_Cave[];
+extern const u8 gBattleTerrainAnimTilemap_Cave[];
+extern const u8 gBattleTerrainPalette_Cave[];
+extern const u8 gBattleTerrainTiles_Building[];
+extern const u8 gBattleTerrainTilemap_Building[];
+extern const u8 gBattleTerrainAnimTiles_Building[];
+extern const u8 gBattleTerrainAnimTilemap_Building[];
+extern const u8 gBattleTerrainPalette_Building[];
+extern const u8 gBattleTerrainPalette_Plain[];
+extern const u8 gBattleTerrainPalette_Frontier[];
+extern const u8 gBattleTerrainTiles_Stadium[];
+extern const u8 gBattleTerrainTilemap_Stadium[];
+extern const u8 gBattleTerrainTiles_Rayquaza[];
+extern const u8 gBattleTerrainTilemap_Rayquaza[];
+extern const u8 gBattleTerrainAnimTiles_Rayquaza[];
+extern const u8 gBattleTerrainAnimTilemap_Rayquaza[];
+extern const u8 gBattleTerrainPalette_Rayquaza[];
+extern const u8 gBattleTerrainPalette_Kyogre[];
+extern const u8 gBattleTerrainPalette_Groudon[];
+extern const u8 gBattleTerrainPalette_BuildingGym[];
+extern const u8 gBattleTerrainPalette_BuildingLeader[];
+extern const u8 gBattleTerrainPalette_StadiumAqua[];
+extern const u8 gBattleTerrainPalette_StadiumMagma[];
+extern const u8 gBattleTerrainPalette_StadiumSidney[];
+extern const u8 gBattleTerrainPalette_StadiumPhoebe[];
+extern const u8 gBattleTerrainPalette_StadiumGlacia[];
+extern const u8 gBattleTerrainPalette_StadiumDrake[];
+extern const u8 gBattleTerrainPalette_StadiumWallace[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/international_string_util.h b/include/international_string_util.h
index e7876162e..f4ba827e3 100644
--- a/include/international_string_util.h
+++ b/include/international_string_util.h
@@ -14,7 +14,7 @@ s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2);
// sub_81DB41C
// CopyMonCategoryText
// sub_81DB494
-// sub_81DB4DC
+void PadNameString(u8 *dst, u8 padWith);
// sub_81DB554
// sub_81DB5AC
u32 sub_81DB604(const u8 *);
diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h
index c7776131b..084e5722e 100644
--- a/include/lilycove_lady.h
+++ b/include/lilycove_lady.h
@@ -7,7 +7,7 @@ void sub_818DA78(void);
void sub_818DEF4(void);
void sub_818E564(void);
void sub_818E570(const struct LilycoveLadyQuiz *quiz);
-bool8 sub_818E704(struct Pokeblock *pokeblock);
+bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock);
void sub_818E7E0(u8 *dest1, u8 *dest2);
void sub_818E81C(u8 *dest);
void sub_818E848(u8 *dest);
diff --git a/include/list_menu.h b/include/list_menu.h
index 0249b06af..8b793c0e4 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -1,14 +1,17 @@
#ifndef GUARD_LIST_MENU_H
#define GUARD_LIST_MENU_H
+#define LIST_NOTHING_CHOSEN -1
+#define LIST_B_PRESSED -2
+
// Exported type declarations
// Exported RAM declarations
struct ListMenuItem
{
- const u8 *unk_00;
- s32 unk_04;
+ const u8 *name;
+ s32 id;
};
struct ListMenu;
@@ -16,7 +19,7 @@ struct ListMenu;
struct ListMenuTemplate
{
const struct ListMenuItem *items;
- void (* unk_04)(u32, bool8, struct ListMenu *);
+ void (* moveCursorFunc)(u32, bool8, struct ListMenu *);
void (* unk_08)(u8, s32, u8);
u16 totalItems;
u16 maxShowed;
@@ -32,9 +35,11 @@ struct ListMenuTemplate
u32 spaceBetweenItems:6; // x20000, x40000, x80000, x100000, x200000, x400000 = x7E0000
u32 unk_16_7:1; // x800000
u32 unk_17_0:6; // x1000000, x2000000, x4000000, x8000000, x10000000, x20000000 = x3F000000
+ u32 cursorKind:2; // x40000000, x80000000
};
-struct ListMenu {
+struct ListMenu
+{
struct ListMenuTemplate _template;
u16 scrollOffset;
u16 selectedRow;
@@ -44,13 +49,13 @@ struct ListMenu {
u8 unk_1F;
};
-extern struct ListMenuTemplate gUnknown_03006310;
+extern struct ListMenuTemplate gMultiuseListMenuTemplate;
// Exported ROM declarations
-u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2);
-s32 ListMenuHandleInput(u8 id);
-void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2);
-void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
+u8 ListMenuInit(struct ListMenuTemplate *template, u16 cursorPage, u16 cursorPosition);
+s32 ListMenuHandleInputGetItemId(u8 listTaskId);
+void sub_81AE860(u8 listTaskId, u16 *a1, u16 *a2);
+void sub_81AE6C8(u8 listTaskId, u16 *a1, u16 *a2);
#endif //GUARD_LIST_MENU_H
diff --git a/include/mail.h b/include/mail.h
index 0a70237bf..042586653 100644
--- a/include/mail.h
+++ b/include/mail.h
@@ -14,10 +14,20 @@
|| itemId == ITEM_FAB_MAIL \
|| itemId == ITEM_RETRO_MAIL))
+// mail.h
+void ReadMail(struct MailStruct *mail, void (*callback)(void), bool8 flag);
+// mail_data.h
+void ClearMailData(void);
+void ClearMailStruct(struct MailStruct *mail);
bool8 MonHasMail(struct Pokemon *mon);
-void TakeMailFromMon(struct Pokemon *mon);
+u8 GiveMailToMon(struct Pokemon *mon, u16 itemId);
+u16 SpeciesToMailSpecies(u16 species, u32 personality);
+u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer);
u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail);
-void ClearMailStruct(struct MailStruct *mail);
+void TakeMailFromMon(struct Pokemon *mon);
+void ClearMailItemId(u8 mailId);
+u8 TakeMailFromMon2(struct Pokemon *mon);
+bool8 ItemIsMail(u16 itemId);
#endif // GUARD_MAIL_H
diff --git a/include/mail_data.h b/include/mail_data.h
deleted file mode 100644
index bf6540bad..000000000
--- a/include/mail_data.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef GUARD_MAIL_DATA_H
-#define GUARD_MAIL_DATA_H
-
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-u16 sub_80D45E8(u16, u16 *);
-
-#endif //GUARD_MAIL_DATA_H
diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h
index 27ffd18cb..0800b15b0 100644
--- a/include/map_obj_8097404.h
+++ b/include/map_obj_8097404.h
@@ -28,5 +28,7 @@ void sub_8097750(struct Sprite *);
bool8 sub_8097758(struct Sprite *);
void sub_8097FA4(struct MapObject *);
void sub_8098044(u8);
+void UnfreezeMapObjects(void);
+void sub_80974D0(u8 mapObjectId);
#endif //GUARD_MAP_OBJ_8097404_H
diff --git a/include/menu.h b/include/menu.h
index 2052a8dad..124303570 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -4,6 +4,9 @@
#include "text.h"
#include "window.h"
+#define MENU_NOTHING_CHOSEN -2
+#define MENU_B_PRESSED -1
+
struct MenuAction
{
const u8 *text;
@@ -29,10 +32,12 @@ int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u
bool8 free_temp_tile_data_buffers_if_possible(void);
u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
-s8 sub_8198C58(void);
+s8 ProcessMenuInputNoWrap_(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
-void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, const u8 *str);
+void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str);
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
+void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds);
+void sub_8197DF8(u8 windowId, bool8 copyToVram);
#endif // GUARD_MENU_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index f083a10e2..14b6d32ca 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -3,7 +3,8 @@
// Exported type declarations
-struct YesNoFuncTable {
+struct YesNoFuncTable
+{
TaskFunc yesFunc;
TaskFunc noFunc;
};
@@ -16,5 +17,15 @@ void sub_812225C(u16 *, u16 *, u8, u8);
void sub_8122298(u16 *, u16 *, u8, u8, u8);
void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
bool8 sub_81221AC(void);
+void ResetVramOamAndBgCntRegs(void);
+void SetVBlankHBlankCallbacksToNull(void);
+void ResetAllBgsCoordinates(void);
+bool16 RunTextPrintersRetIsActive(u8 textPrinterId);
+void sub_8122344(void *arg0, u8 arg1);
+void LoadListMenuArrowsGfx(void);
+void sub_81223FC(u8 *a0, u8 count, u8 a2);
+void sub_8122448(u8 *a0, u8 count, u16 x, u16 y);
+void DisplayMessageAndContinueTask(u8 taskId, u8 arg1, u16 arg2, u8 arg3, u8 arg4, u8 textSpeed, const u8 *string, void *taskFunc);
+void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
#endif //GUARD_MENU_HELPERS_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
index c52184972..dad819c51 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -14,5 +14,6 @@ void sub_8197434(u8 a0, u8 a1);
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
void sub_8197930(void);
u8 GetPlayerTextSpeed(void);
+void sub_81978B0(u16 arg0);
#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/party_menu.h b/include/party_menu.h
index c787bafb1..3756ef569 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -1,7 +1,8 @@
#ifndef GUARD_PARTY_MENU_H
#define GUARD_PARTY_MENU_H
-enum {
+enum
+{
AILMENT_NONE,
AILMENT_PSN,
AILMENT_PRZ,
@@ -14,5 +15,6 @@ bool8 pokemon_has_move(struct Pokemon *, u16);
void sub_81B58A8(void);
void DoWallyTutorialBagMenu(void);
u8 pokemon_ailments_get_primary(u32 status);
+u8 *GetMonNickname(struct Pokemon *mon, u8 *dst);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/pokeblock.h b/include/pokeblock.h
index a145cbada..6dd07b689 100644
--- a/include/pokeblock.h
+++ b/include/pokeblock.h
@@ -1,6 +1,9 @@
#ifndef GUARD_POKEBLOCK_H
#define GUARD_POKEBLOCK_H
+#define GFX_TAG_POKEBLOCK 14818
+#define GFX_TAG_POKEBLOCK_CASE 14800
+
enum
{
PBLOCK_CLR_BLACK,
@@ -22,12 +25,44 @@ enum
PBLOCK_FEEL,
};
+enum
+{
+ PBLOCK_CASE_FIELD,
+ PBLOCK_CASE_BATTLE,
+ PBLOCK_CASE_FEEDER,
+ PBLOCK_CASE_GIVE
+};
+
+// use pokeblock
+extern u8 gPokeblockMonId;
+extern s16 gPokeblockGain;
+
+void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void));
+
+// pokeblock feed
+void CB2_PreparePokeblockFeedScene(void);
+
+// pokeblock
+extern const s8 gPokeblockFlavorCompatibilityTable[];
+extern const u8 *const gPokeblockNames[];
+extern const struct CompressedSpriteSheet gPokeblockCase_SpriteSheet;
+extern const struct CompressedSpritePalette gPokeblockCase_SpritePal;
+
+void OpenPokeblockCase(u8 caseId, void (*callback)(void));
+void OpenPokeblockCaseInBattle(void);
+void OpenPokeblockCaseOnFeeder(void);
+void ResetPokeblockScrollPositions(void);
+u8 CreatePokeblockCaseSprite(s16 x, s16 y, u8 subpriority);
void ClearPokeblocks(void);
-s8 GetFirstFreePokeblockSlot(void);
-bool32 AddPokeblock(struct Pokeblock *pokeblock);
u8 GetHighestPokeblocksFlavorLevel(const struct Pokeblock *pokeblock);
u8 GetPokeblocksFeel(const struct Pokeblock *pokeblock);
+s8 GetFirstFreePokeblockSlot(void);
+bool32 AddPokeblock(const struct Pokeblock *pokeblock);
+bool32 TryClearPokeblock(u8 pkblId);
+s16 GetPokeblockData(const struct Pokeblock *pokeblock, u8 field);
+s16 PokeblockGetGain(u8 nature, const struct Pokeblock *pokeblock);
+void PokeblockCopyName(const struct Pokeblock *pokeblock, u8 *dest);
+bool8 CopyMonFavoritePokeblockName(u8 nature, u8 *dest);
u8 GetPokeblocksFlavor(const struct Pokeblock *pokeblock);
-s16 PokeblockGetGain(u8, const struct Pokeblock *);
#endif // GUARD_POKEBLOCK_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 480c8d9b9..cdab96687 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -653,6 +653,7 @@ u8 GetSecretBaseTrainerPicIndex(void);
bool8 TryIncrementMonLevel(struct Pokemon *mon);
void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon);
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
+u8 GetMonsStateToDoubles_2(void);
#include "sprite.h"
diff --git a/include/pokemon_3.h b/include/pokemon_3.h
index 5c9862d57..82dfacf48 100644
--- a/include/pokemon_3.h
+++ b/include/pokemon_3.h
@@ -3,5 +3,7 @@
const u8* GetTrainerClassNameFromId(u16 trainerId);
const u8* GetTrainerNameFromId(u16 trainerId);
+void PlayMapChosenOrBattleBGM(u16 song);
+u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
#endif // GUARD_POKEMON_3_H
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index b6d21823e..e0a9aa0c5 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -3,6 +3,7 @@
const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo);
const u16 *GetValidMonIconPalettePtr(u16 speciesId);
+u16 GetUnownLetterByPersonality(u32 personality);
u16 sub_80D2E84(u16 speciesId);
void sub_80D2F68(u16 iconId);
u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5);
diff --git a/include/pokenav.h b/include/pokenav.h
index 06676610a..ebe3b325c 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -2,5 +2,16 @@
#define GUARD_POKENAV_H
bool8 sub_81D5C18(void);
+bool8 sub_81D20BC(void *arg0);
+bool8 sub_81D312C(void *arg0);
+void sub_81D1ED4(void *arg0);
+void sub_81D2108(void *arg0);
+void sub_81D20AC(void *arg0);
+void sub_81D2230(void *arg0);
+void sub_81D3464(void *arg0);
+void sub_81D3480(void *arg0, u8 arg1);
+void sub_81D2754(void *arg0, void *arg1);
+void sub_81D1F84(void *arg0, void *arg1, void *arg2);
+const u8 *sub_81D62AC(void);
#endif //GUARD_POKENAV_H
diff --git a/include/rom6.h b/include/rom6.h
index b4a972794..fc33b7d1f 100644
--- a/include/rom6.h
+++ b/include/rom6.h
@@ -1,9 +1,15 @@
#ifndef GUARD_ROM6_H
#define GUARD_ROM6_H
-void sub_81357FC(u8, void(void));
+void OpenPokeblockCase(u8, void(void));
u8 GetLeadMonIndex(void);
u8 GetSSTidalLocation(u8 *grp, u8 *num, s16 *x, s16 *y);
void sub_813BADC(bool8);
+bool8 sub_813B9C0(void);
+void UpdateMirageRnd(u16 days);
+void UpdateBirchState(u16 days);
+void UpdateFrontierManiac(u16 days);
+void UpdateFrontierGambler(u16 days);
+void SetShoalItemFlag(u16 days);
#endif //GUARD_ROM6_H
diff --git a/include/safari_zone.h b/include/safari_zone.h
index 9a81894b8..39ee3ccb3 100644
--- a/include/safari_zone.h
+++ b/include/safari_zone.h
@@ -13,6 +13,8 @@ void ExitSafariMode(void);
bool8 SafariZoneTakeStep(void);
void SafariZoneRetirePrompt(void);
+void CB2_EndSafariBattle(void);
+
struct Pokeblock *SafariZoneGetActivePokeblock(void);
void SafariZoneActivatePokeblockFeeder(u8 pokeblock_index);
diff --git a/include/secret_base.h b/include/secret_base.h
index 630a36773..b2502889c 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -9,5 +9,6 @@
void sub_80E9578(void);
void sub_80E980C(void);
u8 *GetSecretBaseMapName(u8 *dest);
+const u8 *GetSecretBaseTrainerLoseText(void);
#endif //GUARD_SECRET_BASE_H
diff --git a/include/songs.h b/include/songs.h
index 5a1fff00c..efa4dc3b8 100644
--- a/include/songs.h
+++ b/include/songs.h
@@ -372,20 +372,20 @@ enum
BGM_BATTLE_DOME_TOURNAMENT,
BGM_BATTLE_PIKE,
BGM_BATTLE_FACTORY,
- BGM_BATTLE_LEGENDARY,
- BGM_BATTLE_FRONTIER_BRAIN,
- BGM_BATTLE_MEW,
- BGM_BATTLE_DOME, // end of the human-readable names
+ /*0x1D6*/ BGM_BATTLE_LEGENDARY,
+ /*0x1D7*/ BGM_BATTLE_FRONTIER_BRAIN,
+ /*0x1D8*/ BGM_BATTLE_MEW,
+ /*0x1D9*/ BGM_BATTLE_DOME, // end of the human-readable names
/*0x1DA*/ BGM_BATTLE27, // wild
- BGM_BATTLE31, // aqua/magma grunt
- BGM_BATTLE20, // trainer
- BGM_BATTLE32, // gym leader
- BGM_BATTLE33, // champion
- BGM_BATTLE36, // regi
- BGM_BATTLE34, // weather trio
- BGM_BATTLE35, // rival
- BGM_BATTLE38, // elite four
- BGM_BATTLE30, // aqua/magma leader
+ /*0x1DB*/ BGM_BATTLE31, // aqua/magma grunt
+ /*0x1DC*/ BGM_BATTLE20, // trainer
+ /*0x1DD*/ BGM_BATTLE32, // gym leader
+ /*0x1DE*/ BGM_BATTLE33, // champion
+ /*0x1DF*/ BGM_BATTLE36, // regi
+ /*0x1E0*/ BGM_BATTLE34, // weather trio
+ /*0x1E1*/ BGM_BATTLE35, // rival
+ /*0x1E2*/ BGM_BATTLE38, // elite four
+ /*0x1E3*/ BGM_BATTLE30, // aqua/magma leader
/*0x1E4*/ BGM_FRLG_FOLLOW_ME, // FR/LG names not known, human-readable again!
BGM_FRLG_GAMECORNER,
BGM_FRLG_ROCKET_HIDEOUT,
@@ -453,14 +453,65 @@ enum
BGM_FRLG_ISLAND_FOUR,
BGM_FRLG_ISLAND_SIX,
BGM_FRLG_FLUTE,
- BGM_FRLG_BATTLE_DEOXYS,
- BGM_FRLG_BATTLE_MEWTWO,
- BGM_FRLG_BATTLE_LEGENDARY,
- BGM_FRLG_LEADER_EYE,
- BGM_FRLG_DEOXYS_EYE,
- BGM_FRLG_TRAINER_TOWER,
- BGM_FRLG_HALL_OF_FAME_PALLET_TOWN,
- /*0x22E*/BGM_FRLG_TEACHY_TV,
+ /*0x227*/ BGM_FRLG_BATTLE_DEOXYS,
+ /*0x228*/ BGM_FRLG_BATTLE_MEWTWO,
+ /*0x229*/ BGM_FRLG_BATTLE_LEGENDARY,
+ /*0x22A*/ BGM_FRLG_LEADER_EYE,
+ /*0x22B*/ BGM_FRLG_DEOXYS_EYE,
+ /*0x22C*/ BGM_FRLG_TRAINER_TOWER,
+ /*0x22D*/ BGM_FRLG_HALL_OF_FAME_PALLET_TOWN,
+ /*0x22E*/ BGM_FRLG_TEACHY_TV,
+ PH_TRAP_BLEND,
+ PH_TRAP_HELD,
+ PH_TRAP_SOLO,
+ PH_FACE_BLEND,
+ PH_FACE_HELD,
+ PH_FACE_SOLO,
+ PH_CLOTH_BLEND,
+ PH_CLOTH_HELD,
+ PH_CLOTH_SOLO,
+ PH_DRESS_BLEND,
+ PH_DRESS_HELD,
+ PH_DRESS_SOLO,
+ PH_FLEECE_BLEND,
+ PH_FLEECE_HELD,
+ PH_FLEECE_SOLO,
+ PH_KIT_BLEND,
+ PH_KIT_HELD,
+ PH_KIT_SOLO,
+ PH_PRICE_BLEND,
+ PH_PRICE_HELD,
+ PH_PRICE_SOLO,
+ PH_LOT_BLEND,
+ PH_LOT_HELD,
+ PH_LOT_SOLO,
+ PH_GOAT_BLEND,
+ PH_GOAT_HELD,
+ PH_GOAT_SOLO,
+ PH_THOUGHT_BLEND,
+ PH_THOUGHT_HELD,
+ PH_THOUGHT_SOLO,
+ PH_CHOICE_BLEND,
+ PH_CHOICE_HELD,
+ PH_CHOICE_SOLO,
+ PH_MOUTH_BLEND,
+ PH_MOUTH_HELD,
+ PH_MOUTH_SOLO,
+ PH_FOOT_BLEND,
+ PH_FOOT_HELD,
+ PH_FOOT_SOLO,
+ PH_GOOSE_BLEND,
+ PH_GOOSE_HELD,
+ PH_GOOSE_SOLO,
+ PH_STRUT_BLEND,
+ PH_STRUT_HELD,
+ PH_STRUT_SOLO,
+ PH_CURE_BLEND,
+ PH_CURE_HELD,
+ PH_CURE_SOLO,
+ PH_NURSE_BLEND,
+ PH_NURSE_HELD,
+ PH_NURSE_SOLO,
};
#endif // GUARD_SONGS_H
diff --git a/include/strings.h b/include/strings.h
index a2745d382..5521d828b 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1,45 +1,62 @@
#ifndef GUARD_STRINGS_H
#define GUARD_STRINGS_H
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-
extern const u8 gText_FromSpace[];
+
extern const u8 gText_Lv50[];
extern const u8 gText_OpenLevel[];
+
extern const u8 gText_Mom[];
extern const u8 gText_Dad[];
+
extern const u8 gText_Cool[];
extern const u8 gText_Beauty[];
extern const u8 gText_Cute[];
extern const u8 gText_Smart[];
extern const u8 gText_Tough[];
+
extern const u8 gText_Single[];
extern const u8 gText_Double[];
+
+extern const u8 gText_Spicy[];
+extern const u8 gText_Dry[];
+extern const u8 gText_Sweet[];
+extern const u8 gText_Bitter[];
+extern const u8 gText_Sour[];
+
+extern const u8 gText_StowCase[];
+extern const u8 gText_LvVar1[];
+
extern const u8 gText_Spicy2[];
extern const u8 gText_Dry2[];
extern const u8 gText_Sweet2[];
extern const u8 gText_Bitter2[];
extern const u8 gText_Sour2[];
+
extern const u8 gText_Excellent[];
extern const u8 gText_VeryGood[];
extern const u8 gText_Good[];
extern const u8 gText_SoSo[];
extern const u8 gText_Bad[];
extern const u8 gText_TheWorst[];
+
extern const u8 gText_Slots[];
extern const u8 gText_Roulette[];
extern const u8 gText_Jackpot[];
+
extern const u8 gText_First[];
extern const u8 gText_Second[];
extern const u8 gText_Third[];
+
extern const u8 gText_NoDecorations[];
extern const u8 gText_NoDecorationsInUse[];
+
extern const u8 gText_Exit[];
extern const u8 gText_Cancel[];
+
+extern const u8 gText_ThrowAwayVar1[];
+extern const u8 gText_Var1ThrownAway[];
+
extern const u8 gText_Color161Shadow161[];
extern const u8 gText_GoBackPrevMenu[];
extern const u8 gText_CantPlaceInRoom[];
@@ -56,12 +73,14 @@ extern const u8 gText_NoDecorationHere[];
extern const u8 gText_DecorationWillBeDiscarded[];
extern const u8 gText_CantThrowAwayInUse[];
extern const u8 gText_DecorationThrownAway[];
+
extern const u8 gText_Desk[];
extern const u8 gText_Chair[];
extern const u8 gText_Plant[];
extern const u8 gText_Ornament[];
extern const u8 gText_Mat[];
extern const u8 gText_Poster[];
+
extern const u8 gText_PutOutSelectedDecorItem[];
extern const u8 gText_StoreChosenDecorInPC[];
extern const u8 gText_ThrowAwayUnwantedDecors[];
@@ -82,7 +101,40 @@ extern const u8 gText_NoRegistry[];
extern const u8 gText_OkayToDeleteFromRegistry[];
extern const u8 gText_RegisteredDataDeleted[];
extern const u8 gUnknown_085EA79D[];
+extern const u8 gText_EmptyString2[];
+extern const u8 gText_Confirm3[];
+extern const u8 gText_Cancel4[];
+extern const u8 gText_IsThisTheCorrectTime[];
extern const u8 gText_PkmnFainted3[];
extern const u8 gText_Coins[];
+extern const u8 gText_Draw[];
+extern const u8 gText_Loss[];
+extern const u8 gText_Win[];
+
+extern const u8 gText_Var1AteTheVar2[];
+extern const u8 gText_Var1HappilyAteVar2[];
+extern const u8 gText_Var1DisdainfullyAteVar2[];
+
+extern const u8 gText_RedPokeblock[];
+extern const u8 gText_BluePokeblock[];
+extern const u8 gText_PinkPokeblock[];
+extern const u8 gText_GreenPokeblock[];
+extern const u8 gText_YellowPokeblock[];
+extern const u8 gText_PurplePokeblock[];
+extern const u8 gText_IndigoPokeblock[];
+extern const u8 gText_BrownPokeblock[];
+extern const u8 gText_LiteBluePokeblock[];
+extern const u8 gText_OlivePokeblock[];
+extern const u8 gText_GrayPokeblock[];
+extern const u8 gText_BlackPokeblock[];
+extern const u8 gText_WhitePokeblock[];
+extern const u8 gText_GoldPokeblock[];
+
+extern const u8 gMenuText_Use[];
+extern const u8 gMenuText_Toss[];
+extern const u8 gMenuText_Give[];
+extern const u8 gMenuText_Give2[];
+
+extern const u8 gText_Cancel2[];
#endif //GUARD_STRINGS_H
diff --git a/include/text_window.h b/include/text_window.h
index da3fb301e..0af007397 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -3,8 +3,8 @@
struct TilesPal
{
- u32* tiles;
- u16* pal;
+ u32 *tiles;
+ u16 *pal;
};
const struct TilesPal* sub_8098758(u8 id);
diff --git a/include/trainer_classes.h b/include/trainer_classes.h
deleted file mode 100644
index e5e26b359..000000000
--- a/include/trainer_classes.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef GUARD_TRAINER_CLASSES_H
-#define GUARD_TRAINER_CLASSES_H
-
-enum
-{
- CLASS_PKMN_TRAINER0, // 0
- CLASS_PKMN_TRAINER1, // 1
- CLASS_HIKER, // 2
- CLASS_TEAM_AQUA, // 3
- CLASS_PKMN_BREEDER, // 4
- CLASS_COOLTRAINER, // 5
- CLASS_BIRDKEEPER, // 6
- CLASS_COLLECTOR, // 7
- CLASS_SWIMMER_MALE, // 8
- CLASS_TEAM_MAGMA, // 9
- CLASS_EXPERT, // 0xA
- CLASS_AQUA_ADMIN, // 0xB
- CLASS_BLACK_BELT, // 0xC
- CLASS_AQUA_LEADER, // 0xD
- CLASS_HEX_MANIAC, // 0xE
- CLASS_AROMA_LADY, // 0xF
- CLASS_RUIN_MANIAC, // 0x10
- CLASS_INTERVIEWER, // 0x11
- CLASS_TUBER_FEMALE, // 0x12
- CLASS_TUBER_MALE, // 0x13
- CLASS_LADY, // 0x14
- CLASS_BEAUTY, // 0x15
- CLASS_RICH_BOY, // 0x16
- CLASS_POKEMANIAC, // 0x17
- CLASS_GUITARIST, // 0x18
- CLASS_KINDLER, // 0x19
- CLASS_CAMPER, // 0x1A
- CLASS_PICKNICKER, // 0x1B
- CLASS_BUG_MANIAC, // 0x1C
- CLASS_PSYCHIC, // 0x1D
- CLASS_GENTLEMAN, // 0x1E
- CLASS_ELITE_FOUR, // 0x1F
- CLASS_LEADER, // 0x20
- CLASS_SCHOOL_KID, // 0x21
- CLASS_SCHOOL_SR_JR, // 0x22
- CLASS_WINSTRATE, // 0x23
- CLASS_POKE_FAN, // 0x24
- CLASS_YOUNGSTER, // 0x25
- CLASS_CHAMPION, // 0x26
- CLASS_FISHERMAN, // 0x27
- CLASS_TRIATHLETE, // 0x28
- CLASS_DRAGON_TAMER, // 0x29
- CLASS_NINJA_BOY, // 0x2A
- CLASS_BATTLE_GIRL, // 0x2B
- CLASS_PARASOL_LADY, // 0x2C
- CLASS_SWIMMER_FEMALE, // 0x2D
- CLASS_TWINS, // 0x2E
- CLASS_SAILOR, // 0x2F
- CLASS_COOLTRAINER_2, // 0x30
- CLASS_MAGMA_ADMIN, // 0x31
- CLASS_PKMN_TRAINER_RIVAL, // 0x32
- CLASS_BUG_CATCHER, // 0x33
- CLASS_PKMN_RANGER, // 0x34
- CLASS_MAGMA_LEADER, // 0x35
- CLASS_LASS, // 0x36
- CLASS_YOUNG_COUPLE, // 0x37
- CLASS_OLD_COUPLE, // 0x38
- CLASS_SIS_AND_BRO, // 0x39
- CLASS_SALON_MAIDEN, // 0x3A
- CLASS_DOME_ACE, // 0x3B
- CLASS_PALACE_MAVEN, // 0x3C
- CLASS_ARENA_TYCOON, // 0x3D
- CLASS_FACTORY_HEAD, // 0x3E
- CLASS_PIKE_QUEEN, // 0x3F
- CLASS_PYRAMID_KING, // 0x40
- CLASS_PKMN_TRAINER2, // 0x41
-};
-
-#endif // GUARD_TRAINER_CLASSES_H
diff --git a/include/trainer_front_sprites.h b/include/trainer_front_sprites.h
deleted file mode 100644
index 3259bec88..000000000
--- a/include/trainer_front_sprites.h
+++ /dev/null
@@ -1,101 +0,0 @@
-#ifndef GUARD_TRAINER_FRONT_SPRITES_H
-#define GUARD_TRAINER_FRONT_SPRITES_H
-
-enum
-{
- TRAINER_FRONT_PIC_HIKER,
- TRAINER_FRONT_PIC_AQUA_GRUNT_M,
- TRAINER_FRONT_PIC_PKMN_BREEDER_F,
- TRAINER_FRONT_PIC_COOLTRAINER_M,
- TRAINER_FRONT_PIC_BIRD_KEEPER,
- TRAINER_FRONT_PIC_COLLECTOR,
- TRAINER_FRONT_PIC_AQUA_GRUNT_F,
- TRAINER_FRONT_PIC_SWIMMER_M,
- TRAINER_FRONT_PIC_MAGMA_GRUNT_M,
- TRAINER_FRONT_PIC_EXPERT_M,
- TRAINER_FRONT_PIC_AQUA_ADMIN_M,
- TRAINER_FRONT_PIC_BLACK_BELT,
- TRAINER_FRONT_PIC_AQUA_ADMIN_F,
- TRAINER_FRONT_PIC_AQUA_LEADER,
- TRAINER_FRONT_PIC_HEX_MANIAC,
- TRAINER_FRONT_PIC_AROMA_LADY,
- TRAINER_FRONT_PIC_RUIN_MANIAC,
- TRAINER_FRONT_PIC_INTERVIEWER,
- TRAINER_FRONT_PIC_TUBER_F,
- TRAINER_FRONT_PIC_TUBER_M,
- TRAINER_FRONT_PIC_COOLTRAINER_F,
- TRAINER_FRONT_PIC_LADY,
- TRAINER_FRONT_PIC_BEAUTY,
- TRAINER_FRONT_PIC_RICH_BOY,
- TRAINER_FRONT_PIC_EXPERT_F,
- TRAINER_FRONT_PIC_POKE_MANIAC,
- TRAINER_FRONT_PIC_MAGMA_GRUNT_F,
- TRAINER_FRONT_PIC_GUITARIST,
- TRAINER_FRONT_PIC_KINDLER,
- TRAINER_FRONT_PIC_CAMPER,
- TRAINER_FRONT_PIC_PICNICKER,
- TRAINER_FRONT_PIC_BUG_MANIAC,
- TRAINER_FRONT_PIC_PKMN_BREEDER_M,
- TRAINER_FRONT_PIC_PSYCHIC_M,
- TRAINER_FRONT_PIC_PSYCHIC_F,
- TRAINER_FRONT_PIC_GENTLEMAN,
- TRAINER_FRONT_PIC_SIDNEY,
- TRAINER_FRONT_PIC_PHOEBE,
- TRAINER_FRONT_PIC_GLACIA,
- TRAINER_FRONT_PIC_DRAKE,
- TRAINER_FRONT_PIC_ROXANNE,
- TRAINER_FRONT_PIC_BRAWLY,
- TRAINER_FRONT_PIC_WATTSON,
- TRAINER_FRONT_PIC_FLANNERY,
- TRAINER_FRONT_PIC_NORMAN,
- TRAINER_FRONT_PIC_WINONA,
- TRAINER_FRONT_PIC_TATE_LIZA,
- TRAINER_FRONT_PIC_JUAN,
- TRAINER_FRONT_PIC_SCHOOL_KID_M,
- TRAINER_FRONT_PIC_SCHOOL_KID_F,
- TRAINER_FRONT_PIC_SR_JR,
- TRAINER_FRONT_PIC_POKÉFAN_M,
- TRAINER_FRONT_PIC_POKÉFAN_F,
- TRAINER_FRONT_PIC_YOUNGSTER,
- TRAINER_FRONT_PIC_WALLACE,
- TRAINER_FRONT_PIC_FISHERMAN,
- TRAINER_FRONT_PIC_TRIATHLETE_BIKER_M,
- TRAINER_FRONT_PIC_TRIATHLETE_BIKER_F,
- TRAINER_FRONT_PIC_TRIATHLETE_JOGGER_M,
- TRAINER_FRONT_PIC_TRIATHLETE_JOGGER_F,
- TRAINER_FRONT_PIC_TRIATHLETE_SWIMMER_M,
- TRAINER_FRONT_PIC_TRIATHLETE_SWIMMER_F,
- TRAINER_FRONT_PIC_DRAGON_TAMER,
- TRAINER_FRONT_PIC_NINJA_BOY,
- TRAINER_FRONT_PIC_BATTLE_GIRL,
- TRAINER_FRONT_PIC_PARASOL_LADY,
- TRAINER_FRONT_PIC_SWIMMER_F,
- TRAINER_FRONT_PIC_TWINS,
- TRAINER_FRONT_PIC_SAILOR,
- TRAINER_FRONT_PIC_MAGMA_ADMIN_M,
- TRAINER_FRONT_PIC_WALLY,
- TRAINER_FRONT_PIC_BRENDAN_E,
- TRAINER_FRONT_PIC_MAY_E,
- TRAINER_FRONT_PIC_BUG_CATCHER,
- TRAINER_FRONT_PIC_PKMN_RANGER_M,
- TRAINER_FRONT_PIC_PKMN_RANGER_F,
- TRAINER_FRONT_PIC_MAGMA_LEADER,
- TRAINER_FRONT_PIC_LASS,
- TRAINER_FRONT_PIC_YOUNG_COUPLE,
- TRAINER_FRONT_PIC_OLD_COUPLE,
- TRAINER_FRONT_PIC_SIS_AND_BRO,
- TRAINER_FRONT_PIC_STEVEN,
- TRAINER_FRONT_PIC_ANABEL,
- TRAINER_FRONT_PIC_TUCKER,
- TRAINER_FRONT_PIC_SPENSER,
- TRAINER_FRONT_PIC_GRETA,
- TRAINER_FRONT_PIC_NOLAND,
- TRAINER_FRONT_PIC_LUCY,
- TRAINER_FRONT_PIC_BRANDON,
- TRAINER_FRONT_PIC_RED,
- TRAINER_FRONT_PIC_LEAF,
- TRAINER_FRONT_PIC_BRENDAN_RS,
- TRAINER_FRONT_PIC_MAY_RS
-};
-
-#endif // GUARD_TRAINER_FRONT_SPRITES_H
diff --git a/include/trainer_ids.h b/include/trainer_ids.h
deleted file mode 100644
index 65c80187f..000000000
--- a/include/trainer_ids.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef GUARD_TRAINER_IDS_H
-#define GUARD_TRAINER_IDS_H
-
-#define NO_OF_TRAINERS 854
-#define TRAINER_ID_STEVEN 804
-
-#endif // GUARD_TRAINER_IDS_H
diff --git a/include/trainer_see.h b/include/trainer_see.h
index ab035d9f8..847380782 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -1,8 +1,30 @@
#ifndef GUARD_TRAINER_SEE_H
#define GUARD_TRAINER_SEE_H
-void sub_80B4578(struct MapObject *);
-u8 sub_80B47BC(void);
-void sub_8155D78(struct MapObject *);
+struct ApproachingTrainer
+{
+ u8 mapObjectId;
+ u8 radius; // plus 1
+ const u8 *trainerScriptPtr;
+ u8 taskId;
+};
-#endif //GUARD_TRAINER_SEE_H
+extern u16 gUnknown_03006080;
+extern u8 gUnknown_03006084[4];
+extern struct ApproachingTrainer gApproachingTrainers[2];
+extern u8 gNoOfApproachingTrainers;
+extern u8 gUnknown_030060AC;
+extern u8 gApproachingTrainerId;
+
+bool8 CheckForTrainersWantingBattle(void);
+void sub_80B4578(struct MapObject *var);
+void EndTrainerApproach(void);
+void sub_80B45D0(void);
+u8 FldEff_ExclamationMarkIcon1(void);
+u8 FldEff_ExclamationMarkIcon2(void);
+u8 FldEff_HeartIcon(void);
+u8 GetCurrentApproachingTrainerMapObjectId(void);
+u8 GetChosenApproachingTrainerMapObjectId(u8 arrayId);
+void sub_80B4808(void);
+
+#endif // GUARD_TRAINER_SEE_H
diff --git a/include/tv.h b/include/tv.h
index 75338704f..eca11385e 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -15,5 +15,6 @@ void sub_80F14F8(TVShow *shows);
size_t sub_80EF370(int value);
bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
void SetPokemonAnglerSpecies(u16 species);
+void UpdateTVShowsPerDay(u16 days);
#endif //GUARD_TV_H
diff --git a/include/wallclock.h b/include/wallclock.h
new file mode 100644
index 000000000..48697c19f
--- /dev/null
+++ b/include/wallclock.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_WALLCLOCK_H
+#define GUARD_WALLCLOCK_H
+
+void Cb2_StartWallClock(void);
+
+#endif //GUARD_WALLCLOCK_H