summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h11
-rw-r--r--include/battle_anim_813F0F4.h2
-rw-r--r--include/battle_setup.h8
-rwxr-xr-xinclude/constants/bg_event_constants.h13
-rwxr-xr-xinclude/constants/event_object_movement_constants.h221
-rw-r--r--include/constants/heal_locations.h27
-rwxr-xr-xinclude/constants/map_types.h25
-rw-r--r--include/constants/opponents.h1388
-rw-r--r--include/constants/region_map_sections.h181
-rw-r--r--include/constants/species.h832
-rw-r--r--include/event_object_movement.h221
-rw-r--r--include/global.fieldmap.h29
-rw-r--r--include/global.h13
-rw-r--r--include/graphics.h4
-rw-r--r--include/heal_location.h2
-rw-r--r--include/macros/map.inc25
-rw-r--r--include/pokeball.h4
-rw-r--r--include/pokemon.h1
-rw-r--r--include/pokemon_storage_system.h36
-rw-r--r--include/pokenav.h134
-rw-r--r--include/region_map.h1
-rw-r--r--include/secret_base.h2
-rw-r--r--include/use_pokeblock.h1
23 files changed, 2074 insertions, 1107 deletions
diff --git a/include/battle.h b/include/battle.h
index 06a390cdf..ac95f6fff 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -3,6 +3,7 @@
#include "sprite.h"
#include "constants/battle_constants.h"
+#include "battle_setup.h"
#define GET_BATTLER_POSITION(bank)((gBattlerPositions[bank]))
#define GET_BATTLER_SIDE(bank)((GetBattlerPosition(bank) & BIT_SIDE))
@@ -60,6 +61,14 @@ enum
BATTLE_TERRAIN_PLAIN,
};
+union TrainerMonPtr
+{
+ const struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves;
+ const struct TrainerMonNoItemCustomMoves *NoItemCustomMoves;
+ const struct TrainerMonItemDefaultMoves *ItemDefaultMoves;
+ const struct TrainerMonItemCustomMoves *ItemCustomMoves;
+};
+
struct Trainer
{
/*0x00*/ u8 partyFlags;
@@ -71,7 +80,7 @@ struct Trainer
/*0x18*/ bool8 doubleBattle;
/*0x1C*/ u32 aiFlags;
/*0x20*/ u8 partySize;
- /*0x24*/ const void *party;
+ /*0x24*/ union TrainerMonPtr party;
};
struct BattleHistory
diff --git a/include/battle_anim_813F0F4.h b/include/battle_anim_813F0F4.h
index 9916f2fe6..fea5d186d 100644
--- a/include/battle_anim_813F0F4.h
+++ b/include/battle_anim_813F0F4.h
@@ -3,7 +3,7 @@
void sub_8141828(u8, struct Pokemon *);
u8 ball_number_to_ball_processing_index(u16);
-u8 sub_814086C(u8, u8, u8, u8, u8);
+u8 AnimateBallOpenParticles(u8, u8, u8, u8, u8);
u8 sub_8141314(u8, u8, u32, u8);
#endif // GUARD_BATTLE_ANIM_813F0F4_H
diff --git a/include/battle_setup.h b/include/battle_setup.h
index 88afcdf0a..fec5a249a 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -5,7 +5,7 @@
#define TRAINER_REMATCH_STEPS 255
// IV + LEVEL + SPECIES
-struct TrainerPartyMember0
+struct TrainerMonNoItemDefaultMoves
{
u16 iv;
u8 level;
@@ -13,7 +13,7 @@ struct TrainerPartyMember0
};
// IV + LEVEL + SPECIES + MOVES
-struct TrainerPartyMember1
+struct TrainerMonNoItemCustomMoves
{
u16 iv;
u8 level;
@@ -22,7 +22,7 @@ struct TrainerPartyMember1
};
// IV + LEVEL + SPECIES + ITEMS
-struct TrainerPartyMember2
+struct TrainerMonItemDefaultMoves
{
u16 iv;
u8 level;
@@ -31,7 +31,7 @@ struct TrainerPartyMember2
};
// IV + LEVEL + SPECIES + ITEMS + MOVES
-struct TrainerPartyMember3
+struct TrainerMonItemCustomMoves
{
u16 iv;
u8 level;
diff --git a/include/constants/bg_event_constants.h b/include/constants/bg_event_constants.h
new file mode 100755
index 000000000..a915bc509
--- /dev/null
+++ b/include/constants/bg_event_constants.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_CONSTANTS_BG_EVENT_H
+#define GUARD_CONSTANTS_BG_EVENT_H
+
+#define BG_EVENT_PLAYER_FACING_ANY 0
+#define BG_EVENT_PLAYER_FACING_NORTH 1
+#define BG_EVENT_PLAYER_FACING_SOUTH 2
+#define BG_EVENT_PLAYER_FACING_EAST 3
+#define BG_EVENT_PLAYER_FACING_WEST 4
+
+#define BG_EVENT_HIDDEN_ITEM 7
+#define BG_EVENT_SECRET_BASE 8
+
+#endif // GUARD_CONSTANTS_BG_EVENT_H
diff --git a/include/constants/event_object_movement_constants.h b/include/constants/event_object_movement_constants.h
new file mode 100755
index 000000000..81d2417a1
--- /dev/null
+++ b/include/constants/event_object_movement_constants.h
@@ -0,0 +1,221 @@
+#ifndef GUARD_CONSTANTS_EVENTOBJMV_H
+#define GUARD_CONSTANTS_EVENTOBJMV_H
+
+#define MOVEMENT_TYPE_NONE 0x0
+#define MOVEMENT_TYPE_LOOK_AROUND 0x1
+#define MOVEMENT_TYPE_WANDER_AROUND 0x2
+#define MOVEMENT_TYPE_WANDER_UP_AND_DOWN 0x3
+#define MOVEMENT_TYPE_WANDER_DOWN_AND_UP 0x4
+#define MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT 0x5
+#define MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT 0x6
+#define MOVEMENT_TYPE_FACE_UP 0x7
+#define MOVEMENT_TYPE_FACE_DOWN 0x8
+#define MOVEMENT_TYPE_FACE_LEFT 0x9
+#define MOVEMENT_TYPE_FACE_RIGHT 0xA
+#define MOVEMENT_TYPE_PLAYER 0xB
+#define MOVEMENT_TYPE_BERRY_TREE_GROWTH 0xC
+#define MOVEMENT_TYPE_FACE_DOWN_AND_UP 0xD
+#define MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT 0xE
+#define MOVEMENT_TYPE_FACE_UP_AND_LEFT 0xF
+#define MOVEMENT_TYPE_FACE_UP_AND_RIGHT 0x10
+#define MOVEMENT_TYPE_FACE_DOWN_AND_LEFT 0x11
+#define MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT 0x12
+#define MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT 0x13
+#define MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT 0x14
+#define MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT 0x15
+#define MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT 0x16
+#define MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE 0x17
+#define MOVEMENT_TYPE_ROTATE_CLOCKWISE 0x18
+#define MOVEMENT_TYPE_WALK_UP_AND_DOWN 0x19
+#define MOVEMENT_TYPE_WALK_DOWN_AND_UP 0x1A
+#define MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT 0x1B
+#define MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT 0x1C
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN 0x1D
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP 0x1E
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT 0x1F
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT 0x20
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN 0x21
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP 0x22
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT 0x23
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT 0x24
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT 0x25
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT 0x26
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN 0x27
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP 0x28
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT 0x29
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT 0x2A
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN 0x2B
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP 0x2C
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT 0x2D
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT 0x2E
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP 0x2F
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN 0x30
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT 0x31
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT 0x32
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN 0x33
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP 0x34
+#define MOVEMENT_TYPE_COPY_PLAYER 0x35
+#define MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE 0x36
+#define MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE 0x37
+#define MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE 0x38
+#define MOVEMENT_TYPE_TREE_DISGUISE 0x39
+#define MOVEMENT_TYPE_MOUNTAIN_DISGUISE 0x3A
+#define MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS 0x3B
+#define MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS 0x3C
+#define MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS 0x3D
+#define MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS 0x3E
+#define MOVEMENT_TYPE_HIDDEN 0x3F
+#define MOVEMENT_TYPE_WALK_IN_PLACE_DOWN 0x40
+#define MOVEMENT_TYPE_WALK_IN_PLACE_UP 0x41
+#define MOVEMENT_TYPE_WALK_IN_PLACE_LEFT 0x42
+#define MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT 0x43
+#define MOVEMENT_TYPE_JOG_IN_PLACE_DOWN 0x44
+#define MOVEMENT_TYPE_JOG_IN_PLACE_UP 0x45
+#define MOVEMENT_TYPE_JOG_IN_PLACE_LEFT 0x46
+#define MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT 0x47
+#define MOVEMENT_TYPE_RUN_IN_PLACE_DOWN 0x48
+#define MOVEMENT_TYPE_RUN_IN_PLACE_UP 0x49
+#define MOVEMENT_TYPE_RUN_IN_PLACE_LEFT 0x4A
+#define MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT 0x4B
+#define MOVEMENT_TYPE_INVISIBLE 0x4C
+
+#define MOVEMENT_ACTION_FACE_DOWN 0x0
+#define MOVEMENT_ACTION_FACE_UP 0x1
+#define MOVEMENT_ACTION_FACE_LEFT 0x2
+#define MOVEMENT_ACTION_FACE_RIGHT 0x3
+#define MOVEMENT_ACTION_WALK_SLOW_DOWN 0x4
+#define MOVEMENT_ACTION_WALK_SLOW_UP 0x5
+#define MOVEMENT_ACTION_WALK_SLOW_LEFT 0x6
+#define MOVEMENT_ACTION_WALK_SLOW_RIGHT 0x7
+#define MOVEMENT_ACTION_WALK_NORMAL_DOWN 0x8
+#define MOVEMENT_ACTION_WALK_NORMAL_UP 0x9
+#define MOVEMENT_ACTION_WALK_NORMAL_LEFT 0xA
+#define MOVEMENT_ACTION_WALK_NORMAL_RIGHT 0xB
+#define MOVEMENT_ACTION_JUMP_2_DOWN 0xC
+#define MOVEMENT_ACTION_JUMP_2_UP 0xD
+#define MOVEMENT_ACTION_JUMP_2_LEFT 0xE
+#define MOVEMENT_ACTION_JUMP_2_RIGHT 0xF
+#define MOVEMENT_ACTION_DELAY_1 0x10
+#define MOVEMENT_ACTION_DELAY_2 0x11
+#define MOVEMENT_ACTION_DELAY_4 0x12
+#define MOVEMENT_ACTION_DELAY_8 0x13
+#define MOVEMENT_ACTION_DELAY_16 0x14
+#define MOVEMENT_ACTION_WALK_FAST_DOWN 0x15
+#define MOVEMENT_ACTION_WALK_FAST_UP 0x16
+#define MOVEMENT_ACTION_WALK_FAST_LEFT 0x17
+#define MOVEMENT_ACTION_WALK_FAST_RIGHT 0x18
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN 0x19
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP 0x1A
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT 0x1B
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT 0x1C
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN 0x1D
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP 0x1E
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT 0x1F
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT 0x20
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN 0x21
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP 0x22
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT 0x23
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT 0x24
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN 0x25
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP 0x26
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT 0x27
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT 0x28
+#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN 0x29
+#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP 0x2A
+#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT 0x2B
+#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT 0x2C
+#define MOVEMENT_ACTION_WALK_FASTEST_DOWN 0x2D
+#define MOVEMENT_ACTION_WALK_FASTEST_UP 0x2E
+#define MOVEMENT_ACTION_WALK_FASTEST_LEFT 0x2F
+#define MOVEMENT_ACTION_WALK_FASTEST_RIGHT 0x30
+#define MOVEMENT_ACTION_SLIDE_DOWN 0x31
+#define MOVEMENT_ACTION_SLIDE_UP 0x32
+#define MOVEMENT_ACTION_SLIDE_LEFT 0x33
+#define MOVEMENT_ACTION_SLIDE_RIGHT 0x34
+#define MOVEMENT_ACTION_PLAYER_RUN_DOWN 0x35
+#define MOVEMENT_ACTION_PLAYER_RUN_UP 0x36
+#define MOVEMENT_ACTION_PLAYER_RUN_LEFT 0x37
+#define MOVEMENT_ACTION_PLAYER_RUN_RIGHT 0x38
+#define MOVEMENT_ACTION_START_ANIM_IN_DIRECTION 0x39
+#define MOVEMENT_ACTION_JUMP_SPECIAL_DOWN 0x3A
+#define MOVEMENT_ACTION_JUMP_SPECIAL_UP 0x3B
+#define MOVEMENT_ACTION_JUMP_SPECIAL_LEFT 0x3C
+#define MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT 0x3D
+#define MOVEMENT_ACTION_FACE_PLAYER 0x3E
+#define MOVEMENT_ACTION_FACE_AWAY_PLAYER 0x3F
+#define MOVEMENT_ACTION_LOCK_FACING_DIRECTION 0x40
+#define MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION 0x41
+#define MOVEMENT_ACTION_JUMP_DOWN 0x42
+#define MOVEMENT_ACTION_JUMP_UP 0x43
+#define MOVEMENT_ACTION_JUMP_LEFT 0x44
+#define MOVEMENT_ACTION_JUMP_RIGHT 0x45
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN 0x46
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_UP 0x47
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT 0x48
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT 0x49
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP 0x4A
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN 0x4B
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT 0x4C
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT 0x4D
+#define MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION 0x4E
+#define MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN 0x4F
+#define MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT 0x50
+#define MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT 0x51
+#define MOVEMENT_ACTION_DISABLE_ANIMATION 0x52
+#define MOVEMENT_ACTION_RESTORE_ANIMATION 0x53
+#define MOVEMENT_ACTION_SET_INVISIBLE 0x54
+#define MOVEMENT_ACTION_SET_VISIBLE 0x55
+#define MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK 0x56
+#define MOVEMENT_ACTION_EMOTE_QUESTION_MARK 0x57
+#define MOVEMENT_ACTION_EMOTE_HEART 0x58
+#define MOVEMENT_ACTION_REVEAL_TRAINER 0x59
+#define MOVEMENT_ACTION_ROCK_SMASH_BREAK 0x5A
+#define MOVEMENT_ACTION_CUT_TREE 0x5B
+#define MOVEMENT_ACTION_SET_FIXED_PRIORITY 0x5C
+#define MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY 0x5D
+#define MOVEMENT_ACTION_INIT_AFFINE_ANIM 0x5E
+#define MOVEMENT_ACTION_CLEAR_AFFINE_ANIM 0x5F
+#define MOVEMENT_ACTION_WALK_DOWN_START_AFFINE 0x60
+#define MOVEMENT_ACTION_WALK_DOWN_AFFINE_1 0x61
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN 0x62
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP 0x63
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT 0x64
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT 0x65
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN 0x66
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP 0x67
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT 0x68
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT 0x69
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN 0x6A
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP 0x6B
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT 0x6C
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT 0x6D
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN 0x6E
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP 0x6F
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT 0x70
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT 0x71
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN 0x72
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP 0x73
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT 0x74
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT 0x75
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN 0x76
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP 0x77
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT 0x78
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT 0x79
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN 0x7A
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP 0x7B
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT 0x7C
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT 0x7D
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN 0x7E
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP 0x7F
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT 0x80
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT 0x81
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN 0x82
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP 0x83
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT 0x84
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT 0x85
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN 0x86
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP 0x87
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT 0x88
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT 0x89
+
+#endif // GUARD_CONSTANTS_EVENTOBJMV_H
diff --git a/include/constants/heal_locations.h b/include/constants/heal_locations.h
new file mode 100644
index 000000000..721bc5a3c
--- /dev/null
+++ b/include/constants/heal_locations.h
@@ -0,0 +1,27 @@
+#ifndef GUARD_CONSTANTS_HEAL_LOCATIONS_H
+#define GUARD_CONSTANTS_HEAL_LOCATIONS_H
+
+#define HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1
+#define HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F 2
+#define HEAL_LOCATION_PETALBURG_CITY 3
+#define HEAL_LOCATION_SLATEPORT_CITY 4
+#define HEAL_LOCATION_MAUVILLE_CITY 5
+#define HEAL_LOCATION_RUSTBORO_CITY 6
+#define HEAL_LOCATION_FORTREE_CITY 7
+#define HEAL_LOCATION_LILYCOVE_CITY 8
+#define HEAL_LOCATION_MOSSDEEP_CITY 9
+#define HEAL_LOCATION_SOOTOPOLIS_CITY 10
+#define HEAL_LOCATION_EVER_GRANDE_CITY_1 11
+#define HEAL_LOCATION_LITTLEROOT_TOWN_1 12
+#define HEAL_LOCATION_LITTLEROOT_TOWN_2 13
+#define HEAL_LOCATION_OLDALE_TOWN 14
+#define HEAL_LOCATION_DEWFORD_TOWN 15
+#define HEAL_LOCATION_LAVARIDGE_TOWN 16
+#define HEAL_LOCATION_FALLARBOR_TOWN 17
+#define HEAL_LOCATION_VERDANTURF_TOWN 18
+#define HEAL_LOCATION_PACIFIDLOG_TOWN 19
+#define HEAL_LOCATION_EVER_GRANDE_CITY_2 20
+#define HEAL_LOCATION_BATTLE_TOWER_OUTSIDE 21
+#define HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR 22
+
+#endif // GUARD_CONSTANTS_HEAL_LOCATIONS_H
diff --git a/include/constants/map_types.h b/include/constants/map_types.h
new file mode 100755
index 000000000..cc9ecf8a3
--- /dev/null
+++ b/include/constants/map_types.h
@@ -0,0 +1,25 @@
+#ifndef GUARD_CONSTANTS_MAP_TYPES_H
+#define GUARD_CONSTANTS_MAP_TYPES_H
+
+#define MAP_TYPE_0 0
+#define MAP_TYPE_TOWN 1
+#define MAP_TYPE_CITY 2
+#define MAP_TYPE_ROUTE 3
+#define MAP_TYPE_UNDERGROUND 4
+#define MAP_TYPE_UNDERWATER 5
+#define MAP_TYPE_6 6
+#define MAP_TYPE_7 7
+#define MAP_TYPE_INDOOR 8
+#define MAP_TYPE_SECRET_BASE 9
+
+#define MAP_BATTLE_SCENE_NORMAL 0
+#define MAP_BATTLE_SCENE_GYM 1
+#define MAP_BATTLE_SCENE_MAGMA 2
+#define MAP_BATTLE_SCENE_AQUA 3
+#define MAP_BATTLE_SCENE_SIDNEY 4
+#define MAP_BATTLE_SCENE_PHOEBE 5
+#define MAP_BATTLE_SCENE_GLACIA 6
+#define MAP_BATTLE_SCENE_DRAKE 7
+#define MAP_BATTLE_SCENE_BATTLE_TOWER 8
+
+#endif // GUARD_CONSTANTS_MAP_TYPES_H
diff --git a/include/constants/opponents.h b/include/constants/opponents.h
index d907153bd..11dd87ec4 100644
--- a/include/constants/opponents.h
+++ b/include/constants/opponents.h
@@ -1,699 +1,699 @@
#ifndef GUARD_CONSTANTS_OPPONENTS_H
#define GUARD_CONSTANTS_OPPONENTS_H
-#define OPPONENT_NONE 0
-#define OPPONENT_ARCHIE_1 1
-#define OPPONENT_GRUNT_1 2
-#define OPPONENT_GRUNT_2 3
-#define OPPONENT_GRUNT_3 4
-#define OPPONENT_GRUNT_4 5
-#define OPPONENT_GRUNT_5 6
-#define OPPONENT_GRUNT_6 7
-#define OPPONENT_GRUNT_7 8
-#define OPPONENT_GRUNT_8 9
-#define OPPONENT_GRUNT_9 10
-#define OPPONENT_GRUNT_10 11
-#define OPPONENT_GRUNT_11 12
-#define OPPONENT_GRUNT_12 13
-#define OPPONENT_GRUNT_13 14
-#define OPPONENT_GRUNT_14 15
-#define OPPONENT_GRUNT_15 16
-#define OPPONENT_GRUNT_16 17
-#define OPPONENT_GRUNT_17 18
-#define OPPONENT_GRUNT_18 19
-#define OPPONENT_GRUNT_19 20
-#define OPPONENT_GRUNT_20 21
-#define OPPONENT_GRUNT_21 22
-#define OPPONENT_GRUNT_22 23
-#define OPPONENT_GRUNT_23 24
-#define OPPONENT_GRUNT_24 25
-#define OPPONENT_GRUNT_25 26
-#define OPPONENT_GRUNT_26 27
-#define OPPONENT_GRUNT_27 28
-#define OPPONENT_ANONYMOUS_1 29
-#define OPPONENT_MATT_1 30
-#define OPPONENT_MATT_2 31
-#define OPPONENT_SHELLY_1 32
-#define OPPONENT_SHELLY_2 33
-#define OPPONENT_ARCHIE_2 34
-#define OPPONENT_ARCHIE_3 35
-#define OPPONENT_DAISY 36
-#define OPPONENT_ROSE_1 37
-#define OPPONENT_LILY 38
-#define OPPONENT_VIOLET 39
-#define OPPONENT_ROSE_2 40
-#define OPPONENT_ROSE_3 41
-#define OPPONENT_ROSE_4 42
-#define OPPONENT_ROSE_5 43
-#define OPPONENT_DUSTY_1 44
-#define OPPONENT_CHIP 45
-#define OPPONENT_FOSTER 46
-#define OPPONENT_DUSTY_2 47
-#define OPPONENT_DUSTY_3 48
-#define OPPONENT_DUSTY_4 49
-#define OPPONENT_DUSTY_5 50
-#define OPPONENT_GABBY_AND_TY_1 51
-#define OPPONENT_GABBY_AND_TY_2 52
-#define OPPONENT_GABBY_AND_TY_3 53
-#define OPPONENT_GABBY_AND_TY_4 54
-#define OPPONENT_GABBY_AND_TY_5 55
-#define OPPONENT_GABBY_AND_TY_6 56
-#define OPPONENT_LOLA_1 57
-#define OPPONENT_CARMEN 58
-#define OPPONENT_GWEN 59
-#define OPPONENT_LOLA_2 60
-#define OPPONENT_LOLA_3 61
-#define OPPONENT_LOLA_4 62
-#define OPPONENT_LOLA_5 63
-#define OPPONENT_RICKY_1 64
-#define OPPONENT_SIMON 65
-#define OPPONENT_CHARLIE 66
-#define OPPONENT_RICKY_2 67
-#define OPPONENT_RICKY_3 68
-#define OPPONENT_RICKY_4 69
-#define OPPONENT_RICKY_5 70
-#define OPPONENT_RANDALL 71
-#define OPPONENT_PARKER 72
-#define OPPONENT_GEORGE 73
-#define OPPONENT_BERKE 74
-#define OPPONENT_CLYDE 75
-#define OPPONENT_VINCENT 76
-#define OPPONENT_LEROY 77
-#define OPPONENT_WILTON_1 78
-#define OPPONENT_EDGAR 79
-#define OPPONENT_ALBERT 80
-#define OPPONENT_SAMUEL 81
-#define OPPONENT_VITO 82
-#define OPPONENT_OWEN 83
-#define OPPONENT_WILTON_2 84
-#define OPPONENT_WILTON_3 85
-#define OPPONENT_WILTON_4 86
-#define OPPONENT_WILTON_5 87
-#define OPPONENT_WARREN 88
-#define OPPONENT_MARY 89
-#define OPPONENT_LORI 90
-#define OPPONENT_JODY 91
-#define OPPONENT_WENDY 92
-#define OPPONENT_ELAINE 93
-#define OPPONENT_BROOKE_1 94
-#define OPPONENT_JENNIFER 95
-#define OPPONENT_HOPE 96
-#define OPPONENT_SHANNON 97
-#define OPPONENT_MICHELLE 98
-#define OPPONENT_CAROLINE 99
-#define OPPONENT_JULIE 100
-#define OPPONENT_BROOKE_2 101
-#define OPPONENT_BROOKE_3 102
-#define OPPONENT_BROOKE_4 103
-#define OPPONENT_BROOKE_5 104
-#define OPPONENT_PATRICIA 105
-#define OPPONENT_KINDRA 106
-#define OPPONENT_TAMMY 107
-#define OPPONENT_VALERIE_1 108
-#define OPPONENT_TASHA 109
-#define OPPONENT_VALERIE_2 110
-#define OPPONENT_VALERIE_3 111
-#define OPPONENT_VALERIE_4 112
-#define OPPONENT_VALERIE_5 113
-#define OPPONENT_CINDY_1 114
-#define OPPONENT_ANONYMOUS_2 115
-#define OPPONENT_BRIANNA_1 116
-#define OPPONENT_CINDY_2 117
-#define OPPONENT_BRIANNA_2 118
-#define OPPONENT_ANETTE 119
-#define OPPONENT_CINDY_3 120
-#define OPPONENT_CINDY_4 121
-#define OPPONENT_CINDY_5 122
-#define OPPONENT_CINDY_6 123
-#define OPPONENT_MELISSA 124
-#define OPPONENT_SHEILA 125
-#define OPPONENT_SHIRLEY 126
-#define OPPONENT_JESSICA_1 127
-#define OPPONENT_CONNIE 128
-#define OPPONENT_BRIDGET 129
-#define OPPONENT_OLIVIA 130
-#define OPPONENT_TIFFANY 131
-#define OPPONENT_JESSICA_2 132
-#define OPPONENT_JESSICA_3 133
-#define OPPONENT_JESSICA_4 134
-#define OPPONENT_JESSICA_5 135
-#define OPPONENT_WINSTON_1 136
-#define OPPONENT_ANONYMOUS_3 137
-#define OPPONENT_GARRET 138
-#define OPPONENT_WINSTON_2 139
-#define OPPONENT_WINSTON_3 140
-#define OPPONENT_WINSTON_4 141
-#define OPPONENT_WINSTON_5 142
-#define OPPONENT_STEVE_1 143
-#define OPPONENT_CHRIS 144
-#define OPPONENT_MARK 145
-#define OPPONENT_KENN 146
-#define OPPONENT_STEVE_2 147
-#define OPPONENT_STEVE_3 148
-#define OPPONENT_STEVE_4 149
-#define OPPONENT_STEVE_5 150
-#define OPPONENT_LUIS 151
-#define OPPONENT_AUSTIN 152
-#define OPPONENT_DOUGLAS 153
-#define OPPONENT_DARRIN 154
-#define OPPONENT_TONY_1 155
-#define OPPONENT_JEROME 156
-#define OPPONENT_MATTHEW 157
-#define OPPONENT_DAVID 158
-#define OPPONENT_SPENCER 159
-#define OPPONENT_ROLAND 160
-#define OPPONENT_CODY 161
-#define OPPONENT_STAN 162
-#define OPPONENT_BARRY 163
-#define OPPONENT_DEAN 164
-#define OPPONENT_RODNEY 165
-#define OPPONENT_RICHARD 166
-#define OPPONENT_HERMAN 167
-#define OPPONENT_ANONYMOUS_4 168
-#define OPPONENT_GILBERT 169
-#define OPPONENT_FRANKLIN 170
-#define OPPONENT_DANNY 171
-#define OPPONENT_JACK 172
-#define OPPONENT_DUDLEY 173
-#define OPPONENT_CHAD 174
-#define OPPONENT_TONY_2 175
-#define OPPONENT_TONY_3 176
-#define OPPONENT_TONY_4 177
-#define OPPONENT_TONY_5 178
-#define OPPONENT_HIDEKI 179
-#define OPPONENT_HITOSHI 180
-#define OPPONENT_KIYO 181
-#define OPPONENT_KOICHI 182
-#define OPPONENT_NOB_1 183
-#define OPPONENT_NOB_2 184
-#define OPPONENT_NOB_3 185
-#define OPPONENT_NOB_4 186
-#define OPPONENT_NOB_5 187
-#define OPPONENT_YUJI 188
-#define OPPONENT_DAISUKE 189
-#define OPPONENT_ATSUSHI 190
-#define OPPONENT_KIRK 191
-#define OPPONENT_SCOTT 192
-#define OPPONENT_HARVEY 193
-#define OPPONENT_SHAWN 194
-#define OPPONENT_RANDY 195
-#define OPPONENT_DALTON_1 196
-#define OPPONENT_DALTON_2 197
-#define OPPONENT_DALTON_3 198
-#define OPPONENT_DALTON_4 199
-#define OPPONENT_DALTON_5 200
-#define OPPONENT_COLE 201
-#define OPPONENT_FLINT 202
-#define OPPONENT_AXLE 203
-#define OPPONENT_JAKE 204
-#define OPPONENT_ANDY 205
-#define OPPONENT_BERNIE_1 206
-#define OPPONENT_BERNIE_2 207
-#define OPPONENT_BERNIE_3 208
-#define OPPONENT_BERNIE_4 209
-#define OPPONENT_BERNIE_5 210
-#define OPPONENT_DREW 211
-#define OPPONENT_CLIFF 212
-#define OPPONENT_LARRY 213
-#define OPPONENT_SHANE 214
-#define OPPONENT_JUSTIN 215
-#define OPPONENT_ETHAN_1 216
-#define OPPONENT_JEFF 217
-#define OPPONENT_TRAVIS 218
-#define OPPONENT_ETHAN_2 219
-#define OPPONENT_ETHAN_3 220
-#define OPPONENT_ETHAN_4 221
-#define OPPONENT_ETHAN_5 222
-#define OPPONENT_BRENT 223
-#define OPPONENT_DONALD 224
-#define OPPONENT_TAYLOR 225
-#define OPPONENT_BRANDON_1 226
-#define OPPONENT_DEREK 227
-#define OPPONENT_BRANDON_2 228
-#define OPPONENT_BRANDON_3 229
-#define OPPONENT_BRANDON_4 230
-#define OPPONENT_BRANDON_5 231
-#define OPPONENT_EDWARD 232
-#define OPPONENT_PRESTON 233
-#define OPPONENT_VIRGIL 234
-#define OPPONENT_FRITZ 235
-#define OPPONENT_WILLIAM 236
-#define OPPONENT_JOSHUA 237
-#define OPPONENT_CAMERON_1 238
-#define OPPONENT_CAMERON_2 239
-#define OPPONENT_CAMERON_3 240
-#define OPPONENT_CAMERON_4 241
-#define OPPONENT_CAMERON_5 242
-#define OPPONENT_JACLYN 243
-#define OPPONENT_HANNAH 244
-#define OPPONENT_SAMANTHA 245
-#define OPPONENT_MAURA 246
-#define OPPONENT_KAYLA 247
-#define OPPONENT_ALEXIS 248
-#define OPPONENT_JACKI_1 249
-#define OPPONENT_JACKI_2 250
-#define OPPONENT_JACKI_3 251
-#define OPPONENT_JACKI_4 252
-#define OPPONENT_JACKI_5 253
-#define OPPONENT_WALTER_1 254
-#define OPPONENT_TUCKER 255
-#define OPPONENT_THOMAS 256
-#define OPPONENT_WALTER_2 257
-#define OPPONENT_WALTER_3 258
-#define OPPONENT_WALTER_4 259
-#define OPPONENT_WALTER_5 260
-#define OPPONENT_SIDNEY 261
-#define OPPONENT_PHOEBE 262
-#define OPPONENT_GLACIA 263
-#define OPPONENT_DRAKE 264
-#define OPPONENT_ROXANNE 265
-#define OPPONENT_BRAWLY 266
-#define OPPONENT_WATTSON 267
-#define OPPONENT_FLANNERY 268
-#define OPPONENT_NORMAN 269
-#define OPPONENT_WINONA 270
-#define OPPONENT_TATE_AND_LIZA 271
-#define OPPONENT_WALLACE 272
-#define OPPONENT_JERRY_1 273
-#define OPPONENT_TED 274
-#define OPPONENT_PAUL 275
-#define OPPONENT_JERRY_2 276
-#define OPPONENT_JERRY_3 277
-#define OPPONENT_JERRY_4 278
-#define OPPONENT_JERRY_5 279
-#define OPPONENT_KAREN_1 280
-#define OPPONENT_GEORGIA 281
-#define OPPONENT_KAREN_2 282
-#define OPPONENT_KAREN_3 283
-#define OPPONENT_KAREN_4 284
-#define OPPONENT_KAREN_5 285
-#define OPPONENT_KATE_AND_JOY 286
-#define OPPONENT_ANNA_AND_MEG_1 287
-#define OPPONENT_ANNA_AND_MEG_2 288
-#define OPPONENT_ANNA_AND_MEG_3 289
-#define OPPONENT_ANNA_AND_MEG_4 290
-#define OPPONENT_ANNA_AND_MEG_5 291
-#define OPPONENT_VICTOR 292
-#define OPPONENT_MIGUEL_1 293
-#define OPPONENT_COLTON 294
-#define OPPONENT_MIGUEL_2 295
-#define OPPONENT_MIGUEL_3 296
-#define OPPONENT_MIGUEL_4 297
-#define OPPONENT_MIGUEL_5 298
-#define OPPONENT_VICTORIA 299
-#define OPPONENT_VANESSA 300
-#define OPPONENT_MARISSA 301
-#define OPPONENT_ISABEL_1 302
-#define OPPONENT_ISABEL_2 303
-#define OPPONENT_ISABEL_3 304
-#define OPPONENT_ISABEL_4 305
-#define OPPONENT_ISABEL_5 306
-#define OPPONENT_TIMOTHY_1 307
-#define OPPONENT_TIMOTHY_2 308
-#define OPPONENT_TIMOTHY_3 309
-#define OPPONENT_TIMOTHY_4 310
-#define OPPONENT_TIMOTHY_5 311
-#define OPPONENT_VICKY 312
-#define OPPONENT_SHELBY_1 313
-#define OPPONENT_SHELBY_2 314
-#define OPPONENT_SHELBY_3 315
-#define OPPONENT_SHELBY_4 316
-#define OPPONENT_SHELBY_5 317
-#define OPPONENT_CALVIN_1 318
-#define OPPONENT_BILLY 319
-#define OPPONENT_JOSH 320
-#define OPPONENT_TOMMY 321
-#define OPPONENT_JOEY 322
-#define OPPONENT_BEN 323
-#define OPPONENT_ANONYMOUS_5 324
-#define OPPONENT_KEVIN 325
-#define OPPONENT_NEAL 326
-#define OPPONENT_DILLON 327
-#define OPPONENT_CALVIN_2 328
-#define OPPONENT_CALVIN_3 329
-#define OPPONENT_CALVIN_4 330
-#define OPPONENT_CALVIN_5 331
-#define OPPONENT_EDDIE 332
-#define OPPONENT_ALLEN 333
-#define OPPONENT_TIMMY 334
-#define OPPONENT_STEVEN 335
-#define OPPONENT_ANDREW 336
-#define OPPONENT_IVAN 337
-#define OPPONENT_CLAUDE 338
-#define OPPONENT_ELLIOT_1 339
-#define OPPONENT_NED 340
-#define OPPONENT_DALE 341
-#define OPPONENT_NOLAN 342
-#define OPPONENT_BARNY 343
-#define OPPONENT_WADE 344
-#define OPPONENT_CARTER 345
-#define OPPONENT_ELLIOT_2 346
-#define OPPONENT_ELLIOT_3 347
-#define OPPONENT_ELLIOT_4 348
-#define OPPONENT_ELLIOT_5 349
-#define OPPONENT_RONALD 350
-#define OPPONENT_JACOB 351
-#define OPPONENT_ANTHONY 352
-#define OPPONENT_BENJAMIN_1 353
-#define OPPONENT_BENJAMIN_2 354
-#define OPPONENT_BENJAMIN_3 355
-#define OPPONENT_BENJAMIN_4 356
-#define OPPONENT_BENJAMIN_5 357
-#define OPPONENT_ABIGAIL_1 358
-#define OPPONENT_JASMINE 359
-#define OPPONENT_ABIGAIL_2 360
-#define OPPONENT_ABIGAIL_3 361
-#define OPPONENT_ABIGAIL_4 362
-#define OPPONENT_ABIGAIL_5 363
-#define OPPONENT_DYLAN_1 364
-#define OPPONENT_DYLAN_2 365
-#define OPPONENT_DYLAN_3 366
-#define OPPONENT_DYLAN_4 367
-#define OPPONENT_DYLAN_5 368
-#define OPPONENT_MARIA_1 369
-#define OPPONENT_MARIA_2 370
-#define OPPONENT_MARIA_3 371
-#define OPPONENT_MARIA_4 372
-#define OPPONENT_MARIA_5 373
-#define OPPONENT_CALEB 374
-#define OPPONENT_ANONYMOUS_6 375
-#define OPPONENT_ISAIAH_1 376
-#define OPPONENT_ANONYMOUS_7 377
-#define OPPONENT_CHASE 378
-#define OPPONENT_ISAIAH_2 379
-#define OPPONENT_ISAIAH_3 380
-#define OPPONENT_ISAIAH_4 381
-#define OPPONENT_ISAIAH_5 382
-#define OPPONENT_ANONYMOUS_8 383
-#define OPPONENT_CONNOR 384
-#define OPPONENT_ANONYMOUS_9 385
-#define OPPONENT_KATELYN_1 386
-#define OPPONENT_ALLISON 387
-#define OPPONENT_KATELYN_2 388
-#define OPPONENT_KATELYN_3 389
-#define OPPONENT_KATELYN_4 390
-#define OPPONENT_KATELYN_5 391
-#define OPPONENT_NICOLAS_1 392
-#define OPPONENT_NICOLAS_2 393
-#define OPPONENT_NICOLAS_3 394
-#define OPPONENT_NICOLAS_4 395
-#define OPPONENT_NICOLAS_5 396
-#define OPPONENT_AARON 397
-#define OPPONENT_PERRY 398
-#define OPPONENT_HUGH 399
-#define OPPONENT_PHIL 400
-#define OPPONENT_JARED 401
-#define OPPONENT_ANONYMOUS_10 402
-#define OPPONENT_TANNER 403
-#define OPPONENT_WILL 404
-#define OPPONENT_COLIN 405
-#define OPPONENT_ROBERT_1 406
-#define OPPONENT_BENNY 407
-#define OPPONENT_CHESTER 408
-#define OPPONENT_ROBERT_2 409
-#define OPPONENT_ROBERT_3 410
-#define OPPONENT_ROBERT_4 411
-#define OPPONENT_ROBERT_5 412
-#define OPPONENT_ALEX 413
-#define OPPONENT_BECK 414
-#define OPPONENT_YASU 415
-#define OPPONENT_TAKASHI 416
-#define OPPONENT_MAKOTO 417
-#define OPPONENT_HIDEO_1 418
-#define OPPONENT_LAO_1 419
-#define OPPONENT_LUNG 420
-#define OPPONENT_LAO_2 421
-#define OPPONENT_LAO_3 422
-#define OPPONENT_LAO_4 423
-#define OPPONENT_LAO_5 424
-#define OPPONENT_TESSA 425
-#define OPPONENT_LAURA 426
-#define OPPONENT_CYNDY_1 427
-#define OPPONENT_CORA 428
-#define OPPONENT_JILL 429
-#define OPPONENT_CYNDY_2 430
-#define OPPONENT_CYNDY_3 431
-#define OPPONENT_CYNDY_4 432
-#define OPPONENT_CYNDY_5 433
-#define OPPONENT_MADELINE_1 434
-#define OPPONENT_CLARISSA 435
-#define OPPONENT_ANGELICA 436
-#define OPPONENT_MADELINE_2 437
-#define OPPONENT_MADELINE_3 438
-#define OPPONENT_MADELINE_4 439
-#define OPPONENT_MADELINE_5 440
-#define OPPONENT_BEVERLY 441
-#define OPPONENT_DAWN 442
-#define OPPONENT_NICOLE 443
-#define OPPONENT_DENISE 444
-#define OPPONENT_BETH 445
-#define OPPONENT_TARA 446
-#define OPPONENT_MISSY 447
-#define OPPONENT_ALICE 448
-#define OPPONENT_JENNY_1 449
-#define OPPONENT_GRACE 450
-#define OPPONENT_TANYA 451
-#define OPPONENT_SHARON 452
-#define OPPONENT_NIKKI 453
-#define OPPONENT_BRENDA 454
-#define OPPONENT_KATIE 455
-#define OPPONENT_SUSIE 456
-#define OPPONENT_KARA 457
-#define OPPONENT_DANA 458
-#define OPPONENT_ERIN 459
-#define OPPONENT_DEBRA 460
-#define OPPONENT_LINDA 461
-#define OPPONENT_KAYLEE 462
-#define OPPONENT_LAUREL 463
-#define OPPONENT_DARCY 464
-#define OPPONENT_JENNY_2 465
-#define OPPONENT_JENNY_3 466
-#define OPPONENT_JENNY_4 467
-#define OPPONENT_JENNY_5 468
-#define OPPONENT_HEIDI 469
-#define OPPONENT_BECKY 470
-#define OPPONENT_CAROL 471
-#define OPPONENT_NANCY 472
-#define OPPONENT_MARTHA 473
-#define OPPONENT_DIANA_1 474
-#define OPPONENT_NINA 475
-#define OPPONENT_IRENE 476
-#define OPPONENT_DIANA_2 477
-#define OPPONENT_DIANA_3 478
-#define OPPONENT_DIANA_4 479
-#define OPPONENT_DIANA_5 480
-#define OPPONENT_AMY_AND_LIV_1 481
-#define OPPONENT_AMY_AND_LIV_2 482
-#define OPPONENT_GINA_AND_MIA_1 483
-#define OPPONENT_MIU_AND_YUKI 484
-#define OPPONENT_AMY_AND_LIV_3 485
-#define OPPONENT_GINA_AND_MIA_2 486
-#define OPPONENT_AMY_AND_LIV_4 487
-#define OPPONENT_AMY_AND_LIV_5 488
-#define OPPONENT_AMY_AND_LIV_6 489
-#define OPPONENT_HUEY 490
-#define OPPONENT_EDMOND 491
-#define OPPONENT_ERNEST_1 492
-#define OPPONENT_DWAYNE 493
-#define OPPONENT_PHILLIP 494
-#define OPPONENT_LEONARD 495
-#define OPPONENT_DUNCAN 496
-#define OPPONENT_ERNEST_2 497
-#define OPPONENT_ERNEST_3 498
-#define OPPONENT_ERNEST_4 499
-#define OPPONENT_ERNEST_5 500
-#define OPPONENT_ANONYMOUS_11 501
-#define OPPONENT_ANONYMOUS_12 502
-#define OPPONENT_ANONYMOUS_13 503
-#define OPPONENT_SONNY 504
-#define OPPONENT_DONOVAN 505
-#define OPPONENT_GERALD 506
-#define OPPONENT_KELVIN 507
-#define OPPONENT_KODY 508
-#define OPPONENT_TEVIN 509
-#define OPPONENT_DAMON 510
-#define OPPONENT_PABLO 511
-#define OPPONENT_EDWIN_1 512
-#define OPPONENT_HECTOR_1 513
-#define OPPONENT_HECTOR_2 514
-#define OPPONENT_EDWIN_2 515
-#define OPPONENT_EDWIN_3 516
-#define OPPONENT_EDWIN_4 517
-#define OPPONENT_EDWIN_5 518
-#define OPPONENT_WALLY_1 519
-#define OPPONENT_BRENDAN_1 520
-#define OPPONENT_BRENDAN_2 521
-#define OPPONENT_BRENDAN_3 522
-#define OPPONENT_BRENDAN_4 523
-#define OPPONENT_BRENDAN_5 524
-#define OPPONENT_BRENDAN_6 525
-#define OPPONENT_BRENDAN_7 526
-#define OPPONENT_BRENDAN_8 527
-#define OPPONENT_BRENDAN_9 528
-#define OPPONENT_MAY_1 529
-#define OPPONENT_MAY_2 530
-#define OPPONENT_MAY_3 531
-#define OPPONENT_MAY_4 532
-#define OPPONENT_MAY_5 533
-#define OPPONENT_MAY_6 534
-#define OPPONENT_MAY_7 535
-#define OPPONENT_MAY_8 536
-#define OPPONENT_MAY_9 537
-#define OPPONENT_ISAAC_1 538
-#define OPPONENT_RILEY 539
-#define OPPONENT_AIDAN 540
-#define OPPONENT_ISAAC_2 541
-#define OPPONENT_ISAAC_3 542
-#define OPPONENT_ISAAC_4 543
-#define OPPONENT_ISAAC_5 544
-#define OPPONENT_LYDIA_1 545
-#define OPPONENT_ALEXIA 546
-#define OPPONENT_DANIELLE 547
-#define OPPONENT_LYDIA_2 548
-#define OPPONENT_LYDIA_3 549
-#define OPPONENT_LYDIA_4 550
-#define OPPONENT_LYDIA_5 551
-#define OPPONENT_JACKSON_1 552
-#define OPPONENT_CARLOS 553
-#define OPPONENT_SEBASTIAN 554
-#define OPPONENT_JACKSON_2 555
-#define OPPONENT_JACKSON_3 556
-#define OPPONENT_JACKSON_4 557
-#define OPPONENT_JACKSON_5 558
-#define OPPONENT_CATHERINE_1 559
-#define OPPONENT_JENNA 560
-#define OPPONENT_SOPHIA 561
-#define OPPONENT_CATHERINE_2 562
-#define OPPONENT_CATHERINE_3 563
-#define OPPONENT_CATHERINE_4 564
-#define OPPONENT_CATHERINE_5 565
-#define OPPONENT_MAXIE_1 566
-#define OPPONENT_GRUNT_28 567
-#define OPPONENT_GRUNT_29 568
-#define OPPONENT_GRUNT_30 569
-#define OPPONENT_GRUNT_31 570
-#define OPPONENT_GRUNT_32 571
-#define OPPONENT_GRUNT_33 572
-#define OPPONENT_GRUNT_34 573
-#define OPPONENT_GRUNT_35 574
-#define OPPONENT_GRUNT_36 575
-#define OPPONENT_GRUNT_37 576
-#define OPPONENT_GRUNT_38 577
-#define OPPONENT_GRUNT_39 578
-#define OPPONENT_GRUNT_40 579
-#define OPPONENT_GRUNT_41 580
-#define OPPONENT_GRUNT_42 581
-#define OPPONENT_GRUNT_43 582
-#define OPPONENT_GRUNT_44 583
-#define OPPONENT_GRUNT_45 584
-#define OPPONENT_GRUNT_46 585
-#define OPPONENT_GRUNT_47 586
-#define OPPONENT_GRUNT_48 587
-#define OPPONENT_GRUNT_49 588
-#define OPPONENT_GRUNT_50 589
-#define OPPONENT_GRUNT_51 590
-#define OPPONENT_GRUNT_52 591
-#define OPPONENT_GRUNT_53 592
-#define OPPONENT_GRUNT_54 593
-#define OPPONENT_ANONYMOUS_14 594
-#define OPPONENT_ANONYMOUS_15 595
-#define OPPONENT_TABITHA_1 596
-#define OPPONENT_TABITHA_2 597
-#define OPPONENT_ANONYMOUS_16 598
-#define OPPONENT_COURTNEY_1 599
-#define OPPONENT_COURTNEY_2 600
-#define OPPONENT_MAXIE_2 601
-#define OPPONENT_MAXIE_3 602
-#define OPPONENT_TIANA 603
-#define OPPONENT_HALEY_1 604
-#define OPPONENT_JANICE 605
-#define OPPONENT_VIVI 606
-#define OPPONENT_HALEY_2 607
-#define OPPONENT_HALEY_3 608
-#define OPPONENT_HALEY_4 609
-#define OPPONENT_HALEY_5 610
-#define OPPONENT_SALLY 611
-#define OPPONENT_ROBIN 612
-#define OPPONENT_ANDREA 613
-#define OPPONENT_CRISSY 614
-#define OPPONENT_RICK 615
-#define OPPONENT_LYLE 616
-#define OPPONENT_JOSE 617
-#define OPPONENT_DOUG 618
-#define OPPONENT_GREG 619
-#define OPPONENT_KENT 620
-#define OPPONENT_JAMES_1 621
-#define OPPONENT_JAMES_2 622
-#define OPPONENT_JAMES_3 623
-#define OPPONENT_JAMES_4 624
-#define OPPONENT_JAMES_5 625
-#define OPPONENT_BRICE 626
-#define OPPONENT_TRENT_1 627
-#define OPPONENT_LENNY 628
-#define OPPONENT_LUCAS_1 629
-#define OPPONENT_ALAN 630
-#define OPPONENT_CLARK 631
-#define OPPONENT_ERIC 632
-#define OPPONENT_LUCAS_2 633
-#define OPPONENT_MIKE_1 634
-#define OPPONENT_MIKE_2 635
-#define OPPONENT_TRENT_2 636
-#define OPPONENT_TRENT_3 637
-#define OPPONENT_TRENT_4 638
-#define OPPONENT_TRENT_5 639
-#define OPPONENT_DEZ_AND_LUKE 640
-#define OPPONENT_LEA_AND_JED 641
-#define OPPONENT_LOIS_AND_HAL_1 642
-#define OPPONENT_LOIS_AND_HAL_2 643
-#define OPPONENT_LOIS_AND_HAL_3 644
-#define OPPONENT_LOIS_AND_HAL_4 645
-#define OPPONENT_LOIS_AND_HAL_5 646
-#define OPPONENT_JOHANNA 647
-#define OPPONENT_ZANE 648
-#define OPPONENT_VIVIAN 649
-#define OPPONENT_SADIE 650
-#define OPPONENT_HIDEO_2 651
-#define OPPONENT_KEIGO 652
-#define OPPONENT_TSUNAO 653
-#define OPPONENT_TERRELL 654
-#define OPPONENT_KYLEE 655
-#define OPPONENT_WALLY_2 656
-#define OPPONENT_WALLY_3 657
-#define OPPONENT_WALLY_4 658
-#define OPPONENT_WALLY_5 659
-#define OPPONENT_WALLY_6 660
-#define OPPONENT_BRENDAN_10 661
-#define OPPONENT_BRENDAN_11 662
-#define OPPONENT_BRENDAN_12 663
-#define OPPONENT_MAY_10 664
-#define OPPONENT_MAY_11 665
-#define OPPONENT_MAY_12 666
-#define OPPONENT_JONAH 667
-#define OPPONENT_HENRY 668
-#define OPPONENT_ROGER 669
-#define OPPONENT_ALEXA 670
-#define OPPONENT_RUBEN 671
-#define OPPONENT_KOJI 672
-#define OPPONENT_WAYNE 673
-#define OPPONENT_BYRON 674
-#define OPPONENT_REED 675
-#define OPPONENT_TISHA 676
-#define OPPONENT_TORI_AND_TIA 677
-#define OPPONENT_KIM_AND_IRIS 678
-#define OPPONENT_TYRA_AND_IVY 679
-#define OPPONENT_MEL_AND_PAUL 680
-#define OPPONENT_JOHN_AND_JAY_1 681
-#define OPPONENT_JOHN_AND_JAY_2 682
-#define OPPONENT_JOHN_AND_JAY_3 683
-#define OPPONENT_JOHN_AND_JAY_4 684
-#define OPPONENT_JOHN_AND_JAY_5 685
-#define OPPONENT_RELI_AND_IAN 686
-#define OPPONENT_RITA_AND_SAM_1 687
-#define OPPONENT_RITA_AND_SAM_2 688
-#define OPPONENT_RITA_AND_SAM_3 689
-#define OPPONENT_RITA_AND_SAM_4 690
-#define OPPONENT_RITA_AND_SAM_5 691
-#define OPPONENT_LISA_AND_RAY 692
-#define OPPONENT_EUGENE 693
+#define TRAINER_NONE 0
+#define TRAINER_ARCHIE_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_GRUNT_8 9
+#define TRAINER_GRUNT_9 10
+#define TRAINER_GRUNT_10 11
+#define TRAINER_GRUNT_11 12
+#define TRAINER_GRUNT_12 13
+#define TRAINER_GRUNT_13 14
+#define TRAINER_GRUNT_14 15
+#define TRAINER_GRUNT_15 16
+#define TRAINER_GRUNT_16 17
+#define TRAINER_GRUNT_17 18
+#define TRAINER_GRUNT_18 19
+#define TRAINER_GRUNT_19 20
+#define TRAINER_GRUNT_20 21
+#define TRAINER_GRUNT_21 22
+#define TRAINER_GRUNT_22 23
+#define TRAINER_GRUNT_23 24
+#define TRAINER_GRUNT_24 25
+#define TRAINER_GRUNT_25 26
+#define TRAINER_GRUNT_26 27
+#define TRAINER_GRUNT_27 28
+#define TRAINER_ANONYMOUS_1 29
+#define TRAINER_MATT_1 30
+#define TRAINER_MATT_2 31
+#define TRAINER_SHELLY_1 32
+#define TRAINER_SHELLY_2 33
+#define TRAINER_ARCHIE_2 34
+#define TRAINER_ARCHIE_3 35
+#define TRAINER_DAISY 36
+#define TRAINER_ROSE_1 37
+#define TRAINER_LILY 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_CARMEN 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_CLYDE 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_LORI 90
+#define TRAINER_JODY 91
+#define TRAINER_WENDY 92
+#define TRAINER_ELAINE 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_ANONYMOUS_2 115
+#define TRAINER_BRIANNA_1 116
+#define TRAINER_CINDY_2 117
+#define TRAINER_BRIANNA_2 118
+#define TRAINER_ANETTE 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_ANONYMOUS_3 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_CHRIS 144
+#define TRAINER_MARK 145
+#define TRAINER_KENN 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_AUSTIN 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_CODY 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_ANONYMOUS_4 168
+#define TRAINER_GILBERT 169
+#define TRAINER_FRANKLIN 170
+#define TRAINER_DANNY 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_HIDEKI 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_SCOTT 192
+#define TRAINER_HARVEY 193
+#define TRAINER_SHAWN 194
+#define TRAINER_RANDY 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_FLINT 202
+#define TRAINER_AXLE 203
+#define TRAINER_JAKE 204
+#define TRAINER_ANDY 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_CLIFF 212
+#define TRAINER_LARRY 213
+#define TRAINER_SHANE 214
+#define TRAINER_JUSTIN 215
+#define TRAINER_ETHAN_1 216
+#define TRAINER_JEFF 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_BRANDON_1 226
+#define TRAINER_DEREK 227
+#define TRAINER_BRANDON_2 228
+#define TRAINER_BRANDON_3 229
+#define TRAINER_BRANDON_4 230
+#define TRAINER_BRANDON_5 231
+#define TRAINER_EDWARD 232
+#define TRAINER_PRESTON 233
+#define TRAINER_VIRGIL 234
+#define TRAINER_FRITZ 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_TUCKER 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 265
+#define TRAINER_BRAWLY 266
+#define TRAINER_WATTSON 267
+#define TRAINER_FLANNERY 268
+#define TRAINER_NORMAN 269
+#define TRAINER_WINONA 270
+#define TRAINER_TATE_AND_LIZA 271
+#define TRAINER_WALLACE 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_MARISSA 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_ANONYMOUS_5 324
+#define TRAINER_KEVIN 325
+#define TRAINER_NEAL 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_STEVEN 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_CALEB 374
+#define TRAINER_ANONYMOUS_6 375
+#define TRAINER_ISAIAH_1 376
+#define TRAINER_ANONYMOUS_7 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_ANONYMOUS_8 383
+#define TRAINER_CONNOR 384
+#define TRAINER_ANONYMOUS_9 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_ANONYMOUS_10 402
+#define TRAINER_TANNER 403
+#define TRAINER_WILL 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_MAKOTO 417
+#define TRAINER_HIDEO_1 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_TESSA 425
+#define TRAINER_LAURA 426
+#define TRAINER_CYNDY_1 427
+#define TRAINER_CORA 428
+#define TRAINER_JILL 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_DAWN 442
+#define TRAINER_NICOLE 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_ERIN 459
+#define TRAINER_DEBRA 460
+#define TRAINER_LINDA 461
+#define TRAINER_KAYLEE 462
+#define TRAINER_LAUREL 463
+#define TRAINER_DARCY 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_NINA 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_ANONYMOUS_11 501
+#define TRAINER_ANONYMOUS_12 502
+#define TRAINER_ANONYMOUS_13 503
+#define TRAINER_SONNY 504
+#define TRAINER_DONOVAN 505
+#define TRAINER_GERALD 506
+#define TRAINER_KELVIN 507
+#define TRAINER_KODY 508
+#define TRAINER_TEVIN 509
+#define TRAINER_DAMON 510
+#define TRAINER_PABLO 511
+#define TRAINER_EDWIN_1 512
+#define TRAINER_HECTOR_1 513
+#define TRAINER_HECTOR_2 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_RILEY 539
+#define TRAINER_AIDAN 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_ALEXIA 546
+#define TRAINER_DANIELLE 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_CARLOS 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_MAXIE_1 566
+#define TRAINER_GRUNT_28 567
+#define TRAINER_GRUNT_29 568
+#define TRAINER_GRUNT_30 569
+#define TRAINER_GRUNT_31 570
+#define TRAINER_GRUNT_32 571
+#define TRAINER_GRUNT_33 572
+#define TRAINER_GRUNT_34 573
+#define TRAINER_GRUNT_35 574
+#define TRAINER_GRUNT_36 575
+#define TRAINER_GRUNT_37 576
+#define TRAINER_GRUNT_38 577
+#define TRAINER_GRUNT_39 578
+#define TRAINER_GRUNT_40 579
+#define TRAINER_GRUNT_41 580
+#define TRAINER_GRUNT_42 581
+#define TRAINER_GRUNT_43 582
+#define TRAINER_GRUNT_44 583
+#define TRAINER_GRUNT_45 584
+#define TRAINER_GRUNT_46 585
+#define TRAINER_GRUNT_47 586
+#define TRAINER_GRUNT_48 587
+#define TRAINER_GRUNT_49 588
+#define TRAINER_GRUNT_50 589
+#define TRAINER_GRUNT_51 590
+#define TRAINER_GRUNT_52 591
+#define TRAINER_GRUNT_53 592
+#define TRAINER_GRUNT_54 593
+#define TRAINER_ANONYMOUS_14 594
+#define TRAINER_ANONYMOUS_15 595
+#define TRAINER_TABITHA_1 596
+#define TRAINER_TABITHA_2 597
+#define TRAINER_ANONYMOUS_16 598
+#define TRAINER_COURTNEY_1 599
+#define TRAINER_COURTNEY_2 600
+#define TRAINER_MAXIE_2 601
+#define TRAINER_MAXIE_3 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_LOIS_AND_HAL_1 642
+#define TRAINER_LOIS_AND_HAL_2 643
+#define TRAINER_LOIS_AND_HAL_3 644
+#define TRAINER_LOIS_AND_HAL_4 645
+#define TRAINER_LOIS_AND_HAL_5 646
+#define TRAINER_JOHANNA 647
+#define TRAINER_ZANE 648
+#define TRAINER_VIVIAN 649
+#define TRAINER_SADIE 650
+#define TRAINER_HIDEO_2 651
+#define TRAINER_KEIGO 652
+#define TRAINER_TSUNAO 653
+#define TRAINER_TERRELL 654
+#define TRAINER_KYLEE 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_10 661
+#define TRAINER_BRENDAN_11 662
+#define TRAINER_BRENDAN_12 663
+#define TRAINER_MAY_10 664
+#define TRAINER_MAY_11 665
+#define TRAINER_MAY_12 666
+#define TRAINER_JONAH 667
+#define TRAINER_HENRY 668
+#define TRAINER_ROGER 669
+#define TRAINER_ALEXA 670
+#define TRAINER_RUBEN 671
+#define TRAINER_KOJI 672
+#define TRAINER_WAYNE 673
+#define TRAINER_BYRON 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_RITA_AND_SAM_1 687
+#define TRAINER_RITA_AND_SAM_2 688
+#define TRAINER_RITA_AND_SAM_3 689
+#define TRAINER_RITA_AND_SAM_4 690
+#define TRAINER_RITA_AND_SAM_5 691
+#define TRAINER_LISA_AND_RAY 692
+#define TRAINER_EUGENE 693
#endif // GUARD_CONSTANTS_OPPONENTS_H
diff --git a/include/constants/region_map_sections.h b/include/constants/region_map_sections.h
index 38ca06e1b..254ae2edd 100644
--- a/include/constants/region_map_sections.h
+++ b/include/constants/region_map_sections.h
@@ -1,97 +1,94 @@
#ifndef GUARD_REGIONMAPSEC_H
#define GUARD_REGIONMAPSEC_H
-enum
-{
- MAPSEC_LITTLEROOT_TOWN, // 0x00
- MAPSEC_OLDALE_TOWN, // 0x01
- MAPSEC_DEWFORD_TOWN, // 0x02
- MAPSEC_LAVARIDGE_TOWN, // 0x03
- MAPSEC_FALLARBOR_TOWN, // 0x04
- MAPSEC_VERDANTURF_TOWN, // 0x05
- MAPSEC_PACIFIDLOG_TOWN, // 0x06
- MAPSEC_PETALBURG_CITY, // 0x07
- MAPSEC_SLATEPORT_CITY, // 0x08
- MAPSEC_MAUVILLE_CITY, // 0x09
- MAPSEC_RUSTBORO_CITY, // 0x0A
- MAPSEC_FORTREE_CITY, // 0x0B
- MAPSEC_LILYCOVE_CITY, // 0x0C
- MAPSEC_MOSSDEEP_CITY, // 0x0D
- MAPSEC_SOOTOPOLIS_CITY, // 0x0E
- MAPSEC_EVER_GRANDE_CITY, // 0x0F
- MAPSEC_ROUTE_101, // 0x10
- MAPSEC_ROUTE_102, // 0x11
- MAPSEC_ROUTE_103, // 0x12
- MAPSEC_ROUTE_104, // 0x13
- MAPSEC_ROUTE_105, // 0x14
- MAPSEC_ROUTE_106, // 0x15
- MAPSEC_ROUTE_107, // 0x16
- MAPSEC_ROUTE_108, // 0x17
- MAPSEC_ROUTE_109, // 0x18
- MAPSEC_ROUTE_110, // 0x19
- MAPSEC_ROUTE_111, // 0x1A
- MAPSEC_ROUTE_112, // 0x1B
- MAPSEC_ROUTE_113, // 0x1C
- MAPSEC_ROUTE_114, // 0x1D
- MAPSEC_ROUTE_115, // 0x1E
- MAPSEC_ROUTE_116, // 0x1F
- MAPSEC_ROUTE_117, // 0x20
- MAPSEC_ROUTE_118, // 0x21
- MAPSEC_ROUTE_119, // 0x22
- MAPSEC_ROUTE_120, // 0x23
- MAPSEC_ROUTE_121, // 0x24
- MAPSEC_ROUTE_122, // 0x25
- MAPSEC_ROUTE_123, // 0x26
- MAPSEC_ROUTE_124, // 0x27
- MAPSEC_ROUTE_125, // 0x28
- MAPSEC_ROUTE_126, // 0x29
- MAPSEC_ROUTE_127, // 0x2A
- MAPSEC_ROUTE_128, // 0x2B
- MAPSEC_ROUTE_129, // 0x2C
- MAPSEC_ROUTE_130, // 0x2D
- MAPSEC_ROUTE_131, // 0x2E
- MAPSEC_ROUTE_132, // 0x2F
- MAPSEC_ROUTE_133, // 0x30
- MAPSEC_ROUTE_134, // 0x31
- MAPSEC_UNDERWATER_124, // 0x32
- MAPSEC_UNDERWATER_125, // 0x33
- MAPSEC_UNDERWATER_126, // 0x34
- MAPSEC_UNDERWATER_127, // 0x35
- MAPSEC_UNDERWATER_SOOTOPOLIS, // 0x36
- MAPSEC_GRANITE_CAVE, // 0x37
- MAPSEC_MT_CHIMNEY, // 0x38
- MAPSEC_SAFARI_ZONE, // 0x39
- MAPSEC_BATTLE_TOWER, // 0x3A
- MAPSEC_PETALBURG_WOODS, // 0x3B
- MAPSEC_RUSTURF_TUNNEL, // 0x3C
- MAPSEC_ABANDONED_SHIP, // 0x3D
- MAPSEC_NEW_MAUVILLE, // 0x3E
- MAPSEC_METEOR_FALLS, // 0x3F
- MAPSEC_METEOR_FALLS_2, // 0x40
- MAPSEC_MT_PYRE, // 0x41
- MAPSEC_EVIL_TEAM_HIDEOUT, // 0x42
- MAPSEC_SHOAL_CAVE, // 0x43
- MAPSEC_SEAFLOOR_CAVERN, // 0x44
- MAPSEC_UNDERWATER_128, // 0x45
- MAPSEC_VICTORY_ROAD, // 0x46
- MAPSEC_MIRAGE_ISLAND, // 0x47
- MAPSEC_CAVE_OF_ORIGIN, // 0x48
- MAPSEC_SOUTHERN_ISLAND, // 0x49
- MAPSEC_FIERY_PATH, // 0x4A
- MAPSEC_FIERY_PATH_2, // 0x4B
- MAPSEC_JAGGED_PASS, // 0x4C
- MAPSEC_JAGGED_PASS_2, // 0x4D
- MAPSEC_SEALED_CHAMBER, // 0x4E
- MAPSEC_UNDERWATER_SEALED_CHAMBER, // 0x4F
- MAPSEC_SCORCHED_SLAB, // 0x50
- MAPSEC_ISLAND_CAVE, // 0x51
- MAPSEC_DESERT_RUINS, // 0x52
- MAPSEC_ANCIENT_TOMB, // 0x53
- MAPSEC_INSIDE_OF_TRUCK, // 0x54
- MAPSEC_SKY_PILLAR, // 0x55
- MAPSEC_SECRET_BASE, // 0x56
- MAPSEC_DYNAMIC, // 0x57
- MAPSEC_NOTHING // 0x58
-};
+#define MAPSEC_LITTLEROOT_TOWN 0x00
+#define MAPSEC_OLDALE_TOWN 0x01
+#define MAPSEC_DEWFORD_TOWN 0x02
+#define MAPSEC_LAVARIDGE_TOWN 0x03
+#define MAPSEC_FALLARBOR_TOWN 0x04
+#define MAPSEC_VERDANTURF_TOWN 0x05
+#define MAPSEC_PACIFIDLOG_TOWN 0x06
+#define MAPSEC_PETALBURG_CITY 0x07
+#define MAPSEC_SLATEPORT_CITY 0x08
+#define MAPSEC_MAUVILLE_CITY 0x09
+#define MAPSEC_RUSTBORO_CITY 0x0A
+#define MAPSEC_FORTREE_CITY 0x0B
+#define MAPSEC_LILYCOVE_CITY 0x0C
+#define MAPSEC_MOSSDEEP_CITY 0x0D
+#define MAPSEC_SOOTOPOLIS_CITY 0x0E
+#define MAPSEC_EVER_GRANDE_CITY 0x0F
+#define MAPSEC_ROUTE_101 0x10
+#define MAPSEC_ROUTE_102 0x11
+#define MAPSEC_ROUTE_103 0x12
+#define MAPSEC_ROUTE_104 0x13
+#define MAPSEC_ROUTE_105 0x14
+#define MAPSEC_ROUTE_106 0x15
+#define MAPSEC_ROUTE_107 0x16
+#define MAPSEC_ROUTE_108 0x17
+#define MAPSEC_ROUTE_109 0x18
+#define MAPSEC_ROUTE_110 0x19
+#define MAPSEC_ROUTE_111 0x1A
+#define MAPSEC_ROUTE_112 0x1B
+#define MAPSEC_ROUTE_113 0x1C
+#define MAPSEC_ROUTE_114 0x1D
+#define MAPSEC_ROUTE_115 0x1E
+#define MAPSEC_ROUTE_116 0x1F
+#define MAPSEC_ROUTE_117 0x20
+#define MAPSEC_ROUTE_118 0x21
+#define MAPSEC_ROUTE_119 0x22
+#define MAPSEC_ROUTE_120 0x23
+#define MAPSEC_ROUTE_121 0x24
+#define MAPSEC_ROUTE_122 0x25
+#define MAPSEC_ROUTE_123 0x26
+#define MAPSEC_ROUTE_124 0x27
+#define MAPSEC_ROUTE_125 0x28
+#define MAPSEC_ROUTE_126 0x29
+#define MAPSEC_ROUTE_127 0x2A
+#define MAPSEC_ROUTE_128 0x2B
+#define MAPSEC_ROUTE_129 0x2C
+#define MAPSEC_ROUTE_130 0x2D
+#define MAPSEC_ROUTE_131 0x2E
+#define MAPSEC_ROUTE_132 0x2F
+#define MAPSEC_ROUTE_133 0x30
+#define MAPSEC_ROUTE_134 0x31
+#define MAPSEC_UNDERWATER_124 0x32
+#define MAPSEC_UNDERWATER_125 0x33
+#define MAPSEC_UNDERWATER_126 0x34
+#define MAPSEC_UNDERWATER_127 0x35
+#define MAPSEC_UNDERWATER_SOOTOPOLIS 0x36
+#define MAPSEC_GRANITE_CAVE 0x37
+#define MAPSEC_MT_CHIMNEY 0x38
+#define MAPSEC_SAFARI_ZONE 0x39
+#define MAPSEC_BATTLE_TOWER 0x3A
+#define MAPSEC_PETALBURG_WOODS 0x3B
+#define MAPSEC_RUSTURF_TUNNEL 0x3C
+#define MAPSEC_ABANDONED_SHIP 0x3D
+#define MAPSEC_NEW_MAUVILLE 0x3E
+#define MAPSEC_METEOR_FALLS 0x3F
+#define MAPSEC_METEOR_FALLS_2 0x40
+#define MAPSEC_MT_PYRE 0x41
+#define MAPSEC_EVIL_TEAM_HIDEOUT 0x42
+#define MAPSEC_SHOAL_CAVE 0x43
+#define MAPSEC_SEAFLOOR_CAVERN 0x44
+#define MAPSEC_UNDERWATER_128 0x45
+#define MAPSEC_VICTORY_ROAD 0x46
+#define MAPSEC_MIRAGE_ISLAND 0x47
+#define MAPSEC_CAVE_OF_ORIGIN 0x48
+#define MAPSEC_SOUTHERN_ISLAND 0x49
+#define MAPSEC_FIERY_PATH 0x4A
+#define MAPSEC_FIERY_PATH_2 0x4B
+#define MAPSEC_JAGGED_PASS 0x4C
+#define MAPSEC_JAGGED_PASS_2 0x4D
+#define MAPSEC_SEALED_CHAMBER 0x4E
+#define MAPSEC_UNDERWATER_SEALED_CHAMBER 0x4F
+#define MAPSEC_SCORCHED_SLAB 0x50
+#define MAPSEC_ISLAND_CAVE 0x51
+#define MAPSEC_DESERT_RUINS 0x52
+#define MAPSEC_ANCIENT_TOMB 0x53
+#define MAPSEC_INSIDE_OF_TRUCK 0x54
+#define MAPSEC_SKY_PILLAR 0x55
+#define MAPSEC_SECRET_BASE 0x56
+#define MAPSEC_DYNAMIC 0x57
+#define MAPSEC_NOTHING 0x58
#endif // GUARD_REGIONMAPSEC_H
diff --git a/include/constants/species.h b/include/constants/species.h
index dc9856081..80c90381e 100644
--- a/include/constants/species.h
+++ b/include/constants/species.h
@@ -447,6 +447,838 @@
#define NUM_SPECIES SPECIES_EGG
+// National Dex Index Defines
+
+#define NATIONAL_DEX_BULBASAUR 1
+#define NATIONAL_DEX_IVYSAUR 2
+#define NATIONAL_DEX_VENUSAUR 3
+#define NATIONAL_DEX_CHARMANDER 4
+#define NATIONAL_DEX_CHARMELEON 5
+#define NATIONAL_DEX_CHARIZARD 6
+#define NATIONAL_DEX_SQUIRTLE 7
+#define NATIONAL_DEX_WARTORTLE 8
+#define NATIONAL_DEX_BLASTOISE 9
+#define NATIONAL_DEX_CATERPIE 10
+#define NATIONAL_DEX_METAPOD 11
+#define NATIONAL_DEX_BUTTERFREE 12
+#define NATIONAL_DEX_WEEDLE 13
+#define NATIONAL_DEX_KAKUNA 14
+#define NATIONAL_DEX_BEEDRILL 15
+#define NATIONAL_DEX_PIDGEY 16
+#define NATIONAL_DEX_PIDGEOTTO 17
+#define NATIONAL_DEX_PIDGEOT 18
+#define NATIONAL_DEX_RATTATA 19
+#define NATIONAL_DEX_RATICATE 20
+#define NATIONAL_DEX_SPEAROW 21
+#define NATIONAL_DEX_FEAROW 22
+#define NATIONAL_DEX_EKANS 23
+#define NATIONAL_DEX_ARBOK 24
+#define NATIONAL_DEX_PIKACHU 25
+#define NATIONAL_DEX_RAICHU 26
+#define NATIONAL_DEX_SANDSHREW 27
+#define NATIONAL_DEX_SANDSLASH 28
+#define NATIONAL_DEX_NIDORAN_F 29
+#define NATIONAL_DEX_NIDORINA 30
+#define NATIONAL_DEX_NIDOQUEEN 31
+#define NATIONAL_DEX_NIDORAN_M 32
+#define NATIONAL_DEX_NIDORINO 33
+#define NATIONAL_DEX_NIDOKING 34
+#define NATIONAL_DEX_CLEFAIRY 35
+#define NATIONAL_DEX_CLEFABLE 36
+#define NATIONAL_DEX_VULPIX 37
+#define NATIONAL_DEX_NINETALES 38
+#define NATIONAL_DEX_JIGGLYPUFF 39
+#define NATIONAL_DEX_WIGGLYTUFF 40
+#define NATIONAL_DEX_ZUBAT 41
+#define NATIONAL_DEX_GOLBAT 42
+#define NATIONAL_DEX_ODDISH 43
+#define NATIONAL_DEX_GLOOM 44
+#define NATIONAL_DEX_VILEPLUME 45
+#define NATIONAL_DEX_PARAS 46
+#define NATIONAL_DEX_PARASECT 47
+#define NATIONAL_DEX_VENONAT 48
+#define NATIONAL_DEX_VENOMOTH 49
+#define NATIONAL_DEX_DIGLETT 50
+#define NATIONAL_DEX_DUGTRIO 51
+#define NATIONAL_DEX_MEOWTH 52
+#define NATIONAL_DEX_PERSIAN 53
+#define NATIONAL_DEX_PSYDUCK 54
+#define NATIONAL_DEX_GOLDUCK 55
+#define NATIONAL_DEX_MANKEY 56
+#define NATIONAL_DEX_PRIMEAPE 57
+#define NATIONAL_DEX_GROWLITHE 58
+#define NATIONAL_DEX_ARCANINE 59
+#define NATIONAL_DEX_POLIWAG 60
+#define NATIONAL_DEX_POLIWHIRL 61
+#define NATIONAL_DEX_POLIWRATH 62
+#define NATIONAL_DEX_ABRA 63
+#define NATIONAL_DEX_KADABRA 64
+#define NATIONAL_DEX_ALAKAZAM 65
+#define NATIONAL_DEX_MACHOP 66
+#define NATIONAL_DEX_MACHOKE 67
+#define NATIONAL_DEX_MACHAMP 68
+#define NATIONAL_DEX_BELLSPROUT 69
+#define NATIONAL_DEX_WEEPINBELL 70
+#define NATIONAL_DEX_VICTREEBEL 71
+#define NATIONAL_DEX_TENTACOOL 72
+#define NATIONAL_DEX_TENTACRUEL 73
+#define NATIONAL_DEX_GEODUDE 74
+#define NATIONAL_DEX_GRAVELER 75
+#define NATIONAL_DEX_GOLEM 76
+#define NATIONAL_DEX_PONYTA 77
+#define NATIONAL_DEX_RAPIDASH 78
+#define NATIONAL_DEX_SLOWPOKE 79
+#define NATIONAL_DEX_SLOWBRO 80
+#define NATIONAL_DEX_MAGNEMITE 81
+#define NATIONAL_DEX_MAGNETON 82
+#define NATIONAL_DEX_FARFETCHD 83
+#define NATIONAL_DEX_DODUO 84
+#define NATIONAL_DEX_DODRIO 85
+#define NATIONAL_DEX_SEEL 86
+#define NATIONAL_DEX_DEWGONG 87
+#define NATIONAL_DEX_GRIMER 88
+#define NATIONAL_DEX_MUK 89
+#define NATIONAL_DEX_SHELLDER 90
+#define NATIONAL_DEX_CLOYSTER 91
+#define NATIONAL_DEX_GASTLY 92
+#define NATIONAL_DEX_HAUNTER 93
+#define NATIONAL_DEX_GENGAR 94
+#define NATIONAL_DEX_ONIX 95
+#define NATIONAL_DEX_DROWZEE 96
+#define NATIONAL_DEX_HYPNO 97
+#define NATIONAL_DEX_KRABBY 98
+#define NATIONAL_DEX_KINGLER 99
+#define NATIONAL_DEX_VOLTORB 100
+#define NATIONAL_DEX_ELECTRODE 101
+#define NATIONAL_DEX_EXEGGCUTE 102
+#define NATIONAL_DEX_EXEGGUTOR 103
+#define NATIONAL_DEX_CUBONE 104
+#define NATIONAL_DEX_MAROWAK 105
+#define NATIONAL_DEX_HITMONLEE 106
+#define NATIONAL_DEX_HITMONCHAN 107
+#define NATIONAL_DEX_LICKITUNG 108
+#define NATIONAL_DEX_KOFFING 109
+#define NATIONAL_DEX_WEEZING 110
+#define NATIONAL_DEX_RHYHORN 111
+#define NATIONAL_DEX_RHYDON 112
+#define NATIONAL_DEX_CHANSEY 113
+#define NATIONAL_DEX_TANGELA 114
+#define NATIONAL_DEX_KANGASKHAN 115
+#define NATIONAL_DEX_HORSEA 116
+#define NATIONAL_DEX_SEADRA 117
+#define NATIONAL_DEX_GOLDEEN 118
+#define NATIONAL_DEX_SEAKING 119
+#define NATIONAL_DEX_STARYU 120
+#define NATIONAL_DEX_STARMIE 121
+#define NATIONAL_DEX_MR_MIME 122
+#define NATIONAL_DEX_SCYTHER 123
+#define NATIONAL_DEX_JYNX 124
+#define NATIONAL_DEX_ELECTABUZZ 125
+#define NATIONAL_DEX_MAGMAR 126
+#define NATIONAL_DEX_PINSIR 127
+#define NATIONAL_DEX_TAUROS 128
+#define NATIONAL_DEX_MAGIKARP 129
+#define NATIONAL_DEX_GYARADOS 130
+#define NATIONAL_DEX_LAPRAS 131
+#define NATIONAL_DEX_DITTO 132
+#define NATIONAL_DEX_EEVEE 133
+#define NATIONAL_DEX_VAPOREON 134
+#define NATIONAL_DEX_JOLTEON 135
+#define NATIONAL_DEX_FLAREON 136
+#define NATIONAL_DEX_PORYGON 137
+#define NATIONAL_DEX_OMANYTE 138
+#define NATIONAL_DEX_OMASTAR 139
+#define NATIONAL_DEX_KABUTO 140
+#define NATIONAL_DEX_KABUTOPS 141
+#define NATIONAL_DEX_AERODACTYL 142
+#define NATIONAL_DEX_SNORLAX 143
+#define NATIONAL_DEX_ARTICUNO 144
+#define NATIONAL_DEX_ZAPDOS 145
+#define NATIONAL_DEX_MOLTRES 146
+#define NATIONAL_DEX_DRATINI 147
+#define NATIONAL_DEX_DRAGONAIR 148
+#define NATIONAL_DEX_DRAGONITE 149
+#define NATIONAL_DEX_MEWTWO 150
+#define NATIONAL_DEX_MEW 151
+#define NATIONAL_DEX_CHIKORITA 152
+#define NATIONAL_DEX_BAYLEEF 153
+#define NATIONAL_DEX_MEGANIUM 154
+#define NATIONAL_DEX_CYNDAQUIL 155
+#define NATIONAL_DEX_QUILAVA 156
+#define NATIONAL_DEX_TYPHLOSION 157
+#define NATIONAL_DEX_TOTODILE 158
+#define NATIONAL_DEX_CROCONAW 159
+#define NATIONAL_DEX_FERALIGATR 160
+#define NATIONAL_DEX_SENTRET 161
+#define NATIONAL_DEX_FURRET 162
+#define NATIONAL_DEX_HOOTHOOT 163
+#define NATIONAL_DEX_NOCTOWL 164
+#define NATIONAL_DEX_LEDYBA 165
+#define NATIONAL_DEX_LEDIAN 166
+#define NATIONAL_DEX_SPINARAK 167
+#define NATIONAL_DEX_ARIADOS 168
+#define NATIONAL_DEX_CROBAT 169
+#define NATIONAL_DEX_CHINCHOU 170
+#define NATIONAL_DEX_LANTURN 171
+#define NATIONAL_DEX_PICHU 172
+#define NATIONAL_DEX_CLEFFA 173
+#define NATIONAL_DEX_IGGLYBUFF 174
+#define NATIONAL_DEX_TOGEPI 175
+#define NATIONAL_DEX_TOGETIC 176
+#define NATIONAL_DEX_NATU 177
+#define NATIONAL_DEX_XATU 178
+#define NATIONAL_DEX_MAREEP 179
+#define NATIONAL_DEX_FLAAFFY 180
+#define NATIONAL_DEX_AMPHAROS 181
+#define NATIONAL_DEX_BELLOSSOM 182
+#define NATIONAL_DEX_MARILL 183
+#define NATIONAL_DEX_AZUMARILL 184
+#define NATIONAL_DEX_SUDOWOODO 185
+#define NATIONAL_DEX_POLITOED 186
+#define NATIONAL_DEX_HOPPIP 187
+#define NATIONAL_DEX_SKIPLOOM 188
+#define NATIONAL_DEX_JUMPLUFF 189
+#define NATIONAL_DEX_AIPOM 190
+#define NATIONAL_DEX_SUNKERN 191
+#define NATIONAL_DEX_SUNFLORA 192
+#define NATIONAL_DEX_YANMA 193
+#define NATIONAL_DEX_WOOPER 194
+#define NATIONAL_DEX_QUAGSIRE 195
+#define NATIONAL_DEX_ESPEON 196
+#define NATIONAL_DEX_UMBREON 197
+#define NATIONAL_DEX_MURKROW 198
+#define NATIONAL_DEX_SLOWKING 199
+#define NATIONAL_DEX_MISDREAVUS 200
+#define NATIONAL_DEX_UNOWN 201
+#define NATIONAL_DEX_WOBBUFFET 202
+#define NATIONAL_DEX_GIRAFARIG 203
+#define NATIONAL_DEX_PINECO 204
+#define NATIONAL_DEX_FORRETRESS 205
+#define NATIONAL_DEX_DUNSPARCE 206
+#define NATIONAL_DEX_GLIGAR 207
+#define NATIONAL_DEX_STEELIX 208
+#define NATIONAL_DEX_SNUBBULL 209
+#define NATIONAL_DEX_GRANBULL 210
+#define NATIONAL_DEX_QWILFISH 211
+#define NATIONAL_DEX_SCIZOR 212
+#define NATIONAL_DEX_SHUCKLE 213
+#define NATIONAL_DEX_HERACROSS 214
+#define NATIONAL_DEX_SNEASEL 215
+#define NATIONAL_DEX_TEDDIURSA 216
+#define NATIONAL_DEX_URSARING 217
+#define NATIONAL_DEX_SLUGMA 218
+#define NATIONAL_DEX_MAGCARGO 219
+#define NATIONAL_DEX_SWINUB 220
+#define NATIONAL_DEX_PILOSWINE 221
+#define NATIONAL_DEX_CORSOLA 222
+#define NATIONAL_DEX_REMORAID 223
+#define NATIONAL_DEX_OCTILLERY 224
+#define NATIONAL_DEX_DELIBIRD 225
+#define NATIONAL_DEX_MANTINE 226
+#define NATIONAL_DEX_SKARMORY 227
+#define NATIONAL_DEX_HOUNDOUR 228
+#define NATIONAL_DEX_HOUNDOOM 229
+#define NATIONAL_DEX_KINGDRA 230
+#define NATIONAL_DEX_PHANPY 231
+#define NATIONAL_DEX_DONPHAN 232
+#define NATIONAL_DEX_PORYGON2 233
+#define NATIONAL_DEX_STANTLER 234
+#define NATIONAL_DEX_SMEARGLE 235
+#define NATIONAL_DEX_TYROGUE 236
+#define NATIONAL_DEX_HITMONTOP 237
+#define NATIONAL_DEX_SMOOCHUM 238
+#define NATIONAL_DEX_ELEKID 239
+#define NATIONAL_DEX_MAGBY 240
+#define NATIONAL_DEX_MILTANK 241
+#define NATIONAL_DEX_BLISSEY 242
+#define NATIONAL_DEX_RAIKOU 243
+#define NATIONAL_DEX_ENTEI 244
+#define NATIONAL_DEX_SUICUNE 245
+#define NATIONAL_DEX_LARVITAR 246
+#define NATIONAL_DEX_PUPITAR 247
+#define NATIONAL_DEX_TYRANITAR 248
+#define NATIONAL_DEX_LUGIA 249
+#define NATIONAL_DEX_HO_OH 250
+#define NATIONAL_DEX_CELEBI 251
+
+#define NATIONAL_DEX_OLD_UNOWN_B 387
+#define NATIONAL_DEX_OLD_UNOWN_C 388
+#define NATIONAL_DEX_OLD_UNOWN_D 389
+#define NATIONAL_DEX_OLD_UNOWN_E 390
+#define NATIONAL_DEX_OLD_UNOWN_F 391
+#define NATIONAL_DEX_OLD_UNOWN_G 392
+#define NATIONAL_DEX_OLD_UNOWN_H 393
+#define NATIONAL_DEX_OLD_UNOWN_I 394
+#define NATIONAL_DEX_OLD_UNOWN_J 395
+#define NATIONAL_DEX_OLD_UNOWN_K 396
+#define NATIONAL_DEX_OLD_UNOWN_L 397
+#define NATIONAL_DEX_OLD_UNOWN_M 398
+#define NATIONAL_DEX_OLD_UNOWN_N 399
+#define NATIONAL_DEX_OLD_UNOWN_O 400
+#define NATIONAL_DEX_OLD_UNOWN_P 401
+#define NATIONAL_DEX_OLD_UNOWN_Q 402
+#define NATIONAL_DEX_OLD_UNOWN_R 403
+#define NATIONAL_DEX_OLD_UNOWN_S 404
+#define NATIONAL_DEX_OLD_UNOWN_T 405
+#define NATIONAL_DEX_OLD_UNOWN_U 406
+#define NATIONAL_DEX_OLD_UNOWN_V 407
+#define NATIONAL_DEX_OLD_UNOWN_W 408
+#define NATIONAL_DEX_OLD_UNOWN_X 409
+#define NATIONAL_DEX_OLD_UNOWN_Y 410
+#define NATIONAL_DEX_OLD_UNOWN_Z 411
+
+#define NATIONAL_DEX_TREECKO 252
+#define NATIONAL_DEX_GROVYLE 253
+#define NATIONAL_DEX_SCEPTILE 254
+#define NATIONAL_DEX_TORCHIC 255
+#define NATIONAL_DEX_COMBUSKEN 256
+#define NATIONAL_DEX_BLAZIKEN 257
+#define NATIONAL_DEX_MUDKIP 258
+#define NATIONAL_DEX_MARSHTOMP 259
+#define NATIONAL_DEX_SWAMPERT 260
+#define NATIONAL_DEX_POOCHYENA 261
+#define NATIONAL_DEX_MIGHTYENA 262
+#define NATIONAL_DEX_ZIGZAGOON 263
+#define NATIONAL_DEX_LINOONE 264
+#define NATIONAL_DEX_WURMPLE 265
+#define NATIONAL_DEX_SILCOON 266
+#define NATIONAL_DEX_BEAUTIFLY 267
+#define NATIONAL_DEX_CASCOON 268
+#define NATIONAL_DEX_DUSTOX 269
+#define NATIONAL_DEX_LOTAD 270
+#define NATIONAL_DEX_LOMBRE 271
+#define NATIONAL_DEX_LUDICOLO 272
+#define NATIONAL_DEX_SEEDOT 273
+#define NATIONAL_DEX_NUZLEAF 274
+#define NATIONAL_DEX_SHIFTRY 275
+#define NATIONAL_DEX_NINCADA 290
+#define NATIONAL_DEX_NINJASK 291
+#define NATIONAL_DEX_SHEDINJA 292
+#define NATIONAL_DEX_TAILLOW 276
+#define NATIONAL_DEX_SWELLOW 277
+#define NATIONAL_DEX_SHROOMISH 285
+#define NATIONAL_DEX_BRELOOM 286
+#define NATIONAL_DEX_SPINDA 327
+#define NATIONAL_DEX_WINGULL 278
+#define NATIONAL_DEX_PELIPPER 279
+#define NATIONAL_DEX_SURSKIT 283
+#define NATIONAL_DEX_MASQUERAIN 284
+#define NATIONAL_DEX_WAILMER 320
+#define NATIONAL_DEX_WAILORD 321
+#define NATIONAL_DEX_SKITTY 300
+#define NATIONAL_DEX_DELCATTY 301
+#define NATIONAL_DEX_KECLEON 352
+#define NATIONAL_DEX_BALTOY 343
+#define NATIONAL_DEX_CLAYDOL 344
+#define NATIONAL_DEX_NOSEPASS 299
+#define NATIONAL_DEX_TORKOAL 324
+#define NATIONAL_DEX_SABLEYE 302
+#define NATIONAL_DEX_BARBOACH 339
+#define NATIONAL_DEX_WHISCASH 340
+#define NATIONAL_DEX_LUVDISC 370
+#define NATIONAL_DEX_CORPHISH 341
+#define NATIONAL_DEX_CRAWDAUNT 342
+#define NATIONAL_DEX_FEEBAS 349
+#define NATIONAL_DEX_MILOTIC 350
+#define NATIONAL_DEX_CARVANHA 318
+#define NATIONAL_DEX_SHARPEDO 319
+#define NATIONAL_DEX_TRAPINCH 328
+#define NATIONAL_DEX_VIBRAVA 329
+#define NATIONAL_DEX_FLYGON 330
+#define NATIONAL_DEX_MAKUHITA 296
+#define NATIONAL_DEX_HARIYAMA 297
+#define NATIONAL_DEX_ELECTRIKE 309
+#define NATIONAL_DEX_MANECTRIC 310
+#define NATIONAL_DEX_NUMEL 322
+#define NATIONAL_DEX_CAMERUPT 323
+#define NATIONAL_DEX_SPHEAL 363
+#define NATIONAL_DEX_SEALEO 364
+#define NATIONAL_DEX_WALREIN 365
+#define NATIONAL_DEX_CACNEA 331
+#define NATIONAL_DEX_CACTURNE 332
+#define NATIONAL_DEX_SNORUNT 361
+#define NATIONAL_DEX_GLALIE 362
+#define NATIONAL_DEX_LUNATONE 337
+#define NATIONAL_DEX_SOLROCK 338
+#define NATIONAL_DEX_AZURILL 298
+#define NATIONAL_DEX_SPOINK 325
+#define NATIONAL_DEX_GRUMPIG 326
+#define NATIONAL_DEX_PLUSLE 311
+#define NATIONAL_DEX_MINUN 312
+#define NATIONAL_DEX_MAWILE 303
+#define NATIONAL_DEX_MEDITITE 307
+#define NATIONAL_DEX_MEDICHAM 308
+#define NATIONAL_DEX_SWABLU 333
+#define NATIONAL_DEX_ALTARIA 334
+#define NATIONAL_DEX_WYNAUT 360
+#define NATIONAL_DEX_DUSKULL 355
+#define NATIONAL_DEX_DUSCLOPS 356
+#define NATIONAL_DEX_ROSELIA 315
+#define NATIONAL_DEX_SLAKOTH 287
+#define NATIONAL_DEX_VIGOROTH 288
+#define NATIONAL_DEX_SLAKING 289
+#define NATIONAL_DEX_GULPIN 316
+#define NATIONAL_DEX_SWALOT 317
+#define NATIONAL_DEX_TROPIUS 357
+#define NATIONAL_DEX_WHISMUR 293
+#define NATIONAL_DEX_LOUDRED 294
+#define NATIONAL_DEX_EXPLOUD 295
+#define NATIONAL_DEX_CLAMPERL 366
+#define NATIONAL_DEX_HUNTAIL 367
+#define NATIONAL_DEX_GOREBYSS 368
+#define NATIONAL_DEX_ABSOL 359
+#define NATIONAL_DEX_SHUPPET 353
+#define NATIONAL_DEX_BANETTE 354
+#define NATIONAL_DEX_SEVIPER 336
+#define NATIONAL_DEX_ZANGOOSE 335
+#define NATIONAL_DEX_RELICANTH 369
+#define NATIONAL_DEX_ARON 304
+#define NATIONAL_DEX_LAIRON 305
+#define NATIONAL_DEX_AGGRON 306
+#define NATIONAL_DEX_CASTFORM 351
+#define NATIONAL_DEX_VOLBEAT 313
+#define NATIONAL_DEX_ILLUMISE 314
+#define NATIONAL_DEX_LILEEP 345
+#define NATIONAL_DEX_CRADILY 346
+#define NATIONAL_DEX_ANORITH 347
+#define NATIONAL_DEX_ARMALDO 348
+#define NATIONAL_DEX_RALTS 280
+#define NATIONAL_DEX_KIRLIA 281
+#define NATIONAL_DEX_GARDEVOIR 282
+#define NATIONAL_DEX_BAGON 371
+#define NATIONAL_DEX_SHELGON 372
+#define NATIONAL_DEX_SALAMENCE 373
+#define NATIONAL_DEX_BELDUM 374
+#define NATIONAL_DEX_METANG 375
+#define NATIONAL_DEX_METAGROSS 376
+#define NATIONAL_DEX_REGIROCK 377
+#define NATIONAL_DEX_REGICE 378
+#define NATIONAL_DEX_REGISTEEL 379
+#define NATIONAL_DEX_KYOGRE 382
+#define NATIONAL_DEX_GROUDON 383
+#define NATIONAL_DEX_RAYQUAZA 384
+#define NATIONAL_DEX_LATIAS 380
+#define NATIONAL_DEX_LATIOS 381
+#define NATIONAL_DEX_JIRACHI 385
+#define NATIONAL_DEX_DEOXYS 386
+#define NATIONAL_DEX_CHIMECHO 358
+
+// Hoenn Dex Index Defines
+
+#define HOENN_DEX_BULBASAUR 203
+#define HOENN_DEX_IVYSAUR 204
+#define HOENN_DEX_VENUSAUR 205
+#define HOENN_DEX_CHARMANDER 206
+#define HOENN_DEX_CHARMELEON 207
+#define HOENN_DEX_CHARIZARD 208
+#define HOENN_DEX_SQUIRTLE 209
+#define HOENN_DEX_WARTORTLE 210
+#define HOENN_DEX_BLASTOISE 211
+#define HOENN_DEX_CATERPIE 212
+#define HOENN_DEX_METAPOD 213
+#define HOENN_DEX_BUTTERFREE 214
+#define HOENN_DEX_WEEDLE 215
+#define HOENN_DEX_KAKUNA 216
+#define HOENN_DEX_BEEDRILL 217
+#define HOENN_DEX_PIDGEY 218
+#define HOENN_DEX_PIDGEOTTO 219
+#define HOENN_DEX_PIDGEOT 220
+#define HOENN_DEX_RATTATA 221
+#define HOENN_DEX_RATICATE 222
+#define HOENN_DEX_SPEAROW 223
+#define HOENN_DEX_FEAROW 224
+#define HOENN_DEX_EKANS 225
+#define HOENN_DEX_ARBOK 226
+#define HOENN_DEX_PIKACHU 156
+#define HOENN_DEX_RAICHU 157
+#define HOENN_DEX_SANDSHREW 112
+#define HOENN_DEX_SANDSLASH 113
+#define HOENN_DEX_NIDORAN_F 227
+#define HOENN_DEX_NIDORINA 228
+#define HOENN_DEX_NIDOQUEEN 229
+#define HOENN_DEX_NIDORAN_M 230
+#define HOENN_DEX_NIDORINO 231
+#define HOENN_DEX_NIDOKING 232
+#define HOENN_DEX_CLEFAIRY 233
+#define HOENN_DEX_CLEFABLE 234
+#define HOENN_DEX_VULPIX 153
+#define HOENN_DEX_NINETALES 154
+#define HOENN_DEX_JIGGLYPUFF 138
+#define HOENN_DEX_WIGGLYTUFF 139
+#define HOENN_DEX_ZUBAT 63
+#define HOENN_DEX_GOLBAT 64
+#define HOENN_DEX_ODDISH 88
+#define HOENN_DEX_GLOOM 89
+#define HOENN_DEX_VILEPLUME 90
+#define HOENN_DEX_PARAS 235
+#define HOENN_DEX_PARASECT 236
+#define HOENN_DEX_VENONAT 237
+#define HOENN_DEX_VENOMOTH 238
+#define HOENN_DEX_DIGLETT 239
+#define HOENN_DEX_DUGTRIO 240
+#define HOENN_DEX_MEOWTH 241
+#define HOENN_DEX_PERSIAN 242
+#define HOENN_DEX_PSYDUCK 158
+#define HOENN_DEX_GOLDUCK 159
+#define HOENN_DEX_MANKEY 243
+#define HOENN_DEX_PRIMEAPE 244
+#define HOENN_DEX_GROWLITHE 245
+#define HOENN_DEX_ARCANINE 246
+#define HOENN_DEX_POLIWAG 247
+#define HOENN_DEX_POLIWHIRL 248
+#define HOENN_DEX_POLIWRATH 249
+#define HOENN_DEX_ABRA 39
+#define HOENN_DEX_KADABRA 40
+#define HOENN_DEX_ALAKAZAM 41
+#define HOENN_DEX_MACHOP 73
+#define HOENN_DEX_MACHOKE 74
+#define HOENN_DEX_MACHAMP 75
+#define HOENN_DEX_BELLSPROUT 250
+#define HOENN_DEX_WEEPINBELL 251
+#define HOENN_DEX_VICTREEBEL 252
+#define HOENN_DEX_TENTACOOL 66
+#define HOENN_DEX_TENTACRUEL 67
+#define HOENN_DEX_GEODUDE 57
+#define HOENN_DEX_GRAVELER 58
+#define HOENN_DEX_GOLEM 59
+#define HOENN_DEX_PONYTA 253
+#define HOENN_DEX_RAPIDASH 254
+#define HOENN_DEX_SLOWPOKE 255
+#define HOENN_DEX_SLOWBRO 256
+#define HOENN_DEX_MAGNEMITE 82
+#define HOENN_DEX_MAGNETON 83
+#define HOENN_DEX_FARFETCHD 257
+#define HOENN_DEX_DODUO 92
+#define HOENN_DEX_DODRIO 93
+#define HOENN_DEX_SEEL 258
+#define HOENN_DEX_DEWGONG 259
+#define HOENN_DEX_GRIMER 106
+#define HOENN_DEX_MUK 107
+#define HOENN_DEX_SHELLDER 260
+#define HOENN_DEX_CLOYSTER 261
+#define HOENN_DEX_GASTLY 262
+#define HOENN_DEX_HAUNTER 263
+#define HOENN_DEX_GENGAR 264
+#define HOENN_DEX_ONIX 265
+#define HOENN_DEX_DROWZEE 266
+#define HOENN_DEX_HYPNO 267
+#define HOENN_DEX_KRABBY 268
+#define HOENN_DEX_KINGLER 269
+#define HOENN_DEX_VOLTORB 84
+#define HOENN_DEX_ELECTRODE 85
+#define HOENN_DEX_EXEGGCUTE 270
+#define HOENN_DEX_EXEGGUTOR 271
+#define HOENN_DEX_CUBONE 272
+#define HOENN_DEX_MAROWAK 273
+#define HOENN_DEX_HITMONLEE 274
+#define HOENN_DEX_HITMONCHAN 275
+#define HOENN_DEX_LICKITUNG 276
+#define HOENN_DEX_KOFFING 108
+#define HOENN_DEX_WEEZING 109
+#define HOENN_DEX_RHYHORN 169
+#define HOENN_DEX_RHYDON 170
+#define HOENN_DEX_CHANSEY 277
+#define HOENN_DEX_TANGELA 278
+#define HOENN_DEX_KANGASKHAN 279
+#define HOENN_DEX_HORSEA 184
+#define HOENN_DEX_SEADRA 185
+#define HOENN_DEX_GOLDEEN 50
+#define HOENN_DEX_SEAKING 51
+#define HOENN_DEX_STARYU 143
+#define HOENN_DEX_STARMIE 144
+#define HOENN_DEX_MR_MIME 280
+#define HOENN_DEX_SCYTHER 281
+#define HOENN_DEX_JYNX 282
+#define HOENN_DEX_ELECTABUZZ 283
+#define HOENN_DEX_MAGMAR 284
+#define HOENN_DEX_PINSIR 167
+#define HOENN_DEX_TAUROS 285
+#define HOENN_DEX_MAGIKARP 52
+#define HOENN_DEX_GYARADOS 53
+#define HOENN_DEX_LAPRAS 286
+#define HOENN_DEX_DITTO 287
+#define HOENN_DEX_EEVEE 288
+#define HOENN_DEX_VAPOREON 289
+#define HOENN_DEX_JOLTEON 290
+#define HOENN_DEX_FLAREON 291
+#define HOENN_DEX_PORYGON 292
+#define HOENN_DEX_OMANYTE 293
+#define HOENN_DEX_OMASTAR 294
+#define HOENN_DEX_KABUTO 295
+#define HOENN_DEX_KABUTOPS 296
+#define HOENN_DEX_AERODACTYL 297
+#define HOENN_DEX_SNORLAX 298
+#define HOENN_DEX_ARTICUNO 299
+#define HOENN_DEX_ZAPDOS 300
+#define HOENN_DEX_MOLTRES 301
+#define HOENN_DEX_DRATINI 302
+#define HOENN_DEX_DRAGONAIR 303
+#define HOENN_DEX_DRAGONITE 304
+#define HOENN_DEX_MEWTWO 305
+#define HOENN_DEX_MEW 306
+#define HOENN_DEX_CHIKORITA 307
+#define HOENN_DEX_BAYLEEF 308
+#define HOENN_DEX_MEGANIUM 309
+#define HOENN_DEX_CYNDAQUIL 310
+#define HOENN_DEX_QUILAVA 311
+#define HOENN_DEX_TYPHLOSION 312
+#define HOENN_DEX_TOTODILE 313
+#define HOENN_DEX_CROCONAW 314
+#define HOENN_DEX_FERALIGATR 315
+#define HOENN_DEX_SENTRET 316
+#define HOENN_DEX_FURRET 317
+#define HOENN_DEX_HOOTHOOT 318
+#define HOENN_DEX_NOCTOWL 319
+#define HOENN_DEX_LEDYBA 320
+#define HOENN_DEX_LEDIAN 321
+#define HOENN_DEX_SPINARAK 322
+#define HOENN_DEX_ARIADOS 323
+#define HOENN_DEX_CROBAT 65
+#define HOENN_DEX_CHINCHOU 181
+#define HOENN_DEX_LANTURN 182
+#define HOENN_DEX_PICHU 155
+#define HOENN_DEX_CLEFFA 324
+#define HOENN_DEX_IGGLYBUFF 137
+#define HOENN_DEX_TOGEPI 325
+#define HOENN_DEX_TOGETIC 326
+#define HOENN_DEX_NATU 162
+#define HOENN_DEX_XATU 163
+#define HOENN_DEX_MAREEP 327
+#define HOENN_DEX_FLAAFFY 328
+#define HOENN_DEX_AMPHAROS 329
+#define HOENN_DEX_BELLOSSOM 91
+#define HOENN_DEX_MARILL 55
+#define HOENN_DEX_AZUMARILL 56
+#define HOENN_DEX_SUDOWOODO 330
+#define HOENN_DEX_POLITOED 331
+#define HOENN_DEX_HOPPIP 332
+#define HOENN_DEX_SKIPLOOM 333
+#define HOENN_DEX_JUMPLUFF 334
+#define HOENN_DEX_AIPOM 335
+#define HOENN_DEX_SUNKERN 336
+#define HOENN_DEX_SUNFLORA 337
+#define HOENN_DEX_YANMA 338
+#define HOENN_DEX_WOOPER 339
+#define HOENN_DEX_QUAGSIRE 340
+#define HOENN_DEX_ESPEON 341
+#define HOENN_DEX_UMBREON 342
+#define HOENN_DEX_MURKROW 343
+#define HOENN_DEX_SLOWKING 344
+#define HOENN_DEX_MISDREAVUS 345
+#define HOENN_DEX_UNOWN 346
+#define HOENN_DEX_WOBBUFFET 161
+#define HOENN_DEX_GIRAFARIG 164
+#define HOENN_DEX_PINECO 347
+#define HOENN_DEX_FORRETRESS 348
+#define HOENN_DEX_DUNSPARCE 349
+#define HOENN_DEX_GLIGAR 350
+#define HOENN_DEX_STEELIX 351
+#define HOENN_DEX_SNUBBULL 352
+#define HOENN_DEX_GRANBULL 353
+#define HOENN_DEX_QWILFISH 354
+#define HOENN_DEX_SCIZOR 355
+#define HOENN_DEX_SHUCKLE 356
+#define HOENN_DEX_HERACROSS 168
+#define HOENN_DEX_SNEASEL 357
+#define HOENN_DEX_TEDDIURSA 358
+#define HOENN_DEX_URSARING 359
+#define HOENN_DEX_SLUGMA 103
+#define HOENN_DEX_MAGCARGO 104
+#define HOENN_DEX_SWINUB 360
+#define HOENN_DEX_PILOSWINE 361
+#define HOENN_DEX_CORSOLA 180
+#define HOENN_DEX_REMORAID 362
+#define HOENN_DEX_OCTILLERY 363
+#define HOENN_DEX_DELIBIRD 364
+#define HOENN_DEX_MANTINE 365
+#define HOENN_DEX_SKARMORY 115
+#define HOENN_DEX_HOUNDOUR 366
+#define HOENN_DEX_HOUNDOOM 367
+#define HOENN_DEX_KINGDRA 186
+#define HOENN_DEX_PHANPY 165
+#define HOENN_DEX_DONPHAN 166
+#define HOENN_DEX_PORYGON2 368
+#define HOENN_DEX_STANTLER 369
+#define HOENN_DEX_SMEARGLE 370
+#define HOENN_DEX_TYROGUE 371
+#define HOENN_DEX_HITMONTOP 372
+#define HOENN_DEX_SMOOCHUM 373
+#define HOENN_DEX_ELEKID 374
+#define HOENN_DEX_MAGBY 375
+#define HOENN_DEX_MILTANK 376
+#define HOENN_DEX_BLISSEY 377
+#define HOENN_DEX_RAIKOU 378
+#define HOENN_DEX_ENTEI 379
+#define HOENN_DEX_SUICUNE 380
+#define HOENN_DEX_LARVITAR 381
+#define HOENN_DEX_PUPITAR 382
+#define HOENN_DEX_TYRANITAR 383
+#define HOENN_DEX_LUGIA 384
+#define HOENN_DEX_HO_OH 385
+#define HOENN_DEX_CELEBI 386
+
+#define HOENN_DEX_OLD_UNOWN_B 387
+#define HOENN_DEX_OLD_UNOWN_C 388
+#define HOENN_DEX_OLD_UNOWN_D 389
+#define HOENN_DEX_OLD_UNOWN_E 390
+#define HOENN_DEX_OLD_UNOWN_F 391
+#define HOENN_DEX_OLD_UNOWN_G 392
+#define HOENN_DEX_OLD_UNOWN_H 393
+#define HOENN_DEX_OLD_UNOWN_I 394
+#define HOENN_DEX_OLD_UNOWN_J 395
+#define HOENN_DEX_OLD_UNOWN_K 396
+#define HOENN_DEX_OLD_UNOWN_L 397
+#define HOENN_DEX_OLD_UNOWN_M 398
+#define HOENN_DEX_OLD_UNOWN_N 399
+#define HOENN_DEX_OLD_UNOWN_O 400
+#define HOENN_DEX_OLD_UNOWN_P 401
+#define HOENN_DEX_OLD_UNOWN_Q 402
+#define HOENN_DEX_OLD_UNOWN_R 403
+#define HOENN_DEX_OLD_UNOWN_S 404
+#define HOENN_DEX_OLD_UNOWN_T 405
+#define HOENN_DEX_OLD_UNOWN_U 406
+#define HOENN_DEX_OLD_UNOWN_V 407
+#define HOENN_DEX_OLD_UNOWN_W 408
+#define HOENN_DEX_OLD_UNOWN_X 409
+#define HOENN_DEX_OLD_UNOWN_Y 410
+#define HOENN_DEX_OLD_UNOWN_Z 411
+
+#define HOENN_DEX_TREECKO 1
+#define HOENN_DEX_GROVYLE 2
+#define HOENN_DEX_SCEPTILE 3
+#define HOENN_DEX_TORCHIC 4
+#define HOENN_DEX_COMBUSKEN 5
+#define HOENN_DEX_BLAZIKEN 6
+#define HOENN_DEX_MUDKIP 7
+#define HOENN_DEX_MARSHTOMP 8
+#define HOENN_DEX_SWAMPERT 9
+#define HOENN_DEX_POOCHYENA 10
+#define HOENN_DEX_MIGHTYENA 11
+#define HOENN_DEX_ZIGZAGOON 12
+#define HOENN_DEX_LINOONE 13
+#define HOENN_DEX_WURMPLE 14
+#define HOENN_DEX_SILCOON 15
+#define HOENN_DEX_BEAUTIFLY 16
+#define HOENN_DEX_CASCOON 17
+#define HOENN_DEX_DUSTOX 18
+#define HOENN_DEX_LOTAD 19
+#define HOENN_DEX_LOMBRE 20
+#define HOENN_DEX_LUDICOLO 21
+#define HOENN_DEX_SEEDOT 22
+#define HOENN_DEX_NUZLEAF 23
+#define HOENN_DEX_SHIFTRY 24
+#define HOENN_DEX_NINCADA 42
+#define HOENN_DEX_NINJASK 43
+#define HOENN_DEX_SHEDINJA 44
+#define HOENN_DEX_TAILLOW 25
+#define HOENN_DEX_SWELLOW 26
+#define HOENN_DEX_SHROOMISH 34
+#define HOENN_DEX_BRELOOM 35
+#define HOENN_DEX_SPINDA 114
+#define HOENN_DEX_WINGULL 27
+#define HOENN_DEX_PELIPPER 28
+#define HOENN_DEX_SURSKIT 32
+#define HOENN_DEX_MASQUERAIN 33
+#define HOENN_DEX_WAILMER 99
+#define HOENN_DEX_WAILORD 100
+#define HOENN_DEX_SKITTY 61
+#define HOENN_DEX_DELCATTY 62
+#define HOENN_DEX_KECLEON 145
+#define HOENN_DEX_BALTOY 131
+#define HOENN_DEX_CLAYDOL 132
+#define HOENN_DEX_NOSEPASS 60
+#define HOENN_DEX_TORKOAL 105
+#define HOENN_DEX_SABLEYE 68
+#define HOENN_DEX_BARBOACH 127
+#define HOENN_DEX_WHISCASH 128
+#define HOENN_DEX_LUVDISC 183
+#define HOENN_DEX_CORPHISH 129
+#define HOENN_DEX_CRAWDAUNT 130
+#define HOENN_DEX_FEEBAS 140
+#define HOENN_DEX_MILOTIC 141
+#define HOENN_DEX_CARVANHA 97
+#define HOENN_DEX_SHARPEDO 98
+#define HOENN_DEX_TRAPINCH 116
+#define HOENN_DEX_VIBRAVA 117
+#define HOENN_DEX_FLYGON 118
+#define HOENN_DEX_MAKUHITA 48
+#define HOENN_DEX_HARIYAMA 49
+#define HOENN_DEX_ELECTRIKE 78
+#define HOENN_DEX_MANECTRIC 79
+#define HOENN_DEX_NUMEL 101
+#define HOENN_DEX_CAMERUPT 102
+#define HOENN_DEX_SPHEAL 173
+#define HOENN_DEX_SEALEO 174
+#define HOENN_DEX_WALREIN 175
+#define HOENN_DEX_CACNEA 119
+#define HOENN_DEX_CACTURNE 120
+#define HOENN_DEX_SNORUNT 171
+#define HOENN_DEX_GLALIE 172
+#define HOENN_DEX_LUNATONE 125
+#define HOENN_DEX_SOLROCK 126
+#define HOENN_DEX_AZURILL 54
+#define HOENN_DEX_SPOINK 110
+#define HOENN_DEX_GRUMPIG 111
+#define HOENN_DEX_PLUSLE 80
+#define HOENN_DEX_MINUN 81
+#define HOENN_DEX_MAWILE 69
+#define HOENN_DEX_MEDITITE 76
+#define HOENN_DEX_MEDICHAM 77
+#define HOENN_DEX_SWABLU 121
+#define HOENN_DEX_ALTARIA 122
+#define HOENN_DEX_WYNAUT 160
+#define HOENN_DEX_DUSKULL 148
+#define HOENN_DEX_DUSCLOPS 149
+#define HOENN_DEX_ROSELIA 94
+#define HOENN_DEX_SLAKOTH 36
+#define HOENN_DEX_VIGOROTH 37
+#define HOENN_DEX_SLAKING 38
+#define HOENN_DEX_GULPIN 95
+#define HOENN_DEX_SWALOT 96
+#define HOENN_DEX_TROPIUS 150
+#define HOENN_DEX_WHISMUR 45
+#define HOENN_DEX_LOUDRED 46
+#define HOENN_DEX_EXPLOUD 47
+#define HOENN_DEX_CLAMPERL 176
+#define HOENN_DEX_HUNTAIL 177
+#define HOENN_DEX_GOREBYSS 178
+#define HOENN_DEX_ABSOL 152
+#define HOENN_DEX_SHUPPET 146
+#define HOENN_DEX_BANETTE 147
+#define HOENN_DEX_SEVIPER 124
+#define HOENN_DEX_ZANGOOSE 123
+#define HOENN_DEX_RELICANTH 179
+#define HOENN_DEX_ARON 70
+#define HOENN_DEX_LAIRON 71
+#define HOENN_DEX_AGGRON 72
+#define HOENN_DEX_CASTFORM 142
+#define HOENN_DEX_VOLBEAT 86
+#define HOENN_DEX_ILLUMISE 87
+#define HOENN_DEX_LILEEP 133
+#define HOENN_DEX_CRADILY 134
+#define HOENN_DEX_ANORITH 135
+#define HOENN_DEX_ARMALDO 136
+#define HOENN_DEX_RALTS 29
+#define HOENN_DEX_KIRLIA 30
+#define HOENN_DEX_GARDEVOIR 31
+#define HOENN_DEX_BAGON 187
+#define HOENN_DEX_SHELGON 188
+#define HOENN_DEX_SALAMENCE 189
+#define HOENN_DEX_BELDUM 190
+#define HOENN_DEX_METANG 191
+#define HOENN_DEX_METAGROSS 192
+#define HOENN_DEX_REGIROCK 193
+#define HOENN_DEX_REGICE 194
+#define HOENN_DEX_REGISTEEL 195
+#define HOENN_DEX_KYOGRE 198
+#define HOENN_DEX_GROUDON 199
+#define HOENN_DEX_RAYQUAZA 200
+#define HOENN_DEX_LATIAS 196
+#define HOENN_DEX_LATIOS 197
+#define HOENN_DEX_JIRACHI 201
+#define HOENN_DEX_DEOXYS 202
+#define HOENN_DEX_CHIMECHO 151
+
#ifdef SAPPHIRE
#define ROAMER_SPECIES SPECIES_LATIAS
#else
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
index e1e7529ca..ece46fce0 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -3,227 +3,6 @@
#include "sprite.h"
-enum {
- MOVEMENT_TYPE_NONE,
- MOVEMENT_TYPE_LOOK_AROUND,
- MOVEMENT_TYPE_WANDER_AROUND,
- MOVEMENT_TYPE_WANDER_UP_AND_DOWN,
- MOVEMENT_TYPE_WANDER_DOWN_AND_UP,
- MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT,
- MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT,
- MOVEMENT_TYPE_FACE_UP,
- MOVEMENT_TYPE_FACE_DOWN,
- MOVEMENT_TYPE_FACE_LEFT,
- MOVEMENT_TYPE_FACE_RIGHT,
- MOVEMENT_TYPE_PLAYER,
- MOVEMENT_TYPE_BERRY_TREE_GROWTH,
- MOVEMENT_TYPE_FACE_DOWN_AND_UP,
- MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT,
- MOVEMENT_TYPE_FACE_UP_AND_LEFT,
- MOVEMENT_TYPE_FACE_UP_AND_RIGHT,
- MOVEMENT_TYPE_FACE_DOWN_AND_LEFT,
- MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT,
- MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT,
- MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT,
- MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT,
- MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT,
- MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE,
- MOVEMENT_TYPE_ROTATE_CLOCKWISE,
- MOVEMENT_TYPE_WALK_UP_AND_DOWN,
- MOVEMENT_TYPE_WALK_DOWN_AND_UP,
- MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT,
- MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT,
- MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN,
- MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP,
- MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT,
- MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT,
- MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN,
- MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP,
- MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT,
- MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT,
- MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT,
- MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT,
- MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN,
- MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP,
- MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT,
- MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT,
- MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN,
- MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP,
- MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT,
- MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT,
- MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP,
- MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN,
- MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT,
- MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT,
- MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN,
- MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP,
- MOVEMENT_TYPE_COPY_PLAYER,
- MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE,
- MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE,
- MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE,
- MOVEMENT_TYPE_TREE_DISGUISE,
- MOVEMENT_TYPE_MOUNTAIN_DISGUISE,
- MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS,
- MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS,
- MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS,
- MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS,
- MOVEMENT_TYPE_HIDDEN,
- MOVEMENT_TYPE_WALK_IN_PLACE_DOWN,
- MOVEMENT_TYPE_WALK_IN_PLACE_UP,
- MOVEMENT_TYPE_WALK_IN_PLACE_LEFT,
- MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT,
- MOVEMENT_TYPE_JOG_IN_PLACE_DOWN,
- MOVEMENT_TYPE_JOG_IN_PLACE_UP,
- MOVEMENT_TYPE_JOG_IN_PLACE_LEFT,
- MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT,
- MOVEMENT_TYPE_RUN_IN_PLACE_DOWN,
- MOVEMENT_TYPE_RUN_IN_PLACE_UP,
- MOVEMENT_TYPE_RUN_IN_PLACE_LEFT,
- MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT,
- MOVEMENT_TYPE_INVISIBLE,
-};
-
-enum {
- MOVEMENT_ACTION_FACE_DOWN,
- MOVEMENT_ACTION_FACE_UP,
- MOVEMENT_ACTION_FACE_LEFT,
- MOVEMENT_ACTION_FACE_RIGHT,
- MOVEMENT_ACTION_WALK_SLOW_DOWN,
- MOVEMENT_ACTION_WALK_SLOW_UP,
- MOVEMENT_ACTION_WALK_SLOW_LEFT,
- MOVEMENT_ACTION_WALK_SLOW_RIGHT,
- MOVEMENT_ACTION_WALK_NORMAL_DOWN,
- MOVEMENT_ACTION_WALK_NORMAL_UP,
- MOVEMENT_ACTION_WALK_NORMAL_LEFT,
- MOVEMENT_ACTION_WALK_NORMAL_RIGHT,
- MOVEMENT_ACTION_JUMP_2_DOWN,
- MOVEMENT_ACTION_JUMP_2_UP,
- MOVEMENT_ACTION_JUMP_2_LEFT,
- MOVEMENT_ACTION_JUMP_2_RIGHT,
- MOVEMENT_ACTION_DELAY_1,
- MOVEMENT_ACTION_DELAY_2,
- MOVEMENT_ACTION_DELAY_4,
- MOVEMENT_ACTION_DELAY_8,
- MOVEMENT_ACTION_DELAY_16,
- MOVEMENT_ACTION_WALK_FAST_DOWN,
- MOVEMENT_ACTION_WALK_FAST_UP,
- MOVEMENT_ACTION_WALK_FAST_LEFT,
- MOVEMENT_ACTION_WALK_FAST_RIGHT,
- MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN,
- MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP,
- MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT,
- MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT,
- MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN,
- MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP,
- MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT,
- MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT,
- MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN,
- MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP,
- MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT,
- MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT,
- MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN,
- MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP,
- MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT,
- MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT,
- MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN,
- MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP,
- MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT,
- MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT,
- MOVEMENT_ACTION_WALK_FASTEST_DOWN,
- MOVEMENT_ACTION_WALK_FASTEST_UP,
- MOVEMENT_ACTION_WALK_FASTEST_LEFT,
- MOVEMENT_ACTION_WALK_FASTEST_RIGHT,
- MOVEMENT_ACTION_SLIDE_DOWN,
- MOVEMENT_ACTION_SLIDE_UP,
- MOVEMENT_ACTION_SLIDE_LEFT,
- MOVEMENT_ACTION_SLIDE_RIGHT,
- MOVEMENT_ACTION_PLAYER_RUN_DOWN,
- MOVEMENT_ACTION_PLAYER_RUN_UP,
- MOVEMENT_ACTION_PLAYER_RUN_LEFT,
- MOVEMENT_ACTION_PLAYER_RUN_RIGHT,
- MOVEMENT_ACTION_START_ANIM_IN_DIRECTION,
- MOVEMENT_ACTION_JUMP_SPECIAL_DOWN,
- MOVEMENT_ACTION_JUMP_SPECIAL_UP,
- MOVEMENT_ACTION_JUMP_SPECIAL_LEFT ,
- MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT,
- MOVEMENT_ACTION_FACE_PLAYER,
- MOVEMENT_ACTION_FACE_AWAY_PLAYER,
- MOVEMENT_ACTION_LOCK_FACING_DIRECTION,
- MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION,
- MOVEMENT_ACTION_JUMP_DOWN,
- MOVEMENT_ACTION_JUMP_UP,
- MOVEMENT_ACTION_JUMP_LEFT,
- MOVEMENT_ACTION_JUMP_RIGHT,
- MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN,
- MOVEMENT_ACTION_JUMP_IN_PLACE_UP,
- MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT,
- MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT,
- MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP,
- MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN,
- MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT,
- MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT,
- MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION,
- MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN,
- MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT,
- MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT,
- MOVEMENT_ACTION_DISABLE_ANIMATION,
- MOVEMENT_ACTION_RESTORE_ANIMATION,
- MOVEMENT_ACTION_SET_INVISIBLE,
- MOVEMENT_ACTION_SET_VISIBLE,
- MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK,
- MOVEMENT_ACTION_EMOTE_QUESTION_MARK,
- MOVEMENT_ACTION_EMOTE_HEART,
- MOVEMENT_ACTION_REVEAL_TRAINER,
- MOVEMENT_ACTION_ROCK_SMASH_BREAK,
- MOVEMENT_ACTION_CUT_TREE,
- MOVEMENT_ACTION_SET_FIXED_PRIORITY,
- MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY,
- MOVEMENT_ACTION_INIT_AFFINE_ANIM,
- MOVEMENT_ACTION_CLEAR_AFFINE_ANIM,
- MOVEMENT_ACTION_WALK_DOWN_START_AFFINE,
- MOVEMENT_ACTION_WALK_DOWN_AFFINE_1,
- MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN,
- MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP,
- MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT,
- MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT,
- MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN,
- MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP,
- MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT,
- MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT,
- MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN,
- MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP,
- MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT,
- MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT,
- MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN,
- MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP,
- MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT,
- MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT,
- MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN,
- MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP,
- MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT,
- MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT,
- MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN,
- MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP,
- MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT,
- MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT,
- MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN,
- MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP,
- MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT,
- MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT,
- MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN,
- MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP,
- MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT,
- MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT,
- MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN,
- MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP,
- MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT,
- MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT,
- MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN,
- MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP,
- MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT,
- MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT,
-};
-
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN (1 << 0)
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE (1 << 1)
#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_SPAWN (1 << 2)
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 15766a350..aa13a9ac0 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -11,35 +11,6 @@ enum
CONNECTION_EMERGE
};
-// map types
-enum
-{
- MAP_TYPE_0, // 0
- MAP_TYPE_TOWN, // 1
- MAP_TYPE_CITY, // 2
- MAP_TYPE_ROUTE, // 3
- MAP_TYPE_UNDERGROUND, // 4
- MAP_TYPE_UNDERWATER, // 5
- MAP_TYPE_6, // 6
- MAP_TYPE_7, // 7
- MAP_TYPE_INDOOR, // 8
- MAP_TYPE_SECRET_BASE // 9
-};
-
-// map battle scenes
-enum
-{
- MAP_BATTLE_SCENE_NORMAL, // 0
- MAP_BATTLE_SCENE_GYM, // 1
- MAP_BATTLE_SCENE_MAGMA, // 2
- MAP_BATTLE_SCENE_AQUA, // 3
- MAP_BATTLE_SCENE_SIDNEY, // 4
- MAP_BATTLE_SCENE_PHOEBE, // 5
- MAP_BATTLE_SCENE_GLACIA, // 6
- MAP_BATTLE_SCENE_DRAKE, // 7
- MAP_BATTLE_SCENE_BATTLE_TOWER, // 8
-};
-
typedef void (*TilesetCB)(void);
struct Tileset
diff --git a/include/global.h b/include/global.h
index 3c0169606..374701930 100644
--- a/include/global.h
+++ b/include/global.h
@@ -96,12 +96,15 @@ enum LanguageId
// capacities of various saveblock objects
#define DAYCARE_MON_COUNT 2
#define POKEBLOCKS_COUNT 40
-#define EVENT_OBJECTS_COUNT 16
+#define PARTY_SIZE 6
+#define EVENT_OBJECTS_COUNT 16
#define BERRY_TREES_COUNT 128
#define FLAGS_COUNT 288
#define VARS_COUNT 256
#define MAIL_COUNT 16
#define SECRET_BASES_COUNT 20
+#define TV_SHOWS_COUNT 25
+#define POKE_NEWS_COUNT 16
#define PC_ITEMS_COUNT 50
#define BAG_ITEMS_COUNT 20
#define BAG_KEYITEMS_COUNT 20
@@ -176,7 +179,7 @@ struct SecretBaseRecord
/*0x1A19*/ u8 sbr_field_11;
/*0x1A1A*/ u8 decorations[16];
/*0x1A2A*/ u8 decorationPos[16];
- /*0x1A3A*/ u32 partyPersonality[6];
+ /*0x1A3C*/ u32 partyPersonality[6];
/*0x1A54*/ u16 partyMoves[6 * 4];
/*0x1A84*/ u16 partySpecies[6];
/*0x1A90*/ u16 partyHeldItems[6];
@@ -686,8 +689,8 @@ struct SaveBlock1 /* 0x02025734 */
/*0x2704*/ u8 decorDoll[40];
/*0x272C*/ u8 decorCushion[10];
/*0x2736*/ u8 padding_2736[2];
- /*0x2738*/ TVShow tvShows[25];
- /*0x2ABC*/ struct PokeNews pokeNews[16];
+ /*0x2738*/ TVShow tvShows[TV_SHOWS_COUNT];
+ /*0x2ABC*/ struct PokeNews pokeNews[POKE_NEWS_COUNT];
/*0x2AFC*/ u16 outbreakPokemonSpecies;
/*0x2AFE*/ u8 outbreakLocationMapNum;
/*0x2AFF*/ u8 outbreakLocationMapGroup;
@@ -808,7 +811,7 @@ struct BattleTowerData
/*0x04BC, 0x0564*/ u8 battleTowerTrainerId; // index for gBattleTowerTrainers table
/*0x04BD, 0x0565*/ u8 selectedPartyMons[0x3]; // indices of the 3 selected player party mons.
/*0x04C0, 0x0568*/ u16 prizeItem;
- /*0x04C2, 0x056A*/ u8 filler_4C2[0x6];
+ /*0x04C2, 0x056A*/ u8 battledTrainerIds[6];
/*0x04C8, 0x0570*/ u16 totalBattleTowerWins;
/*0x04CA, 0x0572*/ u16 bestBattleTowerWinStreak;
/*0x04CC, 0x0574*/ u16 currentWinStreaks[2];
diff --git a/include/graphics.h b/include/graphics.h
index 8e8e0c97e..f242e3752 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2472,7 +2472,7 @@ extern const u8 gBagPalette[];
extern const u8 gBagScreen_Gfx[];
extern const u8 gBagScreenMale_Pal[];
extern const u8 gBagScreenFemale_Pal[];
-extern const u16 gUnknown_08E77004[];
+extern const u16 gBagScreen_Tilemap[];
extern const u8 gBuyMenuFrame_Gfx[];
extern const u8 gMenuMoneyPal[];
extern const u8 gBuyMenuFrame_Tilemap[];
@@ -2615,7 +2615,7 @@ extern const u8 gMailTilemap_Dream[];
extern const u8 gMailTilemap_Fab[];
extern const u8 gMailTilemap_Retro[];
-extern const u8 gUnknown_08E96EC8[];
+extern const u8 gBagScreenLabels_Tilemap[];
extern const u8 gMenuTrainerCard_Gfx[];
extern const u16 gMenuTrainerCard0Star_Pal[];
diff --git a/include/heal_location.h b/include/heal_location.h
index 94dac2417..46f0d785a 100644
--- a/include/heal_location.h
+++ b/include/heal_location.h
@@ -1,8 +1,6 @@
#ifndef GUARD_HEAL_LOCATION_H
#define GUARD_HEAL_LOCATION_H
-#include "sprite.h"
-
struct HealLocation
{
s8 group;
diff --git a/include/macros/map.inc b/include/macros/map.inc
index bc54271d4..f5f09dea9 100644
--- a/include/macros/map.inc
+++ b/include/macros/map.inc
@@ -34,22 +34,27 @@
inc _num_warps
.endm
- .macro coord_event x, y, byte1, byte2, word1, word2, word3, script
+ .macro coord_event x, y, elevation, trigger, index, script
.2byte \x, \y
- .byte \byte1, \byte2
- .2byte \word1, \word2, \word3
+ .byte \elevation, 0
+ .2byte \trigger, \index, 0
.4byte \script
inc _num_traps
.endm
- .macro coord_weather_event x, y, height, weather
- coord_event \x, \y, \height, 0, \weather, 0, 0, 0x0
+ .macro coord_weather_event x, y, elevation, weather
+ .2byte \x, \y
+ .byte \elevation, 0
+ .2byte \weather
+ .2byte 0, 0
+ .4byte 0
+ inc _num_traps
.endm
- .macro bg_event x, y, byte, kind, word, arg6, arg7, arg8
+ .macro bg_event x, y, elevation, kind, arg6, arg7, arg8
.2byte \x, \y
- .byte \byte, \kind
- .2byte \word
+ .byte \elevation, \kind
+ .2byte 0
.if \kind < 5
.4byte \arg6
.else
@@ -60,11 +65,11 @@
.endm
.macro bg_hidden_item_event x, y, height, item, flag
- bg_event \x, \y, \height, 7, 0, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START), 0
+ bg_event \x, \y, \height, 7, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START), 0
.endm
.macro bg_secret_base_event x, y, height, secret_base_id
- bg_event \x, \y, \height, 8, 0, \secret_base_id, 0, 0
+ bg_event \x, \y, \height, 8, \secret_base_id, 0, 0
.endm
.macro map_events npcs, warps, traps, signs
diff --git a/include/pokeball.h b/include/pokeball.h
index 0a709c869..e814718c0 100644
--- a/include/pokeball.h
+++ b/include/pokeball.h
@@ -5,8 +5,8 @@ extern const struct SpriteTemplate gBallSpriteTemplates[];
void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u32 s4);
void sub_804777C(u8);
-void sub_80478DC(u8);
-void sub_804794C(u8);
+void LoadBallGraphics(u8);
+void FreeBallGraphics(u8);
u8 sub_8047580(u8, u8, u8, u8, u8, u8, u8, u32);
#endif // GUARD_POKEBALL_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 783263aad..67ce267ab 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -137,7 +137,6 @@
#define STATUS_PRIMARY_POKERUS 0x6
#define STATUS_PRIMARY_FAINTED 0x7
-#define PARTY_SIZE 6
#define MAX_TOTAL_EVS 510
#define NUM_STATS 6
#define UNOWN_FORM_COUNT 28
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 9c8fbdc13..735b7f4f9 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -40,19 +40,30 @@ enum {
PC_TEXT_FMT_MON_NAME_AFTER_EXCL_MARK
};
+struct PokemonStorageSystemFunc
+{
+ u8 (*func)(void);
+ s8 unk4;
+};
+
struct StorageAction {
const u8 *text;
u8 format;
};
+struct StorageText {
+ const u8 *text;
+ int textId;
+};
+
struct PSS_MenuStringPtrs {
const u8 *text;
const u8 *desc;
};
struct UnkStruct_2000028 {
- void *unk_00;
- void *unk_04;
+ const u8 *unk_00;
+ u8 *unk_04;
u16 unk_08;
u16 unk_0a;
void (*unk_0c)(struct UnkStruct_2000028 *data);
@@ -88,7 +99,7 @@ struct PokemonStorageSystemData {
struct PCScreenEffectStruct unk_000c;
struct UnkStruct_2000020 unk_0020;
struct UnkStruct_2000028 unk_0028[8];
- u16 unk_00a8[0x400];
+ u8 unk_00a8[0x800];
u16 unk_08a8;
u16 unk_08aa;
u8 unk_08ac;
@@ -142,7 +153,14 @@ struct PokemonStorageSystemData {
s8 unk_117b;
u8 unk_117c;
u8 unk_117d;
- u8 filler_117e[0x42];
+ u8 filler_117e[2];
+ struct StorageText unk_1180[6];
+ u8 filler_11b0[8];
+ u8 unk_11b8;
+ u8 unk_11b9;
+ u16 unk_11ba;
+ u16 unk_11bc;
+ u8 filler_11be;
struct Sprite *unk_11c0;
struct Sprite *unk_11c4;
s32 unk_11c8;
@@ -158,7 +176,7 @@ struct PokemonStorageSystemData {
u8 unk_11e1;
u8 unk_11e2;
u8 unk_11e3;
- u8 filler_11e4[4];
+ u8 unk_11e4[4];
const u8 *unk_11e8;
u32 unk_11ec;
u16 unk_11f0;
@@ -213,7 +231,7 @@ struct PokemonStorageSystemData {
u8 unk_4784[0x800];
};
-extern u16 gUnknown_02039760[0x600];
+extern u8 gUnknown_02039760[0xC00];
extern struct UnkPSSStruct_2002370 *gUnknown_02038478;
extern struct PokemonStorageSystemData *const gPokemonStorageSystemPtr;
extern u8 *const gUnknown_083B6DB8;
@@ -295,9 +313,9 @@ void sub_809CE84(void);
s16 sub_809CF30(void);
void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000028 *a1, u8 a2);
void sub_809CFF0(void);
-void sub_809D034(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
-void sub_809D104(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
-void sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height);
+bool8 sub_809D034(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height);
+void sub_809D104(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height);
+bool8 sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height);
void ShowPokemonStorageSystem(void);
void debug_sub_80A433C(struct Pokemon *pokemon, void (*func)(void));
diff --git a/include/pokenav.h b/include/pokenav.h
index f77f93e2d..57cd1552e 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -2,10 +2,13 @@
#define GUARD_POKENAV_H
#include "region_map.h"
+#include "mon_markings.h"
struct UnkPokenavStruct_Sub {
/*0x0*/ u16 unk0;
- /*0x2*/ u8 filler2[6];
+ /*0x2*/ u16 unk2;
+ /*0x4*/ u8 unk4;
+ /*0x5*/ u8 unk5;
};
struct UnkPokenavStruct_Sub1 {
@@ -27,36 +30,60 @@ struct UnkPokenavStruct_Sub1 {
/*0x66*/ s16 unk66[5];
};
-struct UnkPokenavStruct_Sub2 {
- /*0x00*/ u8 filler_00[0x26];
- /*0x26*/ u16 unk26;
-};
-
struct UnkPokenavStruct_Sub3 {
/*0x00*/s16 unk0;
};
struct UnkUsePokeblockSub {
- /*0*/ u8 fil0[2];
- /*2*/ u8 partyIdx:5;
- /*2*/ u16 unk2:9;
+ /*0x0*/ u8 unk0;
+ /*0x1*/ u8 unk1;
+ /*0x2*/ u8 partyIdx:5;
+ /*0x2*/ u16 unk2:9;
+ /*0x3*/ u8 unk4:1;
};
struct UnkPokenavStruct {
- /*0x0000*/ u8 filler0000[0x306];
+ /*0x0000*/ u16 unk0[6][0x40];
+ /*0x0300*/ u8 filler0300[0x6];
/*0x0306*/ u16 unk306;
- /*0x0306*/ u8 filler0308[0x4];
- /*0x030C*/ union { // TODO: what?
- u16 val;
- struct UnkPokenavStruct_Sub3 unk030C;
- } unk030C;
- /*0x0310*/ u8 filler030E[0x6a90];
+ /*0x0306*/ int unk308;
+ /*0x030C*/ s16 unk030C;
+ /*0x030E*/ s8 unk30E;
+ /*0x030F*/ u8 unk30F;
+ /*0x0310*/ u8 filler0310[0x1];
+ /*0x0311*/ u8 unk311;
+ /*0x0312*/ u16 unk312;
+ /*0x0314*/ u16 unk314[6];
+ /*0x0320*/ struct Sprite *unk320[6][4];
+ /*0x0380*/ struct SpriteSheet unk380;
+ /*0x0388*/ u8 unk388[0x1400];
+ /*0x1788*/ u8 unk1788[0xC00];
+ /*0x2388*/ u8 unk2388[0x1800];
+ /*0x3B88*/ struct Sprite *unk3B88[2];
+ /*0x3B90*/ struct Sprite *unk3B90[2];
+ /*0x3B98*/ u8 unk3B98[0x600];
+ /*0x4198*/ u8 unk4198[0x600];
+ /*0x4798*/ u8 unk4798[0x600];
+ /*0x4D98*/ u8 unk4D98[0x600];
+ /*0x5398*/ u8 unk5398[0xC00];
+ /*0x5F98*/ u8 unk5F98[0x200];
+ /*0x6198*/ u8 unk6198[0x200];
+ /*0x6398*/ u8 unk6398[0x200];
+ /*0x6598*/ u8 unk6598[0x200];
+ /*0x6798*/ u8 unk6798[0x200];
+ /*0x6998*/ u8 unk6998[0x200];
+ /*0x6B98*/ u8 unk6B98[0x200];
+ /*0x6D98*/ struct Sprite *unk6D98;
+ /*0x6D9C*/ struct Sprite *unk6D9C;
/*0x6DA0*/ u16 unk6DA0;
/*0x6DA2*/ u16 unk6DA2;
/*0x6DA4*/ u16 taskId6DA4;
/*0x6DA6*/ u8 filler6DA6[0x6];
/*0x6DAC*/ u8 unk6DAC;
- /*0x6DAD*/ u8 filler6DAD[0x6B];
+ /*0x6DAD*/ s8 unk6DAD;
+ /*0x6DAE*/ s8 unk6DAE;
+ /*0x6DAF*/ u8 filler6DAF[0x3];
+ /*0x6DB2*/ u8 unk6DB2[0x66];
/*0x6E18*/ struct RegionMap regionMap;
/*0x7698*/ u16 unk7698;
/*0x769A*/ u16 unk769A;
@@ -65,28 +92,44 @@ struct UnkPokenavStruct {
/*0x769E*/ u8 unk769E;
/*0x769F*/ u8 filler769F[0xB];
/*0x76AA*/ u8 unk76AA;
- /*0x76AB*/ u8 filler76AB[0x10bd];
- /*0x8768*/ struct UnkPokenavStruct_Sub2 *unk8768;
- /*0x876C*/ u8 filler876C[0x2];
- /*0x876E*/ u8 unk876E;
- /*0x876F*/ u8 filler876F[0x7];
- /*0x8776*/ u16 unk8776;
+ /*0x76AC*/ struct Sprite *unk76AC;
+ /*0x76B0*/ struct PokemonMarkMenu unk76B0;
+ /*0x8764*/ u16 unk8764;
+ /*0x8766*/ s16 unk8766;
+ /*0x8768*/ struct Sprite *unk8768;
+ /*0x876C*/ s16 unk876C;
+ /*0x876E*/ s16 unk876E;
+ /*0x8770*/ s16 unk8770;
+ /*0x8772*/ s16 unk8772;
+ /*0x8774*/ s16 unk8774;
+ /*0x8776*/ s16 unk8776;
/*0x8778*/ u16 unk8778;
- /*0x877A*/ u8 filler877A[0xE];
+ /*0x877A*/ s16 unk877A;
+ /*0x877C*/ s16 unk877C;
+ /*0x877E*/ u16 unk877E;
+ /*0x8780*/ u16 unk8780;
+ /*0x8782*/ u8 filler8782[0x2];
+ /*0x8784*/ u16 unk8784;
+ /*0x8786*/ u16 unk8786;
/*0x8788*/ u8 unk8788[0x40];
/*0x87C8*/ u8 unk87C8;
- /*0x87C9*/ u8 filler87C9;
+ /*0x87C9*/ u8 unk87C9;
/*0x87CA*/ u8 unk87CA;
- /*0x87CB*/ u8 filler87CB[0xF];
+ /*0x87CC*/ struct Sprite *unk87CC;
+ /*0x87D0*/ struct Sprite *unk87D0[2];
+ /*0x87D8*/ u8 filler87D8[0x2];
/*0x87DA*/ s16 unk87DA;
/*0x87DC*/ s16 unk87DC;
/*0x87DE*/ s16 unk87DE;
/*0x87E0*/ void *unk87E0;
- /*0x87E4*/ u8 filler87E4[0x44];
+ /*0x87E4*/ struct Sprite *unk87E4[7];
+ /*0x8800*/ struct Sprite *unk8800[10];
/*0x8828*/ u8 unk8828;
/*0x8829*/ u8 unk8829[3][64];
/*0x88E9*/ u8 unk88E9[3][24];
- /*0x8931*/ u8 unk8931[11];
+ /*0x8931*/ u8 unk8931[3];
+ /*0x8934*/ u8 unk8934[3];
+ /*0x8937*/ u8 unk8937[5];
/*0x893C*/ struct UnkUsePokeblockSub unk893c[0x1ab];
/*0x8fe8*/ u8 fil8fe8[1];
/*0x8fe9*/ s8 unk8fe9;
@@ -96,7 +139,19 @@ struct UnkPokenavStruct {
/*0x9004*/ u8 unk9004[3][20];
/*0x9040*/ u8 unk9040[0x304];
/*0x9344*/ u8 unk9344;
- /*0x9345*/ u8 filler9345[0x2955];
+ /*0x9345*/ u8 filler9345[3];
+ /*0x9348*/ struct Sprite *unk9348;
+ /*0x934C*/ u16 unk934C[0x280];
+ /*0x984C*/ u8 unk984C[0xC][0x100];
+ /*0xA44C*/ u8 unkA44C[0xC][0x200];
+ /*0xBC4C*/ u8 unkBC4C[0x42];
+ /*0xBC8E*/ u8 unkBC8E;
+ /*0xBC8F*/ u8 unkBC8F;
+ /*0xBC90*/ u8 unkBC90;
+ /*0xBC91*/ u8 unkBC91;
+ /*0xBC92*/ u8 unkBC92;
+ /*0xBC93*/ u8 unkBC93;
+ /*0xBC94*/ u8 fillerBC94[0x6];
/*0xBC9A*/ u8 unkBC9A;
/*0xBC9B*/ u8 unkBC9B;
/*0xBC9C*/ u8 unkBC9C[22][200];
@@ -105,13 +160,26 @@ struct UnkPokenavStruct {
/*0xCE4E*/ u16 unkCE4E;
/*0xCE50*/ u16 unkCE50;
/*0xCE52*/ u16 palettesCE52[30];
- /*0xCE8E*/ u16 palettesCE8E[0x2D];
- /*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78];
+ /*0xCE8E*/ u16 palettesCE8E[0x21];
+ /*0xCED0*/ struct Sprite *unkCED0;
+ /*0xCED4*/ struct Sprite *unkCED4[5];
+ /*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[69];
+ /*0xD110*/ const u8 *trainerEyeDescriptionLines[4];
+ /*0xD120*/ u8 fillerD114[0x18];
+ /*0xD138*/ u8 unkD138[0x20];
/*0xD158*/ u16 unkD158;
- /*0xD15A*/ u8 fillerD15A[6];
+ /*0xD15A*/ u16 unkD15A;
+ /*0xD15C*/ u16 unkD15C;
+ /*0xD15E*/ u8 fillerD15E[2];
/*0xD160*/ u16 unkD160;
- /*0xD162*/ u8 unkD162[2];
+ /*0xD162*/ u8 unkD162;
/*0xD164*/ struct UnkPokenavStruct_Sub1 unkD164;
+ /*0xD1D4*/ u8 fillerD1D4[0x8];
+ /*0xD1DC*/ u16 unkD1DC;
+ /*0xD1DE*/ u16 unkD1DE;
+ /*0xD1E0*/ u8 *unkD1E0;
+ /*0xD1E4*/ u8 unkD1E4[3][0x2000];
+ /*0x131E4*/ u8 unk131E4[0x1000];
};
extern struct UnkPokenavStruct *const gUnknown_083DFEC4;
diff --git a/include/region_map.h b/include/region_map.h
index 4c10d84cb..7ded72e49 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -78,6 +78,7 @@ const u8 *CopyLocationName(u8 *dest, u16 b);
void CB2_InitFlyRegionMap(void);
void debug_sub_8110F28(void);
u16 GetRegionMapSectionAt_(u16 x, u16 y);
+void sub_80FBF94(void);
extern const struct RegionMapLocation gRegionMapLocations[];
diff --git a/include/secret_base.h b/include/secret_base.h
index 4748c83d7..a9a205bc4 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -15,7 +15,7 @@ void SetCurrentSecretBaseFromPosition(struct MapPosition *, struct MapEvents *);
void sub_80BC038(struct MapPosition *, struct MapEvents *);
u8 sub_80BC050();
u8 *GetSecretBaseMapName(u8 *dest);
-void sub_80BC300();
+void SetPlayerSecretBaseRecordMixingParty();
u8 sub_80BCCA4(u8 secretBaseIndex);
const u8 *GetSecretBaseTrainerLoseText(void);
void sub_80BCF1C(u8 taskId);
diff --git a/include/use_pokeblock.h b/include/use_pokeblock.h
index 978476d89..025a135a4 100644
--- a/include/use_pokeblock.h
+++ b/include/use_pokeblock.h
@@ -9,5 +9,6 @@ extern void *gUnknown_02030400;
extern s16 gUnknown_02039312;
void sub_8136130(struct Pokeblock *, MainCallback);
+u8 sub_8137124(u8);
#endif //POKERUBY_USE_POKEBLOCK_H