summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2017-12-05 11:55:48 -0600
committercamthesaxman <cameronghall@cox.net>2017-12-05 11:55:48 -0600
commitcaa13f877797edbb7a1e13bf00b537bafbd4315a (patch)
treeb5f49b410072efbee9d5a9e3c5a632a9482cc895
parent54da96309186b98263b4434911e1c5b8d4b4e3ec (diff)
convert some constants to C headers
-rw-r--r--Makefile2
-rwxr-xr-x[-rw-r--r--]asmdiff.sh0
-rw-r--r--constants/map_constants.inc1
-rw-r--r--include/abilities.h81
-rw-r--r--include/battle_move_effects.h222
-rw-r--r--include/constants/abilities.h83
-rw-r--r--include/constants/battle_move_effects.h219
-rw-r--r--include/constants/decorations.h126
-rw-r--r--include/constants/easy_chat.h1064
-rw-r--r--include/constants/flags.h (renamed from include/flags.h)6
-rw-r--r--include/constants/game_stat.h (renamed from include/game_stat.h)9
-rw-r--r--include/constants/hold_effects.h (renamed from include/hold_effects.h)0
-rw-r--r--include/constants/items.h393
-rw-r--r--include/constants/map_objects.h232
-rw-r--r--include/constants/maps.h595
-rw-r--r--include/constants/mauville_man.h10
-rw-r--r--include/constants/moves.h360
-rw-r--r--include/constants/opponents.h699
-rw-r--r--include/constants/songs.h373
-rw-r--r--include/constants/species.h450
-rw-r--r--include/constants/vars.h56
-rw-r--r--include/decoration.h124
-rw-r--r--include/event_data.h2
-rw-r--r--include/global.h2
-rw-r--r--include/items.h396
-rw-r--r--include/mail.h2
-rw-r--r--include/map_constants.h1342
-rw-r--r--include/map_object_constants.h239
-rw-r--r--include/overworld.h3
-rw-r--r--src/battle_2.c8
-rw-r--r--src/battle_ai_script_commands.c4
-rw-r--r--src/battle_ai_switch_items.c4
-rw-r--r--src/battle_controller_opponent.c2
-rw-r--r--src/battle_controller_player.c2
-rw-r--r--src/battle_controller_wally.c2
-rw-r--r--src/battle_controllers.c2
-rw-r--r--src/battle_message.c2
-rw-r--r--src/battle_script_commands.c8
-rw-r--r--src/battle_util.c8
-rw-r--r--src/battle_util2.c2
-rw-r--r--src/berry.c2
-rw-r--r--src/berry_blender.c4
-rwxr-xr-xsrc/braille_puzzles.c2
-rw-r--r--src/calculate_base_damage.c8
-rw-r--r--src/daycare.c2
-rw-r--r--src/decoration.c3
-rw-r--r--src/decoration_inventory.c1
-rw-r--r--src/egg_hatch.c4
-rw-r--r--src/hall_of_fame.c3
-rw-r--r--src/heal_location.c4
-rw-r--r--src/item.c2
-rw-r--r--src/lilycove_lady.c2
-rw-r--r--src/lottery_corner.c2
-rw-r--r--src/mail.c1
-rw-r--r--src/pokemon_1.c2
-rw-r--r--src/pokemon_3.c6
-rwxr-xr-xsrc/pokemon_summary_screen.c2
-rw-r--r--src/region_map.c112
-rw-r--r--src/safari_zone.c2
-rw-r--r--src/save.c2
-rwxr-xr-xsrc/save_location.c83
-rw-r--r--src/secret_base.c55
-rw-r--r--src/tv.c26
-rw-r--r--src/wild_encounter.c21
64 files changed, 4874 insertions, 2612 deletions
diff --git a/Makefile b/Makefile
index 4bff6887a..0d06d5687 100644
--- a/Makefile
+++ b/Makefile
@@ -130,7 +130,7 @@ $(DATA_ASM_BUILDDIR)/%.o: data_dep :=
endif
$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep)
- $(PREPROC) $< charmap.txt | $(AS) $(ASFLAGS) -o $@
+ $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@
$(OBJ_DIR)/sym_bss.ld: sym_bss.txt
$(RAMSCRGEN) .bss $< ENGLISH > $@
diff --git a/asmdiff.sh b/asmdiff.sh
index 1d2141c32..1d2141c32 100644..100755
--- a/asmdiff.sh
+++ b/asmdiff.sh
diff --git a/constants/map_constants.inc b/constants/map_constants.inc
index eabfe6e69..a061d2501 100644
--- a/constants/map_constants.inc
+++ b/constants/map_constants.inc
@@ -1,3 +1,4 @@
+@ TODO: these need to match the names in include/constants/maps.h
.set cur_map_group, -1
new_map_group
diff --git a/include/abilities.h b/include/abilities.h
deleted file mode 100644
index 4c47025f8..000000000
--- a/include/abilities.h
+++ /dev/null
@@ -1,81 +0,0 @@
-enum
-{
- ABILITY_NONE,
- ABILITY_STENCH,
- ABILITY_DRIZZLE,
- ABILITY_SPEED_BOOST,
- ABILITY_BATTLE_ARMOR,
- ABILITY_STURDY,
- ABILITY_DAMP,
- ABILITY_LIMBER,
- ABILITY_SAND_VEIL,
- ABILITY_STATIC,
- ABILITY_VOLT_ABSORB,
- ABILITY_WATER_ABSORB,
- ABILITY_OBLIVIOUS,
- ABILITY_CLOUD_NINE,
- ABILITY_COMPOUND_EYES,
- ABILITY_INSOMNIA,
- ABILITY_COLOR_CHANGE,
- ABILITY_IMMUNITY,
- ABILITY_FLASH_FIRE,
- ABILITY_SHIELD_DUST,
- ABILITY_OWN_TEMPO,
- ABILITY_SUCTION_CUPS,
- ABILITY_INTIMIDATE,
- ABILITY_SHADOW_TAG,
- ABILITY_ROUGH_SKIN,
- ABILITY_WONDER_GUARD,
- ABILITY_LEVITATE,
- ABILITY_EFFECT_SPORE,
- ABILITY_SYNCHRONIZE,
- ABILITY_CLEAR_BODY,
- ABILITY_NATURAL_CURE,
- ABILITY_LIGHTNING_ROD,
- ABILITY_SERENE_GRACE,
- ABILITY_SWIFT_SWIM,
- ABILITY_CHLOROPHYLL,
- ABILITY_ILLUMINATE,
- ABILITY_TRACE,
- ABILITY_HUGE_POWER,
- ABILITY_POISON_POINT,
- ABILITY_INNER_FOCUS,
- ABILITY_MAGMA_ARMOR,
- ABILITY_WATER_VEIL,
- ABILITY_MAGNET_PULL,
- ABILITY_SOUNDPROOF,
- ABILITY_RAIN_DISH,
- ABILITY_SAND_STREAM,
- ABILITY_PRESSURE,
- ABILITY_THICK_FAT,
- ABILITY_EARLY_BIRD,
- ABILITY_FLAME_BODY,
- ABILITY_RUN_AWAY,
- ABILITY_KEEN_EYE,
- ABILITY_HYPER_CUTTER,
- ABILITY_PICKUP,
- ABILITY_TRUANT,
- ABILITY_HUSTLE,
- ABILITY_CUTE_CHARM,
- ABILITY_PLUS,
- ABILITY_MINUS,
- ABILITY_FORECAST,
- ABILITY_STICKY_HOLD,
- ABILITY_SHED_SKIN,
- ABILITY_GUTS,
- ABILITY_MARVEL_SCALE,
- ABILITY_LIQUID_OOZE,
- ABILITY_OVERGROW,
- ABILITY_BLAZE,
- ABILITY_TORRENT,
- ABILITY_SWARM,
- ABILITY_ROCK_HEAD,
- ABILITY_DROUGHT,
- ABILITY_ARENA_TRAP,
- ABILITY_VITAL_SPIRIT,
- ABILITY_WHITE_SMOKE,
- ABILITY_PURE_POWER,
- ABILITY_SHELL_ARMOR,
- ABILITY_CACOPHONY,
- ABILITY_AIR_LOCK
-}; \ No newline at end of file
diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h
deleted file mode 100644
index 23c19ded7..000000000
--- a/include/battle_move_effects.h
+++ /dev/null
@@ -1,222 +0,0 @@
-#ifndef GUARD_BATTLE_MOVE_EFFECTS_H
-#define GUARD_BATTLE_MOVE_EFFECTS_H
-
-enum
-{
- EFFECT_HIT,
- EFFECT_SLEEP,
- EFFECT_POISON_HIT,
- EFFECT_ABSORB,
- EFFECT_BURN_HIT,
- EFFECT_FREEZE_HIT,
- EFFECT_PARALYZE_HIT,
- EFFECT_EXPLOSION,
- EFFECT_DREAM_EATER,
- EFFECT_MIRROR_MOVE,
- EFFECT_ATTACK_UP,
- EFFECT_DEFENSE_UP,
- EFFECT_SPEED_UP,
- EFFECT_SPECIAL_ATTACK_UP,
- EFFECT_SPECIAL_DEFENSE_UP,
- EFFECT_ACCURACY_UP,
- EFFECT_EVASION_UP,
- EFFECT_ALWAYS_HIT,
- EFFECT_ATTACK_DOWN,
- EFFECT_DEFENSE_DOWN,
- EFFECT_SPEED_DOWN,
- EFFECT_SPECIAL_ATTACK_DOWN, // unused
- EFFECT_SPECIAL_DEFENSE_DOWN, // unused
- EFFECT_ACCURACY_DOWN,
- EFFECT_EVASION_DOWN,
- EFFECT_HAZE,
- EFFECT_BIDE,
- EFFECT_RAMPAGE,
- EFFECT_ROAR,
- EFFECT_MULTI_HIT,
- EFFECT_CONVERSION,
- EFFECT_FLINCH_HIT,
- EFFECT_RESTORE_HP,
- EFFECT_TOXIC,
- EFFECT_PAY_DAY,
- EFFECT_LIGHT_SCREEN,
- EFFECT_TRI_ATTACK,
- EFFECT_REST,
- EFFECT_OHKO,
- EFFECT_RAZOR_WIND,
- EFFECT_SUPER_FANG,
- EFFECT_DRAGON_RAGE,
- EFFECT_TRAP,
- EFFECT_HIGH_CRITICAL,
- EFFECT_DOUBLE_HIT,
- EFFECT_RECOIL_IF_MISS,
- EFFECT_MIST,
- EFFECT_FOCUS_ENERGY,
- EFFECT_RECOIL,
- EFFECT_CONFUSE,
- EFFECT_ATTACK_UP_2,
- EFFECT_DEFENSE_UP_2,
- EFFECT_SPEED_UP_2,
- EFFECT_SPECIAL_ATTACK_UP_2,
- EFFECT_SPECIAL_DEFENSE_UP_2,
- EFFECT_ACCURACY_UP_2,
- EFFECT_EVASION_UP_2,
- EFFECT_TRANSFORM,
- EFFECT_ATTACK_DOWN_2,
- EFFECT_DEFENSE_DOWN_2,
- EFFECT_SPEED_DOWN_2,
- EFFECT_SPECIAL_ATTACK_DOWN_2,
- EFFECT_SPECIAL_DEFENSE_DOWN_2,
- EFFECT_ACCURACY_DOWN_2,
- EFFECT_EVASION_DOWN_2,
- EFFECT_REFLECT,
- EFFECT_POISON,
- EFFECT_PARALYZE,
- EFFECT_ATTACK_DOWN_HIT,
- EFFECT_DEFENSE_DOWN_HIT,
- EFFECT_SPEED_DOWN_HIT,
- EFFECT_SPECIAL_ATTACK_DOWN_HIT,
- EFFECT_SPECIAL_DEFENSE_DOWN_HIT,
- EFFECT_ACCURACY_DOWN_HIT,
- EFFECT_EVASION_DOWN_HIT,
- EFFECT_SKY_ATTACK,
- EFFECT_CONFUSE_HIT,
- EFFECT_TWINEEDLE,
- EFFECT_VITAL_THROW,
- EFFECT_SUBSTITUTE,
- EFFECT_RECHARGE,
- EFFECT_RAGE,
- EFFECT_MIMIC,
- EFFECT_METRONOME,
- EFFECT_LEECH_SEED,
- EFFECT_SPLASH,
- EFFECT_DISABLE,
- EFFECT_LEVEL_DAMAGE,
- EFFECT_PSYWAVE,
- EFFECT_COUNTER,
- EFFECT_ENCORE,
- EFFECT_PAIN_SPLIT,
- EFFECT_SNORE,
- EFFECT_CONVERSION_2,
- EFFECT_LOCK_ON,
- EFFECT_SKETCH,
- EFFECT_UNUSED_60, // thaw
- EFFECT_SLEEP_TALK,
- EFFECT_DESTINY_BOND,
- EFFECT_FLAIL,
- EFFECT_SPITE,
- EFFECT_FALSE_SWIPE,
- EFFECT_HEAL_BELL,
- EFFECT_QUICK_ATTACK,
- EFFECT_TRIPLE_KICK,
- EFFECT_THIEF,
- EFFECT_MEAN_LOOK,
- EFFECT_NIGHTMARE,
- EFFECT_MINIMIZE,
- EFFECT_CURSE,
- EFFECT_UNUSED_6E,
- EFFECT_PROTECT,
- EFFECT_SPIKES,
- EFFECT_FORESIGHT,
- EFFECT_PERISH_SONG,
- EFFECT_SANDSTORM,
- EFFECT_ENDURE,
- EFFECT_ROLLOUT,
- EFFECT_SWAGGER,
- EFFECT_FURY_CUTTER,
- EFFECT_ATTRACT,
- EFFECT_RETURN,
- EFFECT_PRESENT,
- EFFECT_FRUSTRATION,
- EFFECT_SAFEGUARD,
- EFFECT_THAW_HIT,
- EFFECT_MAGNITUDE,
- EFFECT_BATON_PASS,
- EFFECT_PURSUIT,
- EFFECT_RAPID_SPIN,
- EFFECT_SONICBOOM,
- EFFECT_UNUSED_83,
- EFFECT_MORNING_SUN,
- EFFECT_SYNTHESIS,
- EFFECT_MOONLIGHT,
- EFFECT_HIDDEN_POWER,
- EFFECT_RAIN_DANCE,
- EFFECT_SUNNY_DAY,
- EFFECT_DEFENSE_UP_HIT,
- EFFECT_ATTACK_UP_HIT,
- EFFECT_ALL_STATS_UP_HIT,
- EFFECT_UNUSED_8D, // incomplete fake out in gen 2
- EFFECT_BELLY_DRUM,
- EFFECT_PSYCH_UP,
- EFFECT_MIRROR_COAT,
- EFFECT_SKULL_BASH,
- EFFECT_TWISTER,
- EFFECT_EARTHQUAKE,
- EFFECT_FUTURE_SIGHT,
- EFFECT_GUST,
- EFFECT_STOMP, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
- EFFECT_SOLARBEAM,
- EFFECT_THUNDER,
- EFFECT_TELEPORT,
- EFFECT_BEAT_UP,
- EFFECT_SEMI_INVULNERABLE,
- EFFECT_DEFENSE_CURL,
- EFFECT_SOFTBOILED,
- EFFECT_FAKE_OUT,
- EFFECT_UPROAR,
- EFFECT_STOCKPILE,
- EFFECT_SPIT_UP,
- EFFECT_SWALLOW,
- EFFECT_UNUSED_A3,
- EFFECT_HAIL,
- EFFECT_TORMENT,
- EFFECT_FLATTER,
- EFFECT_WILL_O_WISP,
- EFFECT_MEMENTO,
- EFFECT_FACADE,
- EFFECT_FOCUS_PUNCH,
- EFFECT_SMELLINGSALT,
- EFFECT_FOLLOW_ME,
- EFFECT_NATURE_POWER,
- EFFECT_CHARGE,
- EFFECT_TAUNT,
- EFFECT_HELPING_HAND,
- EFFECT_TRICK,
- EFFECT_ROLE_PLAY,
- EFFECT_WISH,
- EFFECT_ASSIST,
- EFFECT_INGRAIN,
- EFFECT_SUPERPOWER,
- EFFECT_MAGIC_COAT,
- EFFECT_RECYCLE,
- EFFECT_REVENGE,
- EFFECT_BRICK_BREAK,
- EFFECT_YAWN,
- EFFECT_KNOCK_OFF,
- EFFECT_ENDEAVOR,
- EFFECT_ERUPTION,
- EFFECT_SKILL_SWAP,
- EFFECT_IMPRISON,
- EFFECT_REFRESH,
- EFFECT_GRUDGE,
- EFFECT_SNATCH,
- EFFECT_LOW_KICK,
- EFFECT_SECRET_POWER,
- EFFECT_DOUBLE_EDGE,
- EFFECT_TEETER_DANCE,
- EFFECT_BLAZE_KICK,
- EFFECT_MUD_SPORT,
- EFFECT_POISON_FANG,
- EFFECT_WEATHER_BALL,
- EFFECT_OVERHEAT,
- EFFECT_TICKLE,
- EFFECT_COSMIC_POWER,
- EFFECT_SKY_UPPERCUT,
- EFFECT_BULK_UP,
- EFFECT_POISON_TAIL,
- EFFECT_WATER_SPORT,
- EFFECT_CALM_MIND,
- EFFECT_DRAGON_DANCE,
- EFFECT_CAMOUFLAGE,
-};
-
-#endif // GUARD_BATTLE_MOVE_EFFECTS_H
diff --git a/include/constants/abilities.h b/include/constants/abilities.h
new file mode 100644
index 000000000..4e2c4056c
--- /dev/null
+++ b/include/constants/abilities.h
@@ -0,0 +1,83 @@
+#ifndef GUARD_CONSTANTS_ABILITIES_H
+#define GUARD_CONSTANTS_ABILITIES_H
+
+#define ABILITY_NONE 0
+#define ABILITY_STENCH 1
+#define ABILITY_DRIZZLE 2
+#define ABILITY_SPEED_BOOST 3
+#define ABILITY_BATTLE_ARMOR 4
+#define ABILITY_STURDY 5
+#define ABILITY_DAMP 6
+#define ABILITY_LIMBER 7
+#define ABILITY_SAND_VEIL 8
+#define ABILITY_STATIC 9
+#define ABILITY_VOLT_ABSORB 10
+#define ABILITY_WATER_ABSORB 11
+#define ABILITY_OBLIVIOUS 12
+#define ABILITY_CLOUD_NINE 13
+#define ABILITY_COMPOUND_EYES 14
+#define ABILITY_INSOMNIA 15
+#define ABILITY_COLOR_CHANGE 16
+#define ABILITY_IMMUNITY 17
+#define ABILITY_FLASH_FIRE 18
+#define ABILITY_SHIELD_DUST 19
+#define ABILITY_OWN_TEMPO 20
+#define ABILITY_SUCTION_CUPS 21
+#define ABILITY_INTIMIDATE 22
+#define ABILITY_SHADOW_TAG 23
+#define ABILITY_ROUGH_SKIN 24
+#define ABILITY_WONDER_GUARD 25
+#define ABILITY_LEVITATE 26
+#define ABILITY_EFFECT_SPORE 27
+#define ABILITY_SYNCHRONIZE 28
+#define ABILITY_CLEAR_BODY 29
+#define ABILITY_NATURAL_CURE 30
+#define ABILITY_LIGHTNING_ROD 31
+#define ABILITY_SERENE_GRACE 32
+#define ABILITY_SWIFT_SWIM 33
+#define ABILITY_CHLOROPHYLL 34
+#define ABILITY_ILLUMINATE 35
+#define ABILITY_TRACE 36
+#define ABILITY_HUGE_POWER 37
+#define ABILITY_POISON_POINT 38
+#define ABILITY_INNER_FOCUS 39
+#define ABILITY_MAGMA_ARMOR 40
+#define ABILITY_WATER_VEIL 41
+#define ABILITY_MAGNET_PULL 42
+#define ABILITY_SOUNDPROOF 43
+#define ABILITY_RAIN_DISH 44
+#define ABILITY_SAND_STREAM 45
+#define ABILITY_PRESSURE 46
+#define ABILITY_THICK_FAT 47
+#define ABILITY_EARLY_BIRD 48
+#define ABILITY_FLAME_BODY 49
+#define ABILITY_RUN_AWAY 50
+#define ABILITY_KEEN_EYE 51
+#define ABILITY_HYPER_CUTTER 52
+#define ABILITY_PICKUP 53
+#define ABILITY_TRUANT 54
+#define ABILITY_HUSTLE 55
+#define ABILITY_CUTE_CHARM 56
+#define ABILITY_PLUS 57
+#define ABILITY_MINUS 58
+#define ABILITY_FORECAST 59
+#define ABILITY_STICKY_HOLD 60
+#define ABILITY_SHED_SKIN 61
+#define ABILITY_GUTS 62
+#define ABILITY_MARVEL_SCALE 63
+#define ABILITY_LIQUID_OOZE 64
+#define ABILITY_OVERGROW 65
+#define ABILITY_BLAZE 66
+#define ABILITY_TORRENT 67
+#define ABILITY_SWARM 68
+#define ABILITY_ROCK_HEAD 69
+#define ABILITY_DROUGHT 70
+#define ABILITY_ARENA_TRAP 71
+#define ABILITY_VITAL_SPIRIT 72
+#define ABILITY_WHITE_SMOKE 73
+#define ABILITY_PURE_POWER 74
+#define ABILITY_SHELL_ARMOR 75
+#define ABILITY_CACOPHONY 76
+#define ABILITY_AIR_LOCK 77
+
+#endif // GUARD_CONSTANTS_ABILITIES_H
diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h
new file mode 100644
index 000000000..1b59f2f64
--- /dev/null
+++ b/include/constants/battle_move_effects.h
@@ -0,0 +1,219 @@
+#ifndef GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
+#define GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
+
+#define EFFECT_HIT 0
+#define EFFECT_SLEEP 1
+#define EFFECT_POISON_HIT 2
+#define EFFECT_ABSORB 3
+#define EFFECT_BURN_HIT 4
+#define EFFECT_FREEZE_HIT 5
+#define EFFECT_PARALYZE_HIT 6
+#define EFFECT_EXPLOSION 7
+#define EFFECT_DREAM_EATER 8
+#define EFFECT_MIRROR_MOVE 9
+#define EFFECT_ATTACK_UP 10
+#define EFFECT_DEFENSE_UP 11
+#define EFFECT_SPEED_UP 12
+#define EFFECT_SPECIAL_ATTACK_UP 13
+#define EFFECT_SPECIAL_DEFENSE_UP 14
+#define EFFECT_ACCURACY_UP 15
+#define EFFECT_EVASION_UP 16
+#define EFFECT_ALWAYS_HIT 17
+#define EFFECT_ATTACK_DOWN 18
+#define EFFECT_DEFENSE_DOWN 19
+#define EFFECT_SPEED_DOWN 20
+#define EFFECT_SPECIAL_ATTACK_DOWN 21 // unused
+#define EFFECT_SPECIAL_DEFENSE_DOWN 22 // unused
+#define EFFECT_ACCURACY_DOWN 23
+#define EFFECT_EVASION_DOWN 24
+#define EFFECT_HAZE 25
+#define EFFECT_BIDE 26
+#define EFFECT_RAMPAGE 27
+#define EFFECT_ROAR 28
+#define EFFECT_MULTI_HIT 29
+#define EFFECT_CONVERSION 30
+#define EFFECT_FLINCH_HIT 31
+#define EFFECT_RESTORE_HP 32
+#define EFFECT_TOXIC 33
+#define EFFECT_PAY_DAY 34
+#define EFFECT_LIGHT_SCREEN 35
+#define EFFECT_TRI_ATTACK 36
+#define EFFECT_REST 37
+#define EFFECT_OHKO 38
+#define EFFECT_RAZOR_WIND 39
+#define EFFECT_SUPER_FANG 40
+#define EFFECT_DRAGON_RAGE 41
+#define EFFECT_TRAP 42
+#define EFFECT_HIGH_CRITICAL 43
+#define EFFECT_DOUBLE_HIT 44
+#define EFFECT_RECOIL_IF_MISS 45
+#define EFFECT_MIST 46
+#define EFFECT_FOCUS_ENERGY 47
+#define EFFECT_RECOIL 48
+#define EFFECT_CONFUSE 49
+#define EFFECT_ATTACK_UP_2 50
+#define EFFECT_DEFENSE_UP_2 51
+#define EFFECT_SPEED_UP_2 52
+#define EFFECT_SPECIAL_ATTACK_UP_2 53
+#define EFFECT_SPECIAL_DEFENSE_UP_2 54
+#define EFFECT_ACCURACY_UP_2 55
+#define EFFECT_EVASION_UP_2 56
+#define EFFECT_TRANSFORM 57
+#define EFFECT_ATTACK_DOWN_2 58
+#define EFFECT_DEFENSE_DOWN_2 59
+#define EFFECT_SPEED_DOWN_2 60
+#define EFFECT_SPECIAL_ATTACK_DOWN_2 61
+#define EFFECT_SPECIAL_DEFENSE_DOWN_2 62
+#define EFFECT_ACCURACY_DOWN_2 63
+#define EFFECT_EVASION_DOWN_2 64
+#define EFFECT_REFLECT 65
+#define EFFECT_POISON 66
+#define EFFECT_PARALYZE 67
+#define EFFECT_ATTACK_DOWN_HIT 68
+#define EFFECT_DEFENSE_DOWN_HIT 69
+#define EFFECT_SPEED_DOWN_HIT 70
+#define EFFECT_SPECIAL_ATTACK_DOWN_HIT 71
+#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 72
+#define EFFECT_ACCURACY_DOWN_HIT 73
+#define EFFECT_EVASION_DOWN_HIT 74
+#define EFFECT_SKY_ATTACK 75
+#define EFFECT_CONFUSE_HIT 76
+#define EFFECT_TWINEEDLE 77
+#define EFFECT_VITAL_THROW 78
+#define EFFECT_SUBSTITUTE 79
+#define EFFECT_RECHARGE 80
+#define EFFECT_RAGE 81
+#define EFFECT_MIMIC 82
+#define EFFECT_METRONOME 83
+#define EFFECT_LEECH_SEED 84
+#define EFFECT_SPLASH 85
+#define EFFECT_DISABLE 86
+#define EFFECT_LEVEL_DAMAGE 87
+#define EFFECT_PSYWAVE 88
+#define EFFECT_COUNTER 89
+#define EFFECT_ENCORE 90
+#define EFFECT_PAIN_SPLIT 91
+#define EFFECT_SNORE 92
+#define EFFECT_CONVERSION_2 93
+#define EFFECT_LOCK_ON 94
+#define EFFECT_SKETCH 95
+#define EFFECT_UNUSED_60 96 // thaw
+#define EFFECT_SLEEP_TALK 97
+#define EFFECT_DESTINY_BOND 98
+#define EFFECT_FLAIL 99
+#define EFFECT_SPITE 100
+#define EFFECT_FALSE_SWIPE 101
+#define EFFECT_HEAL_BELL 102
+#define EFFECT_QUICK_ATTACK 103
+#define EFFECT_TRIPLE_KICK 104
+#define EFFECT_THIEF 105
+#define EFFECT_MEAN_LOOK 106
+#define EFFECT_NIGHTMARE 107
+#define EFFECT_MINIMIZE 108
+#define EFFECT_CURSE 109
+#define EFFECT_UNUSED_6E 110
+#define EFFECT_PROTECT 111
+#define EFFECT_SPIKES 112
+#define EFFECT_FORESIGHT 113
+#define EFFECT_PERISH_SONG 114
+#define EFFECT_SANDSTORM 115
+#define EFFECT_ENDURE 116
+#define EFFECT_ROLLOUT 117
+#define EFFECT_SWAGGER 118
+#define EFFECT_FURY_CUTTER 119
+#define EFFECT_ATTRACT 120
+#define EFFECT_RETURN 121
+#define EFFECT_PRESENT 122
+#define EFFECT_FRUSTRATION 123
+#define EFFECT_SAFEGUARD 124
+#define EFFECT_THAW_HIT 125
+#define EFFECT_MAGNITUDE 126
+#define EFFECT_BATON_PASS 127
+#define EFFECT_PURSUIT 128
+#define EFFECT_RAPID_SPIN 129
+#define EFFECT_SONICBOOM 130
+#define EFFECT_UNUSED_83 131
+#define EFFECT_MORNING_SUN 132
+#define EFFECT_SYNTHESIS 133
+#define EFFECT_MOONLIGHT 134
+#define EFFECT_HIDDEN_POWER 135
+#define EFFECT_RAIN_DANCE 136
+#define EFFECT_SUNNY_DAY 137
+#define EFFECT_DEFENSE_UP_HIT 138
+#define EFFECT_ATTACK_UP_HIT 139
+#define EFFECT_ALL_STATS_UP_HIT 140
+#define EFFECT_UNUSED_8D 141 // incomplete fake out in gen 2
+#define EFFECT_BELLY_DRUM 142
+#define EFFECT_PSYCH_UP 143
+#define EFFECT_MIRROR_COAT 144
+#define EFFECT_SKULL_BASH 145
+#define EFFECT_TWISTER 146
+#define EFFECT_EARTHQUAKE 147
+#define EFFECT_FUTURE_SIGHT 148
+#define EFFECT_GUST 149
+#define EFFECT_FLINCH_HIT_2 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
+#define EFFECT_SOLARBEAM 151
+#define EFFECT_THUNDER 152
+#define EFFECT_TELEPORT 153
+#define EFFECT_BEAT_UP 154
+#define EFFECT_SEMI_INVULNERABLE 155
+#define EFFECT_DEFENSE_CURL 156
+#define EFFECT_SOFTBOILED 157
+#define EFFECT_FAKE_OUT 158
+#define EFFECT_UPROAR 159
+#define EFFECT_STOCKPILE 160
+#define EFFECT_SPIT_UP 161
+#define EFFECT_SWALLOW 162
+#define EFFECT_UNUSED_A3 163
+#define EFFECT_HAIL 164
+#define EFFECT_TORMENT 165
+#define EFFECT_FLATTER 166
+#define EFFECT_WILL_O_WISP 167
+#define EFFECT_MEMENTO 168
+#define EFFECT_FACADE 169
+#define EFFECT_FOCUS_PUNCH 170
+#define EFFECT_SMELLINGSALT 171
+#define EFFECT_FOLLOW_ME 172
+#define EFFECT_NATURE_POWER 173
+#define EFFECT_CHARGE 174
+#define EFFECT_TAUNT 175
+#define EFFECT_HELPING_HAND 176
+#define EFFECT_TRICK 177
+#define EFFECT_ROLE_PLAY 178
+#define EFFECT_WISH 179
+#define EFFECT_ASSIST 180
+#define EFFECT_INGRAIN 181
+#define EFFECT_SUPERPOWER 182
+#define EFFECT_MAGIC_COAT 183
+#define EFFECT_RECYCLE 184
+#define EFFECT_REVENGE 185
+#define EFFECT_BRICK_BREAK 186
+#define EFFECT_YAWN 187
+#define EFFECT_KNOCK_OFF 188
+#define EFFECT_ENDEAVOR 189
+#define EFFECT_ERUPTION 190
+#define EFFECT_SKILL_SWAP 191
+#define EFFECT_IMPRISON 192
+#define EFFECT_REFRESH 193
+#define EFFECT_GRUDGE 194
+#define EFFECT_SNATCH 195
+#define EFFECT_LOW_KICK 196
+#define EFFECT_SECRET_POWER 197
+#define EFFECT_DOUBLE_EDGE 198
+#define EFFECT_TEETER_DANCE 199
+#define EFFECT_BLAZE_KICK 200
+#define EFFECT_MUD_SPORT 201
+#define EFFECT_POISON_FANG 202
+#define EFFECT_WEATHER_BALL 203
+#define EFFECT_OVERHEAT 204
+#define EFFECT_TICKLE 205
+#define EFFECT_COSMIC_POWER 206
+#define EFFECT_SKY_UPPERCUT 207
+#define EFFECT_BULK_UP 208
+#define EFFECT_POISON_TAIL 209
+#define EFFECT_WATER_SPORT 210
+#define EFFECT_CALM_MIND 211
+#define EFFECT_DRAGON_DANCE 212
+#define EFFECT_CAMOUFLAGE 213
+
+#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
diff --git a/include/constants/decorations.h b/include/constants/decorations.h
new file mode 100644
index 000000000..2e3558721
--- /dev/null
+++ b/include/constants/decorations.h
@@ -0,0 +1,126 @@
+#ifndef GUARD_CONSTANTS_DECORATIONS_H
+#define GUARD_CONSTANTS_DECORATIONS_H
+
+#define DECOR_NONE 0
+#define DECOR_SMALL_DESK 1
+#define DECOR_POKEMON_DESK 2
+#define DECOR_HEAVY_DESK 3
+#define DECOR_RAGGED_DESK 4
+#define DECOR_COMFORT_DESK 5
+#define DECOR_PRETTY_DESK 6
+#define DECOR_BRICK_DESK 7
+#define DECOR_CAMP_DESK 8
+#define DECOR_HARD_DESK 9
+#define DECOR_SMALL_CHAIR 10
+#define DECOR_POKEMON_CHAIR 11
+#define DECOR_HEAVY_CHAIR 12
+#define DECOR_PRETTY_CHAIR 13
+#define DECOR_COMFORT_CHAIR 14
+#define DECOR_RAGGED_CHAIR 15
+#define DECOR_BRICK_CHAIR 16
+#define DECOR_CAMP_CHAIR 17
+#define DECOR_HARD_CHAIR 18
+#define DECOR_RED_PLANT 19
+#define DECOR_TROPICAL_PLANT 20
+#define DECOR_PRETTY_FLOWERS 21
+#define DECOR_COLORFUL_PLANT 22
+#define DECOR_BIG_PLANT 23
+#define DECOR_GORGEOUS_PLANT 24
+#define DECOR_RED_BRICK 25
+#define DECOR_YELLOW_BRICK 26
+#define DECOR_BLUE_BRICK 27
+#define DECOR_RED_BALLOON 28
+#define DECOR_BLUE_BALLOON 29
+#define DECOR_YELLOW_BALLOON 30
+#define DECOR_RED_TENT 31
+#define DECOR_BLUE_TENT 32
+#define DECOR_SOLID_BOARD 33
+#define DECOR_SLIDE 34
+#define DECOR_FENCE_LENGTH 35
+#define DECOR_FENCE_WIDTH 36
+#define DECOR_TIRE 37
+#define DECOR_STAND 38
+#define DECOR_MUD_BALL 39
+#define DECOR_BREAKABLE_DOOR 40
+#define DECOR_SAND_ORNAMENT 41
+#define DECOR_SILVER_SHIELD 42
+#define DECOR_GOLD_SHIELD 43
+#define DECOR_GLASS_ORNAMENT 44
+#define DECOR_TV 45
+#define DECOR_ROUND_TV 46
+#define DECOR_CUTE_TV 47
+#define DECOR_GLITTER_MAT 48
+#define DECOR_JUMP_MAT 49
+#define DECOR_SPIN_MAT 50
+#define DECOR_C_LOW_NOTE_MAT 51
+#define DECOR_D_NOTE_MAT 52
+#define DECOR_E_NOTE_MAT 53
+#define DECOR_F_NOTE_MAT 54
+#define DECOR_G_NOTE_MAT 55
+#define DECOR_A_NOTE_MAT 56
+#define DECOR_B_NOTE_MAT 57
+#define DECOR_C_HIGH_NOTE_MAT 58
+#define DECOR_SURF_MAT 59
+#define DECOR_THUNDER_MAT 60
+#define DECOR_FIRE_BLAST_MAT 61
+#define DECOR_POWDER_SNOW_MAT 62
+#define DECOR_ATTRACT_MAT 63
+#define DECOR_FISSURE_MAT 64
+#define DECOR_SPIKES_MAT 65
+#define DECOR_BALL_POSTER 66
+#define DECOR_GREEN_POSTER 67
+#define DECOR_RED_POSTER 68
+#define DECOR_BLUE_POSTER 69
+#define DECOR_CUTE_POSTER 70
+#define DECOR_PIKA_POSTER 71
+#define DECOR_LONG_POSTER 72
+#define DECOR_SEA_POSTER 73
+#define DECOR_SKY_POSTER 74
+#define DECOR_KISS_POSTER 75
+#define DECOR_PICHU_DOLL 76
+#define DECOR_PIKACHU_DOLL 77
+#define DECOR_MARILL_DOLL 78
+#define DECOR_TOGEPI_DOLL 79
+#define DECOR_CYNDAQUIL_DOLL 80
+#define DECOR_CHIKORITA_DOLL 81
+#define DECOR_TOTODILE_DOLL 82
+#define DECOR_JIGGLYPUFF_DOLL 83
+#define DECOR_MEOWTH_DOLL 84
+#define DECOR_CLEFAIRY_DOLL 85
+#define DECOR_DITTO_DOLL 86
+#define DECOR_SMOOCHUM_DOLL 87
+#define DECOR_TREECKO_DOLL 88
+#define DECOR_TORCHIC_DOLL 89
+#define DECOR_MUDKIP_DOLL 90
+#define DECOR_DUSKULL_DOLL 91
+#define DECOR_WYNAUT_DOLL 92
+#define DECOR_BALTOY_DOLL 93
+#define DECOR_KECLEON_DOLL 94
+#define DECOR_AZURILL_DOLL 95
+#define DECOR_SKITTY_DOLL 96
+#define DECOR_SWABLU_DOLL 97
+#define DECOR_GULPIN_DOLL 98
+#define DECOR_LOTAD_DOLL 99
+#define DECOR_SEEDOT_DOLL 100
+#define DECOR_PIKA_CUSHION 101
+#define DECOR_ROUND_CUSHION 102
+#define DECOR_KISS_CUSHION 103
+#define DECOR_ZIGZAG_CUSHION 104
+#define DECOR_SPIN_CUSHION 105
+#define DECOR_DIAMOND_CUSHION 106
+#define DECOR_BALL_CUSHION 107
+#define DECOR_GRASS_CUSHION 108
+#define DECOR_FIRE_CUSHION 109
+#define DECOR_WATER_CUSHION 110
+#define DECOR_SNORLAX_DOLL 111
+#define DECOR_RHYDON_DOLL 112
+#define DECOR_LAPRAS_DOLL 113
+#define DECOR_VENUSAUR_DOLL 114
+#define DECOR_CHARIZARD_DOLL 115
+#define DECOR_BLASTOISE_DOLL 116
+#define DECOR_WAILMER_DOLL 117
+#define DECOR_REGIROCK_DOLL 118
+#define DECOR_REGICE_DOLL 119
+#define DECOR_REGISTEEL_DOLL 120
+
+#endif // GUARD_CONSTANTS_DECORATIONS_H
diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h
new file mode 100644
index 000000000..12350aebe
--- /dev/null
+++ b/include/constants/easy_chat.h
@@ -0,0 +1,1064 @@
+#ifndef GUARD_CONSTANTS_EASY_CHAT_H
+#define GUARD_CONSTANTS_EASY_CHAT_H
+
+#define EC_GROUP_POKEMON 0x0
+#define EC_GROUP_TRAINER 0x1
+#define EC_GROUP_STATUS 0x2
+#define EC_GROUP_BATTLE 0x3
+#define EC_GROUP_GREETINGS 0x4
+#define EC_GROUP_PEOPLE 0x5
+#define EC_GROUP_VOICES 0x6
+#define EC_GROUP_SPEECH 0x7
+#define EC_GROUP_ENDINGS 0x8
+#define EC_GROUP_FEELINGS 0x9
+#define EC_GROUP_CONDITIONS 0xa
+#define EC_GROUP_ACTIONS 0xb
+#define EC_GROUP_LIFESTYLE 0xc
+#define EC_GROUP_HOBBIES 0xd
+#define EC_GROUP_TIME 0xe
+#define EC_GROUP_MISC 0xf
+#define EC_GROUP_ADJECTIVES 0x10
+#define EC_GROUP_EVENTS 0x11
+#define EC_GROUP_MOVE_1 0x12
+#define EC_GROUP_MOVE_2 0x13
+#define EC_GROUP_TRENDY_SAYING 0x14
+#define EC_GROUP_POKEMON_2 0x15
+
+// TRAINER
+#define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0
+#define EC_WORD_GOTCHA (EC_GROUP_TRAINER << 9) | 0x1
+#define EC_WORD_TRADE (EC_GROUP_TRAINER << 9) | 0x2
+#define EC_WORD_SAPPHIRE (EC_GROUP_TRAINER << 9) | 0x3
+#define EC_WORD_EVOLVE (EC_GROUP_TRAINER << 9) | 0x4
+#define EC_WORD_ENCYCLOPEDIA (EC_GROUP_TRAINER << 9) | 0x5
+#define EC_WORD_NATURE (EC_GROUP_TRAINER << 9) | 0x6
+#define EC_WORD_CENTER (EC_GROUP_TRAINER << 9) | 0x7
+#define EC_WORD_EGG (EC_GROUP_TRAINER << 9) | 0x8
+#define EC_WORD_LINK (EC_GROUP_TRAINER << 9) | 0x9
+#define EC_WORD_SP_ABILITY (EC_GROUP_TRAINER << 9) | 0xa
+#define EC_WORD_TRAINER (EC_GROUP_TRAINER << 9) | 0xb
+#define EC_WORD_VERSION (EC_GROUP_TRAINER << 9) | 0xc
+#define EC_WORD_POKENAV (EC_GROUP_TRAINER << 9) | 0xd
+#define EC_WORD_POKEMON (EC_GROUP_TRAINER << 9) | 0xe
+#define EC_WORD_GET (EC_GROUP_TRAINER << 9) | 0xf
+#define EC_WORD_POKEDEX (EC_GROUP_TRAINER << 9) | 0x10
+#define EC_WORD_RUBY (EC_GROUP_TRAINER << 9) | 0x11
+#define EC_WORD_LEVEL (EC_GROUP_TRAINER << 9) | 0x12
+
+// STATUS
+#define EC_WORD_DARK (EC_GROUP_STATUS << 9) | 0x0
+#define EC_WORD_STENCH (EC_GROUP_STATUS << 9) | 0x1
+#define EC_WORD_THICK_FAT (EC_GROUP_STATUS << 9) | 0x2
+#define EC_WORD_RAIN_DISH (EC_GROUP_STATUS << 9) | 0x3
+#define EC_WORD_DRIZZLE (EC_GROUP_STATUS << 9) | 0x4
+#define EC_WORD_ARENA_TRAP (EC_GROUP_STATUS << 9) | 0x5
+#define EC_WORD_INTIMIDATE (EC_GROUP_STATUS << 9) | 0x6
+#define EC_WORD_ROCK_HEAD (EC_GROUP_STATUS << 9) | 0x7
+#define EC_WORD_COLOR (EC_GROUP_STATUS << 9) | 0x8
+#define EC_WORD_ALT_COLOR (EC_GROUP_STATUS << 9) | 0x9
+#define EC_WORD_ROCK (EC_GROUP_STATUS << 9) | 0xa
+#define EC_WORD_BEAUTIFUL (EC_GROUP_STATUS << 9) | 0xb
+#define EC_WORD_BEAUTY (EC_GROUP_STATUS << 9) | 0xc
+#define EC_WORD_AIR_LOCK (EC_GROUP_STATUS << 9) | 0xd
+#define EC_WORD_PSYCHIC (EC_GROUP_STATUS << 9) | 0xe
+#define EC_WORD_HYPER_CUTTER (EC_GROUP_STATUS << 9) | 0xf
+#define EC_WORD_FIGHTING (EC_GROUP_STATUS << 9) | 0x10
+#define EC_WORD_SHADOW_TAG (EC_GROUP_STATUS << 9) | 0x11
+#define EC_WORD_SMART (EC_GROUP_STATUS << 9) | 0x12
+#define EC_WORD_SMARTNESS (EC_GROUP_STATUS << 9) | 0x13
+#define EC_WORD_SPEED_BOOST (EC_GROUP_STATUS << 9) | 0x14
+#define EC_WORD_COOL (EC_GROUP_STATUS << 9) | 0x15
+#define EC_WORD_COOLNESS (EC_GROUP_STATUS << 9) | 0x16
+#define EC_WORD_BATTLE_ARMOR (EC_GROUP_STATUS << 9) | 0x17
+#define EC_WORD_CUTE (EC_GROUP_STATUS << 9) | 0x18
+#define EC_WORD_CUTENESS (EC_GROUP_STATUS << 9) | 0x19
+#define EC_WORD_STURDY (EC_GROUP_STATUS << 9) | 0x1a
+#define EC_WORD_SUCTION_CUPS (EC_GROUP_STATUS << 9) | 0x1b
+#define EC_WORD_GRASS (EC_GROUP_STATUS << 9) | 0x1c
+#define EC_WORD_CLEAR_BODY (EC_GROUP_STATUS << 9) | 0x1d
+#define EC_WORD_TORRENT (EC_GROUP_STATUS << 9) | 0x1e
+#define EC_WORD_GHOST (EC_GROUP_STATUS << 9) | 0x1f
+#define EC_WORD_ICE (EC_GROUP_STATUS << 9) | 0x20
+#define EC_WORD_GUTS (EC_GROUP_STATUS << 9) | 0x21
+#define EC_WORD_ROUGH_SKIN (EC_GROUP_STATUS << 9) | 0x22
+#define EC_WORD_SHELL_ARMOR (EC_GROUP_STATUS << 9) | 0x23
+#define EC_WORD_NATURAL_CURE (EC_GROUP_STATUS << 9) | 0x24
+#define EC_WORD_DAMP (EC_GROUP_STATUS << 9) | 0x25
+#define EC_WORD_GROUND (EC_GROUP_STATUS << 9) | 0x26
+#define EC_WORD_LIMBER (EC_GROUP_STATUS << 9) | 0x27
+#define EC_WORD_MAGNET_PULL (EC_GROUP_STATUS << 9) | 0x28
+#define EC_WORD_WHITE_SMOKE (EC_GROUP_STATUS << 9) | 0x29
+#define EC_WORD_SYNCHRONIZE (EC_GROUP_STATUS << 9) | 0x2a
+#define EC_WORD_OVERGROW (EC_GROUP_STATUS << 9) | 0x2b
+#define EC_WORD_SWIFT_SWIM (EC_GROUP_STATUS << 9) | 0x2c
+#define EC_WORD_SAND_STREAM (EC_GROUP_STATUS << 9) | 0x2d
+#define EC_WORD_SAND_VEIL (EC_GROUP_STATUS << 9) | 0x2e
+#define EC_WORD_KEEN_EYE (EC_GROUP_STATUS << 9) | 0x2f
+#define EC_WORD_INNER_FOCUS (EC_GROUP_STATUS << 9) | 0x30
+#define EC_WORD_STATIC (EC_GROUP_STATUS << 9) | 0x31
+#define EC_WORD_TYPE (EC_GROUP_STATUS << 9) | 0x32
+#define EC_WORD_TOUGH (EC_GROUP_STATUS << 9) | 0x33
+#define EC_WORD_TOUGHNESS (EC_GROUP_STATUS << 9) | 0x34
+#define EC_WORD_SHED_SKIN (EC_GROUP_STATUS << 9) | 0x35
+#define EC_WORD_HUGE_POWER (EC_GROUP_STATUS << 9) | 0x36
+#define EC_WORD_VOLT_ABSORB (EC_GROUP_STATUS << 9) | 0x37
+#define EC_WORD_WATER_ABSORB (EC_GROUP_STATUS << 9) | 0x38
+#define EC_WORD_ELECTRIC (EC_GROUP_STATUS << 9) | 0x39
+#define EC_WORD_FORECAST (EC_GROUP_STATUS << 9) | 0x3a
+#define EC_WORD_SERENE_GRACE (EC_GROUP_STATUS << 9) | 0x3b
+#define EC_WORD_POISON (EC_GROUP_STATUS << 9) | 0x3c
+#define EC_WORD_POISON_POINT (EC_GROUP_STATUS << 9) | 0x3d
+#define EC_WORD_DRAGON (EC_GROUP_STATUS << 9) | 0x3e
+#define EC_WORD_TRACE (EC_GROUP_STATUS << 9) | 0x3f
+#define EC_WORD_OBLIVIOUS (EC_GROUP_STATUS << 9) | 0x40
+#define EC_WORD_TRUANT (EC_GROUP_STATUS << 9) | 0x41
+#define EC_WORD_RUN_AWAY (EC_GROUP_STATUS << 9) | 0x42
+#define EC_WORD_STICKY_HOLD (EC_GROUP_STATUS << 9) | 0x43
+#define EC_WORD_CLOUD_NINE (EC_GROUP_STATUS << 9) | 0x44
+#define EC_WORD_NORMAL (EC_GROUP_STATUS << 9) | 0x45
+#define EC_WORD_STEEL (EC_GROUP_STATUS << 9) | 0x46
+#define EC_WORD_ILLUMINATE (EC_GROUP_STATUS << 9) | 0x47
+#define EC_WORD_EARLY_BIRD (EC_GROUP_STATUS << 9) | 0x48
+#define EC_WORD_HUSTLE (EC_GROUP_STATUS << 9) | 0x49
+#define EC_WORD_SHINE (EC_GROUP_STATUS << 9) | 0x4a
+#define EC_WORD_FLYING (EC_GROUP_STATUS << 9) | 0x4b
+#define EC_WORD_DROUGHT (EC_GROUP_STATUS << 9) | 0x4c
+#define EC_WORD_LIGHTNINGROD (EC_GROUP_STATUS << 9) | 0x4d
+#define EC_WORD_COMPOUNDEYES (EC_GROUP_STATUS << 9) | 0x4e
+#define EC_WORD_MARVEL_SCALE (EC_GROUP_STATUS << 9) | 0x4f
+#define EC_WORD_WONDER_GUARD (EC_GROUP_STATUS << 9) | 0x50
+#define EC_WORD_INSOMNIA (EC_GROUP_STATUS << 9) | 0x51
+#define EC_WORD_LEVITATE (EC_GROUP_STATUS << 9) | 0x52
+#define EC_WORD_PLUS (EC_GROUP_STATUS << 9) | 0x53
+#define EC_WORD_PRESSURE (EC_GROUP_STATUS << 9) | 0x54
+#define EC_WORD_LIQUID_OOZE (EC_GROUP_STATUS << 9) | 0x55
+#define EC_WORD_COLOR_CHANGE (EC_GROUP_STATUS << 9) | 0x56
+#define EC_WORD_SOUNDPROOF (EC_GROUP_STATUS << 9) | 0x57
+#define EC_WORD_EFFECT_SPORE (EC_GROUP_STATUS << 9) | 0x58
+#define EC_WORD_PKRS (EC_GROUP_STATUS << 9) | 0x59
+#define EC_WORD_FIRE (EC_GROUP_STATUS << 9) | 0x5a
+#define EC_WORD_FLAME_BODY (EC_GROUP_STATUS << 9) | 0x5b
+#define EC_WORD_MINUS (EC_GROUP_STATUS << 9) | 0x5c
+#define EC_WORD_OWN_TEMPO (EC_GROUP_STATUS << 9) | 0x5d
+#define EC_WORD_MAGMA_ARMOR (EC_GROUP_STATUS << 9) | 0x5e
+#define EC_WORD_WATER (EC_GROUP_STATUS << 9) | 0x5f
+#define EC_WORD_WATER_VEIL (EC_GROUP_STATUS << 9) | 0x60
+#define EC_WORD_BUG (EC_GROUP_STATUS << 9) | 0x61
+#define EC_WORD_SWARM (EC_GROUP_STATUS << 9) | 0x62
+#define EC_WORD_CUTE_CHARM (EC_GROUP_STATUS << 9) | 0x63
+#define EC_WORD_IMMUNITY (EC_GROUP_STATUS << 9) | 0x64
+#define EC_WORD_BLAZE (EC_GROUP_STATUS << 9) | 0x65
+#define EC_WORD_PICKUP (EC_GROUP_STATUS << 9) | 0x66
+#define EC_WORD_PATTERN (EC_GROUP_STATUS << 9) | 0x67
+#define EC_WORD_FLASH_FIRE (EC_GROUP_STATUS << 9) | 0x68
+#define EC_WORD_VITAL_SPIRIT (EC_GROUP_STATUS << 9) | 0x69
+#define EC_WORD_CHLOROPHYLL (EC_GROUP_STATUS << 9) | 0x6a
+#define EC_WORD_PURE_POWER (EC_GROUP_STATUS << 9) | 0x6b
+#define EC_WORD_SHIELD_DUST (EC_GROUP_STATUS << 9) | 0x6c
+
+// BATTLE
+#define EC_WORD_MATCH_UP (EC_GROUP_BATTLE << 9) | 0x0
+#define EC_WORD_GO (EC_GROUP_BATTLE << 9) | 0x1
+#define EC_WORD_NO_1 (EC_GROUP_BATTLE << 9) | 0x2
+#define EC_WORD_DECIDE (EC_GROUP_BATTLE << 9) | 0x3
+#define EC_WORD_LET_ME_WIN (EC_GROUP_BATTLE << 9) | 0x4
+#define EC_WORD_WINS (EC_GROUP_BATTLE << 9) | 0x5
+#define EC_WORD_WIN (EC_GROUP_BATTLE << 9) | 0x6
+#define EC_WORD_WON (EC_GROUP_BATTLE << 9) | 0x7
+#define EC_WORD_IF_I_WIN (EC_GROUP_BATTLE << 9) | 0x8
+#define EC_WORD_WHEN_I_WIN (EC_GROUP_BATTLE << 9) | 0x9
+#define EC_WORD_CAN_T_WIN (EC_GROUP_BATTLE << 9) | 0xa
+#define EC_WORD_CAN_WIN (EC_GROUP_BATTLE << 9) | 0xb
+#define EC_WORD_NO_MATCH (EC_GROUP_BATTLE << 9) | 0xc
+#define EC_WORD_SPIRIT (EC_GROUP_BATTLE << 9) | 0xd
+#define EC_WORD_DECIDED (EC_GROUP_BATTLE << 9) | 0xe
+#define EC_WORD_TRUMP_CARD (EC_GROUP_BATTLE << 9) | 0xf
+#define EC_WORD_TAKE_THAT (EC_GROUP_BATTLE << 9) | 0x10
+#define EC_WORD_COME_ON (EC_GROUP_BATTLE << 9) | 0x11
+#define EC_WORD_ATTACK (EC_GROUP_BATTLE << 9) | 0x12
+#define EC_WORD_SURRENDER (EC_GROUP_BATTLE << 9) | 0x13
+#define EC_WORD_GUTSY (EC_GROUP_BATTLE << 9) | 0x14
+#define EC_WORD_TALENT (EC_GROUP_BATTLE << 9) | 0x15
+#define EC_WORD_STRATEGY (EC_GROUP_BATTLE << 9) | 0x16
+#define EC_WORD_SMITE (EC_GROUP_BATTLE << 9) | 0x17
+#define EC_WORD_MATCH (EC_GROUP_BATTLE << 9) | 0x18
+#define EC_WORD_VICTORY (EC_GROUP_BATTLE << 9) | 0x19
+#define EC_WORD_OFFENSIVE (EC_GROUP_BATTLE << 9) | 0x1a
+#define EC_WORD_SENSE (EC_GROUP_BATTLE << 9) | 0x1b
+#define EC_WORD_VERSUS (EC_GROUP_BATTLE << 9) | 0x1c
+#define EC_WORD_FIGHTS (EC_GROUP_BATTLE << 9) | 0x1d
+#define EC_WORD_POWER (EC_GROUP_BATTLE << 9) | 0x1e
+#define EC_WORD_CHALLENGE (EC_GROUP_BATTLE << 9) | 0x1f
+#define EC_WORD_STRONG (EC_GROUP_BATTLE << 9) | 0x20
+#define EC_WORD_TOO_STRONG (EC_GROUP_BATTLE << 9) | 0x21
+#define EC_WORD_GO_EASY (EC_GROUP_BATTLE << 9) | 0x22
+#define EC_WORD_FOE (EC_GROUP_BATTLE << 9) | 0x23
+#define EC_WORD_GENIUS (EC_GROUP_BATTLE << 9) | 0x24
+#define EC_WORD_LEGEND (EC_GROUP_BATTLE << 9) | 0x25
+#define EC_WORD_ESCAPE (EC_GROUP_BATTLE << 9) | 0x26
+#define EC_WORD_AIM (EC_GROUP_BATTLE << 9) | 0x27
+#define EC_WORD_BATTLE (EC_GROUP_BATTLE << 9) | 0x28
+#define EC_WORD_FIGHT (EC_GROUP_BATTLE << 9) | 0x29
+#define EC_WORD_RESUSCITATE (EC_GROUP_BATTLE << 9) | 0x2a
+#define EC_WORD_POINTS (EC_GROUP_BATTLE << 9) | 0x2b
+#define EC_WORD_SERIOUS (EC_GROUP_BATTLE << 9) | 0x2c
+#define EC_WORD_GIVE_UP (EC_GROUP_BATTLE << 9) | 0x2d
+#define EC_WORD_LOSS (EC_GROUP_BATTLE << 9) | 0x2e
+#define EC_WORD_IF_I_LOSE (EC_GROUP_BATTLE << 9) | 0x2f
+#define EC_WORD_LOST (EC_GROUP_BATTLE << 9) | 0x30
+#define EC_WORD_LOSE (EC_GROUP_BATTLE << 9) | 0x31
+#define EC_WORD_GUARD (EC_GROUP_BATTLE << 9) | 0x32
+#define EC_WORD_PARTNER (EC_GROUP_BATTLE << 9) | 0x33
+#define EC_WORD_REJECT (EC_GROUP_BATTLE << 9) | 0x34
+#define EC_WORD_ACCEPT (EC_GROUP_BATTLE << 9) | 0x35
+#define EC_WORD_INVINCIBLE (EC_GROUP_BATTLE << 9) | 0x36
+#define EC_WORD_RECEIVED (EC_GROUP_BATTLE << 9) | 0x37
+#define EC_WORD_EASY (EC_GROUP_BATTLE << 9) | 0x38
+#define EC_WORD_WEAK (EC_GROUP_BATTLE << 9) | 0x39
+#define EC_WORD_TOO_WEAK (EC_GROUP_BATTLE << 9) | 0x3a
+#define EC_WORD_PUSHOVER (EC_GROUP_BATTLE << 9) | 0x3b
+#define EC_WORD_LEADER (EC_GROUP_BATTLE << 9) | 0x3c
+#define EC_WORD_RULE (EC_GROUP_BATTLE << 9) | 0x3d
+#define EC_WORD_MOVE (EC_GROUP_BATTLE << 9) | 0x3e
+
+// GREETINGS
+#define EC_WORD_THANKS (EC_GROUP_GREETINGS << 9) | 0x0
+#define EC_WORD_YES (EC_GROUP_GREETINGS << 9) | 0x1
+#define EC_WORD_HERE_GOES (EC_GROUP_GREETINGS << 9) | 0x2
+#define EC_WORD_HERE_I_COME (EC_GROUP_GREETINGS << 9) | 0x3
+#define EC_WORD_HERE_IT_IS (EC_GROUP_GREETINGS << 9) | 0x4
+#define EC_WORD_YEAH (EC_GROUP_GREETINGS << 9) | 0x5
+#define EC_WORD_WELCOME (EC_GROUP_GREETINGS << 9) | 0x6
+#define EC_WORD_OI (EC_GROUP_GREETINGS << 9) | 0x7
+#define EC_WORD_HOW_DO (EC_GROUP_GREETINGS << 9) | 0x8
+#define EC_WORD_CONGRATS (EC_GROUP_GREETINGS << 9) | 0x9
+#define EC_WORD_GIVE_ME (EC_GROUP_GREETINGS << 9) | 0xa
+#define EC_WORD_SORRY (EC_GROUP_GREETINGS << 9) | 0xb
+#define EC_WORD_APOLOGIZE (EC_GROUP_GREETINGS << 9) | 0xc
+#define EC_WORD_FORGIVE (EC_GROUP_GREETINGS << 9) | 0xd
+#define EC_WORD_HEY_THERE (EC_GROUP_GREETINGS << 9) | 0xe
+#define EC_WORD_HELLO (EC_GROUP_GREETINGS << 9) | 0xf
+#define EC_WORD_GOOD_BYE (EC_GROUP_GREETINGS << 9) | 0x10
+#define EC_WORD_THANK_YOU (EC_GROUP_GREETINGS << 9) | 0x11
+#define EC_WORD_I_VE_ARRIVED (EC_GROUP_GREETINGS << 9) | 0x12
+#define EC_WORD_PARDON (EC_GROUP_GREETINGS << 9) | 0x13
+#define EC_WORD_EXCUSE (EC_GROUP_GREETINGS << 9) | 0x14
+#define EC_WORD_SEE_YA (EC_GROUP_GREETINGS << 9) | 0x15
+#define EC_WORD_EXCUSE_ME (EC_GROUP_GREETINGS << 9) | 0x16
+#define EC_WORD_WELL_THEN (EC_GROUP_GREETINGS << 9) | 0x17
+#define EC_WORD_GO_AHEAD (EC_GROUP_GREETINGS << 9) | 0x18
+#define EC_WORD_APPRECIATE (EC_GROUP_GREETINGS << 9) | 0x19
+#define EC_WORD_HEY_QUES (EC_GROUP_GREETINGS << 9) | 0x1a
+#define EC_WORD_WHAT_S_UP_QUES (EC_GROUP_GREETINGS << 9) | 0x1b
+#define EC_WORD_HUH_QUES (EC_GROUP_GREETINGS << 9) | 0x1c
+#define EC_WORD_NO (EC_GROUP_GREETINGS << 9) | 0x1d
+#define EC_WORD_HI (EC_GROUP_GREETINGS << 9) | 0x1e
+#define EC_WORD_YEAH_YEAH (EC_GROUP_GREETINGS << 9) | 0x1f
+#define EC_WORD_BYE_BYE (EC_GROUP_GREETINGS << 9) | 0x20
+#define EC_WORD_MEET_YOU (EC_GROUP_GREETINGS << 9) | 0x21
+#define EC_WORD_HEY (EC_GROUP_GREETINGS << 9) | 0x22
+#define EC_WORD_SMELL (EC_GROUP_GREETINGS << 9) | 0x23
+#define EC_WORD_LISTENING (EC_GROUP_GREETINGS << 9) | 0x24
+#define EC_WORD_HOO_HAH (EC_GROUP_GREETINGS << 9) | 0x25
+#define EC_WORD_YAHOO (EC_GROUP_GREETINGS << 9) | 0x26
+#define EC_WORD_YO (EC_GROUP_GREETINGS << 9) | 0x27
+#define EC_WORD_COME_OVER (EC_GROUP_GREETINGS << 9) | 0x28
+#define EC_WORD_COUNT_ON (EC_GROUP_GREETINGS << 9) | 0x29
+
+// PEOPLE
+#define EC_WORD_OPPONENT (EC_GROUP_PEOPLE << 9) | 0x0
+#define EC_WORD_I (EC_GROUP_PEOPLE << 9) | 0x1
+#define EC_WORD_YOU (EC_GROUP_PEOPLE << 9) | 0x2
+#define EC_WORD_YOURS (EC_GROUP_PEOPLE << 9) | 0x3
+#define EC_WORD_SON (EC_GROUP_PEOPLE << 9) | 0x4
+#define EC_WORD_YOUR (EC_GROUP_PEOPLE << 9) | 0x5
+#define EC_WORD_YOU_RE (EC_GROUP_PEOPLE << 9) | 0x6
+#define EC_WORD_YOU_VE (EC_GROUP_PEOPLE << 9) | 0x7
+#define EC_WORD_MOTHER (EC_GROUP_PEOPLE << 9) | 0x8
+#define EC_WORD_GRANDFATHER (EC_GROUP_PEOPLE << 9) | 0x9
+#define EC_WORD_UNCLE (EC_GROUP_PEOPLE << 9) | 0xa
+#define EC_WORD_FATHER (EC_GROUP_PEOPLE << 9) | 0xb
+#define EC_WORD_BOY (EC_GROUP_PEOPLE << 9) | 0xc
+#define EC_WORD_ADULT (EC_GROUP_PEOPLE << 9) | 0xd
+#define EC_WORD_BROTHER (EC_GROUP_PEOPLE << 9) | 0xe
+#define EC_WORD_SISTER (EC_GROUP_PEOPLE << 9) | 0xf
+#define EC_WORD_GRANDMOTHER (EC_GROUP_PEOPLE << 9) | 0x10
+#define EC_WORD_AUNT (EC_GROUP_PEOPLE << 9) | 0x11
+#define EC_WORD_PARENT (EC_GROUP_PEOPLE << 9) | 0x12
+#define EC_WORD_MAN (EC_GROUP_PEOPLE << 9) | 0x13
+#define EC_WORD_ME (EC_GROUP_PEOPLE << 9) | 0x14
+#define EC_WORD_GIRL (EC_GROUP_PEOPLE << 9) | 0x15
+#define EC_WORD_BABE (EC_GROUP_PEOPLE << 9) | 0x16
+#define EC_WORD_FAMILY (EC_GROUP_PEOPLE << 9) | 0x17
+#define EC_WORD_HER (EC_GROUP_PEOPLE << 9) | 0x18
+#define EC_WORD_HIM (EC_GROUP_PEOPLE << 9) | 0x19
+#define EC_WORD_HE (EC_GROUP_PEOPLE << 9) | 0x1a
+#define EC_WORD_PLACE (EC_GROUP_PEOPLE << 9) | 0x1b
+#define EC_WORD_DAUGHTER (EC_GROUP_PEOPLE << 9) | 0x1c
+#define EC_WORD_HIS (EC_GROUP_PEOPLE << 9) | 0x1d
+#define EC_WORD_HE_S (EC_GROUP_PEOPLE << 9) | 0x1e
+#define EC_WORD_AREN_T (EC_GROUP_PEOPLE << 9) | 0x1f
+#define EC_WORD_SIBLINGS (EC_GROUP_PEOPLE << 9) | 0x20
+#define EC_WORD_KID (EC_GROUP_PEOPLE << 9) | 0x21
+#define EC_WORD_CHILDREN (EC_GROUP_PEOPLE << 9) | 0x22
+#define EC_WORD_MR (EC_GROUP_PEOPLE << 9) | 0x23
+#define EC_WORD_MRS (EC_GROUP_PEOPLE << 9) | 0x24
+#define EC_WORD_MYSELF (EC_GROUP_PEOPLE << 9) | 0x25
+#define EC_WORD_I_WAS (EC_GROUP_PEOPLE << 9) | 0x26
+#define EC_WORD_TO_ME (EC_GROUP_PEOPLE << 9) | 0x27
+#define EC_WORD_MY (EC_GROUP_PEOPLE << 9) | 0x28
+#define EC_WORD_I_AM (EC_GROUP_PEOPLE << 9) | 0x29
+#define EC_WORD_I_VE (EC_GROUP_PEOPLE << 9) | 0x2a
+#define EC_WORD_WHO (EC_GROUP_PEOPLE << 9) | 0x2b
+#define EC_WORD_SOMEONE (EC_GROUP_PEOPLE << 9) | 0x2c
+#define EC_WORD_WHO_WAS (EC_GROUP_PEOPLE << 9) | 0x2d
+#define EC_WORD_TO_WHOM (EC_GROUP_PEOPLE << 9) | 0x2e
+#define EC_WORD_WHOSE (EC_GROUP_PEOPLE << 9) | 0x2f
+#define EC_WORD_WHO_IS (EC_GROUP_PEOPLE << 9) | 0x30
+#define EC_WORD_IT_S (EC_GROUP_PEOPLE << 9) | 0x31
+#define EC_WORD_LADY (EC_GROUP_PEOPLE << 9) | 0x32
+#define EC_WORD_FRIEND (EC_GROUP_PEOPLE << 9) | 0x33
+#define EC_WORD_ALLY (EC_GROUP_PEOPLE << 9) | 0x34
+#define EC_WORD_PERSON (EC_GROUP_PEOPLE << 9) | 0x35
+#define EC_WORD_DUDE (EC_GROUP_PEOPLE << 9) | 0x36
+#define EC_WORD_THEY (EC_GROUP_PEOPLE << 9) | 0x37
+#define EC_WORD_THEY_WERE (EC_GROUP_PEOPLE << 9) | 0x38
+#define EC_WORD_TO_THEM (EC_GROUP_PEOPLE << 9) | 0x39
+#define EC_WORD_THEIR (EC_GROUP_PEOPLE << 9) | 0x3a
+#define EC_WORD_THEY_RE (EC_GROUP_PEOPLE << 9) | 0x3b
+#define EC_WORD_THEY_VE (EC_GROUP_PEOPLE << 9) | 0x3c
+#define EC_WORD_WE (EC_GROUP_PEOPLE << 9) | 0x3d
+#define EC_WORD_BEEN (EC_GROUP_PEOPLE << 9) | 0x3e
+#define EC_WORD_TO_US (EC_GROUP_PEOPLE << 9) | 0x3f
+#define EC_WORD_OUR (EC_GROUP_PEOPLE << 9) | 0x40
+#define EC_WORD_WE_RE (EC_GROUP_PEOPLE << 9) | 0x41
+#define EC_WORD_RIVAL (EC_GROUP_PEOPLE << 9) | 0x42
+#define EC_WORD_WE_VE (EC_GROUP_PEOPLE << 9) | 0x43
+#define EC_WORD_WOMAN (EC_GROUP_PEOPLE << 9) | 0x44
+#define EC_WORD_SHE (EC_GROUP_PEOPLE << 9) | 0x45
+#define EC_WORD_SHE_WAS (EC_GROUP_PEOPLE << 9) | 0x46
+#define EC_WORD_TO_HER (EC_GROUP_PEOPLE << 9) | 0x47
+#define EC_WORD_HERS (EC_GROUP_PEOPLE << 9) | 0x48
+#define EC_WORD_SHE_IS (EC_GROUP_PEOPLE << 9) | 0x49
+#define EC_WORD_SOME (EC_GROUP_PEOPLE << 9) | 0x4a
+
+// VOICES
+#define EC_WORD_EXCL (EC_GROUP_VOICES << 9) | 0x0
+#define EC_WORD_EXCL_EXCL (EC_GROUP_VOICES << 9) | 0x1
+#define EC_WORD_QUES_EXCL (EC_GROUP_VOICES << 9) | 0x2
+#define EC_WORD_QUES (EC_GROUP_VOICES << 9) | 0x3
+#define EC_WORD_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x4
+#define EC_WORD_ELLIPSIS_EXCL (EC_GROUP_VOICES << 9) | 0x5
+#define EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x6
+#define EC_WORD_DASH (EC_GROUP_VOICES << 9) | 0x7
+#define EC_WORD_DASH_DASH_DASH (EC_GROUP_VOICES << 9) | 0x8
+#define EC_WORD_UH_OH (EC_GROUP_VOICES << 9) | 0x9
+#define EC_WORD_WAAAH (EC_GROUP_VOICES << 9) | 0xa
+#define EC_WORD_AHAHA (EC_GROUP_VOICES << 9) | 0xb
+#define EC_WORD_OH_QUES (EC_GROUP_VOICES << 9) | 0xc
+#define EC_WORD_NOPE (EC_GROUP_VOICES << 9) | 0xd
+#define EC_WORD_URGH (EC_GROUP_VOICES << 9) | 0xe
+#define EC_WORD_HMM (EC_GROUP_VOICES << 9) | 0xf
+#define EC_WORD_WHOAH (EC_GROUP_VOICES << 9) | 0x10
+#define EC_WORD_WROOOAAR_EXCL (EC_GROUP_VOICES << 9) | 0x11
+#define EC_WORD_WOW (EC_GROUP_VOICES << 9) | 0x12
+#define EC_WORD_GIGGLE (EC_GROUP_VOICES << 9) | 0x13
+#define EC_WORD_SIGH (EC_GROUP_VOICES << 9) | 0x14
+#define EC_WORD_UNBELIEVABLE (EC_GROUP_VOICES << 9) | 0x15
+#define EC_WORD_CRIES (EC_GROUP_VOICES << 9) | 0x16
+#define EC_WORD_AGREE (EC_GROUP_VOICES << 9) | 0x17
+#define EC_WORD_EH_QUES (EC_GROUP_VOICES << 9) | 0x18
+#define EC_WORD_CRY (EC_GROUP_VOICES << 9) | 0x19
+#define EC_WORD_EHEHE (EC_GROUP_VOICES << 9) | 0x1a
+#define EC_WORD_OI_OI_OI (EC_GROUP_VOICES << 9) | 0x1b
+#define EC_WORD_OH_YEAH (EC_GROUP_VOICES << 9) | 0x1c
+#define EC_WORD_OH (EC_GROUP_VOICES << 9) | 0x1d
+#define EC_WORD_OOPS (EC_GROUP_VOICES << 9) | 0x1e
+#define EC_WORD_SHOCKED (EC_GROUP_VOICES << 9) | 0x1f
+#define EC_WORD_EEK (EC_GROUP_VOICES << 9) | 0x20
+#define EC_WORD_GRAAAH (EC_GROUP_VOICES << 9) | 0x21
+#define EC_WORD_GWAHAHAHA (EC_GROUP_VOICES << 9) | 0x22
+#define EC_WORD_WAY (EC_GROUP_VOICES << 9) | 0x23
+#define EC_WORD_TCH (EC_GROUP_VOICES << 9) | 0x24
+#define EC_WORD_HEHE (EC_GROUP_VOICES << 9) | 0x25
+#define EC_WORD_HAH (EC_GROUP_VOICES << 9) | 0x26
+#define EC_WORD_YUP (EC_GROUP_VOICES << 9) | 0x27
+#define EC_WORD_HAHAHA (EC_GROUP_VOICES << 9) | 0x28
+#define EC_WORD_AIYEEH (EC_GROUP_VOICES << 9) | 0x29
+#define EC_WORD_HIYAH (EC_GROUP_VOICES << 9) | 0x2a
+#define EC_WORD_FUFUFU (EC_GROUP_VOICES << 9) | 0x2b
+#define EC_WORD_LOL (EC_GROUP_VOICES << 9) | 0x2c
+#define EC_WORD_SNORT (EC_GROUP_VOICES << 9) | 0x2d
+#define EC_WORD_HUMPH (EC_GROUP_VOICES << 9) | 0x2e
+#define EC_WORD_HEHEHE (EC_GROUP_VOICES << 9) | 0x2f
+#define EC_WORD_HEH (EC_GROUP_VOICES << 9) | 0x30
+#define EC_WORD_HOHOHO (EC_GROUP_VOICES << 9) | 0x31
+#define EC_WORD_UH_HUH (EC_GROUP_VOICES << 9) | 0x32
+#define EC_WORD_OH_DEAR (EC_GROUP_VOICES << 9) | 0x33
+#define EC_WORD_ARRGH (EC_GROUP_VOICES << 9) | 0x34
+#define EC_WORD_MUFUFU (EC_GROUP_VOICES << 9) | 0x35
+#define EC_WORD_MMM (EC_GROUP_VOICES << 9) | 0x36
+#define EC_WORD_OH_KAY (EC_GROUP_VOICES << 9) | 0x37
+#define EC_WORD_OKAY (EC_GROUP_VOICES << 9) | 0x38
+#define EC_WORD_LALALA (EC_GROUP_VOICES << 9) | 0x39
+#define EC_WORD_YAY (EC_GROUP_VOICES << 9) | 0x3a
+#define EC_WORD_AWW (EC_GROUP_VOICES << 9) | 0x3b
+#define EC_WORD_WOWEE (EC_GROUP_VOICES << 9) | 0x3c
+#define EC_WORD_GWAH (EC_GROUP_VOICES << 9) | 0x3d
+#define EC_WORD_WAHAHAHA (EC_GROUP_VOICES << 9) | 0x3e
+
+// SPEECH
+#define EC_WORD_LISTEN (EC_GROUP_SPEECH << 9) | 0x0
+#define EC_WORD_NOT_VERY (EC_GROUP_SPEECH << 9) | 0x1
+#define EC_WORD_MEAN (EC_GROUP_SPEECH << 9) | 0x2
+#define EC_WORD_LIE (EC_GROUP_SPEECH << 9) | 0x3
+#define EC_WORD_LAY (EC_GROUP_SPEECH << 9) | 0x4
+#define EC_WORD_RECOMMEND (EC_GROUP_SPEECH << 9) | 0x5
+#define EC_WORD_NITWIT (EC_GROUP_SPEECH << 9) | 0x6
+#define EC_WORD_QUITE (EC_GROUP_SPEECH << 9) | 0x7
+#define EC_WORD_FROM (EC_GROUP_SPEECH << 9) | 0x8
+#define EC_WORD_FEELING (EC_GROUP_SPEECH << 9) | 0x9
+#define EC_WORD_BUT (EC_GROUP_SPEECH << 9) | 0xa
+#define EC_WORD_HOWEVER (EC_GROUP_SPEECH << 9) | 0xb
+#define EC_WORD_CASE (EC_GROUP_SPEECH << 9) | 0xc
+#define EC_WORD_THE (EC_GROUP_SPEECH << 9) | 0xd
+#define EC_WORD_MISS (EC_GROUP_SPEECH << 9) | 0xe
+#define EC_WORD_HOW (EC_GROUP_SPEECH << 9) | 0xf
+#define EC_WORD_HIT (EC_GROUP_SPEECH << 9) | 0x10
+#define EC_WORD_ENOUGH (EC_GROUP_SPEECH << 9) | 0x11
+#define EC_WORD_A_LOT (EC_GROUP_SPEECH << 9) | 0x12
+#define EC_WORD_A_LITTLE (EC_GROUP_SPEECH << 9) | 0x13
+#define EC_WORD_ABSOLUTELY (EC_GROUP_SPEECH << 9) | 0x14
+#define EC_WORD_AND (EC_GROUP_SPEECH << 9) | 0x15
+#define EC_WORD_ONLY (EC_GROUP_SPEECH << 9) | 0x16
+#define EC_WORD_AROUND (EC_GROUP_SPEECH << 9) | 0x17
+#define EC_WORD_PROBABLY (EC_GROUP_SPEECH << 9) | 0x18
+#define EC_WORD_IF (EC_GROUP_SPEECH << 9) | 0x19
+#define EC_WORD_VERY (EC_GROUP_SPEECH << 9) | 0x1a
+#define EC_WORD_A_TINY_BIT (EC_GROUP_SPEECH << 9) | 0x1b
+#define EC_WORD_WILD (EC_GROUP_SPEECH << 9) | 0x1c
+#define EC_WORD_THAT_S (EC_GROUP_SPEECH << 9) | 0x1d
+#define EC_WORD_JUST (EC_GROUP_SPEECH << 9) | 0x1e
+#define EC_WORD_EVEN_SO (EC_GROUP_SPEECH << 9) | 0x1f
+#define EC_WORD_MUST_BE (EC_GROUP_SPEECH << 9) | 0x20
+#define EC_WORD_NATURALLY (EC_GROUP_SPEECH << 9) | 0x21
+#define EC_WORD_FOR_NOW (EC_GROUP_SPEECH << 9) | 0x22
+#define EC_WORD_UNDERSTOOD (EC_GROUP_SPEECH << 9) | 0x23
+#define EC_WORD_JOKING (EC_GROUP_SPEECH << 9) | 0x24
+#define EC_WORD_READY (EC_GROUP_SPEECH << 9) | 0x25
+#define EC_WORD_SOMETHING (EC_GROUP_SPEECH << 9) | 0x26
+#define EC_WORD_SOMEHOW (EC_GROUP_SPEECH << 9) | 0x27
+#define EC_WORD_ALTHOUGH (EC_GROUP_SPEECH << 9) | 0x28
+#define EC_WORD_ALSO (EC_GROUP_SPEECH << 9) | 0x29
+#define EC_WORD_PERFECT (EC_GROUP_SPEECH << 9) | 0x2a
+#define EC_WORD_AS_MUCH_AS (EC_GROUP_SPEECH << 9) | 0x2b
+#define EC_WORD_REALLY (EC_GROUP_SPEECH << 9) | 0x2c
+#define EC_WORD_TRULY (EC_GROUP_SPEECH << 9) | 0x2d
+#define EC_WORD_SERIOUSLY (EC_GROUP_SPEECH << 9) | 0x2e
+#define EC_WORD_TOTALLY (EC_GROUP_SPEECH << 9) | 0x2f
+#define EC_WORD_UNTIL (EC_GROUP_SPEECH << 9) | 0x30
+#define EC_WORD_AS_IF (EC_GROUP_SPEECH << 9) | 0x31
+#define EC_WORD_MOOD (EC_GROUP_SPEECH << 9) | 0x32
+#define EC_WORD_RATHER (EC_GROUP_SPEECH << 9) | 0x33
+#define EC_WORD_AWFULLY (EC_GROUP_SPEECH << 9) | 0x34
+#define EC_WORD_MODE (EC_GROUP_SPEECH << 9) | 0x35
+#define EC_WORD_MORE (EC_GROUP_SPEECH << 9) | 0x36
+#define EC_WORD_TOO_LATE (EC_GROUP_SPEECH << 9) | 0x37
+#define EC_WORD_FINALLY (EC_GROUP_SPEECH << 9) | 0x38
+#define EC_WORD_ANY (EC_GROUP_SPEECH << 9) | 0x39
+#define EC_WORD_INSTEAD (EC_GROUP_SPEECH << 9) | 0x3a
+#define EC_WORD_FANTASTIC (EC_GROUP_SPEECH << 9) | 0x3b
+
+// ENDINGS
+#define EC_WORD_WILL (EC_GROUP_ENDINGS << 9) | 0x0
+#define EC_WORD_WILL_BE_HERE (EC_GROUP_ENDINGS << 9) | 0x1
+#define EC_WORD_OR (EC_GROUP_ENDINGS << 9) | 0x2
+#define EC_WORD_TIMES (EC_GROUP_ENDINGS << 9) | 0x3
+#define EC_WORD_WONDER (EC_GROUP_ENDINGS << 9) | 0x4
+#define EC_WORD_IS_IT_QUES (EC_GROUP_ENDINGS << 9) | 0x5
+#define EC_WORD_BE (EC_GROUP_ENDINGS << 9) | 0x6
+#define EC_WORD_GIMME (EC_GROUP_ENDINGS << 9) | 0x7
+#define EC_WORD_COULD (EC_GROUP_ENDINGS << 9) | 0x8
+#define EC_WORD_LIKELY_TO (EC_GROUP_ENDINGS << 9) | 0x9
+#define EC_WORD_WOULD (EC_GROUP_ENDINGS << 9) | 0xa
+#define EC_WORD_IS (EC_GROUP_ENDINGS << 9) | 0xb
+#define EC_WORD_ISN_T_IT_QUES (EC_GROUP_ENDINGS << 9) | 0xc
+#define EC_WORD_LET_S (EC_GROUP_ENDINGS << 9) | 0xd
+#define EC_WORD_OTHER (EC_GROUP_ENDINGS << 9) | 0xe
+#define EC_WORD_ARE (EC_GROUP_ENDINGS << 9) | 0xf
+#define EC_WORD_WAS (EC_GROUP_ENDINGS << 9) | 0x10
+#define EC_WORD_WERE (EC_GROUP_ENDINGS << 9) | 0x11
+#define EC_WORD_THOSE (EC_GROUP_ENDINGS << 9) | 0x12
+#define EC_WORD_ISN_T (EC_GROUP_ENDINGS << 9) | 0x13
+#define EC_WORD_WON_T (EC_GROUP_ENDINGS << 9) | 0x14
+#define EC_WORD_CAN_T (EC_GROUP_ENDINGS << 9) | 0x15
+#define EC_WORD_CAN (EC_GROUP_ENDINGS << 9) | 0x16
+#define EC_WORD_DON_T (EC_GROUP_ENDINGS << 9) | 0x17
+#define EC_WORD_DO (EC_GROUP_ENDINGS << 9) | 0x18
+#define EC_WORD_DOES (EC_GROUP_ENDINGS << 9) | 0x19
+#define EC_WORD_WHOM (EC_GROUP_ENDINGS << 9) | 0x1a
+#define EC_WORD_WHICH (EC_GROUP_ENDINGS << 9) | 0x1b
+#define EC_WORD_WASN_T (EC_GROUP_ENDINGS << 9) | 0x1c
+#define EC_WORD_WEREN_T (EC_GROUP_ENDINGS << 9) | 0x1d
+#define EC_WORD_HAVE (EC_GROUP_ENDINGS << 9) | 0x1e
+#define EC_WORD_HAVEN_T (EC_GROUP_ENDINGS << 9) | 0x1f
+#define EC_WORD_A (EC_GROUP_ENDINGS << 9) | 0x20
+#define EC_WORD_AN (EC_GROUP_ENDINGS << 9) | 0x21
+#define EC_WORD_NOT (EC_GROUP_ENDINGS << 9) | 0x22
+#define EC_WORD_THERE (EC_GROUP_ENDINGS << 9) | 0x23
+#define EC_WORD_OK_QUES (EC_GROUP_ENDINGS << 9) | 0x24
+#define EC_WORD_SO (EC_GROUP_ENDINGS << 9) | 0x25
+#define EC_WORD_MAYBE (EC_GROUP_ENDINGS << 9) | 0x26
+#define EC_WORD_ABOUT (EC_GROUP_ENDINGS << 9) | 0x27
+#define EC_WORD_OVER (EC_GROUP_ENDINGS << 9) | 0x28
+#define EC_WORD_IT (EC_GROUP_ENDINGS << 9) | 0x29
+#define EC_WORD_ALL (EC_GROUP_ENDINGS << 9) | 0x2a
+#define EC_WORD_FOR (EC_GROUP_ENDINGS << 9) | 0x2b
+#define EC_WORD_ON (EC_GROUP_ENDINGS << 9) | 0x2c
+#define EC_WORD_OFF (EC_GROUP_ENDINGS << 9) | 0x2d
+#define EC_WORD_AS (EC_GROUP_ENDINGS << 9) | 0x2e
+#define EC_WORD_TO (EC_GROUP_ENDINGS << 9) | 0x2f
+#define EC_WORD_WITH (EC_GROUP_ENDINGS << 9) | 0x30
+#define EC_WORD_BETTER (EC_GROUP_ENDINGS << 9) | 0x31
+#define EC_WORD_EVER (EC_GROUP_ENDINGS << 9) | 0x32
+#define EC_WORD_SINCE (EC_GROUP_ENDINGS << 9) | 0x33
+#define EC_WORD_OF (EC_GROUP_ENDINGS << 9) | 0x34
+#define EC_WORD_BELONGS_TO (EC_GROUP_ENDINGS << 9) | 0x35
+#define EC_WORD_AT (EC_GROUP_ENDINGS << 9) | 0x36
+#define EC_WORD_IN (EC_GROUP_ENDINGS << 9) | 0x37
+#define EC_WORD_OUT (EC_GROUP_ENDINGS << 9) | 0x38
+#define EC_WORD_TOO (EC_GROUP_ENDINGS << 9) | 0x39
+#define EC_WORD_LIKE (EC_GROUP_ENDINGS << 9) | 0x3a
+#define EC_WORD_DID (EC_GROUP_ENDINGS << 9) | 0x3b
+#define EC_WORD_DIDN_T (EC_GROUP_ENDINGS << 9) | 0x3c
+#define EC_WORD_DOESN_T (EC_GROUP_ENDINGS << 9) | 0x3d
+#define EC_WORD_WITHOUT (EC_GROUP_ENDINGS << 9) | 0x3e
+#define EC_WORD_AFTER (EC_GROUP_ENDINGS << 9) | 0x3f
+#define EC_WORD_BEFORE (EC_GROUP_ENDINGS << 9) | 0x40
+#define EC_WORD_WHILE (EC_GROUP_ENDINGS << 9) | 0x41
+#define EC_WORD_THAN (EC_GROUP_ENDINGS << 9) | 0x42
+#define EC_WORD_ONCE (EC_GROUP_ENDINGS << 9) | 0x43
+#define EC_WORD_ANYWHERE (EC_GROUP_ENDINGS << 9) | 0x44
+
+// FEELINGS
+#define EC_WORD_MEET (EC_GROUP_FEELINGS << 9) | 0x0
+#define EC_WORD_PLAY (EC_GROUP_FEELINGS << 9) | 0x1
+#define EC_WORD_HURRIED (EC_GROUP_FEELINGS << 9) | 0x2
+#define EC_WORD_GOES (EC_GROUP_FEELINGS << 9) | 0x3
+#define EC_WORD_GIDDY (EC_GROUP_FEELINGS << 9) | 0x4
+#define EC_WORD_HAPPY (EC_GROUP_FEELINGS << 9) | 0x5
+#define EC_WORD_HAPPINESS (EC_GROUP_FEELINGS << 9) | 0x6
+#define EC_WORD_EXCITE (EC_GROUP_FEELINGS << 9) | 0x7
+#define EC_WORD_IMPORTANT (EC_GROUP_FEELINGS << 9) | 0x8
+#define EC_WORD_FUNNY (EC_GROUP_FEELINGS << 9) | 0x9
+#define EC_WORD_GOT (EC_GROUP_FEELINGS << 9) | 0xa
+#define EC_WORD_GO_HOME (EC_GROUP_FEELINGS << 9) | 0xb
+#define EC_WORD_DISAPPOINTED (EC_GROUP_FEELINGS << 9) | 0xc
+#define EC_WORD_DISAPPOINTS (EC_GROUP_FEELINGS << 9) | 0xd
+#define EC_WORD_SAD (EC_GROUP_FEELINGS << 9) | 0xe
+#define EC_WORD_TRY (EC_GROUP_FEELINGS << 9) | 0xf
+#define EC_WORD_TRIES (EC_GROUP_FEELINGS << 9) | 0x10
+#define EC_WORD_HEARS (EC_GROUP_FEELINGS << 9) | 0x11
+#define EC_WORD_THINK (EC_GROUP_FEELINGS << 9) | 0x12
+#define EC_WORD_HEAR (EC_GROUP_FEELINGS << 9) | 0x13
+#define EC_WORD_WANTS (EC_GROUP_FEELINGS << 9) | 0x14
+#define EC_WORD_MISHEARD (EC_GROUP_FEELINGS << 9) | 0x15
+#define EC_WORD_DISLIKE (EC_GROUP_FEELINGS << 9) | 0x16
+#define EC_WORD_ANGRY (EC_GROUP_FEELINGS << 9) | 0x17
+#define EC_WORD_ANGER (EC_GROUP_FEELINGS << 9) | 0x18
+#define EC_WORD_SCARY (EC_GROUP_FEELINGS << 9) | 0x19
+#define EC_WORD_LONESOME (EC_GROUP_FEELINGS << 9) | 0x1a
+#define EC_WORD_DISAPPOINT (EC_GROUP_FEELINGS << 9) | 0x1b
+#define EC_WORD_JOY (EC_GROUP_FEELINGS << 9) | 0x1c
+#define EC_WORD_GETS (EC_GROUP_FEELINGS << 9) | 0x1d
+#define EC_WORD_NEVER (EC_GROUP_FEELINGS << 9) | 0x1e
+#define EC_WORD_DARN (EC_GROUP_FEELINGS << 9) | 0x1f
+#define EC_WORD_DOWNCAST (EC_GROUP_FEELINGS << 9) | 0x20
+#define EC_WORD_INCREDIBLE (EC_GROUP_FEELINGS << 9) | 0x21
+#define EC_WORD_LIKES (EC_GROUP_FEELINGS << 9) | 0x22
+#define EC_WORD_DISLIKES (EC_GROUP_FEELINGS << 9) | 0x23
+#define EC_WORD_BORING (EC_GROUP_FEELINGS << 9) | 0x24
+#define EC_WORD_CARE (EC_GROUP_FEELINGS << 9) | 0x25
+#define EC_WORD_CARES (EC_GROUP_FEELINGS << 9) | 0x26
+#define EC_WORD_ALL_RIGHT (EC_GROUP_FEELINGS << 9) | 0x27
+#define EC_WORD_ADORE (EC_GROUP_FEELINGS << 9) | 0x28
+#define EC_WORD_DISASTER (EC_GROUP_FEELINGS << 9) | 0x29
+#define EC_WORD_ENJOY (EC_GROUP_FEELINGS << 9) | 0x2a
+#define EC_WORD_ENJOYS (EC_GROUP_FEELINGS << 9) | 0x2b
+#define EC_WORD_EAT (EC_GROUP_FEELINGS << 9) | 0x2c
+#define EC_WORD_LACKING (EC_GROUP_FEELINGS << 9) | 0x2d
+#define EC_WORD_BAD (EC_GROUP_FEELINGS << 9) | 0x2e
+#define EC_WORD_HARD (EC_GROUP_FEELINGS << 9) | 0x2f
+#define EC_WORD_TERRIBLE (EC_GROUP_FEELINGS << 9) | 0x30
+#define EC_WORD_SHOULD (EC_GROUP_FEELINGS << 9) | 0x31
+#define EC_WORD_NICE (EC_GROUP_FEELINGS << 9) | 0x32
+#define EC_WORD_DRINK (EC_GROUP_FEELINGS << 9) | 0x33
+#define EC_WORD_SURPRISE (EC_GROUP_FEELINGS << 9) | 0x34
+#define EC_WORD_FEAR (EC_GROUP_FEELINGS << 9) | 0x35
+#define EC_WORD_WANT (EC_GROUP_FEELINGS << 9) | 0x36
+#define EC_WORD_WAIT (EC_GROUP_FEELINGS << 9) | 0x37
+#define EC_WORD_SATISFIED (EC_GROUP_FEELINGS << 9) | 0x38
+#define EC_WORD_SEE (EC_GROUP_FEELINGS << 9) | 0x39
+#define EC_WORD_RARE (EC_GROUP_FEELINGS << 9) | 0x3a
+#define EC_WORD_NEGATIVE (EC_GROUP_FEELINGS << 9) | 0x3b
+#define EC_WORD_DONE (EC_GROUP_FEELINGS << 9) | 0x3c
+#define EC_WORD_DANGER (EC_GROUP_FEELINGS << 9) | 0x3d
+#define EC_WORD_DEFEATED (EC_GROUP_FEELINGS << 9) | 0x3e
+#define EC_WORD_BEAT (EC_GROUP_FEELINGS << 9) | 0x3f
+#define EC_WORD_GREAT (EC_GROUP_FEELINGS << 9) | 0x40
+#define EC_WORD_ROMANTIC (EC_GROUP_FEELINGS << 9) | 0x41
+#define EC_WORD_QUESTION (EC_GROUP_FEELINGS << 9) | 0x42
+#define EC_WORD_UNDERSTAND (EC_GROUP_FEELINGS << 9) | 0x43
+#define EC_WORD_UNDERSTANDS (EC_GROUP_FEELINGS << 9) | 0x44
+
+// CONDITIONS
+#define EC_WORD_HOT (EC_GROUP_CONDITIONS << 9) | 0x0
+#define EC_WORD_EXISTS (EC_GROUP_CONDITIONS << 9) | 0x1
+#define EC_WORD_EXCESS (EC_GROUP_CONDITIONS << 9) | 0x2
+#define EC_WORD_APPROVED (EC_GROUP_CONDITIONS << 9) | 0x3
+#define EC_WORD_HAS (EC_GROUP_CONDITIONS << 9) | 0x4
+#define EC_WORD_GOOD (EC_GROUP_CONDITIONS << 9) | 0x5
+#define EC_WORD_LESS (EC_GROUP_CONDITIONS << 9) | 0x6
+#define EC_WORD_MOMENTUM (EC_GROUP_CONDITIONS << 9) | 0x7
+#define EC_WORD_GOING (EC_GROUP_CONDITIONS << 9) | 0x8
+#define EC_WORD_WEIRD (EC_GROUP_CONDITIONS << 9) | 0x9
+#define EC_WORD_BUSY (EC_GROUP_CONDITIONS << 9) | 0xa
+#define EC_WORD_TOGETHER (EC_GROUP_CONDITIONS << 9) | 0xb
+#define EC_WORD_FULL (EC_GROUP_CONDITIONS << 9) | 0xc
+#define EC_WORD_ABSENT (EC_GROUP_CONDITIONS << 9) | 0xd
+#define EC_WORD_BEING (EC_GROUP_CONDITIONS << 9) | 0xe
+#define EC_WORD_NEED (EC_GROUP_CONDITIONS << 9) | 0xf
+#define EC_WORD_TASTY (EC_GROUP_CONDITIONS << 9) | 0x10
+#define EC_WORD_SKILLED (EC_GROUP_CONDITIONS << 9) | 0x11
+#define EC_WORD_NOISY (EC_GROUP_CONDITIONS << 9) | 0x12
+#define EC_WORD_BIG (EC_GROUP_CONDITIONS << 9) | 0x13
+#define EC_WORD_LATE (EC_GROUP_CONDITIONS << 9) | 0x14
+#define EC_WORD_CLOSE (EC_GROUP_CONDITIONS << 9) | 0x15
+#define EC_WORD_DOCILE (EC_GROUP_CONDITIONS << 9) | 0x16
+#define EC_WORD_AMUSING (EC_GROUP_CONDITIONS << 9) | 0x17
+#define EC_WORD_ENTERTAINING (EC_GROUP_CONDITIONS << 9) | 0x18
+#define EC_WORD_PERFECTION (EC_GROUP_CONDITIONS << 9) | 0x19
+#define EC_WORD_PRETTY (EC_GROUP_CONDITIONS << 9) | 0x1a
+#define EC_WORD_HEALTHY (EC_GROUP_CONDITIONS << 9) | 0x1b
+#define EC_WORD_EXCELLENT (EC_GROUP_CONDITIONS << 9) | 0x1c
+#define EC_WORD_UPSIDE_DOWN (EC_GROUP_CONDITIONS << 9) | 0x1d
+#define EC_WORD_COLD (EC_GROUP_CONDITIONS << 9) | 0x1e
+#define EC_WORD_REFRESHING (EC_GROUP_CONDITIONS << 9) | 0x1f
+#define EC_WORD_UNAVOIDABLE (EC_GROUP_CONDITIONS << 9) | 0x20
+#define EC_WORD_MUCH (EC_GROUP_CONDITIONS << 9) | 0x21
+#define EC_WORD_OVERWHELMING (EC_GROUP_CONDITIONS << 9) | 0x22
+#define EC_WORD_FABULOUS (EC_GROUP_CONDITIONS << 9) | 0x23
+#define EC_WORD_ELSE (EC_GROUP_CONDITIONS << 9) | 0x24
+#define EC_WORD_EXPENSIVE (EC_GROUP_CONDITIONS << 9) | 0x25
+#define EC_WORD_CORRECT (EC_GROUP_CONDITIONS << 9) | 0x26
+#define EC_WORD_IMPOSSIBLE (EC_GROUP_CONDITIONS << 9) | 0x27
+#define EC_WORD_SMALL (EC_GROUP_CONDITIONS << 9) | 0x28
+#define EC_WORD_DIFFERENT (EC_GROUP_CONDITIONS << 9) | 0x29
+#define EC_WORD_TIRED (EC_GROUP_CONDITIONS << 9) | 0x2a
+#define EC_WORD_SKILL (EC_GROUP_CONDITIONS << 9) | 0x2b
+#define EC_WORD_TOP (EC_GROUP_CONDITIONS << 9) | 0x2c
+#define EC_WORD_NON_STOP (EC_GROUP_CONDITIONS << 9) | 0x2d
+#define EC_WORD_PREPOSTEROUS (EC_GROUP_CONDITIONS << 9) | 0x2e
+#define EC_WORD_NONE (EC_GROUP_CONDITIONS << 9) | 0x2f
+#define EC_WORD_NOTHING (EC_GROUP_CONDITIONS << 9) | 0x30
+#define EC_WORD_NATURAL (EC_GROUP_CONDITIONS << 9) | 0x31
+#define EC_WORD_BECOMES (EC_GROUP_CONDITIONS << 9) | 0x32
+#define EC_WORD_LUKEWARM (EC_GROUP_CONDITIONS << 9) | 0x33
+#define EC_WORD_FAST (EC_GROUP_CONDITIONS << 9) | 0x34
+#define EC_WORD_LOW (EC_GROUP_CONDITIONS << 9) | 0x35
+#define EC_WORD_AWFUL (EC_GROUP_CONDITIONS << 9) | 0x36
+#define EC_WORD_ALONE (EC_GROUP_CONDITIONS << 9) | 0x37
+#define EC_WORD_BORED (EC_GROUP_CONDITIONS << 9) | 0x38
+#define EC_WORD_SECRET (EC_GROUP_CONDITIONS << 9) | 0x39
+#define EC_WORD_MYSTERY (EC_GROUP_CONDITIONS << 9) | 0x3a
+#define EC_WORD_LACKS (EC_GROUP_CONDITIONS << 9) | 0x3b
+#define EC_WORD_BEST (EC_GROUP_CONDITIONS << 9) | 0x3c
+#define EC_WORD_LOUSY (EC_GROUP_CONDITIONS << 9) | 0x3d
+#define EC_WORD_MISTAKE (EC_GROUP_CONDITIONS << 9) | 0x3e
+#define EC_WORD_KIND (EC_GROUP_CONDITIONS << 9) | 0x3f
+#define EC_WORD_WELL (EC_GROUP_CONDITIONS << 9) | 0x40
+#define EC_WORD_WEAKENED (EC_GROUP_CONDITIONS << 9) | 0x41
+#define EC_WORD_SIMPLE (EC_GROUP_CONDITIONS << 9) | 0x42
+#define EC_WORD_SEEMS (EC_GROUP_CONDITIONS << 9) | 0x43
+#define EC_WORD_BADLY (EC_GROUP_CONDITIONS << 9) | 0x44
+
+// ACTIONS
+#define EC_WORD_MEETS (EC_GROUP_ACTIONS << 9) | 0x0
+#define EC_WORD_CONCEDE (EC_GROUP_ACTIONS << 9) | 0x1
+#define EC_WORD_GIVE (EC_GROUP_ACTIONS << 9) | 0x2
+#define EC_WORD_GIVES (EC_GROUP_ACTIONS << 9) | 0x3
+#define EC_WORD_PLAYED (EC_GROUP_ACTIONS << 9) | 0x4
+#define EC_WORD_PLAYS (EC_GROUP_ACTIONS << 9) | 0x5
+#define EC_WORD_COLLECT (EC_GROUP_ACTIONS << 9) | 0x6
+#define EC_WORD_WALKING (EC_GROUP_ACTIONS << 9) | 0x7
+#define EC_WORD_WALKS (EC_GROUP_ACTIONS << 9) | 0x8
+#define EC_WORD_SAYS (EC_GROUP_ACTIONS << 9) | 0x9
+#define EC_WORD_WENT (EC_GROUP_ACTIONS << 9) | 0xa
+#define EC_WORD_SAID (EC_GROUP_ACTIONS << 9) | 0xb
+#define EC_WORD_WAKE_UP (EC_GROUP_ACTIONS << 9) | 0xc
+#define EC_WORD_WAKES_UP (EC_GROUP_ACTIONS << 9) | 0xd
+#define EC_WORD_ANGERS (EC_GROUP_ACTIONS << 9) | 0xe
+#define EC_WORD_TEACH (EC_GROUP_ACTIONS << 9) | 0xf
+#define EC_WORD_TEACHES (EC_GROUP_ACTIONS << 9) | 0x10
+#define EC_WORD_PLEASE (EC_GROUP_ACTIONS << 9) | 0x11
+#define EC_WORD_LEARN (EC_GROUP_ACTIONS << 9) | 0x12
+#define EC_WORD_CHANGE (EC_GROUP_ACTIONS << 9) | 0x13
+#define EC_WORD_STORY (EC_GROUP_ACTIONS << 9) | 0x14
+#define EC_WORD_TRUST (EC_GROUP_ACTIONS << 9) | 0x15
+#define EC_WORD_LAVISH (EC_GROUP_ACTIONS << 9) | 0x16
+#define EC_WORD_LISTENS (EC_GROUP_ACTIONS << 9) | 0x17
+#define EC_WORD_HEARING (EC_GROUP_ACTIONS << 9) | 0x18
+#define EC_WORD_TRAINS (EC_GROUP_ACTIONS << 9) | 0x19
+#define EC_WORD_CHOOSE (EC_GROUP_ACTIONS << 9) | 0x1a
+#define EC_WORD_COME (EC_GROUP_ACTIONS << 9) | 0x1b
+#define EC_WORD_CAME (EC_GROUP_ACTIONS << 9) | 0x1c
+#define EC_WORD_SEARCH (EC_GROUP_ACTIONS << 9) | 0x1d
+#define EC_WORD_MAKE (EC_GROUP_ACTIONS << 9) | 0x1e
+#define EC_WORD_CAUSE (EC_GROUP_ACTIONS << 9) | 0x1f
+#define EC_WORD_KNOW (EC_GROUP_ACTIONS << 9) | 0x20
+#define EC_WORD_KNOWS (EC_GROUP_ACTIONS << 9) | 0x21
+#define EC_WORD_REFUSE (EC_GROUP_ACTIONS << 9) | 0x22
+#define EC_WORD_STORES (EC_GROUP_ACTIONS << 9) | 0x23
+#define EC_WORD_BRAG (EC_GROUP_ACTIONS << 9) | 0x24
+#define EC_WORD_IGNORANT (EC_GROUP_ACTIONS << 9) | 0x25
+#define EC_WORD_THINKS (EC_GROUP_ACTIONS << 9) | 0x26
+#define EC_WORD_BELIEVE (EC_GROUP_ACTIONS << 9) | 0x27
+#define EC_WORD_SLIDE (EC_GROUP_ACTIONS << 9) | 0x28
+#define EC_WORD_EATS (EC_GROUP_ACTIONS << 9) | 0x29
+#define EC_WORD_USE (EC_GROUP_ACTIONS << 9) | 0x2a
+#define EC_WORD_USES (EC_GROUP_ACTIONS << 9) | 0x2b
+#define EC_WORD_USING (EC_GROUP_ACTIONS << 9) | 0x2c
+#define EC_WORD_COULDN_T (EC_GROUP_ACTIONS << 9) | 0x2d
+#define EC_WORD_CAPABLE (EC_GROUP_ACTIONS << 9) | 0x2e
+#define EC_WORD_DISAPPEAR (EC_GROUP_ACTIONS << 9) | 0x2f
+#define EC_WORD_APPEAR (EC_GROUP_ACTIONS << 9) | 0x30
+#define EC_WORD_THROW (EC_GROUP_ACTIONS << 9) | 0x31
+#define EC_WORD_WORRY (EC_GROUP_ACTIONS << 9) | 0x32
+#define EC_WORD_SLEPT (EC_GROUP_ACTIONS << 9) | 0x33
+#define EC_WORD_SLEEP (EC_GROUP_ACTIONS << 9) | 0x34
+#define EC_WORD_RELEASE (EC_GROUP_ACTIONS << 9) | 0x35
+#define EC_WORD_DRINKS (EC_GROUP_ACTIONS << 9) | 0x36
+#define EC_WORD_RUNS (EC_GROUP_ACTIONS << 9) | 0x37
+#define EC_WORD_RUN (EC_GROUP_ACTIONS << 9) | 0x38
+#define EC_WORD_WORKS (EC_GROUP_ACTIONS << 9) | 0x39
+#define EC_WORD_WORKING (EC_GROUP_ACTIONS << 9) | 0x3a
+#define EC_WORD_TALKING (EC_GROUP_ACTIONS << 9) | 0x3b
+#define EC_WORD_TALK (EC_GROUP_ACTIONS << 9) | 0x3c
+#define EC_WORD_SINK (EC_GROUP_ACTIONS << 9) | 0x3d
+#define EC_WORD_SMACK (EC_GROUP_ACTIONS << 9) | 0x3e
+#define EC_WORD_PRETEND (EC_GROUP_ACTIONS << 9) | 0x3f
+#define EC_WORD_PRAISE (EC_GROUP_ACTIONS << 9) | 0x40
+#define EC_WORD_OVERDO (EC_GROUP_ACTIONS << 9) | 0x41
+#define EC_WORD_SHOW (EC_GROUP_ACTIONS << 9) | 0x42
+#define EC_WORD_LOOKS (EC_GROUP_ACTIONS << 9) | 0x43
+#define EC_WORD_SEES (EC_GROUP_ACTIONS << 9) | 0x44
+#define EC_WORD_SEEK (EC_GROUP_ACTIONS << 9) | 0x45
+#define EC_WORD_OWN (EC_GROUP_ACTIONS << 9) | 0x46
+#define EC_WORD_TAKE (EC_GROUP_ACTIONS << 9) | 0x47
+#define EC_WORD_ALLOW (EC_GROUP_ACTIONS << 9) | 0x48
+#define EC_WORD_FORGET (EC_GROUP_ACTIONS << 9) | 0x49
+#define EC_WORD_FORGETS (EC_GROUP_ACTIONS << 9) | 0x4a
+#define EC_WORD_APPEARS (EC_GROUP_ACTIONS << 9) | 0x4b
+#define EC_WORD_FAINT (EC_GROUP_ACTIONS << 9) | 0x4c
+#define EC_WORD_FAINTED (EC_GROUP_ACTIONS << 9) | 0x4d
+
+// LIFESTYLE
+#define EC_WORD_CHORES (EC_GROUP_LIFESTYLE << 9) | 0x0
+#define EC_WORD_HOME (EC_GROUP_LIFESTYLE << 9) | 0x1
+#define EC_WORD_MONEY (EC_GROUP_LIFESTYLE << 9) | 0x2
+#define EC_WORD_ALLOWANCE (EC_GROUP_LIFESTYLE << 9) | 0x3
+#define EC_WORD_BATH (EC_GROUP_LIFESTYLE << 9) | 0x4
+#define EC_WORD_CONVERSATION (EC_GROUP_LIFESTYLE << 9) | 0x5
+#define EC_WORD_SCHOOL (EC_GROUP_LIFESTYLE << 9) | 0x6
+#define EC_WORD_COMMEMORATE (EC_GROUP_LIFESTYLE << 9) | 0x7
+#define EC_WORD_HABIT (EC_GROUP_LIFESTYLE << 9) | 0x8
+#define EC_WORD_GROUP (EC_GROUP_LIFESTYLE << 9) | 0x9
+#define EC_WORD_WORD (EC_GROUP_LIFESTYLE << 9) | 0xa
+#define EC_WORD_STORE (EC_GROUP_LIFESTYLE << 9) | 0xb
+#define EC_WORD_SERVICE (EC_GROUP_LIFESTYLE << 9) | 0xc
+#define EC_WORD_WORK (EC_GROUP_LIFESTYLE << 9) | 0xd
+#define EC_WORD_SYSTEM (EC_GROUP_LIFESTYLE << 9) | 0xe
+#define EC_WORD_TRAIN (EC_GROUP_LIFESTYLE << 9) | 0xf
+#define EC_WORD_CLASS (EC_GROUP_LIFESTYLE << 9) | 0x10
+#define EC_WORD_LESSONS (EC_GROUP_LIFESTYLE << 9) | 0x11
+#define EC_WORD_INFORMATION (EC_GROUP_LIFESTYLE << 9) | 0x12
+#define EC_WORD_LIVING (EC_GROUP_LIFESTYLE << 9) | 0x13
+#define EC_WORD_TEACHER (EC_GROUP_LIFESTYLE << 9) | 0x14
+#define EC_WORD_TOURNAMENT (EC_GROUP_LIFESTYLE << 9) | 0x15
+#define EC_WORD_LETTER (EC_GROUP_LIFESTYLE << 9) | 0x16
+#define EC_WORD_EVENT (EC_GROUP_LIFESTYLE << 9) | 0x17
+#define EC_WORD_DIGITAL (EC_GROUP_LIFESTYLE << 9) | 0x18
+#define EC_WORD_TEST (EC_GROUP_LIFESTYLE << 9) | 0x19
+#define EC_WORD_DEPT_STORE (EC_GROUP_LIFESTYLE << 9) | 0x1a
+#define EC_WORD_TELEVISION (EC_GROUP_LIFESTYLE << 9) | 0x1b
+#define EC_WORD_PHONE (EC_GROUP_LIFESTYLE << 9) | 0x1c
+#define EC_WORD_ITEM (EC_GROUP_LIFESTYLE << 9) | 0x1d
+#define EC_WORD_NAME (EC_GROUP_LIFESTYLE << 9) | 0x1e
+#define EC_WORD_NEWS (EC_GROUP_LIFESTYLE << 9) | 0x1f
+#define EC_WORD_POPULAR (EC_GROUP_LIFESTYLE << 9) | 0x20
+#define EC_WORD_PARTY (EC_GROUP_LIFESTYLE << 9) | 0x21
+#define EC_WORD_STUDY (EC_GROUP_LIFESTYLE << 9) | 0x22
+#define EC_WORD_MACHINE (EC_GROUP_LIFESTYLE << 9) | 0x23
+#define EC_WORD_MAIL (EC_GROUP_LIFESTYLE << 9) | 0x24
+#define EC_WORD_MESSAGE (EC_GROUP_LIFESTYLE << 9) | 0x25
+#define EC_WORD_PROMISE (EC_GROUP_LIFESTYLE << 9) | 0x26
+#define EC_WORD_DREAM (EC_GROUP_LIFESTYLE << 9) | 0x27
+#define EC_WORD_KINDERGARTEN (EC_GROUP_LIFESTYLE << 9) | 0x28
+#define EC_WORD_LIFE (EC_GROUP_LIFESTYLE << 9) | 0x29
+#define EC_WORD_RADIO (EC_GROUP_LIFESTYLE << 9) | 0x2a
+#define EC_WORD_RENTAL (EC_GROUP_LIFESTYLE << 9) | 0x2b
+#define EC_WORD_WORLD (EC_GROUP_LIFESTYLE << 9) | 0x2c
+
+// HOBBIES
+#define EC_WORD_IDOL (EC_GROUP_HOBBIES << 9) | 0x0
+#define EC_WORD_ANIME (EC_GROUP_HOBBIES << 9) | 0x1
+#define EC_WORD_SONG (EC_GROUP_HOBBIES << 9) | 0x2
+#define EC_WORD_MOVIE (EC_GROUP_HOBBIES << 9) | 0x3
+#define EC_WORD_SWEETS (EC_GROUP_HOBBIES << 9) | 0x4
+#define EC_WORD_CHAT (EC_GROUP_HOBBIES << 9) | 0x5
+#define EC_WORD_CHILD_S_PLAY (EC_GROUP_HOBBIES << 9) | 0x6
+#define EC_WORD_TOYS (EC_GROUP_HOBBIES << 9) | 0x7
+#define EC_WORD_MUSIC (EC_GROUP_HOBBIES << 9) | 0x8
+#define EC_WORD_CARDS (EC_GROUP_HOBBIES << 9) | 0x9
+#define EC_WORD_SHOPPING (EC_GROUP_HOBBIES << 9) | 0xa
+#define EC_WORD_CAMERA (EC_GROUP_HOBBIES << 9) | 0xb
+#define EC_WORD_VIEWING (EC_GROUP_HOBBIES << 9) | 0xc
+#define EC_WORD_SPECTATOR (EC_GROUP_HOBBIES << 9) | 0xd
+#define EC_WORD_GOURMET (EC_GROUP_HOBBIES << 9) | 0xe
+#define EC_WORD_GAME (EC_GROUP_HOBBIES << 9) | 0xf
+#define EC_WORD_RPG (EC_GROUP_HOBBIES << 9) | 0x10
+#define EC_WORD_COLLECTION (EC_GROUP_HOBBIES << 9) | 0x11
+#define EC_WORD_COMPLETE (EC_GROUP_HOBBIES << 9) | 0x12
+#define EC_WORD_MAGAZINE (EC_GROUP_HOBBIES << 9) | 0x13
+#define EC_WORD_WALK (EC_GROUP_HOBBIES << 9) | 0x14
+#define EC_WORD_BIKE (EC_GROUP_HOBBIES << 9) | 0x15
+#define EC_WORD_HOBBY (EC_GROUP_HOBBIES << 9) | 0x16
+#define EC_WORD_SPORTS (EC_GROUP_HOBBIES << 9) | 0x17
+#define EC_WORD_SOFTWARE (EC_GROUP_HOBBIES << 9) | 0x18
+#define EC_WORD_SONGS (EC_GROUP_HOBBIES << 9) | 0x19
+#define EC_WORD_DIET (EC_GROUP_HOBBIES << 9) | 0x1a
+#define EC_WORD_TREASURE (EC_GROUP_HOBBIES << 9) | 0x1b
+#define EC_WORD_TRAVEL (EC_GROUP_HOBBIES << 9) | 0x1c
+#define EC_WORD_DANCE (EC_GROUP_HOBBIES << 9) | 0x1d
+#define EC_WORD_CHANNEL (EC_GROUP_HOBBIES << 9) | 0x1e
+#define EC_WORD_MAKING (EC_GROUP_HOBBIES << 9) | 0x1f
+#define EC_WORD_FISHING (EC_GROUP_HOBBIES << 9) | 0x20
+#define EC_WORD_DATE (EC_GROUP_HOBBIES << 9) | 0x21
+#define EC_WORD_DESIGN (EC_GROUP_HOBBIES << 9) | 0x22
+#define EC_WORD_LOCOMOTIVE (EC_GROUP_HOBBIES << 9) | 0x23
+#define EC_WORD_PLUSH_DOLL (EC_GROUP_HOBBIES << 9) | 0x24
+#define EC_WORD_PC (EC_GROUP_HOBBIES << 9) | 0x25
+#define EC_WORD_FLOWERS (EC_GROUP_HOBBIES << 9) | 0x26
+#define EC_WORD_HERO (EC_GROUP_HOBBIES << 9) | 0x27
+#define EC_WORD_NAP (EC_GROUP_HOBBIES << 9) | 0x28
+#define EC_WORD_HEROINE (EC_GROUP_HOBBIES << 9) | 0x29
+#define EC_WORD_FASHION (EC_GROUP_HOBBIES << 9) | 0x2a
+#define EC_WORD_ADVENTURE (EC_GROUP_HOBBIES << 9) | 0x2b
+#define EC_WORD_BOARD (EC_GROUP_HOBBIES << 9) | 0x2c
+#define EC_WORD_BALL (EC_GROUP_HOBBIES << 9) | 0x2d
+#define EC_WORD_BOOK (EC_GROUP_HOBBIES << 9) | 0x2e
+#define EC_WORD_FESTIVAL (EC_GROUP_HOBBIES << 9) | 0x2f
+#define EC_WORD_COMICS (EC_GROUP_HOBBIES << 9) | 0x30
+#define EC_WORD_HOLIDAY (EC_GROUP_HOBBIES << 9) | 0x31
+#define EC_WORD_PLANS (EC_GROUP_HOBBIES << 9) | 0x32
+#define EC_WORD_TRENDY (EC_GROUP_HOBBIES << 9) | 0x33
+#define EC_WORD_VACATION (EC_GROUP_HOBBIES << 9) | 0x34
+#define EC_WORD_LOOK (EC_GROUP_HOBBIES << 9) | 0x35
+
+// TIME
+#define EC_WORD_FALL (EC_GROUP_TIME << 9) | 0x0
+#define EC_WORD_MORNING (EC_GROUP_TIME << 9) | 0x1
+#define EC_WORD_TOMORROW (EC_GROUP_TIME << 9) | 0x2
+#define EC_WORD_LAST (EC_GROUP_TIME << 9) | 0x3
+#define EC_WORD_DAY (EC_GROUP_TIME << 9) | 0x4
+#define EC_WORD_SOMETIME (EC_GROUP_TIME << 9) | 0x5
+#define EC_WORD_ALWAYS (EC_GROUP_TIME << 9) | 0x6
+#define EC_WORD_CURRENT (EC_GROUP_TIME << 9) | 0x7
+#define EC_WORD_FOREVER (EC_GROUP_TIME << 9) | 0x8
+#define EC_WORD_DAYS (EC_GROUP_TIME << 9) | 0x9
+#define EC_WORD_END (EC_GROUP_TIME << 9) | 0xa
+#define EC_WORD_TUESDAY (EC_GROUP_TIME << 9) | 0xb
+#define EC_WORD_YESTERDAY (EC_GROUP_TIME << 9) | 0xc
+#define EC_WORD_TODAY (EC_GROUP_TIME << 9) | 0xd
+#define EC_WORD_FRIDAY (EC_GROUP_TIME << 9) | 0xe
+#define EC_WORD_MONDAY (EC_GROUP_TIME << 9) | 0xf
+#define EC_WORD_LATER (EC_GROUP_TIME << 9) | 0x10
+#define EC_WORD_EARLIER (EC_GROUP_TIME << 9) | 0x11
+#define EC_WORD_ANOTHER (EC_GROUP_TIME << 9) | 0x12
+#define EC_WORD_TIME (EC_GROUP_TIME << 9) | 0x13
+#define EC_WORD_FINISH (EC_GROUP_TIME << 9) | 0x14
+#define EC_WORD_WEDNESDAY (EC_GROUP_TIME << 9) | 0x15
+#define EC_WORD_SOON (EC_GROUP_TIME << 9) | 0x16
+#define EC_WORD_START (EC_GROUP_TIME << 9) | 0x17
+#define EC_WORD_MONTH (EC_GROUP_TIME << 9) | 0x18
+#define EC_WORD_STOP (EC_GROUP_TIME << 9) | 0x19
+#define EC_WORD_NOW (EC_GROUP_TIME << 9) | 0x1a
+#define EC_WORD_FINAL (EC_GROUP_TIME << 9) | 0x1b
+#define EC_WORD_NEXT (EC_GROUP_TIME << 9) | 0x1c
+#define EC_WORD_AGE (EC_GROUP_TIME << 9) | 0x1d
+#define EC_WORD_SATURDAY (EC_GROUP_TIME << 9) | 0x1e
+#define EC_WORD_SUMMER (EC_GROUP_TIME << 9) | 0x1f
+#define EC_WORD_SUNDAY (EC_GROUP_TIME << 9) | 0x20
+#define EC_WORD_BEGINNING (EC_GROUP_TIME << 9) | 0x21
+#define EC_WORD_SPRING (EC_GROUP_TIME << 9) | 0x22
+#define EC_WORD_DAYTIME (EC_GROUP_TIME << 9) | 0x23
+#define EC_WORD_WINTER (EC_GROUP_TIME << 9) | 0x24
+#define EC_WORD_DAILY (EC_GROUP_TIME << 9) | 0x25
+#define EC_WORD_OLDEN (EC_GROUP_TIME << 9) | 0x26
+#define EC_WORD_ALMOST (EC_GROUP_TIME << 9) | 0x27
+#define EC_WORD_NEARLY (EC_GROUP_TIME << 9) | 0x28
+#define EC_WORD_THURSDAY (EC_GROUP_TIME << 9) | 0x29
+#define EC_WORD_NIGHTTIME (EC_GROUP_TIME << 9) | 0x2a
+#define EC_WORD_NIGHT (EC_GROUP_TIME << 9) | 0x2b
+#define EC_WORD_WEEK (EC_GROUP_TIME << 9) | 0x2c
+
+// MISC
+#define EC_WORD_HIGHS (EC_GROUP_MISC << 9) | 0x0
+#define EC_WORD_LOWS (EC_GROUP_MISC << 9) | 0x1
+#define EC_WORD_UM (EC_GROUP_MISC << 9) | 0x2
+#define EC_WORD_REAR (EC_GROUP_MISC << 9) | 0x3
+#define EC_WORD_THINGS (EC_GROUP_MISC << 9) | 0x4
+#define EC_WORD_THING (EC_GROUP_MISC << 9) | 0x5
+#define EC_WORD_BELOW (EC_GROUP_MISC << 9) | 0x6
+#define EC_WORD_ABOVE (EC_GROUP_MISC << 9) | 0x7
+#define EC_WORD_BACK (EC_GROUP_MISC << 9) | 0x8
+#define EC_WORD_HIGH (EC_GROUP_MISC << 9) | 0x9
+#define EC_WORD_HERE (EC_GROUP_MISC << 9) | 0xa
+#define EC_WORD_INSIDE (EC_GROUP_MISC << 9) | 0xb
+#define EC_WORD_OUTSIDE (EC_GROUP_MISC << 9) | 0xc
+#define EC_WORD_BESIDE (EC_GROUP_MISC << 9) | 0xd
+#define EC_WORD_THIS_IS_IT_EXCL (EC_GROUP_MISC << 9) | 0xe
+#define EC_WORD_THIS (EC_GROUP_MISC << 9) | 0xf
+#define EC_WORD_EVERY (EC_GROUP_MISC << 9) | 0x10
+#define EC_WORD_THESE (EC_GROUP_MISC << 9) | 0x11
+#define EC_WORD_THESE_WERE (EC_GROUP_MISC << 9) | 0x12
+#define EC_WORD_DOWN (EC_GROUP_MISC << 9) | 0x13
+#define EC_WORD_THAT (EC_GROUP_MISC << 9) | 0x14
+#define EC_WORD_THOSE_ARE (EC_GROUP_MISC << 9) | 0x15
+#define EC_WORD_THOSE_WERE (EC_GROUP_MISC << 9) | 0x16
+#define EC_WORD_THAT_S_IT_EXCL (EC_GROUP_MISC << 9) | 0x17
+#define EC_WORD_AM (EC_GROUP_MISC << 9) | 0x18
+#define EC_WORD_THAT_WAS (EC_GROUP_MISC << 9) | 0x19
+#define EC_WORD_FRONT (EC_GROUP_MISC << 9) | 0x1a
+#define EC_WORD_UP (EC_GROUP_MISC << 9) | 0x1b
+#define EC_WORD_CHOICE (EC_GROUP_MISC << 9) | 0x1c
+#define EC_WORD_FAR (EC_GROUP_MISC << 9) | 0x1d
+#define EC_WORD_AWAY (EC_GROUP_MISC << 9) | 0x1e
+#define EC_WORD_NEAR (EC_GROUP_MISC << 9) | 0x1f
+#define EC_WORD_WHERE (EC_GROUP_MISC << 9) | 0x20
+#define EC_WORD_WHEN (EC_GROUP_MISC << 9) | 0x21
+#define EC_WORD_WHAT (EC_GROUP_MISC << 9) | 0x22
+#define EC_WORD_DEEP (EC_GROUP_MISC << 9) | 0x23
+#define EC_WORD_SHALLOW (EC_GROUP_MISC << 9) | 0x24
+#define EC_WORD_WHY (EC_GROUP_MISC << 9) | 0x25
+#define EC_WORD_CONFUSED (EC_GROUP_MISC << 9) | 0x26
+#define EC_WORD_OPPOSITE (EC_GROUP_MISC << 9) | 0x27
+#define EC_WORD_LEFT (EC_GROUP_MISC << 9) | 0x28
+#define EC_WORD_RIGHT (EC_GROUP_MISC << 9) | 0x29
+
+// ADJECTIVES
+#define EC_WORD_WANDERING (EC_GROUP_ADJECTIVES << 9) | 0x0
+#define EC_WORD_RICKETY (EC_GROUP_ADJECTIVES << 9) | 0x1
+#define EC_WORD_ROCK_SOLID (EC_GROUP_ADJECTIVES << 9) | 0x2
+#define EC_WORD_HUNGRY (EC_GROUP_ADJECTIVES << 9) | 0x3
+#define EC_WORD_TIGHT (EC_GROUP_ADJECTIVES << 9) | 0x4
+#define EC_WORD_TICKLISH (EC_GROUP_ADJECTIVES << 9) | 0x5
+#define EC_WORD_TWIRLING (EC_GROUP_ADJECTIVES << 9) | 0x6
+#define EC_WORD_SPIRALING (EC_GROUP_ADJECTIVES << 9) | 0x7
+#define EC_WORD_THIRSTY (EC_GROUP_ADJECTIVES << 9) | 0x8
+#define EC_WORD_LOLLING (EC_GROUP_ADJECTIVES << 9) | 0x9
+#define EC_WORD_SILKY (EC_GROUP_ADJECTIVES << 9) | 0xa
+#define EC_WORD_SADLY (EC_GROUP_ADJECTIVES << 9) | 0xb
+#define EC_WORD_HOPELESS (EC_GROUP_ADJECTIVES << 9) | 0xc
+#define EC_WORD_USELESS (EC_GROUP_ADJECTIVES << 9) | 0xd
+#define EC_WORD_DROOLING (EC_GROUP_ADJECTIVES << 9) | 0xe
+#define EC_WORD_EXCITING (EC_GROUP_ADJECTIVES << 9) | 0xf
+#define EC_WORD_THICK (EC_GROUP_ADJECTIVES << 9) | 0x10
+#define EC_WORD_SMOOTH (EC_GROUP_ADJECTIVES << 9) | 0x11
+#define EC_WORD_SLIMY (EC_GROUP_ADJECTIVES << 9) | 0x12
+#define EC_WORD_THIN (EC_GROUP_ADJECTIVES << 9) | 0x13
+#define EC_WORD_BREAK (EC_GROUP_ADJECTIVES << 9) | 0x14
+#define EC_WORD_VORACIOUS (EC_GROUP_ADJECTIVES << 9) | 0x15
+#define EC_WORD_SCATTER (EC_GROUP_ADJECTIVES << 9) | 0x16
+#define EC_WORD_AWESOME (EC_GROUP_ADJECTIVES << 9) | 0x17
+#define EC_WORD_WIMPY (EC_GROUP_ADJECTIVES << 9) | 0x18
+#define EC_WORD_WOBBLY (EC_GROUP_ADJECTIVES << 9) | 0x19
+#define EC_WORD_SHAKY (EC_GROUP_ADJECTIVES << 9) | 0x1a
+#define EC_WORD_RIPPED (EC_GROUP_ADJECTIVES << 9) | 0x1b
+#define EC_WORD_SHREDDED (EC_GROUP_ADJECTIVES << 9) | 0x1c
+#define EC_WORD_INCREASING (EC_GROUP_ADJECTIVES << 9) | 0x1d
+#define EC_WORD_YET (EC_GROUP_ADJECTIVES << 9) | 0x1e
+#define EC_WORD_DESTROYED (EC_GROUP_ADJECTIVES << 9) | 0x1f
+#define EC_WORD_FIERY (EC_GROUP_ADJECTIVES << 9) | 0x20
+#define EC_WORD_LOVEY_DOVEY (EC_GROUP_ADJECTIVES << 9) | 0x21
+#define EC_WORD_HAPPILY (EC_GROUP_ADJECTIVES << 9) | 0x22
+#define EC_WORD_ANTICIPATION (EC_GROUP_ADJECTIVES << 9) | 0x23
+
+// EVENTS
+#define EC_WORD_APPEAL (EC_GROUP_EVENTS << 9) | 0x0
+#define EC_WORD_EVENTS (EC_GROUP_EVENTS << 9) | 0x1
+#define EC_WORD_STAY_AT_HOME (EC_GROUP_EVENTS << 9) | 0x2
+#define EC_WORD_BERRY (EC_GROUP_EVENTS << 9) | 0x3
+#define EC_WORD_CONTEST (EC_GROUP_EVENTS << 9) | 0x4
+#define EC_WORD_MC (EC_GROUP_EVENTS << 9) | 0x5
+#define EC_WORD_JUDGE (EC_GROUP_EVENTS << 9) | 0x6
+#define EC_WORD_SUPER (EC_GROUP_EVENTS << 9) | 0x7
+#define EC_WORD_STAGE (EC_GROUP_EVENTS << 9) | 0x8
+#define EC_WORD_HALL_OF_FAME (EC_GROUP_EVENTS << 9) | 0x9
+#define EC_WORD_EVOLUTION (EC_GROUP_EVENTS << 9) | 0xa
+#define EC_WORD_HYPER (EC_GROUP_EVENTS << 9) | 0xb
+#define EC_WORD_BATTLE_TOWER (EC_GROUP_EVENTS << 9) | 0xc
+#define EC_WORD_LEADERS (EC_GROUP_EVENTS << 9) | 0xd
+#define EC_WORD_BATTLE_ROOM (EC_GROUP_EVENTS << 9) | 0xe
+#define EC_WORD_HIDDEN (EC_GROUP_EVENTS << 9) | 0xf
+#define EC_WORD_SECRET_BASE (EC_GROUP_EVENTS << 9) | 0x10
+#define EC_WORD_BLEND (EC_GROUP_EVENTS << 9) | 0x11
+#define EC_WORD_POKEBLOCK (EC_GROUP_EVENTS << 9) | 0x12
+#define EC_WORD_MASTER (EC_GROUP_EVENTS << 9) | 0x13
+#define EC_WORD_RANK (EC_GROUP_EVENTS << 9) | 0x14
+#define EC_WORD_RIBBON (EC_GROUP_EVENTS << 9) | 0x15
+
+// TRENDY_SAYING
+#define EC_WORD_KTHX_BYE (EC_GROUP_TRENDY_SAYING << 9) | 0x0
+#define EC_WORD_YES_SIR_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x1
+#define EC_WORD_AVANT_GARDE (EC_GROUP_TRENDY_SAYING << 9) | 0x2
+#define EC_WORD_COUPLE (EC_GROUP_TRENDY_SAYING << 9) | 0x3
+#define EC_WORD_MUCH_OBLIGED (EC_GROUP_TRENDY_SAYING << 9) | 0x4
+#define EC_WORD_YEEHAW_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x5
+#define EC_WORD_MEGA (EC_GROUP_TRENDY_SAYING << 9) | 0x6
+#define EC_WORD_1_HIT_KO_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x7
+#define EC_WORD_DESTINY (EC_GROUP_TRENDY_SAYING << 9) | 0x8
+#define EC_WORD_CANCEL (EC_GROUP_TRENDY_SAYING << 9) | 0x9
+#define EC_WORD_NEW (EC_GROUP_TRENDY_SAYING << 9) | 0xa
+#define EC_WORD_FLATTEN (EC_GROUP_TRENDY_SAYING << 9) | 0xb
+#define EC_WORD_KIDDING (EC_GROUP_TRENDY_SAYING << 9) | 0xc
+#define EC_WORD_LOSER (EC_GROUP_TRENDY_SAYING << 9) | 0xd
+#define EC_WORD_LOSING (EC_GROUP_TRENDY_SAYING << 9) | 0xe
+#define EC_WORD_HAPPENING (EC_GROUP_TRENDY_SAYING << 9) | 0xf
+#define EC_WORD_HIP_AND (EC_GROUP_TRENDY_SAYING << 9) | 0x10
+#define EC_WORD_SHAKE (EC_GROUP_TRENDY_SAYING << 9) | 0x11
+#define EC_WORD_SHADY (EC_GROUP_TRENDY_SAYING << 9) | 0x12
+#define EC_WORD_UPBEAT (EC_GROUP_TRENDY_SAYING << 9) | 0x13
+#define EC_WORD_MODERN (EC_GROUP_TRENDY_SAYING << 9) | 0x14
+#define EC_WORD_SMELL_YA (EC_GROUP_TRENDY_SAYING << 9) | 0x15
+#define EC_WORD_BANG (EC_GROUP_TRENDY_SAYING << 9) | 0x16
+#define EC_WORD_KNOCKOUT (EC_GROUP_TRENDY_SAYING << 9) | 0x17
+#define EC_WORD_HASSLE (EC_GROUP_TRENDY_SAYING << 9) | 0x18
+#define EC_WORD_WINNER (EC_GROUP_TRENDY_SAYING << 9) | 0x19
+#define EC_WORD_FEVER (EC_GROUP_TRENDY_SAYING << 9) | 0x1a
+#define EC_WORD_WANNABE (EC_GROUP_TRENDY_SAYING << 9) | 0x1b
+#define EC_WORD_BABY (EC_GROUP_TRENDY_SAYING << 9) | 0x1c
+#define EC_WORD_HEART (EC_GROUP_TRENDY_SAYING << 9) | 0x1d
+#define EC_WORD_OLD (EC_GROUP_TRENDY_SAYING << 9) | 0x1e
+#define EC_WORD_YOUNG (EC_GROUP_TRENDY_SAYING << 9) | 0x1f
+#define EC_WORD_UGLY (EC_GROUP_TRENDY_SAYING << 9) | 0x20
+
+#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 9) | SPECIES_##mon)
+#define EC_POKEMON2(mon) ((EC_GROUP_POKEMON_2 << 9) | SPECIES_##mon)
+#define EC_MOVE(move) ((EC_GROUP_MOVE_1 << 9) | MOVE_##move)
+#define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << 9) | MOVE_##move)
+
+#define EC_GROUP(word) ((word) >> 9)
+#define EC_INDEX(word) ((word) & 0x1FF)
+
+#endif // GUARD_CONSTANTS_EASY_CHAT_H
diff --git a/include/flags.h b/include/constants/flags.h
index 31d634c59..fc0bbb2ea 100644
--- a/include/flags.h
+++ b/include/constants/flags.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_FLAGS_H
-#define GUARD_FLAGS_H
+#ifndef GUARD_CONSTANTS_FLAGS_H
+#define GUARD_CONSTANTS_FLAGS_H
#define FLAG_340 0x340
#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
@@ -116,4 +116,4 @@
#define SPECIAL_FLAG_1 0x4001
-#endif // GUARD_FLAGS_H
+#endif // GUARD_CONSTANTS_FLAGS_H
diff --git a/include/game_stat.h b/include/constants/game_stat.h
index 5979c531c..b1f3d4197 100644
--- a/include/game_stat.h
+++ b/include/constants/game_stat.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_GAME_STAT_H
-#define GUARD_GAME_STAT_H
+#ifndef GUARD_CONSTANTS_GAME_STAT_H
+#define GUARD_CONSTANTS_GAME_STAT_H
#define GAME_STAT_SAVED_GAME 0
#define GAME_STAT_FIRST_HOF_PLAY_TIME 1
@@ -56,7 +56,4 @@
#define NUM_GAME_STATS 64
-void IncrementGameStat(u8);
-u32 GetGameStat(u8);
-
-#endif // GUARD_GAME_STAT_H
+#endif // GUARD_CONSTANTS_GAME_STAT_H
diff --git a/include/hold_effects.h b/include/constants/hold_effects.h
index b653f5a92..b653f5a92 100644
--- a/include/hold_effects.h
+++ b/include/constants/hold_effects.h
diff --git a/include/constants/items.h b/include/constants/items.h
new file mode 100644
index 000000000..6135b8d6f
--- /dev/null
+++ b/include/constants/items.h
@@ -0,0 +1,393 @@
+#ifndef GUARD_CONSTANTS_ITEMS_H
+#define GUARD_CONSTANTS_ITEMS_H
+
+#define ITEM_NONE 0
+#define ITEM_MASTER_BALL 1
+#define ITEM_ULTRA_BALL 2
+#define ITEM_GREAT_BALL 3
+#define ITEM_POKE_BALL 4
+#define ITEM_SAFARI_BALL 5
+#define ITEM_NET_BALL 6
+#define ITEM_DIVE_BALL 7
+#define ITEM_NEST_BALL 8
+#define ITEM_REPEAT_BALL 9
+#define ITEM_TIMER_BALL 10
+#define ITEM_LUXURY_BALL 11
+#define ITEM_PREMIER_BALL 12
+#define ITEM_POTION 13
+#define ITEM_ANTIDOTE 14
+#define ITEM_BURN_HEAL 15
+#define ITEM_ICE_HEAL 16
+#define ITEM_AWAKENING 17
+#define ITEM_PARALYZE_HEAL 18
+#define ITEM_FULL_RESTORE 19
+#define ITEM_MAX_POTION 20
+#define ITEM_HYPER_POTION 21
+#define ITEM_SUPER_POTION 22
+#define ITEM_FULL_HEAL 23
+#define ITEM_REVIVE 24
+#define ITEM_MAX_REVIVE 25
+#define ITEM_FRESH_WATER 26
+#define ITEM_SODA_POP 27
+#define ITEM_LEMONADE 28
+#define ITEM_MOOMOO_MILK 29
+#define ITEM_ENERGY_POWDER 30
+#define ITEM_ENERGY_ROOT 31
+#define ITEM_HEAL_POWDER 32
+#define ITEM_REVIVAL_HERB 33
+#define ITEM_ETHER 34
+#define ITEM_MAX_ETHER 35
+#define ITEM_ELIXIR 36
+#define ITEM_MAX_ELIXIR 37
+#define ITEM_LAVA_COOKIE 38
+#define ITEM_BLUE_FLUTE 39
+#define ITEM_YELLOW_FLUTE 40
+#define ITEM_RED_FLUTE 41
+#define ITEM_BLACK_FLUTE 42
+#define ITEM_WHITE_FLUTE 43
+#define ITEM_BERRY_JUICE 44
+#define ITEM_SACRED_ASH 45
+#define ITEM_SHOAL_SALT 46
+#define ITEM_SHOAL_SHELL 47
+#define ITEM_RED_SHARD 48
+#define ITEM_BLUE_SHARD 49
+#define ITEM_YELLOW_SHARD 50
+#define ITEM_GREEN_SHARD 51
+#define ITEM_034 52
+#define ITEM_035 53
+#define ITEM_036 54
+#define ITEM_037 55
+#define ITEM_038 56
+#define ITEM_039 57
+#define ITEM_03A 58
+#define ITEM_03B 59
+#define ITEM_03C 60
+#define ITEM_03D 61
+#define ITEM_03E 62
+#define ITEM_HP_UP 63
+#define ITEM_PROTEIN 64
+#define ITEM_IRON 65
+#define ITEM_CARBOS 66
+#define ITEM_CALCIUM 67
+#define ITEM_RARE_CANDY 68
+#define ITEM_PP_UP 69
+#define ITEM_ZINC 70
+#define ITEM_PP_MAX 71
+#define ITEM_048 72
+#define ITEM_GUARD_SPEC 73
+#define ITEM_DIRE_HIT 74
+#define ITEM_X_ATTACK 75
+#define ITEM_X_DEFEND 76
+#define ITEM_X_SPEED 77
+#define ITEM_X_ACCURACY 78
+#define ITEM_X_SPECIAL 79
+#define ITEM_POKE_DOLL 80
+#define ITEM_FLUFFY_TAIL 81
+#define ITEM_052 82
+#define ITEM_SUPER_REPEL 83
+#define ITEM_MAX_REPEL 84
+#define ITEM_ESCAPE_ROPE 85
+#define ITEM_REPEL 86
+#define ITEM_057 87
+#define ITEM_058 88
+#define ITEM_059 89
+#define ITEM_05A 90
+#define ITEM_05B 91
+#define ITEM_05C 92
+#define ITEM_SUN_STONE 93
+#define ITEM_MOON_STONE 94
+#define ITEM_FIRE_STONE 95
+#define ITEM_THUNDER_STONE 96
+#define ITEM_WATER_STONE 97
+#define ITEM_LEAF_STONE 98
+#define ITEM_063 99
+#define ITEM_064 100
+#define ITEM_065 101
+#define ITEM_066 102
+#define ITEM_TINY_MUSHROOM 103
+#define ITEM_BIG_MUSHROOM 104
+#define ITEM_069 105
+#define ITEM_PEARL 106
+#define ITEM_BIG_PEARL 107
+#define ITEM_STARDUST 108
+#define ITEM_STAR_PIECE 109
+#define ITEM_NUGGET 110
+#define ITEM_HEART_SCALE 111
+#define ITEM_070 112
+#define ITEM_071 113
+#define ITEM_072 114
+#define ITEM_073 115
+#define ITEM_074 116
+#define ITEM_075 117
+#define ITEM_076 118
+#define ITEM_077 119
+#define ITEM_078 120
+#define ITEM_ORANGE_MAIL 121
+#define ITEM_HARBOR_MAIL 122
+#define ITEM_GLITTER_MAIL 123
+#define ITEM_MECH_MAIL 124
+#define ITEM_WOOD_MAIL 125
+#define ITEM_WAVE_MAIL 126
+#define ITEM_BEAD_MAIL 127
+#define ITEM_SHADOW_MAIL 128
+#define ITEM_TROPIC_MAIL 129
+#define ITEM_DREAM_MAIL 130
+#define ITEM_FAB_MAIL 131
+#define ITEM_RETRO_MAIL 132
+#define ITEM_CHERI_BERRY 133
+#define ITEM_CHESTO_BERRY 134
+#define ITEM_PECHA_BERRY 135
+#define ITEM_RAWST_BERRY 136
+#define ITEM_ASPEAR_BERRY 137
+#define ITEM_LEPPA_BERRY 138
+#define ITEM_ORAN_BERRY 139
+#define ITEM_PERSIM_BERRY 140
+#define ITEM_LUM_BERRY 141
+#define ITEM_SITRUS_BERRY 142
+#define ITEM_FIGY_BERRY 143
+#define ITEM_WIKI_BERRY 144
+#define ITEM_MAGO_BERRY 145
+#define ITEM_AGUAV_BERRY 146
+#define ITEM_IAPAPA_BERRY 147
+#define ITEM_RAZZ_BERRY 148
+#define ITEM_BLUK_BERRY 149
+#define ITEM_NANAB_BERRY 150
+#define ITEM_WEPEAR_BERRY 151
+#define ITEM_PINAP_BERRY 152
+#define ITEM_POMEG_BERRY 153
+#define ITEM_KELPSY_BERRY 154
+#define ITEM_QUALOT_BERRY 155
+#define ITEM_HONDEW_BERRY 156
+#define ITEM_GREPA_BERRY 157
+#define ITEM_TAMATO_BERRY 158
+#define ITEM_CORNN_BERRY 159
+#define ITEM_MAGOST_BERRY 160
+#define ITEM_RABUTA_BERRY 161
+#define ITEM_NOMEL_BERRY 162
+#define ITEM_SPELON_BERRY 163
+#define ITEM_PAMTRE_BERRY 164
+#define ITEM_WATMEL_BERRY 165
+#define ITEM_DURIN_BERRY 166
+#define ITEM_BELUE_BERRY 167
+#define ITEM_LIECHI_BERRY 168
+#define ITEM_GANLON_BERRY 169
+#define ITEM_SALAC_BERRY 170
+#define ITEM_PETAYA_BERRY 171
+#define ITEM_APICOT_BERRY 172
+#define ITEM_LANSAT_BERRY 173
+#define ITEM_STARF_BERRY 174
+#define ITEM_ENIGMA_BERRY 175
+#define ITEM_0B0 176
+#define ITEM_0B1 177
+#define ITEM_0B2 178
+#define ITEM_BRIGHT_POWDER 179
+#define ITEM_WHITE_HERB 180
+#define ITEM_MACHO_BRACE 181
+#define ITEM_EXP_SHARE 182
+#define ITEM_QUICK_CLAW 183
+#define ITEM_SOOTHE_BELL 184
+#define ITEM_MENTAL_HERB 185
+#define ITEM_CHOICE_BAND 186
+#define ITEM_KINGS_ROCK 187
+#define ITEM_SILVER_POWDER 188
+#define ITEM_AMULET_COIN 189
+#define ITEM_CLEANSE_TAG 190
+#define ITEM_SOUL_DEW 191
+#define ITEM_DEEP_SEA_TOOTH 192
+#define ITEM_DEEP_SEA_SCALE 193
+#define ITEM_SMOKE_BALL 194
+#define ITEM_EVERSTONE 195
+#define ITEM_FOCUS_BAND 196
+#define ITEM_LUCKY_EGG 197
+#define ITEM_SCOPE_LENS 198
+#define ITEM_METAL_COAT 199
+#define ITEM_LEFTOVERS 200
+#define ITEM_DRAGON_SCALE 201
+#define ITEM_LIGHT_BALL 202
+#define ITEM_SOFT_SAND 203
+#define ITEM_HARD_STONE 204
+#define ITEM_MIRACLE_SEED 205
+#define ITEM_BLACK_GLASSES 206
+#define ITEM_BLACK_BELT 207
+#define ITEM_MAGNET 208
+#define ITEM_MYSTIC_WATER 209
+#define ITEM_SHARP_BEAK 210
+#define ITEM_POISON_BARB 211
+#define ITEM_NEVER_MELT_ICE 212
+#define ITEM_SPELL_TAG 213
+#define ITEM_TWISTED_SPOON 214
+#define ITEM_CHARCOAL 215
+#define ITEM_DRAGON_FANG 216
+#define ITEM_SILK_SCARF 217
+#define ITEM_UP_GRADE 218
+#define ITEM_SHELL_BELL 219
+#define ITEM_SEA_INCENSE 220
+#define ITEM_LAX_INCENSE 221
+#define ITEM_LUCKY_PUNCH 222
+#define ITEM_METAL_POWDER 223
+#define ITEM_THICK_CLUB 224
+#define ITEM_STICK 225
+#define ITEM_0E2 226
+#define ITEM_0E3 227
+#define ITEM_0E4 228
+#define ITEM_0E5 229
+#define ITEM_0E6 230
+#define ITEM_0E7 231
+#define ITEM_0E8 232
+#define ITEM_0E9 233
+#define ITEM_0EA 234
+#define ITEM_0EB 235
+#define ITEM_0EC 236
+#define ITEM_0ED 237
+#define ITEM_0EE 238
+#define ITEM_0EF 239
+#define ITEM_0F0 240
+#define ITEM_0F1 241
+#define ITEM_0F2 242
+#define ITEM_0F3 243
+#define ITEM_0F4 244
+#define ITEM_0F5 245
+#define ITEM_0F6 246
+#define ITEM_0F7 247
+#define ITEM_0F8 248
+#define ITEM_0F9 249
+#define ITEM_0FA 250
+#define ITEM_0FB 251
+#define ITEM_0FC 252
+#define ITEM_0FD 253
+#define ITEM_RED_SCARF 254
+#define ITEM_BLUE_SCARF 255
+#define ITEM_PINK_SCARF 256
+#define ITEM_GREEN_SCARF 257
+#define ITEM_YELLOW_SCARF 258
+#define ITEM_MACH_BIKE 259
+#define ITEM_COIN_CASE 260
+#define ITEM_ITEMFINDER 261
+#define ITEM_OLD_ROD 262
+#define ITEM_GOOD_ROD 263
+#define ITEM_SUPER_ROD 264
+#define ITEM_SS_TICKET 265
+#define ITEM_CONTEST_PASS 266
+#define ITEM_10B 267
+#define ITEM_WAILMER_PAIL 268
+#define ITEM_DEVON_GOODS 269
+#define ITEM_SOOT_SACK 270
+#define ITEM_BASEMENT_KEY 271
+#define ITEM_ACRO_BIKE 272
+#define ITEM_POKEBLOCK_CASE 273
+#define ITEM_LETTER 274
+#define ITEM_EON_TICKET 275
+#define ITEM_RED_ORB 276
+#define ITEM_BLUE_ORB 277
+#define ITEM_SCANNER 278
+#define ITEM_GO_GOGGLES 279
+#define ITEM_METEORITE 280
+#define ITEM_ROOM_1_KEY 281
+#define ITEM_ROOM_2_KEY 282
+#define ITEM_ROOM_4_KEY 283
+#define ITEM_ROOM_6_KEY 284
+#define ITEM_STORAGE_KEY 285
+#define ITEM_ROOT_FOSSIL 286
+#define ITEM_CLAW_FOSSIL 287
+#define ITEM_DEVON_SCOPE 288
+#define ITEM_TM01 289
+#define ITEM_TM02 290
+#define ITEM_TM03 291
+#define ITEM_TM04 292
+#define ITEM_TM05 293
+#define ITEM_TM06 294
+#define ITEM_TM07 295
+#define ITEM_TM08 296
+#define ITEM_TM09 297
+#define ITEM_TM10 298
+#define ITEM_TM11 299
+#define ITEM_TM12 300
+#define ITEM_TM13 301
+#define ITEM_TM14 302
+#define ITEM_TM15 303
+#define ITEM_TM16 304
+#define ITEM_TM17 305
+#define ITEM_TM18 306
+#define ITEM_TM19 307
+#define ITEM_TM20 308
+#define ITEM_TM21 309
+#define ITEM_TM22 310
+#define ITEM_TM23 311
+#define ITEM_TM24 312
+#define ITEM_TM25 313
+#define ITEM_TM26 314
+#define ITEM_TM27 315
+#define ITEM_TM28 316
+#define ITEM_TM29 317
+#define ITEM_TM30 318
+#define ITEM_TM31 319
+#define ITEM_TM32 320
+#define ITEM_TM33 321
+#define ITEM_TM34 322
+#define ITEM_TM35 323
+#define ITEM_TM36 324
+#define ITEM_TM37 325
+#define ITEM_TM38 326
+#define ITEM_TM39 327
+#define ITEM_TM40 328
+#define ITEM_TM41 329
+#define ITEM_TM42 330
+#define ITEM_TM43 331
+#define ITEM_TM44 332
+#define ITEM_TM45 333
+#define ITEM_TM46 334
+#define ITEM_TM47 335
+#define ITEM_TM48 336
+#define ITEM_TM49 337
+#define ITEM_TM50 338
+#define ITEM_HM01 339
+#define ITEM_HM02 340
+#define ITEM_HM03 341
+#define ITEM_HM04 342
+#define ITEM_HM05 343
+#define ITEM_HM06 344
+#define ITEM_HM07 345
+#define ITEM_HM08 346
+#define ITEM_15B 347
+#define ITEM_15C 348
+
+// FireRed/LeafGreen
+#define ITEM_OAKS_PARCEL 349
+#define ITEM_POKE_FLUTE 350
+#define ITEM_SECRET_KEY 351
+#define ITEM_BIKE_VOUCHER 352
+#define ITEM_GOLD_TEETH 353
+#define ITEM_OLD_AMBER 354
+#define ITEM_CARD_KEY 355
+#define ITEM_LIFT_KEY 356
+#define ITEM_HELIX_FOSSIL 357
+#define ITEM_DOME_FOSSIL 358
+#define ITEM_SILPH_SCOPE 359
+#define ITEM_BICYCLE 360
+#define ITEM_TOWN_MAP 361
+#define ITEM_VS_SEEKER 362
+#define ITEM_FAME_CHECKER 363
+#define ITEM_TM_CASE 364
+#define ITEM_BERRY_POUCH 365
+#define ITEM_TEACHY_TV 366
+#define ITEM_TRI_PASS 367
+#define ITEM_RAINBOW_PASS 368
+#define ITEM_TEA 369
+#define ITEM_MYSTIC_TICKET 370
+#define ITEM_AURORA_TICKET 371
+#define ITEM_POWDER_JAR 372
+#define ITEM_RUBY 373
+#define ITEM_SAPPHIRE 374
+
+// Emerald
+#define ITEM_MAGMA_EMBLEM 375
+#define ITEM_OLD_SEA_MAP 376
+
+#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
+#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
+#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
+
+#define NUM_TECHNICAL_MACHINES 50
+#define NUM_HIDDEN_MACHINES 8
+
+#endif // GUARD_CONSTANTS_ITEMS_H
diff --git a/include/constants/map_objects.h b/include/constants/map_objects.h
new file mode 100644
index 000000000..6a1c9e11a
--- /dev/null
+++ b/include/constants/map_objects.h
@@ -0,0 +1,232 @@
+#ifndef GUARD_CONSTANTS_MAP_OBJECTS_H
+#define GUARD_CONSTANTS_MAP_OBJECTS_H
+
+#define MAP_OBJ_GFX_BRENDAN_NORMAL 0
+#define MAP_OBJ_GFX_BRENDAN_MACH_BIKE 1
+#define MAP_OBJ_GFX_BRENDAN_SURFING 2
+#define MAP_OBJ_GFX_BRENDAN_FIELD_MOVE 3
+#define MAP_OBJ_GFX_QUINTY_PLUMP 4
+#define MAP_OBJ_GFX_LITTLE_BOY_1 5
+#define MAP_OBJ_GFX_LITTLE_GIRL_1 6
+#define MAP_OBJ_GFX_BOY_1 7
+#define MAP_OBJ_GFX_GIRL_1 8
+#define MAP_OBJ_GFX_BOY_2 9
+#define MAP_OBJ_GFX_GIRL_2 10
+#define MAP_OBJ_GFX_LITTLE_BOY_2 11
+#define MAP_OBJ_GFX_LITTLE_GIRL_2 12
+#define MAP_OBJ_GFX_BOY_3 13
+#define MAP_OBJ_GFX_GIRL_3 14
+#define MAP_OBJ_GFX_BOY_4 15
+#define MAP_OBJ_GFX_WOMAN_1 16
+#define MAP_OBJ_GFX_FAT_MAN 17
+#define MAP_OBJ_GFX_WOMAN_2 18
+#define MAP_OBJ_GFX_MAN_1 19
+#define MAP_OBJ_GFX_WOMAN_3 20
+#define MAP_OBJ_GFX_OLD_MAN_1 21
+#define MAP_OBJ_GFX_OLD_WOMAN_1 22
+#define MAP_OBJ_GFX_MAN_2 23
+#define MAP_OBJ_GFX_WOMAN_4 24
+#define MAP_OBJ_GFX_MAN_3 25
+#define MAP_OBJ_GFX_WOMAN_5 26
+#define MAP_OBJ_GFX_COOK 27
+#define MAP_OBJ_GFX_WOMAN_6 28
+#define MAP_OBJ_GFX_OLD_MAN_2 29
+#define MAP_OBJ_GFX_OLD_WOMAN_2 30
+#define MAP_OBJ_GFX_CAMPER 31
+#define MAP_OBJ_GFX_PICNICKER 32
+#define MAP_OBJ_GFX_MAN_4 33
+#define MAP_OBJ_GFX_WOMAN_7 34
+#define MAP_OBJ_GFX_YOUNGSTER 35
+#define MAP_OBJ_GFX_BUG_CATCHER 36
+#define MAP_OBJ_GFX_PSYCHIC_M 37
+#define MAP_OBJ_GFX_SCHOOL_KID_M 38
+#define MAP_OBJ_GFX_MANIAC 39
+#define MAP_OBJ_GFX_HEX_MANIAC 40
+#define MAP_OBJ_GFX_WOMAN_8 41
+#define MAP_OBJ_GFX_SWIMMER_M 42
+#define MAP_OBJ_GFX_SWIMMER_F 43
+#define MAP_OBJ_GFX_BLACK_BELT 44
+#define MAP_OBJ_GFX_BEAUTY 45
+#define MAP_OBJ_GFX_SCIENTIST_1 46
+#define MAP_OBJ_GFX_LASS 47
+#define MAP_OBJ_GFX_GENTLEMAN 48
+#define MAP_OBJ_GFX_SAILOR 49
+#define MAP_OBJ_GFX_FISHERMAN 50
+#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_M 51
+#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_F 52
+#define MAP_OBJ_GFX_TUBER_F 53
+#define MAP_OBJ_GFX_TUBER_M 54
+#define MAP_OBJ_GFX_HIKER 55
+#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_M 56
+#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_F 57
+#define MAP_OBJ_GFX_NURSE 58
+#define MAP_OBJ_GFX_ITEM_BALL 59
+#define MAP_OBJ_GFX_BERRY_TREE 60
+#define MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES 61
+#define MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES 62
+#define MAP_OBJ_GFX_BRENDAN_ACRO_BIKE 63
+#define MAP_OBJ_GFX_PROF_BIRCH 64
+#define MAP_OBJ_GFX_MAN_5 65
+#define MAP_OBJ_GFX_MAN_6 66
+#define MAP_OBJ_GFX_REPORTER_M 67
+#define MAP_OBJ_GFX_REPORTER_F 68
+#define MAP_OBJ_GFX_BARD 69
+#define MAP_OBJ_GFX_HIPSTER 70
+#define MAP_OBJ_GFX_TRADER 71
+#define MAP_OBJ_GFX_STORYTELLER 72
+#define MAP_OBJ_GFX_GIDDY 73
+#define MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1 74
+#define MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2 75
+#define MAP_OBJ_GFX_UNUSED_NATU_DOLL 76
+#define MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL 77
+#define MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL 78
+#define MAP_OBJ_GFX_UNUSED_WOOPER_DOLL 79
+#define MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL 80
+#define MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL 81
+#define MAP_OBJ_GFX_CUTTABLE_TREE 82
+#define MAP_OBJ_GFX_MART_EMPLOYEE 83
+#define MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN 84
+#define MAP_OBJ_GFX_TEALA 85
+#define MAP_OBJ_GFX_BREAKABLE_ROCK 86
+#define MAP_OBJ_GFX_PUSHABLE_BOULDER 87
+#define MAP_OBJ_GFX_MR_BRINEYS_BOAT 88
+#define MAP_OBJ_GFX_MAY_NORMAL 89
+#define MAP_OBJ_GFX_MAY_MACH_BIKE 90
+#define MAP_OBJ_GFX_MAY_ACRO_BIKE 91
+#define MAP_OBJ_GFX_MAY_SURFING 92
+#define MAP_OBJ_GFX_MAY_FIELD_MOVE 93
+#define MAP_OBJ_GFX_TRUCK 94
+#define MAP_OBJ_GFX_MACHOKE_CARRYING_BOX 95
+#define MAP_OBJ_GFX_MACHOKE_FACING_AWAY 96
+#define MAP_OBJ_GFX_BIRCHS_BAG 97
+#define MAP_OBJ_GFX_POOCHYENA 98
+#define MAP_OBJ_GFX_ARTIST 99
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL 100
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE 101
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE 102
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING 103
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE 104
+#define MAP_OBJ_GFX_RIVAL_MAY_NORMAL 105
+#define MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE 106
+#define MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE 107
+#define MAP_OBJ_GFX_RIVAL_MAY_SURFING 108
+#define MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE 109
+#define MAP_OBJ_GFX_CAMERAMAN 110
+#define MAP_OBJ_GFX_BRENDAN_UNDERWATER 111
+#define MAP_OBJ_GFX_MAY_UNDERWATER 112
+#define MAP_OBJ_GFX_MOVING_BOX 113
+#define MAP_OBJ_GFX_CABLE_CAR 114
+#define MAP_OBJ_GFX_SCIENTIST_2 115
+#define MAP_OBJ_GFX_MAN_7 116
+#define MAP_OBJ_GFX_AQUA_MEMBER_M 117
+#define MAP_OBJ_GFX_AQUA_MEMBER_F 118
+#define MAP_OBJ_GFX_MAGMA_MEMBER_M 119
+#define MAP_OBJ_GFX_MAGMA_MEMBER_F 120
+#define MAP_OBJ_GFX_SIDNEY 121
+#define MAP_OBJ_GFX_PHOEBE 122
+#define MAP_OBJ_GFX_GLACIA 123
+#define MAP_OBJ_GFX_DRAKE 124
+#define MAP_OBJ_GFX_ROXANNE 125
+#define MAP_OBJ_GFX_BRAWLY 126
+#define MAP_OBJ_GFX_WATTSON 127
+#define MAP_OBJ_GFX_FLANNERY 128
+#define MAP_OBJ_GFX_NORMAN 129
+#define MAP_OBJ_GFX_WINONA 130
+#define MAP_OBJ_GFX_LIZA 131
+#define MAP_OBJ_GFX_TATE 132
+#define MAP_OBJ_GFX_WALLACE 133
+#define MAP_OBJ_GFX_STEVEN 134
+#define MAP_OBJ_GFX_WALLY 135
+#define MAP_OBJ_GFX_LITTLE_BOY_3 136
+#define MAP_OBJ_GFX_BRENDAN_FISHING 137
+#define MAP_OBJ_GFX_MAY_FISHING 138
+#define MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN 139
+#define MAP_OBJ_GFX_SS_TIDAL 140
+#define MAP_OBJ_GFX_SUBMARINE_SHADOW 141
+#define MAP_OBJ_GFX_PICHU_DOLL 142
+#define MAP_OBJ_GFX_PIKACHU_DOLL 143
+#define MAP_OBJ_GFX_MARILL_DOLL 144
+#define MAP_OBJ_GFX_TOGEPI_DOLL 145
+#define MAP_OBJ_GFX_CYNDAQUIL_DOLL 146
+#define MAP_OBJ_GFX_CHIKORITA_DOLL 147
+#define MAP_OBJ_GFX_TOTODILE_DOLL 148
+#define MAP_OBJ_GFX_JIGGLYPUFF_DOLL 149
+#define MAP_OBJ_GFX_MEOWTH_DOLL 150
+#define MAP_OBJ_GFX_CLEFAIRY_DOLL 151
+#define MAP_OBJ_GFX_DITTO_DOLL 152
+#define MAP_OBJ_GFX_SMOOCHUM_DOLL 153
+#define MAP_OBJ_GFX_TREECKO_DOLL 154
+#define MAP_OBJ_GFX_TORCHIC_DOLL 155
+#define MAP_OBJ_GFX_MUDKIP_DOLL 156
+#define MAP_OBJ_GFX_DUSKULL_DOLL 157
+#define MAP_OBJ_GFX_WYNAUT_DOLL 158
+#define MAP_OBJ_GFX_BALTOY_DOLL 159
+#define MAP_OBJ_GFX_KECLEON_DOLL 160
+#define MAP_OBJ_GFX_AZURILL_DOLL 161
+#define MAP_OBJ_GFX_SKITTY_DOLL 162
+#define MAP_OBJ_GFX_SWABLU_DOLL 163
+#define MAP_OBJ_GFX_GULPIN_DOLL 164
+#define MAP_OBJ_GFX_LOTAD_DOLL 165
+#define MAP_OBJ_GFX_SEEDOT_DOLL 166
+#define MAP_OBJ_GFX_PIKA_CUSHION 167
+#define MAP_OBJ_GFX_ROUND_CUSHION 168
+#define MAP_OBJ_GFX_KISS_CUSHION 169
+#define MAP_OBJ_GFX_ZIGZAG_CUSHION 170
+#define MAP_OBJ_GFX_SPIN_CUSHION 171
+#define MAP_OBJ_GFX_DIAMOND_CUSHION 172
+#define MAP_OBJ_GFX_BALL_CUSHION 173
+#define MAP_OBJ_GFX_GRASS_CUSHION 174
+#define MAP_OBJ_GFX_FIRE_CUSHION 175
+#define MAP_OBJ_GFX_WATER_CUSHION 176
+#define MAP_OBJ_GFX_BIG_SNORLAX_DOLL 177
+#define MAP_OBJ_GFX_BIG_RHYDON_DOLL 178
+#define MAP_OBJ_GFX_BIG_LAPRAS_DOLL 179
+#define MAP_OBJ_GFX_BIG_VENUSAUR_DOLL 180
+#define MAP_OBJ_GFX_BIG_CHARIZARD_DOLL 181
+#define MAP_OBJ_GFX_BIG_BLASTOISE_DOLL 182
+#define MAP_OBJ_GFX_BIG_WAILMER_DOLL 183
+#define MAP_OBJ_GFX_BIG_REGIROCK_DOLL 184
+#define MAP_OBJ_GFX_BIG_REGICE_DOLL 185
+#define MAP_OBJ_GFX_BIG_REGISTEEL_DOLL 186
+#define MAP_OBJ_GFX_LATIAS 187
+#define MAP_OBJ_GFX_LATIOS 188
+#define MAP_OBJ_GFX_BOY_5 189
+#define MAP_OBJ_GFX_CONTEST_JUDGE 190
+#define MAP_OBJ_GFX_BRENDAN_WATERING 191
+#define MAP_OBJ_GFX_MAY_WATERING 192
+#define MAP_OBJ_GFX_BRENDAN_DECORATING 193
+#define MAP_OBJ_GFX_MAY_DECORATING 194
+#define MAP_OBJ_GFX_ARCHIE 195
+#define MAP_OBJ_GFX_MAXIE 196
+#define MAP_OBJ_GFX_KYOGRE_1 197
+#define MAP_OBJ_GFX_GROUDON_1 198
+#define MAP_OBJ_GFX_FOSSIL 199
+#define MAP_OBJ_GFX_REGIROCK 200
+#define MAP_OBJ_GFX_REGICE 201
+#define MAP_OBJ_GFX_REGISTEEL 202
+#define MAP_OBJ_GFX_SKITTY 203
+#define MAP_OBJ_GFX_KECLEON_1 204
+#define MAP_OBJ_GFX_KYOGRE_2 205
+#define MAP_OBJ_GFX_GROUDON_2 206
+#define MAP_OBJ_GFX_RAYQUAZA 207
+#define MAP_OBJ_GFX_ZIGZAGOON 208
+#define MAP_OBJ_GFX_PIKACHU 209
+#define MAP_OBJ_GFX_AZUMARILL 210
+#define MAP_OBJ_GFX_WINGULL 211
+#define MAP_OBJ_GFX_KECLEON_2 212
+#define MAP_OBJ_GFX_TUBER_M_SWIMMING 213
+#define MAP_OBJ_GFX_AZURILL 214
+#define MAP_OBJ_GFX_MOM 215
+#define MAP_OBJ_GFX_LINK_BRENDAN 216
+#define MAP_OBJ_GFX_LINK_MAY 217
+
+#define SHADOW_SIZE_S 0
+#define SHADOW_SIZE_M 1
+#define SHADOW_SIZE_L 2
+#define SHADOW_SIZE_XL 3
+
+#define TRACKS_NONE 0
+#define TRACKS_FOOT 1
+#define TRACKS_BIKE_TIRE 2
+
+#endif // GUARD_CONSTANTS_MAP_OBJECTS_H
diff --git a/include/constants/maps.h b/include/constants/maps.h
new file mode 100644
index 000000000..737edd7de
--- /dev/null
+++ b/include/constants/maps.h
@@ -0,0 +1,595 @@
+#ifndef GUARD_CONSTANTS_MAPS_H
+#define GUARD_CONSTANTS_MAPS_H
+
+// Map Group 0
+#define MAP_PETALBURG_CITY (0 | (0 << 8))
+#define MAP_SLATEPORT_CITY (1 | (0 << 8))
+#define MAP_MAUVILLE_CITY (2 | (0 << 8))
+#define MAP_RUSTBORO_CITY (3 | (0 << 8))
+#define MAP_FORTREE_CITY (4 | (0 << 8))
+#define MAP_LILYCOVE_CITY (5 | (0 << 8))
+#define MAP_MOSSDEEP_CITY (6 | (0 << 8))
+#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8))
+#define MAP_EVER_GRANDE_CITY (8 | (0 << 8))
+#define MAP_LITTLEROOT_TOWN (9 | (0 << 8))
+#define MAP_OLDALE_TOWN (10 | (0 << 8))
+#define MAP_DEWFORD_TOWN (11 | (0 << 8))
+#define MAP_LAVARIDGE_TOWN (12 | (0 << 8))
+#define MAP_FALLARBOR_TOWN (13 | (0 << 8))
+#define MAP_VERDANTURF_TOWN (14 | (0 << 8))
+#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8))
+#define MAP_ROUTE101 (16 | (0 << 8))
+#define MAP_ROUTE102 (17 | (0 << 8))
+#define MAP_ROUTE103 (18 | (0 << 8))
+#define MAP_ROUTE104 (19 | (0 << 8))
+#define MAP_ROUTE105 (20 | (0 << 8))
+#define MAP_ROUTE106 (21 | (0 << 8))
+#define MAP_ROUTE107 (22 | (0 << 8))
+#define MAP_ROUTE108 (23 | (0 << 8))
+#define MAP_ROUTE109 (24 | (0 << 8))
+#define MAP_ROUTE110 (25 | (0 << 8))
+#define MAP_ROUTE111 (26 | (0 << 8))
+#define MAP_ROUTE112 (27 | (0 << 8))
+#define MAP_ROUTE113 (28 | (0 << 8))
+#define MAP_ROUTE114 (29 | (0 << 8))
+#define MAP_ROUTE115 (30 | (0 << 8))
+#define MAP_ROUTE116 (31 | (0 << 8))
+#define MAP_ROUTE117 (32 | (0 << 8))
+#define MAP_ROUTE118 (33 | (0 << 8))
+#define MAP_ROUTE119 (34 | (0 << 8))
+#define MAP_ROUTE120 (35 | (0 << 8))
+#define MAP_ROUTE121 (36 | (0 << 8))
+#define MAP_ROUTE122 (37 | (0 << 8))
+#define MAP_ROUTE123 (38 | (0 << 8))
+#define MAP_ROUTE124 (39 | (0 << 8))
+#define MAP_ROUTE125 (40 | (0 << 8))
+#define MAP_ROUTE126 (41 | (0 << 8))
+#define MAP_ROUTE127 (42 | (0 << 8))
+#define MAP_ROUTE128 (43 | (0 << 8))
+#define MAP_ROUTE129 (44 | (0 << 8))
+#define MAP_ROUTE130 (45 | (0 << 8))
+#define MAP_ROUTE131 (46 | (0 << 8))
+#define MAP_ROUTE132 (47 | (0 << 8))
+#define MAP_ROUTE133 (48 | (0 << 8))
+#define MAP_ROUTE134 (49 | (0 << 8))
+#define MAP_UNDERWATER1 (50 | (0 << 8))
+#define MAP_UNDERWATER2 (51 | (0 << 8))
+#define MAP_UNDERWATER3 (52 | (0 << 8))
+#define MAP_UNDERWATER4 (53 | (0 << 8))
+
+// Map Group 1
+#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8))
+
+// Map Group 2
+#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8))
+#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8))
+#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8))
+#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8))
+#define MAP_OLDALE_TOWN_MART (4 | (2 << 8))
+
+// Map Group 3
+#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8))
+#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8))
+#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8))
+#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8))
+#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8))
+#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8))
+
+// Map Group 4
+#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8))
+
+// Map Group 5
+#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_HOUSE1 (6 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_HOUSE2 (7 | (5 << 8))
+
+// Map Group 6
+#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_MART (3 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (4 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (5 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (6 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8))
+
+// Map Group 7
+#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8))
+
+// Map Group 8
+#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8))
+#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8))
+#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8))
+#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8))
+#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8))
+#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8))
+#define MAP_PETALBURG_CITY_MART (6 | (8 << 8))
+
+// Map Group 9
+#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8))
+#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8))
+#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8))
+#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8))
+#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HOUSE1 (5 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8))
+#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8))
+#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HOUSE2 (10 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8))
+#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8))
+
+// Map Group 10
+#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8))
+#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8))
+#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8))
+#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8))
+#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8))
+#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8))
+#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8))
+#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8))
+
+// Map Group 11
+#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8))
+#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8))
+#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8))
+#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8))
+#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8))
+#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8))
+
+// Map Group 12
+#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8))
+#define MAP_FORTREE_CITY_GYM (1 | (12 << 8))
+#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8))
+#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8))
+#define MAP_FORTREE_CITY_MART (4 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8))
+#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8))
+
+// Map Group 13
+#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8))
+#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8))
+#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8))
+#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8))
+#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8))
+#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8))
+#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8))
+#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (11 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE1 (12 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE2 (13 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE3 (14 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE4 (15 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (16 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (17 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (18 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (19 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (20 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8))
+
+// Map Group 14
+#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8))
+
+// Map Group 15
+#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE8 (12 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE9_1F (13 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE9_B1F (14 | (15 << 8))
+
+// Map Group 16
+#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR1 (5 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR2 (6 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR3 (7 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR4 (8 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR5 (9 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8))
+
+// Map Group 17
+#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8))
+#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8))
+
+// Map Group 18
+#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8))
+#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8))
+
+// Map Group 19
+#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8))
+#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8))
+
+// Map Group 20
+#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8))
+#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8))
+#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8))
+
+// Map Group 21
+#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8))
+
+// Map Group 22
+#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8))
+
+// Map Group 23
+#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8))
+
+// Map Group 24
+#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8))
+#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8))
+#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8))
+#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8))
+#define MAP_RUSTURF_TUNNEL (4 | (24 << 8))
+#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8))
+#define MAP_DESERT_RUINS (6 | (24 << 8))
+#define MAP_GRANITE_CAVE_1F (7 | (24 << 8))
+#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8))
+#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8))
+#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8))
+#define MAP_PETALBURG_WOODS (11 | (24 << 8))
+#define MAP_MT_CHIMNEY (12 | (24 << 8))
+#define MAP_JAGGED_PASS (13 | (24 << 8))
+#define MAP_FIERY_PATH (14 | (24 << 8))
+#define MAP_MT_PYRE_1F (15 | (24 << 8))
+#define MAP_MT_PYRE_2F (16 | (24 << 8))
+#define MAP_MT_PYRE_3F (17 | (24 << 8))
+#define MAP_MT_PYRE_4F (18 | (24 << 8))
+#define MAP_MT_PYRE_5F (19 | (24 << 8))
+#define MAP_MT_PYRE_6F (20 | (24 << 8))
+#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8))
+#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8))
+#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B1F (39 | (24 << 8)) //
+#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B2F (40 | (24 << 8)) // Ruby/Sapphire leftovers
+#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B3F (41 | (24 << 8)) //
+#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8))
+#define MAP_VICTORY_ROAD_1F (43 | (24 << 8))
+#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8))
+#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8))
+#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8))
+#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8))
+#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8))
+#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8))
+#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8))
+#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8))
+#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8))
+#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8))
+#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8))
+#define MAP_ISLAND_CAVE (67 | (24 << 8))
+#define MAP_ANCIENT_TOMB (68 | (24 << 8))
+#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8))
+#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8))
+#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8))
+#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8))
+#define MAP_SCORCHED_SLAB (73 | (24 << 8))
+#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_1F (74 | (24 << 8)) //
+#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B1F (75 | (24 << 8)) // Ruby/Sapphire leftovers
+#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B2F (76 | (24 << 8)) //
+#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8))
+#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8))
+#define MAP_SKY_PILLAR_1F (79 | (24 << 8))
+#define MAP_SKY_PILLAR_2F (80 | (24 << 8))
+#define MAP_SKY_PILLAR_3F (81 | (24 << 8))
+#define MAP_SKY_PILLAR_4F (82 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8))
+#define MAP_SKY_PILLAR_5F (84 | (24 << 8))
+#define MAP_SKY_PILLAR_TOP (85 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_1F (86 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_2F_1R (87 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_2F_2R (88 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_3F_1R (89 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_3F_2R (90 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_4F (91 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_3F_3R (92 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_2F_3R (93 | (24 << 8))
+#define MAP_MIRAGE_TOWER_1F (94 | (24 << 8))
+#define MAP_MIRAGE_TOWER_2F (95 | (24 << 8))
+#define MAP_MIRAGE_TOWER_3F (96 | (24 << 8))
+#define MAP_MIRAGE_TOWER_4F (97 | (24 << 8))
+#define MAP_DESERT_UNDERPASS (98 | (24 << 8))
+#define MAP_ARTISAN_CAVE_B1F (99 | (24 << 8))
+#define MAP_ARTISAN_CAVE_1F (100 | (24 << 8))
+#define MAP_UNDERWATER_MARINE_CAVE (101 | (24 << 8))
+#define MAP_MARINE_CAVE_ENTRANCE (102 | (24 << 8))
+#define MAP_MARINE_CAVE_END (103 | (24 << 8))
+#define MAP_TERRA_CAVE_ENTRANCE (104 | (24 << 8))
+#define MAP_TERRA_CAVE_END (105 | (24 << 8))
+#define MAP_ALTERING_CAVE (106 | (24 << 8))
+#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8))
+
+// Map Group 25
+#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8))
+#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8))
+#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8))
+#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8))
+#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8))
+#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8))
+#define MAP_TRADE_CENTER (25 | (25 << 8))
+#define MAP_RECORD_CORNER (26 | (25 << 8))
+#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8))
+#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8))
+#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
+#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
+#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_01 (44 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_02 (45 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_03 (46 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_04 (47 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_05 (48 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_06 (49 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_07 (50 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_08 (51 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_09 (52 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_10 (53 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_11 (54 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_12 (55 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_13 (56 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_14 (57 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_15 (58 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE_16 (59 | (25 << 8))
+#define MAP_UNION_ROOM (60 | (25 << 8))
+
+// Map Group 26
+#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
+#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
+#define MAP_SAFARI_ZONE_EM_1 (12 | (26 << 8))
+#define MAP_SAFARI_ZONE_EM_2 (13 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR_2 (16 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM_2 (17 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_1 (37 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_2 (38 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_3 (39 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE_1 (41 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER (42 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE_2 (43 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE_3 (44 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE_4 (45 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE_5 (47 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE_6 (48 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE_7 (49 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE_8 (51 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE_9 (52 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8))
+#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8))
+#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8))
+#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8))
+#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8))
+#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8))
+#define MAP_TRAINER_HILL_1F (61 | (26 << 8))
+#define MAP_TRAINER_HILL_2F (62 | (26 << 8))
+#define MAP_TRAINER_HILL_3F (63 | (26 << 8))
+#define MAP_TRAINER_HILL_4F (64 | (26 << 8))
+#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8))
+#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8))
+#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8))
+#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8))
+#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8))
+#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP_1 (71 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP_2 (72 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP_3 (73 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP_4 (74 | (26 << 8))
+#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN_01 (76 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN_02 (77 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN_03 (78 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN_04 (79 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN_05 (80 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN_06 (81 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN_07 (82 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN_08 (83 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN_09 (84 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN_10 (85 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN_11 (86 | (26 << 8))
+#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8))
+#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8))
+
+// Map Group 27
+#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8))
+#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8))
+
+// Map Group 28
+#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8))
+
+// Map Group 29
+#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8))
+#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (11 | (29 << 8))
+#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (12 | (29 << 8))
+
+// Map Group 30
+#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8))
+
+// Map Group 31
+#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8))
+
+// Map Group 32
+#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8))
+#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8))
+#define MAP_ROUTE119_HOUSE (2 | (32 << 8))
+
+// Map Group 33
+#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8))
+
+
+#define MAP_NONE (0x7F | (0x7F << 8))
+#define MAP_UNDEFINED (0xFF | (0xFF << 8))
+
+
+#define MAP_GROUP(map) (MAP_##map >> 8)
+#define MAP_NUM(map) (MAP_##map & 0xFF)
+
+#endif // GUARD_CONSTANTS_MAPS_H
diff --git a/include/constants/mauville_man.h b/include/constants/mauville_man.h
new file mode 100644
index 000000000..b00e3a291
--- /dev/null
+++ b/include/constants/mauville_man.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_CONSTANTS_MAUVILLE_MAN_H
+#define GUARD_CONSTANTS_MAUVILLE_MAN_H
+
+#define MAUVILLE_MAN_BARD 0
+#define MAUVILLE_MAN_HIPSTER 1
+#define MAUVILLE_MAN_TRADER 2
+#define MAUVILLE_MAN_STORYTELLER 3
+#define MAUVILLE_MAN_GIDDY 4
+
+#endif // GUARD_CONSTANTS_MAUVILLE_MAN_H
diff --git a/include/constants/moves.h b/include/constants/moves.h
new file mode 100644
index 000000000..ceec76c13
--- /dev/null
+++ b/include/constants/moves.h
@@ -0,0 +1,360 @@
+#ifndef GUARD_CONSTANTS_MOVES_H
+#define GUARD_CONSTANTS_MOVES_H
+
+#define MOVE_NONE 0
+#define MOVE_POUND 1
+#define MOVE_KARATE_CHOP 2
+#define MOVE_DOUBLE_SLAP 3
+#define MOVE_COMET_PUNCH 4
+#define MOVE_MEGA_PUNCH 5
+#define MOVE_PAY_DAY 6
+#define MOVE_FIRE_PUNCH 7
+#define MOVE_ICE_PUNCH 8
+#define MOVE_THUNDER_PUNCH 9
+#define MOVE_SCRATCH 10
+#define MOVE_VICE_GRIP 11
+#define MOVE_GUILLOTINE 12
+#define MOVE_RAZOR_WIND 13
+#define MOVE_SWORDS_DANCE 14
+#define MOVE_CUT 15
+#define MOVE_GUST 16
+#define MOVE_WING_ATTACK 17
+#define MOVE_WHIRLWIND 18
+#define MOVE_FLY 19
+#define MOVE_BIND 20
+#define MOVE_SLAM 21
+#define MOVE_VINE_WHIP 22
+#define MOVE_STOMP 23
+#define MOVE_DOUBLE_KICK 24
+#define MOVE_MEGA_KICK 25
+#define MOVE_JUMP_KICK 26
+#define MOVE_ROLLING_KICK 27
+#define MOVE_SAND_ATTACK 28
+#define MOVE_HEADBUTT 29
+#define MOVE_HORN_ATTACK 30
+#define MOVE_FURY_ATTACK 31
+#define MOVE_HORN_DRILL 32
+#define MOVE_TACKLE 33
+#define MOVE_BODY_SLAM 34
+#define MOVE_WRAP 35
+#define MOVE_TAKE_DOWN 36
+#define MOVE_THRASH 37
+#define MOVE_DOUBLE_EDGE 38
+#define MOVE_TAIL_WHIP 39
+#define MOVE_POISON_STING 40
+#define MOVE_TWINEEDLE 41
+#define MOVE_PIN_MISSILE 42
+#define MOVE_LEER 43
+#define MOVE_BITE 44
+#define MOVE_GROWL 45
+#define MOVE_ROAR 46
+#define MOVE_SING 47
+#define MOVE_SUPERSONIC 48
+#define MOVE_SONIC_BOOM 49
+#define MOVE_DISABLE 50
+#define MOVE_ACID 51
+#define MOVE_EMBER 52
+#define MOVE_FLAMETHROWER 53
+#define MOVE_MIST 54
+#define MOVE_WATER_GUN 55
+#define MOVE_HYDRO_PUMP 56
+#define MOVE_SURF 57
+#define MOVE_ICE_BEAM 58
+#define MOVE_BLIZZARD 59
+#define MOVE_PSYBEAM 60
+#define MOVE_BUBBLE_BEAM 61
+#define MOVE_AURORA_BEAM 62
+#define MOVE_HYPER_BEAM 63
+#define MOVE_PECK 64
+#define MOVE_DRILL_PECK 65
+#define MOVE_SUBMISSION 66
+#define MOVE_LOW_KICK 67
+#define MOVE_COUNTER 68
+#define MOVE_SEISMIC_TOSS 69
+#define MOVE_STRENGTH 70
+#define MOVE_ABSORB 71
+#define MOVE_MEGA_DRAIN 72
+#define MOVE_LEECH_SEED 73
+#define MOVE_GROWTH 74
+#define MOVE_RAZOR_LEAF 75
+#define MOVE_SOLAR_BEAM 76
+#define MOVE_POISON_POWDER 77
+#define MOVE_STUN_SPORE 78
+#define MOVE_SLEEP_POWDER 79
+#define MOVE_PETAL_DANCE 80
+#define MOVE_STRING_SHOT 81
+#define MOVE_DRAGON_RAGE 82
+#define MOVE_FIRE_SPIN 83
+#define MOVE_THUNDER_SHOCK 84
+#define MOVE_THUNDERBOLT 85
+#define MOVE_THUNDER_WAVE 86
+#define MOVE_THUNDER 87
+#define MOVE_ROCK_THROW 88
+#define MOVE_EARTHQUAKE 89
+#define MOVE_FISSURE 90
+#define MOVE_DIG 91
+#define MOVE_TOXIC 92
+#define MOVE_CONFUSION 93
+#define MOVE_PSYCHIC 94
+#define MOVE_HYPNOSIS 95
+#define MOVE_MEDITATE 96
+#define MOVE_AGILITY 97
+#define MOVE_QUICK_ATTACK 98
+#define MOVE_RAGE 99
+#define MOVE_TELEPORT 100
+#define MOVE_NIGHT_SHADE 101
+#define MOVE_MIMIC 102
+#define MOVE_SCREECH 103
+#define MOVE_DOUBLE_TEAM 104
+#define MOVE_RECOVER 105
+#define MOVE_HARDEN 106
+#define MOVE_MINIMIZE 107
+#define MOVE_SMOKESCREEN 108
+#define MOVE_CONFUSE_RAY 109
+#define MOVE_WITHDRAW 110
+#define MOVE_DEFENSE_CURL 111
+#define MOVE_BARRIER 112
+#define MOVE_LIGHT_SCREEN 113
+#define MOVE_HAZE 114
+#define MOVE_REFLECT 115
+#define MOVE_FOCUS_ENERGY 116
+#define MOVE_BIDE 117
+#define MOVE_METRONOME 118
+#define MOVE_MIRROR_MOVE 119
+#define MOVE_SELF_DESTRUCT 120
+#define MOVE_EGG_BOMB 121
+#define MOVE_LICK 122
+#define MOVE_SMOG 123
+#define MOVE_SLUDGE 124
+#define MOVE_BONE_CLUB 125
+#define MOVE_FIRE_BLAST 126
+#define MOVE_WATERFALL 127
+#define MOVE_CLAMP 128
+#define MOVE_SWIFT 129
+#define MOVE_SKULL_BASH 130
+#define MOVE_SPIKE_CANNON 131
+#define MOVE_CONSTRICT 132
+#define MOVE_AMNESIA 133
+#define MOVE_KINESIS 134
+#define MOVE_SOFT_BOILED 135
+#define MOVE_HI_JUMP_KICK 136
+#define MOVE_GLARE 137
+#define MOVE_DREAM_EATER 138
+#define MOVE_POISON_GAS 139
+#define MOVE_BARRAGE 140
+#define MOVE_LEECH_LIFE 141
+#define MOVE_LOVELY_KISS 142
+#define MOVE_SKY_ATTACK 143
+#define MOVE_TRANSFORM 144
+#define MOVE_BUBBLE 145
+#define MOVE_DIZZY_PUNCH 146
+#define MOVE_SPORE 147
+#define MOVE_FLASH 148
+#define MOVE_PSYWAVE 149
+#define MOVE_SPLASH 150
+#define MOVE_ACID_ARMOR 151
+#define MOVE_CRABHAMMER 152
+#define MOVE_EXPLOSION 153
+#define MOVE_FURY_SWIPES 154
+#define MOVE_BONEMERANG 155
+#define MOVE_REST 156
+#define MOVE_ROCK_SLIDE 157
+#define MOVE_HYPER_FANG 158
+#define MOVE_SHARPEN 159
+#define MOVE_CONVERSION 160
+#define MOVE_TRI_ATTACK 161
+#define MOVE_SUPER_FANG 162
+#define MOVE_SLASH 163
+#define MOVE_SUBSTITUTE 164
+#define MOVE_STRUGGLE 165
+#define MOVE_SKETCH 166
+#define MOVE_TRIPLE_KICK 167
+#define MOVE_THIEF 168
+#define MOVE_SPIDER_WEB 169
+#define MOVE_MIND_READER 170
+#define MOVE_NIGHTMARE 171
+#define MOVE_FLAME_WHEEL 172
+#define MOVE_SNORE 173
+#define MOVE_CURSE 174
+#define MOVE_FLAIL 175
+#define MOVE_CONVERSION_2 176
+#define MOVE_AEROBLAST 177
+#define MOVE_COTTON_SPORE 178
+#define MOVE_REVERSAL 179
+#define MOVE_SPITE 180
+#define MOVE_POWDER_SNOW 181
+#define MOVE_PROTECT 182
+#define MOVE_MACH_PUNCH 183
+#define MOVE_SCARY_FACE 184
+#define MOVE_FAINT_ATTACK 185
+#define MOVE_SWEET_KISS 186
+#define MOVE_BELLY_DRUM 187
+#define MOVE_SLUDGE_BOMB 188
+#define MOVE_MUD_SLAP 189
+#define MOVE_OCTAZOOKA 190
+#define MOVE_SPIKES 191
+#define MOVE_ZAP_CANNON 192
+#define MOVE_FORESIGHT 193
+#define MOVE_DESTINY_BOND 194
+#define MOVE_PERISH_SONG 195
+#define MOVE_ICY_WIND 196
+#define MOVE_DETECT 197
+#define MOVE_BONE_RUSH 198
+#define MOVE_LOCK_ON 199
+#define MOVE_OUTRAGE 200
+#define MOVE_SANDSTORM 201
+#define MOVE_GIGA_DRAIN 202
+#define MOVE_ENDURE 203
+#define MOVE_CHARM 204
+#define MOVE_ROLLOUT 205
+#define MOVE_FALSE_SWIPE 206
+#define MOVE_SWAGGER 207
+#define MOVE_MILK_DRINK 208
+#define MOVE_SPARK 209
+#define MOVE_FURY_CUTTER 210
+#define MOVE_STEEL_WING 211
+#define MOVE_MEAN_LOOK 212
+#define MOVE_ATTRACT 213
+#define MOVE_SLEEP_TALK 214
+#define MOVE_HEAL_BELL 215
+#define MOVE_RETURN 216
+#define MOVE_PRESENT 217
+#define MOVE_FRUSTRATION 218
+#define MOVE_SAFEGUARD 219
+#define MOVE_PAIN_SPLIT 220
+#define MOVE_SACRED_FIRE 221
+#define MOVE_MAGNITUDE 222
+#define MOVE_DYNAMIC_PUNCH 223
+#define MOVE_MEGAHORN 224
+#define MOVE_DRAGON_BREATH 225
+#define MOVE_BATON_PASS 226
+#define MOVE_ENCORE 227
+#define MOVE_PURSUIT 228
+#define MOVE_RAPID_SPIN 229
+#define MOVE_SWEET_SCENT 230
+#define MOVE_IRON_TAIL 231
+#define MOVE_METAL_CLAW 232
+#define MOVE_VITAL_THROW 233
+#define MOVE_MORNING_SUN 234
+#define MOVE_SYNTHESIS 235
+#define MOVE_MOONLIGHT 236
+#define MOVE_HIDDEN_POWER 237
+#define MOVE_CROSS_CHOP 238
+#define MOVE_TWISTER 239
+#define MOVE_RAIN_DANCE 240
+#define MOVE_SUNNY_DAY 241
+#define MOVE_CRUNCH 242
+#define MOVE_MIRROR_COAT 243
+#define MOVE_PSYCH_UP 244
+#define MOVE_EXTREME_SPEED 245
+#define MOVE_ANCIENT_POWER 246
+#define MOVE_SHADOW_BALL 247
+#define MOVE_FUTURE_SIGHT 248
+#define MOVE_ROCK_SMASH 249
+#define MOVE_WHIRLPOOL 250
+#define MOVE_BEAT_UP 251
+#define MOVE_FAKE_OUT 252
+#define MOVE_UPROAR 253
+#define MOVE_STOCKPILE 254
+#define MOVE_SPIT_UP 255
+#define MOVE_SWALLOW 256
+#define MOVE_HEAT_WAVE 257
+#define MOVE_HAIL 258
+#define MOVE_TORMENT 259
+#define MOVE_FLATTER 260
+#define MOVE_WILL_O_WISP 261
+#define MOVE_MEMENTO 262
+#define MOVE_FACADE 263
+#define MOVE_FOCUS_PUNCH 264
+#define MOVE_SMELLING_SALT 265
+#define MOVE_FOLLOW_ME 266
+#define MOVE_NATURE_POWER 267
+#define MOVE_CHARGE 268
+#define MOVE_TAUNT 269
+#define MOVE_HELPING_HAND 270
+#define MOVE_TRICK 271
+#define MOVE_ROLE_PLAY 272
+#define MOVE_WISH 273
+#define MOVE_ASSIST 274
+#define MOVE_INGRAIN 275
+#define MOVE_SUPERPOWER 276
+#define MOVE_MAGIC_COAT 277
+#define MOVE_RECYCLE 278
+#define MOVE_REVENGE 279
+#define MOVE_BRICK_BREAK 280
+#define MOVE_YAWN 281
+#define MOVE_KNOCK_OFF 282
+#define MOVE_ENDEAVOR 283
+#define MOVE_ERUPTION 284
+#define MOVE_SKILL_SWAP 285
+#define MOVE_IMPRISON 286
+#define MOVE_REFRESH 287
+#define MOVE_GRUDGE 288
+#define MOVE_SNATCH 289
+#define MOVE_SECRET_POWER 290
+#define MOVE_DIVE 291
+#define MOVE_ARM_THRUST 292
+#define MOVE_CAMOUFLAGE 293
+#define MOVE_TAIL_GLOW 294
+#define MOVE_LUSTER_PURGE 295
+#define MOVE_MIST_BALL 296
+#define MOVE_FEATHER_DANCE 297
+#define MOVE_TEETER_DANCE 298
+#define MOVE_BLAZE_KICK 299
+#define MOVE_MUD_SPORT 300
+#define MOVE_ICE_BALL 301
+#define MOVE_NEEDLE_ARM 302
+#define MOVE_SLACK_OFF 303
+#define MOVE_HYPER_VOICE 304
+#define MOVE_POISON_FANG 305
+#define MOVE_CRUSH_CLAW 306
+#define MOVE_BLAST_BURN 307
+#define MOVE_HYDRO_CANNON 308
+#define MOVE_METEOR_MASH 309
+#define MOVE_ASTONISH 310
+#define MOVE_WEATHER_BALL 311
+#define MOVE_AROMATHERAPY 312
+#define MOVE_FAKE_TEARS 313
+#define MOVE_AIR_CUTTER 314
+#define MOVE_OVERHEAT 315
+#define MOVE_ODOR_SLEUTH 316
+#define MOVE_ROCK_TOMB 317
+#define MOVE_SILVER_WIND 318
+#define MOVE_METAL_SOUND 319
+#define MOVE_GRASS_WHISTLE 320
+#define MOVE_TICKLE 321
+#define MOVE_COSMIC_POWER 322
+#define MOVE_WATER_SPOUT 323
+#define MOVE_SIGNAL_BEAM 324
+#define MOVE_SHADOW_PUNCH 325
+#define MOVE_EXTRASENSORY 326
+#define MOVE_SKY_UPPERCUT 327
+#define MOVE_SAND_TOMB 328
+#define MOVE_SHEER_COLD 329
+#define MOVE_MUDDY_WATER 330
+#define MOVE_BULLET_SEED 331
+#define MOVE_AERIAL_ACE 332
+#define MOVE_ICICLE_SPEAR 333
+#define MOVE_IRON_DEFENSE 334
+#define MOVE_BLOCK 335
+#define MOVE_HOWL 336
+#define MOVE_DRAGON_CLAW 337
+#define MOVE_FRENZY_PLANT 338
+#define MOVE_BULK_UP 339
+#define MOVE_BOUNCE 340
+#define MOVE_MUD_SHOT 341
+#define MOVE_POISON_TAIL 342
+#define MOVE_COVET 343
+#define MOVE_VOLT_TACKLE 344
+#define MOVE_MAGICAL_LEAF 345
+#define MOVE_WATER_SPORT 346
+#define MOVE_CALM_MIND 347
+#define MOVE_LEAF_BLADE 348
+#define MOVE_DRAGON_DANCE 349
+#define MOVE_ROCK_BLAST 350
+#define MOVE_SHOCK_WAVE 351
+#define MOVE_WATER_PULSE 352
+#define MOVE_DOOM_DESIRE 353
+#define MOVE_PSYCHO_BOOST 354
+
+#endif // GUARD_CONSTANTS_MOVES_H
diff --git a/include/constants/opponents.h b/include/constants/opponents.h
new file mode 100644
index 000000000..d907153bd
--- /dev/null
+++ b/include/constants/opponents.h
@@ -0,0 +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
+
+#endif // GUARD_CONSTANTS_OPPONENTS_H
diff --git a/include/constants/songs.h b/include/constants/songs.h
new file mode 100644
index 000000000..5225f5899
--- /dev/null
+++ b/include/constants/songs.h
@@ -0,0 +1,373 @@
+#ifndef GUARD_CONSTANTS_SONGS_H
+#define GUARD_CONSTANTS_SONGS_H
+
+#define SE_STOP 0
+#define SE_KAIFUKU 1
+#define SE_PC_LOGON 2
+#define SE_PC_OFF 3
+#define SE_PC_ON 4
+#define SE_SELECT 5
+#define SE_WIN_OPEN 6
+#define SE_WALL_HIT 7
+#define SE_DOOR 8
+#define SE_KAIDAN 9
+#define SE_DANSA 10
+#define SE_JITENSYA 11
+#define SE_KOUKA_L 12
+#define SE_KOUKA_M 13
+#define SE_KOUKA_H 14
+#define SE_BOWA2 15
+#define SE_POKE_DEAD 16
+#define SE_NIGERU 17
+#define SE_JIDO_DOA 18
+#define SE_NAMINORI 19
+#define SE_BAN 20
+#define SE_PIN 21
+#define SE_BOO 22
+#define SE_BOWA 23
+#define SE_JYUNI 24
+#define SE_A 25
+#define SE_I 26
+#define SE_U 27
+#define SE_E 28
+#define SE_O 29
+#define SE_N 30
+#define SE_SEIKAI 31
+#define SE_HAZURE 32
+#define SE_EXP 33
+#define SE_JITE_PYOKO 34
+#define SE_MU_PACHI 35
+#define SE_TK_KASYA 36
+#define SE_FU_ZAKU 37
+#define SE_FU_ZAKU2 38
+#define SE_FU_ZUZUZU 39
+#define SE_RU_GASHIN 40
+#define SE_RU_GASYAN 41
+#define SE_RU_BARI 42
+#define SE_RU_HYUU 43
+#define SE_KI_GASYAN 44
+#define SE_TK_WARPIN 45
+#define SE_TK_WARPOUT 46
+#define SE_TU_SAA 47
+#define SE_HI_TURUN 48
+#define SE_TRACK_MOVE 49
+#define SE_TRACK_STOP 50
+#define SE_TRACK_HAIK 51
+#define SE_TRACK_DOOR 52
+#define SE_MOTER 53
+#define SE_CARD 54
+#define SE_SAVE 55
+#define SE_KON 56
+#define SE_KON2 57
+#define SE_KON3 58
+#define SE_KON4 59
+#define SE_SUIKOMU 60
+#define SE_NAGERU 61
+#define SE_TOY_C 62
+#define SE_TOY_D 63
+#define SE_TOY_E 64
+#define SE_TOY_F 65
+#define SE_TOY_G 66
+#define SE_TOY_A 67
+#define SE_TOY_B 68
+#define SE_TOY_C1 69
+#define SE_MIZU 70
+#define SE_HASHI 71
+#define SE_DAUGI 72
+#define SE_PINPON 73
+#define SE_FUUSEN1 74
+#define SE_FUUSEN2 75
+#define SE_FUUSEN3 76
+#define SE_TOY_KABE 77
+#define SE_TOY_DANGO 78
+#define SE_DOKU 79
+#define SE_ESUKA 80
+#define SE_T_AME 81
+#define SE_T_AME_E 82
+#define SE_T_OOAME 83
+#define SE_T_OOAME_E 84
+#define SE_T_KOAME 85
+#define SE_T_KOAME_E 86
+#define SE_T_KAMI 87
+#define SE_T_KAMI2 88
+#define SE_ELEBETA 89
+#define SE_HINSI 90
+#define SE_EXPMAX 91
+#define SE_TAMAKORO 92
+#define SE_TAMAKORO_E 93
+#define SE_BASABASA 94
+#define SE_REGI 95
+#define SE_C_GAJI 96
+#define SE_C_MAKU_U 97
+#define SE_C_MAKU_D 98
+#define SE_C_PASI 99
+#define SE_C_SYU 100
+#define SE_C_PIKON 101
+#define SE_REAPOKE 102
+#define SE_OP_BASYU 103
+#define SE_BT_START 104
+#define SE_DENDOU 105
+#define SE_JIHANKI 106
+#define SE_TAMA 107
+#define SE_Z_SCROLL 108
+#define SE_Z_PAGE 109
+#define SE_PN_ON 110
+#define SE_PN_OFF 111
+#define SE_Z_SEARCH 112
+#define SE_TAMAGO 113
+#define SE_TB_START 114
+#define SE_TB_KON 115
+#define SE_TB_KARA 116
+#define SE_BIDORO 117
+#define SE_W085 118
+#define SE_W085B 119
+#define SE_W231 120
+#define SE_W171 121
+#define SE_W233 122
+#define SE_W233B 123
+#define SE_W145 124
+#define SE_W145B 125
+#define SE_W145C 126
+#define SE_W240 127
+#define SE_W015 128
+#define SE_W081 129
+#define SE_W081B 130
+#define SE_W088 131
+#define SE_W016 132
+#define SE_W016B 133
+#define SE_W003 134
+#define SE_W104 135
+#define SE_W013 136
+#define SE_W196 137
+#define SE_W086 138
+#define SE_W004 139
+#define SE_W025 140
+#define SE_W025B 141
+#define SE_W152 142
+#define SE_W026 143
+#define SE_W172 144
+#define SE_W172B 145
+#define SE_W053 146
+#define SE_W007 147
+#define SE_W092 148
+#define SE_W221 149
+#define SE_W221B 150
+#define SE_W052 151
+#define SE_W036 152
+#define SE_W059 153
+#define SE_W059B 154
+#define SE_W010 155
+#define SE_W011 156
+#define SE_W017 157
+#define SE_W019 158
+#define SE_W028 159
+#define SE_W013B 160
+#define SE_W044 161
+#define SE_W029 162
+#define SE_W057 163
+#define SE_W056 164
+#define SE_W250 165
+#define SE_W030 166
+#define SE_W039 167
+#define SE_W054 168
+#define SE_W077 169
+#define SE_W020 170
+#define SE_W082 171
+#define SE_W047 172
+#define SE_W195 173
+#define SE_W006 174
+#define SE_W091 175
+#define SE_W146 176
+#define SE_W120 177
+#define SE_W153 178
+#define SE_W071B 179
+#define SE_W071 180
+#define SE_W103 181
+#define SE_W062 182
+#define SE_W062B 183
+#define SE_W048 184
+#define SE_W187 185
+#define SE_W118 186
+#define SE_W155 187
+#define SE_W122 188
+#define SE_W060 189
+#define SE_W185 190
+#define SE_W014 191
+#define SE_W043 192
+#define SE_W207 193
+#define SE_W207B 194
+#define SE_W215 195
+#define SE_W109 196
+#define SE_W173 197
+#define SE_W280 198
+#define SE_W202 199
+#define SE_W060B 200
+#define SE_W076 201
+#define SE_W080 202
+#define SE_W100 203
+#define SE_W107 204
+#define SE_W166 205
+#define SE_W129 206
+#define SE_W115 207
+#define SE_W112 208
+#define SE_W197 209
+#define SE_W199 210
+#define SE_W236 211
+#define SE_W204 212
+#define SE_W268 213
+#define SE_W070 214
+#define SE_W063 215
+#define SE_W127 216
+#define SE_W179 217
+#define SE_W151 218
+#define SE_W201 219
+#define SE_W161 220
+#define SE_W161B 221
+#define SE_W227 222
+#define SE_W227B 223
+#define SE_W226 224
+#define SE_W208 225
+#define SE_W213 226
+#define SE_W213B 227
+#define SE_W234 228
+#define SE_W260 229
+#define SE_W328 230
+#define SE_W320 231
+#define SE_W255 232
+#define SE_W291 233
+#define SE_W089 234
+#define SE_W239 235
+#define SE_W230 236
+#define SE_W281 237
+#define SE_W327 238
+#define SE_W287 239
+#define SE_W257 240
+#define SE_W253 241
+#define SE_W258 242
+#define SE_W322 243
+#define SE_W298 244
+#define SE_W287B 245
+#define SE_W114 246
+#define SE_W063B 247
+#define BGM_STOP 349
+#define BGM_TETSUJI 350
+#define BGM_FIELD13 351
+#define BGM_KACHI22 352
+#define BGM_KACHI2 353
+#define BGM_KACHI3 354
+#define BGM_KACHI5 355
+#define BGM_PCC 356
+#define BGM_NIBI 357
+#define BGM_SUIKUN 358
+#define BGM_DOORO1 359
+#define BGM_DOORO_X1 360
+#define BGM_DOORO_X3 361
+#define BGM_MACHI_S2 362
+#define BGM_MACHI_S4 363
+#define BGM_GIM 364
+#define BGM_NAMINORI 365
+#define BGM_DAN01 366
+#define BGM_FANFA1 367
+#define BGM_ME_ASA 368
+#define BGM_ME_BACHI 369
+#define BGM_FANFA4 370
+#define BGM_FANFA5 371
+#define BGM_ME_WAZA 372
+#define BGM_BIJYUTU 373
+#define BGM_DOORO_X4 374
+#define BGM_FUNE_KAN 375
+#define BGM_ME_SHINKA 376
+#define BGM_SHINKA 377
+#define BGM_ME_WASURE 378
+#define BGM_SYOUJOEYE 379
+#define BGM_BOYEYE 380
+#define BGM_DAN02 381
+#define BGM_MACHI_S3 382
+#define BGM_ODAMAKI 383
+#define BGM_B_TOWER 384
+#define BGM_SWIMEYE 385
+#define BGM_DAN03 386
+#define BGM_ME_KINOMI 387
+#define BGM_ME_TAMA 388
+#define BGM_ME_B_BIG 389
+#define BGM_ME_B_SMALL 390
+#define BGM_ME_ZANNEN 391
+#define BGM_BD_TIME 392
+#define BGM_TEST1 393
+#define BGM_TEST2 394
+#define BGM_TEST3 395
+#define BGM_TEST4 396
+#define BGM_TEST 397
+#define BGM_GOMACHI0 398
+#define BGM_GOTOWN 399
+#define BGM_POKECEN 400
+#define BGM_NEXTROAD 401
+#define BGM_GRANROAD 402
+#define BGM_CYCLING 403
+#define BGM_FRIENDLY 404
+#define BGM_MISHIRO 405
+#define BGM_TOZAN 406
+#define BGM_GIRLEYE 407
+#define BGM_MINAMO 408
+#define BGM_ASHROAD 409
+#define BGM_EVENT0 410
+#define BGM_DEEPDEEP 411
+#define BGM_KACHI1 412
+#define BGM_TITLE3 413
+#define BGM_DEMO1 414
+#define BGM_GIRL_SUP 415
+#define BGM_HAGESHII 416
+#define BGM_KAKKOII 417
+#define BGM_KAZANBAI 418
+#define BGM_AQA_0 419
+#define BGM_TSURETEK 420
+#define BGM_BOY_SUP 421
+#define BGM_RAINBOW 422
+#define BGM_AYASII 423
+#define BGM_KACHI4 424
+#define BGM_ROPEWAY 425
+#define BGM_CASINO 426
+#define BGM_HIGHTOWN 427
+#define BGM_SAFARI 428
+#define BGM_C_ROAD 429
+#define BGM_AJITO 430
+#define BGM_M_BOAT 431
+#define BGM_M_DUNGON 432
+#define BGM_FINECITY 433
+#define BGM_MACHUPI 434
+#define BGM_P_SCHOOL 435
+#define BGM_DENDOU 436
+#define BGM_TONEKUSA 437
+#define BGM_MABOROSI 438
+#define BGM_CON_FAN 439
+#define BGM_CONTEST0 440
+#define BGM_MGM0 441
+#define BGM_T_BATTLE 442
+#define BGM_OOAME 443
+#define BGM_HIDERI 444
+#define BGM_RUNECITY 445
+#define BGM_CON_K 446
+#define BGM_EIKOU_R 447
+#define BGM_KARAKURI 448
+#define BGM_HUTAGO 449
+#define BGM_SITENNOU 450
+#define BGM_YAMA_EYE 451
+#define BGM_CONLOBBY 452
+#define BGM_INTER_V 453
+#define BGM_DAIGO 454
+#define BGM_THANKFOR 455
+#define BGM_END 456
+#define BGM_BATTLE27 457
+#define BGM_BATTLE31 458
+#define BGM_BATTLE20 459
+#define BGM_BATTLE32 460
+#define BGM_BATTLE33 461
+#define BGM_BATTLE36 462
+#define BGM_BATTLE34 463
+#define BGM_BATTLE35 464
+#define BGM_BATTLE38 465
+#define BGM_BATTLE30 466
+
+#define BGM_ROUTE_118 0x7FFF // What is this for?
+
+#endif // GUARD_CONSTANTS_SONGS_H
diff --git a/include/constants/species.h b/include/constants/species.h
new file mode 100644
index 000000000..f698ada14
--- /dev/null
+++ b/include/constants/species.h
@@ -0,0 +1,450 @@
+#ifndef GUARD_CONSTANTS_SPECIES_H
+#define GUARD_CONSTANTS_SPECIES_H
+
+#define SPECIES_NONE 0
+#define SPECIES_BULBASAUR 1
+#define SPECIES_IVYSAUR 2
+#define SPECIES_VENUSAUR 3
+#define SPECIES_CHARMANDER 4
+#define SPECIES_CHARMELEON 5
+#define SPECIES_CHARIZARD 6
+#define SPECIES_SQUIRTLE 7
+#define SPECIES_WARTORTLE 8
+#define SPECIES_BLASTOISE 9
+#define SPECIES_CATERPIE 10
+#define SPECIES_METAPOD 11
+#define SPECIES_BUTTERFREE 12
+#define SPECIES_WEEDLE 13
+#define SPECIES_KAKUNA 14
+#define SPECIES_BEEDRILL 15
+#define SPECIES_PIDGEY 16
+#define SPECIES_PIDGEOTTO 17
+#define SPECIES_PIDGEOT 18
+#define SPECIES_RATTATA 19
+#define SPECIES_RATICATE 20
+#define SPECIES_SPEAROW 21
+#define SPECIES_FEAROW 22
+#define SPECIES_EKANS 23
+#define SPECIES_ARBOK 24
+#define SPECIES_PIKACHU 25
+#define SPECIES_RAICHU 26
+#define SPECIES_SANDSHREW 27
+#define SPECIES_SANDSLASH 28
+#define SPECIES_NIDORAN_F 29
+#define SPECIES_NIDORINA 30
+#define SPECIES_NIDOQUEEN 31
+#define SPECIES_NIDORAN_M 32
+#define SPECIES_NIDORINO 33
+#define SPECIES_NIDOKING 34
+#define SPECIES_CLEFAIRY 35
+#define SPECIES_CLEFABLE 36
+#define SPECIES_VULPIX 37
+#define SPECIES_NINETALES 38
+#define SPECIES_JIGGLYPUFF 39
+#define SPECIES_WIGGLYTUFF 40
+#define SPECIES_ZUBAT 41
+#define SPECIES_GOLBAT 42
+#define SPECIES_ODDISH 43
+#define SPECIES_GLOOM 44
+#define SPECIES_VILEPLUME 45
+#define SPECIES_PARAS 46
+#define SPECIES_PARASECT 47
+#define SPECIES_VENONAT 48
+#define SPECIES_VENOMOTH 49
+#define SPECIES_DIGLETT 50
+#define SPECIES_DUGTRIO 51
+#define SPECIES_MEOWTH 52
+#define SPECIES_PERSIAN 53
+#define SPECIES_PSYDUCK 54
+#define SPECIES_GOLDUCK 55
+#define SPECIES_MANKEY 56
+#define SPECIES_PRIMEAPE 57
+#define SPECIES_GROWLITHE 58
+#define SPECIES_ARCANINE 59
+#define SPECIES_POLIWAG 60
+#define SPECIES_POLIWHIRL 61
+#define SPECIES_POLIWRATH 62
+#define SPECIES_ABRA 63
+#define SPECIES_KADABRA 64
+#define SPECIES_ALAKAZAM 65
+#define SPECIES_MACHOP 66
+#define SPECIES_MACHOKE 67
+#define SPECIES_MACHAMP 68
+#define SPECIES_BELLSPROUT 69
+#define SPECIES_WEEPINBELL 70
+#define SPECIES_VICTREEBEL 71
+#define SPECIES_TENTACOOL 72
+#define SPECIES_TENTACRUEL 73
+#define SPECIES_GEODUDE 74
+#define SPECIES_GRAVELER 75
+#define SPECIES_GOLEM 76
+#define SPECIES_PONYTA 77
+#define SPECIES_RAPIDASH 78
+#define SPECIES_SLOWPOKE 79
+#define SPECIES_SLOWBRO 80
+#define SPECIES_MAGNEMITE 81
+#define SPECIES_MAGNETON 82
+#define SPECIES_FARFETCHD 83
+#define SPECIES_DODUO 84
+#define SPECIES_DODRIO 85
+#define SPECIES_SEEL 86
+#define SPECIES_DEWGONG 87
+#define SPECIES_GRIMER 88
+#define SPECIES_MUK 89
+#define SPECIES_SHELLDER 90
+#define SPECIES_CLOYSTER 91
+#define SPECIES_GASTLY 92
+#define SPECIES_HAUNTER 93
+#define SPECIES_GENGAR 94
+#define SPECIES_ONIX 95
+#define SPECIES_DROWZEE 96
+#define SPECIES_HYPNO 97
+#define SPECIES_KRABBY 98
+#define SPECIES_KINGLER 99
+#define SPECIES_VOLTORB 100
+#define SPECIES_ELECTRODE 101
+#define SPECIES_EXEGGCUTE 102
+#define SPECIES_EXEGGUTOR 103
+#define SPECIES_CUBONE 104
+#define SPECIES_MAROWAK 105
+#define SPECIES_HITMONLEE 106
+#define SPECIES_HITMONCHAN 107
+#define SPECIES_LICKITUNG 108
+#define SPECIES_KOFFING 109
+#define SPECIES_WEEZING 110
+#define SPECIES_RHYHORN 111
+#define SPECIES_RHYDON 112
+#define SPECIES_CHANSEY 113
+#define SPECIES_TANGELA 114
+#define SPECIES_KANGASKHAN 115
+#define SPECIES_HORSEA 116
+#define SPECIES_SEADRA 117
+#define SPECIES_GOLDEEN 118
+#define SPECIES_SEAKING 119
+#define SPECIES_STARYU 120
+#define SPECIES_STARMIE 121
+#define SPECIES_MR_MIME 122
+#define SPECIES_SCYTHER 123
+#define SPECIES_JYNX 124
+#define SPECIES_ELECTABUZZ 125
+#define SPECIES_MAGMAR 126
+#define SPECIES_PINSIR 127
+#define SPECIES_TAUROS 128
+#define SPECIES_MAGIKARP 129
+#define SPECIES_GYARADOS 130
+#define SPECIES_LAPRAS 131
+#define SPECIES_DITTO 132
+#define SPECIES_EEVEE 133
+#define SPECIES_VAPOREON 134
+#define SPECIES_JOLTEON 135
+#define SPECIES_FLAREON 136
+#define SPECIES_PORYGON 137
+#define SPECIES_OMANYTE 138
+#define SPECIES_OMASTAR 139
+#define SPECIES_KABUTO 140
+#define SPECIES_KABUTOPS 141
+#define SPECIES_AERODACTYL 142
+#define SPECIES_SNORLAX 143
+#define SPECIES_ARTICUNO 144
+#define SPECIES_ZAPDOS 145
+#define SPECIES_MOLTRES 146
+#define SPECIES_DRATINI 147
+#define SPECIES_DRAGONAIR 148
+#define SPECIES_DRAGONITE 149
+#define SPECIES_MEWTWO 150
+#define SPECIES_MEW 151
+#define SPECIES_CHIKORITA 152
+#define SPECIES_BAYLEEF 153
+#define SPECIES_MEGANIUM 154
+#define SPECIES_CYNDAQUIL 155
+#define SPECIES_QUILAVA 156
+#define SPECIES_TYPHLOSION 157
+#define SPECIES_TOTODILE 158
+#define SPECIES_CROCONAW 159
+#define SPECIES_FERALIGATR 160
+#define SPECIES_SENTRET 161
+#define SPECIES_FURRET 162
+#define SPECIES_HOOTHOOT 163
+#define SPECIES_NOCTOWL 164
+#define SPECIES_LEDYBA 165
+#define SPECIES_LEDIAN 166
+#define SPECIES_SPINARAK 167
+#define SPECIES_ARIADOS 168
+#define SPECIES_CROBAT 169
+#define SPECIES_CHINCHOU 170
+#define SPECIES_LANTURN 171
+#define SPECIES_PICHU 172
+#define SPECIES_CLEFFA 173
+#define SPECIES_IGGLYBUFF 174
+#define SPECIES_TOGEPI 175
+#define SPECIES_TOGETIC 176
+#define SPECIES_NATU 177
+#define SPECIES_XATU 178
+#define SPECIES_MAREEP 179
+#define SPECIES_FLAAFFY 180
+#define SPECIES_AMPHAROS 181
+#define SPECIES_BELLOSSOM 182
+#define SPECIES_MARILL 183
+#define SPECIES_AZUMARILL 184
+#define SPECIES_SUDOWOODO 185
+#define SPECIES_POLITOED 186
+#define SPECIES_HOPPIP 187
+#define SPECIES_SKIPLOOM 188
+#define SPECIES_JUMPLUFF 189
+#define SPECIES_AIPOM 190
+#define SPECIES_SUNKERN 191
+#define SPECIES_SUNFLORA 192
+#define SPECIES_YANMA 193
+#define SPECIES_WOOPER 194
+#define SPECIES_QUAGSIRE 195
+#define SPECIES_ESPEON 196
+#define SPECIES_UMBREON 197
+#define SPECIES_MURKROW 198
+#define SPECIES_SLOWKING 199
+#define SPECIES_MISDREAVUS 200
+#define SPECIES_UNOWN 201
+#define SPECIES_WOBBUFFET 202
+#define SPECIES_GIRAFARIG 203
+#define SPECIES_PINECO 204
+#define SPECIES_FORRETRESS 205
+#define SPECIES_DUNSPARCE 206
+#define SPECIES_GLIGAR 207
+#define SPECIES_STEELIX 208
+#define SPECIES_SNUBBULL 209
+#define SPECIES_GRANBULL 210
+#define SPECIES_QWILFISH 211
+#define SPECIES_SCIZOR 212
+#define SPECIES_SHUCKLE 213
+#define SPECIES_HERACROSS 214
+#define SPECIES_SNEASEL 215
+#define SPECIES_TEDDIURSA 216
+#define SPECIES_URSARING 217
+#define SPECIES_SLUGMA 218
+#define SPECIES_MAGCARGO 219
+#define SPECIES_SWINUB 220
+#define SPECIES_PILOSWINE 221
+#define SPECIES_CORSOLA 222
+#define SPECIES_REMORAID 223
+#define SPECIES_OCTILLERY 224
+#define SPECIES_DELIBIRD 225
+#define SPECIES_MANTINE 226
+#define SPECIES_SKARMORY 227
+#define SPECIES_HOUNDOUR 228
+#define SPECIES_HOUNDOOM 229
+#define SPECIES_KINGDRA 230
+#define SPECIES_PHANPY 231
+#define SPECIES_DONPHAN 232
+#define SPECIES_PORYGON2 233
+#define SPECIES_STANTLER 234
+#define SPECIES_SMEARGLE 235
+#define SPECIES_TYROGUE 236
+#define SPECIES_HITMONTOP 237
+#define SPECIES_SMOOCHUM 238
+#define SPECIES_ELEKID 239
+#define SPECIES_MAGBY 240
+#define SPECIES_MILTANK 241
+#define SPECIES_BLISSEY 242
+#define SPECIES_RAIKOU 243
+#define SPECIES_ENTEI 244
+#define SPECIES_SUICUNE 245
+#define SPECIES_LARVITAR 246
+#define SPECIES_PUPITAR 247
+#define SPECIES_TYRANITAR 248
+#define SPECIES_LUGIA 249
+#define SPECIES_HO_OH 250
+#define SPECIES_CELEBI 251
+
+#define SPECIES_OLD_UNOWN_B 252
+#define SPECIES_OLD_UNOWN_C 253
+#define SPECIES_OLD_UNOWN_D 254
+#define SPECIES_OLD_UNOWN_E 255
+#define SPECIES_OLD_UNOWN_F 256
+#define SPECIES_OLD_UNOWN_G 257
+#define SPECIES_OLD_UNOWN_H 258
+#define SPECIES_OLD_UNOWN_I 259
+#define SPECIES_OLD_UNOWN_J 260
+#define SPECIES_OLD_UNOWN_K 261
+#define SPECIES_OLD_UNOWN_L 262
+#define SPECIES_OLD_UNOWN_M 263
+#define SPECIES_OLD_UNOWN_N 264
+#define SPECIES_OLD_UNOWN_O 265
+#define SPECIES_OLD_UNOWN_P 266
+#define SPECIES_OLD_UNOWN_Q 267
+#define SPECIES_OLD_UNOWN_R 268
+#define SPECIES_OLD_UNOWN_S 269
+#define SPECIES_OLD_UNOWN_T 270
+#define SPECIES_OLD_UNOWN_U 271
+#define SPECIES_OLD_UNOWN_V 272
+#define SPECIES_OLD_UNOWN_W 273
+#define SPECIES_OLD_UNOWN_X 274
+#define SPECIES_OLD_UNOWN_Y 275
+#define SPECIES_OLD_UNOWN_Z 276
+
+#define SPECIES_TREECKO 277
+#define SPECIES_GROVYLE 278
+#define SPECIES_SCEPTILE 279
+#define SPECIES_TORCHIC 280
+#define SPECIES_COMBUSKEN 281
+#define SPECIES_BLAZIKEN 282
+#define SPECIES_MUDKIP 283
+#define SPECIES_MARSHTOMP 284
+#define SPECIES_SWAMPERT 285
+#define SPECIES_POOCHYENA 286
+#define SPECIES_MIGHTYENA 287
+#define SPECIES_ZIGZAGOON 288
+#define SPECIES_LINOONE 289
+#define SPECIES_WURMPLE 290
+#define SPECIES_SILCOON 291
+#define SPECIES_BEAUTIFLY 292
+#define SPECIES_CASCOON 293
+#define SPECIES_DUSTOX 294
+#define SPECIES_LOTAD 295
+#define SPECIES_LOMBRE 296
+#define SPECIES_LUDICOLO 297
+#define SPECIES_SEEDOT 298
+#define SPECIES_NUZLEAF 299
+#define SPECIES_SHIFTRY 300
+#define SPECIES_NINCADA 301
+#define SPECIES_NINJASK 302
+#define SPECIES_SHEDINJA 303
+#define SPECIES_TAILLOW 304
+#define SPECIES_SWELLOW 305
+#define SPECIES_SHROOMISH 306
+#define SPECIES_BRELOOM 307
+#define SPECIES_SPINDA 308
+#define SPECIES_WINGULL 309
+#define SPECIES_PELIPPER 310
+#define SPECIES_SURSKIT 311
+#define SPECIES_MASQUERAIN 312
+#define SPECIES_WAILMER 313
+#define SPECIES_WAILORD 314
+#define SPECIES_SKITTY 315
+#define SPECIES_DELCATTY 316
+#define SPECIES_KECLEON 317
+#define SPECIES_BALTOY 318
+#define SPECIES_CLAYDOL 319
+#define SPECIES_NOSEPASS 320
+#define SPECIES_TORKOAL 321
+#define SPECIES_SABLEYE 322
+#define SPECIES_BARBOACH 323
+#define SPECIES_WHISCASH 324
+#define SPECIES_LUVDISC 325
+#define SPECIES_CORPHISH 326
+#define SPECIES_CRAWDAUNT 327
+#define SPECIES_FEEBAS 328
+#define SPECIES_MILOTIC 329
+#define SPECIES_CARVANHA 330
+#define SPECIES_SHARPEDO 331
+#define SPECIES_TRAPINCH 332
+#define SPECIES_VIBRAVA 333
+#define SPECIES_FLYGON 334
+#define SPECIES_MAKUHITA 335
+#define SPECIES_HARIYAMA 336
+#define SPECIES_ELECTRIKE 337
+#define SPECIES_MANECTRIC 338
+#define SPECIES_NUMEL 339
+#define SPECIES_CAMERUPT 340
+#define SPECIES_SPHEAL 341
+#define SPECIES_SEALEO 342
+#define SPECIES_WALREIN 343
+#define SPECIES_CACNEA 344
+#define SPECIES_CACTURNE 345
+#define SPECIES_SNORUNT 346
+#define SPECIES_GLALIE 347
+#define SPECIES_LUNATONE 348
+#define SPECIES_SOLROCK 349
+#define SPECIES_AZURILL 350
+#define SPECIES_SPOINK 351
+#define SPECIES_GRUMPIG 352
+#define SPECIES_PLUSLE 353
+#define SPECIES_MINUN 354
+#define SPECIES_MAWILE 355
+#define SPECIES_MEDITITE 356
+#define SPECIES_MEDICHAM 357
+#define SPECIES_SWABLU 358
+#define SPECIES_ALTARIA 359
+#define SPECIES_WYNAUT 360
+#define SPECIES_DUSKULL 361
+#define SPECIES_DUSCLOPS 362
+#define SPECIES_ROSELIA 363
+#define SPECIES_SLAKOTH 364
+#define SPECIES_VIGOROTH 365
+#define SPECIES_SLAKING 366
+#define SPECIES_GULPIN 367
+#define SPECIES_SWALOT 368
+#define SPECIES_TROPIUS 369
+#define SPECIES_WHISMUR 370
+#define SPECIES_LOUDRED 371
+#define SPECIES_EXPLOUD 372
+#define SPECIES_CLAMPERL 373
+#define SPECIES_HUNTAIL 374
+#define SPECIES_GOREBYSS 375
+#define SPECIES_ABSOL 376
+#define SPECIES_SHUPPET 377
+#define SPECIES_BANETTE 378
+#define SPECIES_SEVIPER 379
+#define SPECIES_ZANGOOSE 380
+#define SPECIES_RELICANTH 381
+#define SPECIES_ARON 382
+#define SPECIES_LAIRON 383
+#define SPECIES_AGGRON 384
+#define SPECIES_CASTFORM 385
+#define SPECIES_VOLBEAT 386
+#define SPECIES_ILLUMISE 387
+#define SPECIES_LILEEP 388
+#define SPECIES_CRADILY 389
+#define SPECIES_ANORITH 390
+#define SPECIES_ARMALDO 391
+#define SPECIES_RALTS 392
+#define SPECIES_KIRLIA 393
+#define SPECIES_GARDEVOIR 394
+#define SPECIES_BAGON 395
+#define SPECIES_SHELGON 396
+#define SPECIES_SALAMENCE 397
+#define SPECIES_BELDUM 398
+#define SPECIES_METANG 399
+#define SPECIES_METAGROSS 400
+#define SPECIES_REGIROCK 401
+#define SPECIES_REGICE 402
+#define SPECIES_REGISTEEL 403
+#define SPECIES_KYOGRE 404
+#define SPECIES_GROUDON 405
+#define SPECIES_RAYQUAZA 406
+#define SPECIES_LATIAS 407
+#define SPECIES_LATIOS 408
+#define SPECIES_JIRACHI 409
+#define SPECIES_DEOXYS 410
+#define SPECIES_CHIMECHO 411
+#define SPECIES_EGG 412
+
+#define SPECIES_UNOWN_B 413
+#define SPECIES_UNOWN_C 414
+#define SPECIES_UNOWN_D 415
+#define SPECIES_UNOWN_E 416
+#define SPECIES_UNOWN_F 417
+#define SPECIES_UNOWN_G 418
+#define SPECIES_UNOWN_H 419
+#define SPECIES_UNOWN_I 420
+#define SPECIES_UNOWN_J 421
+#define SPECIES_UNOWN_K 422
+#define SPECIES_UNOWN_L 423
+#define SPECIES_UNOWN_M 424
+#define SPECIES_UNOWN_N 425
+#define SPECIES_UNOWN_O 426
+#define SPECIES_UNOWN_P 427
+#define SPECIES_UNOWN_Q 428
+#define SPECIES_UNOWN_R 429
+#define SPECIES_UNOWN_S 430
+#define SPECIES_UNOWN_T 431
+#define SPECIES_UNOWN_U 432
+#define SPECIES_UNOWN_V 433
+#define SPECIES_UNOWN_W 434
+#define SPECIES_UNOWN_X 435
+#define SPECIES_UNOWN_Y 436
+#define SPECIES_UNOWN_Z 437
+#define SPECIES_UNOWN_EMARK 438
+#define SPECIES_UNOWN_QMARK 439
+
+#define NUM_SPECIES SPECIES_EGG
+
+#endif // GUARD_CONSTANTS_SPECIES_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
new file mode 100644
index 000000000..21834879f
--- /dev/null
+++ b/include/constants/vars.h
@@ -0,0 +1,56 @@
+#ifndef GUARD_CONSTANTS_VARS_H
+#define GUARD_CONSTANTS_VARS_H
+
+#define VAR_0x3F20 0x3F20
+
+#define VAR_0x4000 0x4000
+#define VAR_0x4001 0x4001
+#define VAR_0x4002 0x4002
+#define VAR_0x4003 0x4003
+#define VAR_0x4004 0x4004
+#define VAR_0x4005 0x4005
+#define VAR_0x4006 0x4006
+#define VAR_0x4007 0x4007
+#define VAR_0x4008 0x4008
+#define VAR_0x4009 0x4009
+#define VAR_0x400A 0x400A
+#define VAR_0x401F 0x401F
+#define VAR_RECYCLE_GOODS 0x4020
+#define VAR_REPEL_STEP_COUNT 0x4021
+#define VAR_ICE_STEP_COUNT 0x4022
+#define VAR_FIRST_POKE 0x4023
+#define VAR_MIRAGE_RND_H 0x4024
+#define VAR_MIRAGE_RND_L 0x4025
+#define VAR_SECRET_BASE_MAP 0x4026
+
+#define VAR_HAPPINESS_STEP_COUNTER 0x402A
+#define VAR_POISON_STEP_COUNTER 0x402B
+#define VAR_RESET_RTC_ENABLE 0x402C
+
+#define VAR_DAYS 0x4040
+
+#define VAR_DEPT_STORE_FLOOR 0x4043
+#define VAR_POKELOT_PRIZE 0x4045
+#define VAR_NATIONAL_DEX 0x4046
+#define VAR_SHROOMISH_SIZE_RECORD 0x4047
+#define VAR_ASH_GATHER_COUNT 0x4048
+#define VAR_BIRCH_STATE 0x4049
+#define VAR_CRUISE_STEP_COUNT 0x404A
+#define VAR_POKELOT_RND1 0x404B
+#define VAR_POKELOT_RND2 0x404C
+
+#define VAR_BARBOACH_SIZE_RECORD 0x404F
+
+#define VAR_0x4054 0x4054
+
+#define VAR_0x4089 0x4089
+#define VAR_0x4095 0x4095
+#define VAR_0x4097 0x4097
+#define VAR_0x409a 0x409a
+#define VAR_WEATHER_INSTITUTE_CLEARED 0x040B3
+#define VAR_PORTHOLE 0x40B4
+
+#define VAR_0x40BC 0x40BC
+#define VAR_0x40C2 0x40C2
+
+#endif // GUARD_CONSTANTS_VARS_H
diff --git a/include/decoration.h b/include/decoration.h
index ead621c5f..c841bbfc1 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -1,130 +1,6 @@
#ifndef GUARD_DECORATION_H
#define GUARD_DECORATION_H
-enum DecoId {
- /*000*/ DECOR_NONE,
- /*001*/ DECOR_SMALL_DESK,
- /*002*/ DECOR_POKEMON_DESK,
- /*003*/ DECOR_HEAVY_DESK,
- /*004*/ DECOR_RAGGED_DESK,
- /*005*/ DECOR_COMFORT_DESK,
- /*006*/ DECOR_PRETTY_DESK,
- /*007*/ DECOR_BRICK_DESK,
- /*008*/ DECOR_CAMP_DESK,
- /*009*/ DECOR_HARD_DESK,
- /*010*/ DECOR_SMALL_CHAIR,
- /*011*/ DECOR_POKEMON_CHAIR,
- /*012*/ DECOR_HEAVY_CHAIR,
- /*013*/ DECOR_PRETTY_CHAIR,
- /*014*/ DECOR_COMFORT_CHAIR,
- /*015*/ DECOR_RAGGED_CHAIR,
- /*016*/ DECOR_BRICK_CHAIR,
- /*017*/ DECOR_CAMP_CHAIR,
- /*018*/ DECOR_HARD_CHAIR,
- /*019*/ DECOR_RED_PLANT,
- /*020*/ DECOR_TROPICAL_PLANT,
- /*021*/ DECOR_PRETTY_FLOWERS,
- /*022*/ DECOR_COLORFUL_PLANT,
- /*023*/ DECOR_BIG_PLANT,
- /*024*/ DECOR_GORGEOUS_PLANT,
- /*025*/ DECOR_RED_BRICK,
- /*026*/ DECOR_YELLOW_BRICK,
- /*027*/ DECOR_BLUE_BRICK,
- /*028*/ DECOR_RED_BALLOON,
- /*029*/ DECOR_BLUE_BALLOON,
- /*030*/ DECOR_YELLOW_BALLOON,
- /*031*/ DECOR_RED_TENT,
- /*032*/ DECOR_BLUE_TENT,
- /*033*/ DECOR_SOLID_BOARD,
- /*034*/ DECOR_SLIDE,
- /*035*/ DECOR_FENCE_LENGTH,
- /*036*/ DECOR_FENCE_WIDTH,
- /*037*/ DECOR_TIRE,
- /*038*/ DECOR_STAND,
- /*039*/ DECOR_MUD_BALL,
- /*040*/ DECOR_BREAKABLE_DOOR,
- /*041*/ DECOR_SAND_ORNAMENT,
- /*042*/ DECOR_SILVER_SHIELD,
- /*043*/ DECOR_GOLD_SHIELD,
- /*044*/ DECOR_GLASS_ORNAMENT,
- /*045*/ DECOR_TV,
- /*046*/ DECOR_ROUND_TV,
- /*047*/ DECOR_CUTE_TV,
- /*048*/ DECOR_GLITTER_MAT,
- /*049*/ DECOR_JUMP_MAT,
- /*050*/ DECOR_SPIN_MAT,
- /*051*/ DECOR_C_LOW_NOTE_MAT,
- /*052*/ DECOR_D_NOTE_MAT,
- /*053*/ DECOR_E_NOTE_MAT,
- /*054*/ DECOR_F_NOTE_MAT,
- /*055*/ DECOR_G_NOTE_MAT,
- /*056*/ DECOR_A_NOTE_MAT,
- /*057*/ DECOR_B_NOTE_MAT,
- /*058*/ DECOR_C_HIGH_NOTE_MAT,
- /*059*/ DECOR_SURF_MAT,
- /*060*/ DECOR_THUNDER_MAT,
- /*061*/ DECOR_FIRE_BLAST_MAT,
- /*062*/ DECOR_POWDER_SNOW_MAT,
- /*063*/ DECOR_ATTRACT_MAT,
- /*064*/ DECOR_FISSURE_MAT,
- /*065*/ DECOR_SPIKES_MAT,
- /*066*/ DECOR_BALL_POSTER,
- /*067*/ DECOR_GREEN_POSTER,
- /*068*/ DECOR_RED_POSTER,
- /*069*/ DECOR_BLUE_POSTER,
- /*070*/ DECOR_CUTE_POSTER,
- /*071*/ DECOR_PIKA_POSTER,
- /*072*/ DECOR_LONG_POSTER,
- /*073*/ DECOR_SEA_POSTER,
- /*074*/ DECOR_SKY_POSTER,
- /*075*/ DECOR_KISS_POSTER,
- /*076*/ DECOR_PICHU_DOLL,
- /*077*/ DECOR_PIKACHU_DOLL,
- /*078*/ DECOR_MARILL_DOLL,
- /*079*/ DECOR_TOGEPI_DOLL,
- /*080*/ DECOR_CYNDAQUIL_DOLL,
- /*081*/ DECOR_CHIKORITA_DOLL,
- /*082*/ DECOR_TOTODILE_DOLL,
- /*083*/ DECOR_JIGGLYPUFF_DOLL,
- /*084*/ DECOR_MEOWTH_DOLL,
- /*085*/ DECOR_CLEFAIRY_DOLL,
- /*086*/ DECOR_DITTO_DOLL,
- /*087*/ DECOR_SMOOCHUM_DOLL,
- /*088*/ DECOR_TREECKO_DOLL,
- /*089*/ DECOR_TORCHIC_DOLL,
- /*090*/ DECOR_MUDKIP_DOLL,
- /*091*/ DECOR_DUSKULL_DOLL,
- /*092*/ DECOR_WYNAUT_DOLL,
- /*093*/ DECOR_BALTOY_DOLL,
- /*094*/ DECOR_KECLEON_DOLL,
- /*095*/ DECOR_AZURILL_DOLL,
- /*096*/ DECOR_SKITTY_DOLL,
- /*097*/ DECOR_SWABLU_DOLL,
- /*098*/ DECOR_GULPIN_DOLL,
- /*099*/ DECOR_LOTAD_DOLL,
- /*100*/ DECOR_SEEDOT_DOLL,
- /*101*/ DECOR_PIKA_CUSHION,
- /*102*/ DECOR_ROUND_CUSHION,
- /*103*/ DECOR_KISS_CUSHION,
- /*104*/ DECOR_ZIGZAG_CUSHION,
- /*105*/ DECOR_SPIN_CUSHION,
- /*106*/ DECOR_DIAMOND_CUSHION,
- /*107*/ DECOR_BALL_CUSHION,
- /*108*/ DECOR_GRASS_CUSHION,
- /*109*/ DECOR_FIRE_CUSHION,
- /*110*/ DECOR_WATER_CUSHION,
- /*111*/ DECOR_SNORLAX_DOLL,
- /*112*/ DECOR_RHYDON_DOLL,
- /*113*/ DECOR_LAPRAS_DOLL,
- /*114*/ DECOR_VENUSAUR_DOLL,
- /*115*/ DECOR_CHARIZARD_DOLL,
- /*116*/ DECOR_BLASTOISE_DOLL,
- /*117*/ DECOR_WAILMER_DOLL,
- /*118*/ DECOR_REGIROCK_DOLL,
- /*119*/ DECOR_REGICE_DOLL,
- /*120*/ DECOR_REGISTEEL_DOLL
-};
-
enum DecorPerm {
/*
* The nomenclature here describes collision and placement permissions, in that order.
diff --git a/include/event_data.h b/include/event_data.h
index f0ab90ae4..c2cae1f35 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -1,7 +1,7 @@
#ifndef GUARD_EVENT_DATA_H
#define GUARD_EVENT_DATA_H
-#include "flags.h"
+#include "constants/flags.h"
#include "vars.h"
void InitEventData(void);
diff --git a/include/global.h b/include/global.h
index f3ec9ce33..889c5609d 100644
--- a/include/global.h
+++ b/include/global.h
@@ -284,7 +284,7 @@ struct SecretBaseRecord
/*0x1B34*/ u8 partyEVs[6];
};
-#include "game_stat.h"
+#include "constants/game_stat.h"
#include "global.fieldmap.h"
#include "global.berry.h"
#include "global.tv.h"
diff --git a/include/items.h b/include/items.h
deleted file mode 100644
index 1a6df42db..000000000
--- a/include/items.h
+++ /dev/null
@@ -1,396 +0,0 @@
-#ifndef GUARD_ITEMS_H
-#define GUARD_ITEMS_H
-
-enum
-{
- ITEM_NONE, // 0x000
- ITEM_MASTER_BALL, // 0x001
- ITEM_ULTRA_BALL, // 0x002
- ITEM_GREAT_BALL, // 0x003
- ITEM_POKE_BALL, // 0x004
- ITEM_SAFARI_BALL, // 0x005
- ITEM_NET_BALL, // 0x006
- ITEM_DIVE_BALL, // 0x007
- ITEM_NEST_BALL, // 0x008
- ITEM_REPEAT_BALL, // 0x009
- ITEM_TIMER_BALL, // 0x00a
- ITEM_LUXURY_BALL, // 0x00b
- ITEM_PREMIER_BALL, // 0x00c
- ITEM_POTION, // 0x00d
- ITEM_ANTIDOTE, // 0x00e
- ITEM_BURN_HEAL, // 0x00f
- ITEM_ICE_HEAL, // 0x010
- ITEM_AWAKENING, // 0x011
- ITEM_PARALYZE_HEAL, // 0x012
- ITEM_FULL_RESTORE, // 0x013
- ITEM_MAX_POTION, // 0x014
- ITEM_HYPER_POTION, // 0x015
- ITEM_SUPER_POTION, // 0x016
- ITEM_FULL_HEAL, // 0x017
- ITEM_REVIVE, // 0x018
- ITEM_MAX_REVIVE, // 0x019
- ITEM_FRESH_WATER, // 0x01a
- ITEM_SODA_POP, // 0x01b
- ITEM_LEMONADE, // 0x01c
- ITEM_MOOMOO_MILK, // 0x01d
- ITEM_ENERGY_POWDER, // 0x01e
- ITEM_ENERGY_ROOT, // 0x01f
- ITEM_HEAL_POWDER, // 0x020
- ITEM_REVIVAL_HERB, // 0x021
- ITEM_ETHER, // 0x022
- ITEM_MAX_ETHER, // 0x023
- ITEM_ELIXIR, // 0x024
- ITEM_MAX_ELIXIR, // 0x025
- ITEM_LAVA_COOKIE, // 0x026
- ITEM_BLUE_FLUTE, // 0x027
- ITEM_YELLOW_FLUTE, // 0x028
- ITEM_RED_FLUTE, // 0x029
- ITEM_BLACK_FLUTE, // 0x02a
- ITEM_WHITE_FLUTE, // 0x02b
- ITEM_BERRY_JUICE, // 0x02c
- ITEM_SACRED_ASH, // 0x02d
- ITEM_SHOAL_SALT, // 0x02e
- ITEM_SHOAL_SHELL, // 0x02f
- ITEM_RED_SHARD, // 0x030
- ITEM_BLUE_SHARD, // 0x031
- ITEM_YELLOW_SHARD, // 0x032
- ITEM_GREEN_SHARD, // 0x033
- ITEM_034,
- ITEM_035,
- ITEM_036,
- ITEM_037,
- ITEM_038,
- ITEM_039,
- ITEM_03A,
- ITEM_03B,
- ITEM_03C,
- ITEM_03D,
- ITEM_03E,
- ITEM_HP_UP, // 0x03f
- ITEM_PROTEIN, // 0x040
- ITEM_IRON, // 0x041
- ITEM_CARBOS, // 0x042
- ITEM_CALCIUM, // 0x043
- ITEM_RARE_CANDY, // 0x044
- ITEM_PP_UP, // 0x045
- ITEM_ZINC, // 0x046
- ITEM_PP_MAX, // 0x047
- ITEM_048,
- ITEM_GUARD_SPEC, // 0x049
- ITEM_DIRE_HIT, // 0x04a
- ITEM_X_ATTACK, // 0x04b
- ITEM_X_DEFEND, // 0x04c
- ITEM_X_SPEED, // 0x04d
- ITEM_X_ACCURACY, // 0x04e
- ITEM_X_SPECIAL, // 0x04f
- ITEM_POKE_DOLL, // 0x050
- ITEM_FLUFFY_TAIL, // 0x051
- ITEM_052,
- ITEM_SUPER_REPEL, // 0x053
- ITEM_MAX_REPEL, // 0x054
- ITEM_ESCAPE_ROPE, // 0x055
- ITEM_REPEL, // 0x056
- ITEM_057,
- ITEM_058,
- ITEM_059,
- ITEM_05A,
- ITEM_05B,
- ITEM_05C,
- ITEM_SUN_STONE, // 0x05d
- ITEM_MOON_STONE, // 0x05e
- ITEM_FIRE_STONE, // 0x05f
- ITEM_THUNDER_STONE, // 0x060
- ITEM_WATER_STONE, // 0x061
- ITEM_LEAF_STONE, // 0x062
- ITEM_063,
- ITEM_064,
- ITEM_065,
- ITEM_066,
- ITEM_TINY_MUSHROOM, // 0x067
- ITEM_BIG_MUSHROOM, // 0x068
- ITEM_069,
- ITEM_PEARL, // 0x06a
- ITEM_BIG_PEARL, // 0x06b
- ITEM_STARDUST, // 0x06c
- ITEM_STAR_PIECE, // 0x06d
- ITEM_NUGGET, // 0x06e
- ITEM_HEART_SCALE, // 0x06f
- ITEM_070,
- ITEM_071,
- ITEM_072,
- ITEM_073,
- ITEM_074,
- ITEM_075,
- ITEM_076,
- ITEM_077,
- ITEM_078,
- ITEM_ORANGE_MAIL, // 0x079
- ITEM_HARBOR_MAIL, // 0x07a
- ITEM_GLITTER_MAIL, // 0x07b
- ITEM_MECH_MAIL, // 0x07c
- ITEM_WOOD_MAIL, // 0x07d
- ITEM_WAVE_MAIL, // 0x07e
- ITEM_BEAD_MAIL, // 0x07f
- ITEM_SHADOW_MAIL, // 0x080
- ITEM_TROPIC_MAIL, // 0x081
- ITEM_DREAM_MAIL, // 0x082
- ITEM_FAB_MAIL, // 0x083
- ITEM_RETRO_MAIL, // 0x084
- ITEM_CHERI_BERRY, // 0x085
- ITEM_CHESTO_BERRY, // 0x086
- ITEM_PECHA_BERRY, // 0x087
- ITEM_RAWST_BERRY, // 0x088
- ITEM_ASPEAR_BERRY, // 0x089
- ITEM_LEPPA_BERRY, // 0x08a
- ITEM_ORAN_BERRY, // 0x08b
- ITEM_PERSIM_BERRY, // 0x08c
- ITEM_LUM_BERRY, // 0x08d
- ITEM_SITRUS_BERRY, // 0x08e
- ITEM_FIGY_BERRY, // 0x08f
- ITEM_WIKI_BERRY, // 0x090
- ITEM_MAGO_BERRY, // 0x091
- ITEM_AGUAV_BERRY, // 0x092
- ITEM_IAPAPA_BERRY, // 0x093
- ITEM_RAZZ_BERRY, // 0x094
- ITEM_BLUK_BERRY, // 0x095
- ITEM_NANAB_BERRY, // 0x096
- ITEM_WEPEAR_BERRY, // 0x097
- ITEM_PINAP_BERRY, // 0x098
- ITEM_POMEG_BERRY, // 0x099
- ITEM_KELPSY_BERRY, // 0x09a
- ITEM_QUALOT_BERRY, // 0x09b
- ITEM_HONDEW_BERRY, // 0x09c
- ITEM_GREPA_BERRY, // 0x09d
- ITEM_TAMATO_BERRY, // 0x09e
- ITEM_CORNN_BERRY, // 0x09f
- ITEM_MAGOST_BERRY, // 0x0a0
- ITEM_RABUTA_BERRY, // 0x0a1
- ITEM_NOMEL_BERRY, // 0x0a2
- ITEM_SPELON_BERRY, // 0x0a3
- ITEM_PAMTRE_BERRY, // 0x0a4
- ITEM_WATMEL_BERRY, // 0x0a5
- ITEM_DURIN_BERRY, // 0x0a6
- ITEM_BELUE_BERRY, // 0x0a7
- ITEM_LIECHI_BERRY, // 0x0a8
- ITEM_GANLON_BERRY, // 0x0a9
- ITEM_SALAC_BERRY, // 0x0aa
- ITEM_PETAYA_BERRY, // 0x0ab
- ITEM_APICOT_BERRY, // 0x0ac
- ITEM_LANSAT_BERRY, // 0x0ad
- ITEM_STARF_BERRY, // 0x0ae
- ITEM_ENIGMA_BERRY, // 0x0af
- ITEM_0B0,
- ITEM_0B1,
- ITEM_0B2,
- ITEM_BRIGHT_POWDER, // 0x0b3
- ITEM_WHITE_HERB, // 0x0b4
- ITEM_MACHO_BRACE, // 0x0b5
- ITEM_EXP_SHARE, // 0x0b6
- ITEM_QUICK_CLAW, // 0x0b7
- ITEM_SOOTHE_BELL, // 0x0b8
- ITEM_MENTAL_HERB, // 0x0b9
- ITEM_CHOICE_BAND, // 0x0ba
- ITEM_KINGS_ROCK, // 0x0bb
- ITEM_SILVER_POWDER, // 0x0bc
- ITEM_AMULET_COIN, // 0x0bd
- ITEM_CLEANSE_TAG, // 0x0be
- ITEM_SOUL_DEW, // 0x0bf
- ITEM_DEEP_SEA_TOOTH, // 0x0c0
- ITEM_DEEP_SEA_SCALE, // 0x0c1
- ITEM_SMOKE_BALL, // 0x0c2
- ITEM_EVERSTONE, // 0x0c3
- ITEM_FOCUS_BAND, // 0x0c4
- ITEM_LUCKY_EGG, // 0x0c5
- ITEM_SCOPE_LENS, // 0x0c6
- ITEM_METAL_COAT, // 0x0c7
- ITEM_LEFTOVERS, // 0x0c8
- ITEM_DRAGON_SCALE, // 0x0c9
- ITEM_LIGHT_BALL, // 0x0ca
- ITEM_SOFT_SAND, // 0x0cb
- ITEM_HARD_STONE, // 0x0cc
- ITEM_MIRACLE_SEED, // 0x0cd
- ITEM_BLACK_GLASSES, // 0x0ce
- ITEM_BLACK_BELT, // 0x0cf
- ITEM_MAGNET, // 0x0d0
- ITEM_MYSTIC_WATER, // 0x0d1
- ITEM_SHARP_BEAK, // 0x0d2
- ITEM_POISON_BARB, // 0x0d3
- ITEM_NEVER_MELT_ICE, // 0x0d4
- ITEM_SPELL_TAG, // 0x0d5
- ITEM_TWISTED_SPOON, // 0x0d6
- ITEM_CHARCOAL, // 0x0d7
- ITEM_DRAGON_FANG, // 0x0d8
- ITEM_SILK_SCARF, // 0x0d9
- ITEM_UP_GRADE, // 0x0da
- ITEM_SHELL_BELL, // 0x0db
- ITEM_SEA_INCENSE, // 0x0dc
- ITEM_LAX_INCENSE, // 0x0dd
- ITEM_LUCKY_PUNCH, // 0x0de
- ITEM_METAL_POWDER, // 0x0df
- ITEM_THICK_CLUB, // 0x0e0
- ITEM_STICK, // 0x0e1
- ITEM_0E2,
- ITEM_0E3,
- ITEM_0E4,
- ITEM_0E5,
- ITEM_0E6,
- ITEM_0E7,
- ITEM_0E8,
- ITEM_0E9,
- ITEM_0EA,
- ITEM_0EB,
- ITEM_0EC,
- ITEM_0ED,
- ITEM_0EE,
- ITEM_0EF,
- ITEM_0F0,
- ITEM_0F1,
- ITEM_0F2,
- ITEM_0F3,
- ITEM_0F4,
- ITEM_0F5,
- ITEM_0F6,
- ITEM_0F7,
- ITEM_0F8,
- ITEM_0F9,
- ITEM_0FA,
- ITEM_0FB,
- ITEM_0FC,
- ITEM_0FD,
- ITEM_RED_SCARF, // 0x0fe
- ITEM_BLUE_SCARF, // 0x0ff
- ITEM_PINK_SCARF, // 0x100
- ITEM_GREEN_SCARF, // 0x101
- ITEM_YELLOW_SCARF, // 0x102
- ITEM_MACH_BIKE, // 0x103
- ITEM_COIN_CASE, // 0x104
- ITEM_ITEMFINDER, // 0x105
- ITEM_OLD_ROD, // 0x106
- ITEM_GOOD_ROD, // 0x107
- ITEM_SUPER_ROD, // 0x108
- ITEM_SS_TICKET, // 0x109
- ITEM_CONTEST_PASS, // 0x10a
- ITEM_10B,
- ITEM_WAILMER_PAIL, // 0x10c
- ITEM_DEVON_GOODS, // 0x10d
- ITEM_SOOT_SACK, // 0x10e
- ITEM_BASEMENT_KEY, // 0x10f
- ITEM_ACRO_BIKE, // 0x110
- ITEM_POKEBLOCK_CASE, // 0x111
- ITEM_LETTER, // 0x112
- ITEM_EON_TICKET, // 0x113
- ITEM_RED_ORB, // 0x114
- ITEM_BLUE_ORB, // 0x115
- ITEM_SCANNER, // 0x116
- ITEM_GO_GOGGLES, // 0x117
- ITEM_METEORITE, // 0x118
- ITEM_ROOM_1_KEY, // 0x119
- ITEM_ROOM_2_KEY, // 0x11a
- ITEM_ROOM_4_KEY, // 0x11b
- ITEM_ROOM_6_KEY, // 0x11c
- ITEM_STORAGE_KEY, // 0x11d
- ITEM_ROOT_FOSSIL, // 0x11e
- ITEM_CLAW_FOSSIL, // 0x11f
- ITEM_DEVON_SCOPE, // 0x120
- ITEM_TM01, // 0x121
- ITEM_TM02, // 0x122
- ITEM_TM03, // 0x123
- ITEM_TM04, // 0x124
- ITEM_TM05, // 0x125
- ITEM_TM06, // 0x126
- ITEM_TM07, // 0x127
- ITEM_TM08, // 0x128
- ITEM_TM09, // 0x129
- ITEM_TM10, // 0x12a
- ITEM_TM11, // 0x12b
- ITEM_TM12, // 0x12c
- ITEM_TM13, // 0x12d
- ITEM_TM14, // 0x12e
- ITEM_TM15, // 0x12f
- ITEM_TM16, // 0x130
- ITEM_TM17, // 0x131
- ITEM_TM18, // 0x132
- ITEM_TM19, // 0x133
- ITEM_TM20, // 0x134
- ITEM_TM21, // 0x135
- ITEM_TM22, // 0x136
- ITEM_TM23, // 0x137
- ITEM_TM24, // 0x138
- ITEM_TM25, // 0x139
- ITEM_TM26, // 0x13a
- ITEM_TM27, // 0x13b
- ITEM_TM28, // 0x13c
- ITEM_TM29, // 0x13d
- ITEM_TM30, // 0x13e
- ITEM_TM31, // 0x13f
- ITEM_TM32, // 0x140
- ITEM_TM33, // 0x141
- ITEM_TM34, // 0x142
- ITEM_TM35, // 0x143
- ITEM_TM36, // 0x144
- ITEM_TM37, // 0x145
- ITEM_TM38, // 0x146
- ITEM_TM39, // 0x147
- ITEM_TM40, // 0x148
- ITEM_TM41, // 0x149
- ITEM_TM42, // 0x14a
- ITEM_TM43, // 0x14b
- ITEM_TM44, // 0x14c
- ITEM_TM45, // 0x14d
- ITEM_TM46, // 0x14e
- ITEM_TM47, // 0x14f
- ITEM_TM48, // 0x150
- ITEM_TM49, // 0x151
- ITEM_TM50, // 0x152
- ITEM_HM01, // 0x153
- ITEM_HM02, // 0x154
- ITEM_HM03, // 0x155
- ITEM_HM04, // 0x156
- ITEM_HM05, // 0x157
- ITEM_HM06, // 0x158
- ITEM_HM07, // 0x159
- ITEM_HM08, // 0x15a
- ITEM_15B,
- ITEM_15C,
-
- // FireRed/LeafGreen
- ITEM_OAKS_PARCEL, // 0x15d
- ITEM_POKE_FLUTE, // 0x15e
- ITEM_SECRET_KEY, // 0x15f
- ITEM_BIKE_VOUCHER, // 0x160
- ITEM_GOLD_TEETH, // 0x161
- ITEM_OLD_AMBER, // 0x162
- ITEM_CARD_KEY, // 0x163
- ITEM_LIFT_KEY, // 0x164
- ITEM_HELIX_FOSSIL, // 0x165
- ITEM_DOME_FOSSIL, // 0x166
- ITEM_SILPH_SCOPE, // 0x167
- ITEM_BICYCLE, // 0x168
- ITEM_TOWN_MAP, // 0x169
- ITEM_VS_SEEKER, // 0x16a
- ITEM_FAME_CHECKER, // 0x16b
- ITEM_TM_CASE, // 0x16c
- ITEM_BERRY_POUCH, // 0x16d
- ITEM_TEACHY_TV, // 0x16e
- ITEM_TRI_PASS, // 0x16f
- ITEM_RAINBOW_PASS, // 0x170
- ITEM_TEA, // 0x171
- ITEM_MYSTIC_TICKET, // 0x172
- ITEM_AURORA_TICKET, // 0x173
- ITEM_POWDER_JAR, // 0x174
- ITEM_RUBY, // 0x175
- ITEM_SAPPHIRE, // 0x176
-
- // Emerald
- ITEM_MAGMA_EMBLEM, // 0x177
- ITEM_OLD_SEA_MAP, // 0x178
-};
-
-#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
-#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
-#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
-
-#define NUM_TECHNICAL_MACHINES 50
-#define NUM_HIDDEN_MACHINES 8
-
-#endif // GUARD_ITEMS_H
diff --git a/include/mail.h b/include/mail.h
index 1a29d73b5..0a70237bf 100644
--- a/include/mail.h
+++ b/include/mail.h
@@ -1,8 +1,6 @@
#ifndef GUARD_MAIL_H
#define GUARD_MAIL_H
-#include "items.h"
-
#define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \
|| itemId == ITEM_HARBOR_MAIL \
|| itemId == ITEM_GLITTER_MAIL \
diff --git a/include/map_constants.h b/include/map_constants.h
deleted file mode 100644
index 6199793c8..000000000
--- a/include/map_constants.h
+++ /dev/null
@@ -1,1342 +0,0 @@
-#ifndef GUARD_MAP_CONSTANTS_H
-#define GUARD_MAP_CONSTANTS_H
-
-//--------------------------------------------------
-// Map Group 0
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_PETALBURG_CITY,
- MAP_ID_SLATEPORT_CITY,
- MAP_ID_MAUVILLE_CITY,
- MAP_ID_RUSTBORO_CITY,
- MAP_ID_FORTREE_CITY,
- MAP_ID_LILYCOVE_CITY,
- MAP_ID_MOSSDEEP_CITY,
- MAP_ID_SOOTOPOLIS_CITY,
- MAP_ID_EVER_GRANDE_CITY,
- MAP_ID_LITTLEROOT_TOWN,
- MAP_ID_OLDALE_TOWN,
- MAP_ID_DEWFORD_TOWN,
- MAP_ID_LAVARIDGE_TOWN,
- MAP_ID_FALLARBOR_TOWN,
- MAP_ID_VERDANTURF_TOWN,
- MAP_ID_PACIFIDLOG_TOWN,
- MAP_ID_ROUTE101,
- MAP_ID_ROUTE102,
- MAP_ID_ROUTE103,
- MAP_ID_ROUTE104,
- MAP_ID_ROUTE105,
- MAP_ID_ROUTE106,
- MAP_ID_ROUTE107,
- MAP_ID_ROUTE108,
- MAP_ID_ROUTE109,
- MAP_ID_ROUTE110,
- MAP_ID_ROUTE111,
- MAP_ID_ROUTE112,
- MAP_ID_ROUTE113,
- MAP_ID_ROUTE114,
- MAP_ID_ROUTE115,
- MAP_ID_ROUTE116,
- MAP_ID_ROUTE117,
- MAP_ID_ROUTE118,
- MAP_ID_ROUTE119,
- MAP_ID_ROUTE120,
- MAP_ID_ROUTE121,
- MAP_ID_ROUTE122,
- MAP_ID_ROUTE123,
- MAP_ID_ROUTE124,
- MAP_ID_ROUTE125,
- MAP_ID_ROUTE126,
- MAP_ID_ROUTE127,
- MAP_ID_ROUTE128,
- MAP_ID_ROUTE129,
- MAP_ID_ROUTE130,
- MAP_ID_ROUTE131,
- MAP_ID_ROUTE132,
- MAP_ID_ROUTE133,
- MAP_ID_ROUTE134,
- MAP_ID_UNDERWATER1,
- MAP_ID_UNDERWATER2,
- MAP_ID_UNDERWATER3,
- MAP_ID_UNDERWATER4,
- MAP_ID_UNDERWATER5,
- MAP_ID_UNDERWATER6,
- MAP_ID_UNDERWATER7,
-};
-
-#define MAP_GROUP_PETALBURG_CITY 0
-#define MAP_GROUP_SLATEPORT_CITY 0
-#define MAP_GROUP_MAUVILLE_CITY 0
-#define MAP_GROUP_RUSTBORO_CITY 0
-#define MAP_GROUP_FORTREE_CITY 0
-#define MAP_GROUP_LILYCOVE_CITY 0
-#define MAP_GROUP_MOSSDEEP_CITY 0
-#define MAP_GROUP_SOOTOPOLIS_CITY 0
-#define MAP_GROUP_EVER_GRANDE_CITY 0
-#define MAP_GROUP_LITTLEROOT_TOWN 0
-#define MAP_GROUP_OLDALE_TOWN 0
-#define MAP_GROUP_DEWFORD_TOWN 0
-#define MAP_GROUP_LAVARIDGE_TOWN 0
-#define MAP_GROUP_FALLARBOR_TOWN 0
-#define MAP_GROUP_VERDANTURF_TOWN 0
-#define MAP_GROUP_PACIFIDLOG_TOWN 0
-#define MAP_GROUP_ROUTE101 0
-#define MAP_GROUP_ROUTE102 0
-#define MAP_GROUP_ROUTE103 0
-#define MAP_GROUP_ROUTE104 0
-#define MAP_GROUP_ROUTE105 0
-#define MAP_GROUP_ROUTE106 0
-#define MAP_GROUP_ROUTE107 0
-#define MAP_GROUP_ROUTE108 0
-#define MAP_GROUP_ROUTE109 0
-#define MAP_GROUP_ROUTE110 0
-#define MAP_GROUP_ROUTE111 0
-#define MAP_GROUP_ROUTE112 0
-#define MAP_GROUP_ROUTE113 0
-#define MAP_GROUP_ROUTE114 0
-#define MAP_GROUP_ROUTE115 0
-#define MAP_GROUP_ROUTE116 0
-#define MAP_GROUP_ROUTE117 0
-#define MAP_GROUP_ROUTE118 0
-#define MAP_GROUP_ROUTE119 0
-#define MAP_GROUP_ROUTE120 0
-#define MAP_GROUP_ROUTE121 0
-#define MAP_GROUP_ROUTE122 0
-#define MAP_GROUP_ROUTE123 0
-#define MAP_GROUP_ROUTE124 0
-#define MAP_GROUP_ROUTE125 0
-#define MAP_GROUP_ROUTE126 0
-#define MAP_GROUP_ROUTE127 0
-#define MAP_GROUP_ROUTE128 0
-#define MAP_GROUP_ROUTE129 0
-#define MAP_GROUP_ROUTE130 0
-#define MAP_GROUP_ROUTE131 0
-#define MAP_GROUP_ROUTE132 0
-#define MAP_GROUP_ROUTE133 0
-#define MAP_GROUP_ROUTE134 0
-#define MAP_GROUP_UNDERWATER1 0
-#define MAP_GROUP_UNDERWATER2 0
-#define MAP_GROUP_UNDERWATER3 0
-#define MAP_GROUP_UNDERWATER4 0
-#define MAP_GROUP_UNDERWATER5 0
-#define MAP_GROUP_UNDERWATER6 0
-#define MAP_GROUP_UNDERWATER7 0
-//--------------------------------------------------
-// Map Group 1
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F,
- MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F,
- MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F,
- MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F,
- MAP_ID_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB,
-};
-
-#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_1F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F 1
-#define MAP_GROUP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 1
-
-//--------------------------------------------------
-// Map Group 2
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_OLDALE_TOWN_HOUSE1,
- MAP_ID_OLDALE_TOWN_HOUSE2,
- MAP_ID_OLDALE_TOWN_POKEMON_CENTER_1F,
- MAP_ID_OLDALE_TOWN_POKEMON_CENTER_2F,
- MAP_ID_OLDALE_TOWN_MART,
-};
-
-#define MAP_GROUP_OLDALE_TOWN_HOUSE1 2
-#define MAP_GROUP_OLDALE_TOWN_HOUSE2 2
-#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_1F 2
-#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_2F 2
-#define MAP_GROUP_OLDALE_TOWN_MART 2
-
-//--------------------------------------------------
-// Map Group 3
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_DEWFORD_TOWN_HOUSE1,
- MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_1F,
- MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_2F,
- MAP_ID_DEWFORD_TOWN_GYM,
- MAP_ID_DEWFORD_TOWN_HALL,
- MAP_ID_DEWFORD_TOWN_HOUSE2,
-};
-
-#define MAP_GROUP_DEWFORD_TOWN_HOUSE1 3
-#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_1F 3
-#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_2F 3
-#define MAP_GROUP_DEWFORD_TOWN_GYM 3
-#define MAP_GROUP_DEWFORD_TOWN_HALL 3
-#define MAP_GROUP_DEWFORD_TOWN_HOUSE2 3
-
-//--------------------------------------------------
-// Map Group 4
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_LAVARIDGE_TOWN_HERB_SHOP,
- MAP_ID_LAVARIDGE_TOWN_GYM_1F,
- MAP_ID_LAVARIDGE_TOWN_GYM_B1F,
- MAP_ID_LAVARIDGE_TOWN_HOUSE,
- MAP_ID_LAVARIDGE_TOWN_MART,
- MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_1F,
- MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_2F,
-};
-
-#define MAP_GROUP_LAVARIDGE_TOWN_HERB_SHOP 4
-#define MAP_GROUP_LAVARIDGE_TOWN_GYM_1F 4
-#define MAP_GROUP_LAVARIDGE_TOWN_GYM_B1F 4
-#define MAP_GROUP_LAVARIDGE_TOWN_HOUSE 4
-#define MAP_GROUP_LAVARIDGE_TOWN_MART 4
-#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_1F 4
-#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_2F 4
-
-//--------------------------------------------------
-// Map Group 5
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_FALLARBOR_TOWN_MART,
- MAP_ID_FALLARBOR_TOWN_TENT_LOBBY,
- MAP_ID_FALLARBOR_TOWN_TENT_HALL,
- MAP_ID_FALLARBOR_TOWN_TENT_ARENA,
- MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_1F,
- MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_2F,
- MAP_ID_FALLARBOR_TOWN_HOUSE1,
- MAP_ID_FALLARBOR_TOWN_HOUSE2,
-};
-
-#define MAP_GROUP_FALLARBOR_TOWN_MART 5
-#define MAP_GROUP_FALLARBOR_TOWN_TENT_LOBBY 5
-#define MAP_GROUP_FALLARBOR_TOWN_TENT_HALL 5
-#define MAP_GROUP_FALLARBOR_TOWN_TENT_ARENA 5
-#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_1F 5
-#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_2F 5
-#define MAP_GROUP_FALLARBOR_TOWN_HOUSE1 5
-#define MAP_GROUP_FALLARBOR_TOWN_HOUSE2 5
-
-//--------------------------------------------------
-// Map Group 6
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_VERDANTURF_TOWN_TENT_LOBBY,
- MAP_ID_VERDANTURF_TOWN_TENT_HALL,
- MAP_ID_VERDANTURF_TOWN_TENT_ARENA,
- MAP_ID_VERDANTURF_TOWN_MART,
- MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_1F,
- MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_2F,
- MAP_ID_VERDANTURF_TOWN_WANDAS_HOUSE,
- MAP_ID_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE,
- MAP_ID_VERDANTURF_TOWN_HOUSE,
-};
-
-#define MAP_GROUP_VERDANTURF_TOWN_TENT_LOBBY 6
-#define MAP_GROUP_VERDANTURF_TOWN_TENT_HALL 6
-#define MAP_GROUP_VERDANTURF_TOWN_TENT_ARENA 6
-#define MAP_GROUP_VERDANTURF_TOWN_MART 6
-#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_1F 6
-#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_2F 6
-#define MAP_GROUP_VERDANTURF_TOWN_WANDAS_HOUSE 6
-#define MAP_GROUP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE 6
-#define MAP_GROUP_VERDANTURF_TOWN_HOUSE 6
-
-//--------------------------------------------------
-// Map Group 7
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_1F,
- MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_2F,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE1,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE2,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE3,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE4,
- MAP_ID_PACIFIDLOG_TOWN_HOUSE5,
-};
-
-#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE1 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE2 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE3 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE4 7
-#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE5 7
-
-//--------------------------------------------------
-// Map Group 8
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_PETALBURG_CITY_WALLYS_HOUSE,
- MAP_ID_PETALBURG_CITY_GYM,
- MAP_ID_PETALBURG_CITY_HOUSE1,
- MAP_ID_PETALBURG_CITY_HOUSE2,
- MAP_ID_PETALBURG_CITY_POKEMON_CENTER_1F,
- MAP_ID_PETALBURG_CITY_POKEMON_CENTER_2F,
- MAP_ID_PETALBURG_CITY_MART,
-};
-
-#define MAP_GROUP_PETALBURG_CITY_WALLYS_HOUSE 8
-#define MAP_GROUP_PETALBURG_CITY_GYM 8
-#define MAP_GROUP_PETALBURG_CITY_HOUSE1 8
-#define MAP_GROUP_PETALBURG_CITY_HOUSE2 8
-#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_1F 8
-#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_2F 8
-#define MAP_GROUP_PETALBURG_CITY_MART 8
-
-//--------------------------------------------------
-// Map Group 9
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_1F,
- MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_2F,
- MAP_ID_SLATEPORT_CITY_TENT_LOBBY,
- MAP_ID_SLATEPORT_CITY_TENT_HALL,
- MAP_ID_SLATEPORT_CITY_TENT_ARENA,
- MAP_ID_SLATEPORT_CITY_HOUSE1,
- MAP_ID_SLATEPORT_CITY_POKEMON_FAN_CLUB,
- MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_1F,
- MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_2F,
- MAP_ID_SLATEPORT_CITY_HARBOR,
- MAP_ID_SLATEPORT_CITY_HOUSE2,
- MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_1F,
- MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_2F,
- MAP_ID_SLATEPORT_CITY_MART,
-};
-
-#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_1F 9
-#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_2F 9
-#define MAP_GROUP_SLATEPORT_CITY_TENT_LOBBY 9
-#define MAP_GROUP_SLATEPORT_CITY_TENT_HALL 9
-#define MAP_GROUP_SLATEPORT_CITY_TENT_ARENA 9
-#define MAP_GROUP_SLATEPORT_CITY_HOUSE1 9
-#define MAP_GROUP_SLATEPORT_CITY_POKEMON_FAN_CLUB 9
-#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 9
-#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 9
-#define MAP_GROUP_SLATEPORT_CITY_HARBOR 9
-#define MAP_GROUP_SLATEPORT_CITY_HOUSE2 9
-#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_1F 9
-#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_2F 9
-#define MAP_GROUP_SLATEPORT_CITY_MART 9
-
-//--------------------------------------------------
-// Map Group 10
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_MAUVILLE_CITY_GYM,
- MAP_ID_MAUVILLE_CITY_BIKE_SHOP,
- MAP_ID_MAUVILLE_CITY_HOUSE1,
- MAP_ID_MAUVILLE_CITY_GAME_CORNER,
- MAP_ID_MAUVILLE_CITY_HOUSE2,
- MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_1F,
- MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_2F,
- MAP_ID_MAUVILLE_CITY_MART,
-};
-
-#define MAP_GROUP_MAUVILLE_CITY_GYM 10
-#define MAP_GROUP_MAUVILLE_CITY_BIKE_SHOP 10
-#define MAP_GROUP_MAUVILLE_CITY_HOUSE1 10
-#define MAP_GROUP_MAUVILLE_CITY_GAME_CORNER 10
-#define MAP_GROUP_MAUVILLE_CITY_HOUSE2 10
-#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_1F 10
-#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_2F 10
-#define MAP_GROUP_MAUVILLE_CITY_MART 10
-
-//--------------------------------------------------
-// Map Group 11
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_RUSTBORO_CITY_DEVON_CORP_1F,
- MAP_ID_RUSTBORO_CITY_DEVON_CORP_2F,
- MAP_ID_RUSTBORO_CITY_DEVON_CORP_3F,
- MAP_ID_RUSTBORO_CITY_GYM,
- MAP_ID_RUSTBORO_CITY_POKEMON_SCHOOL,
- MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_1F,
- MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_2F,
- MAP_ID_RUSTBORO_CITY_MART,
- MAP_ID_RUSTBORO_CITY_FLAT1_1F,
- MAP_ID_RUSTBORO_CITY_FLAT1_2F,
- MAP_ID_RUSTBORO_CITY_HOUSE1,
- MAP_ID_RUSTBORO_CITY_CUTTERS_HOUSE,
- MAP_ID_RUSTBORO_CITY_HOUSE2,
- MAP_ID_RUSTBORO_CITY_FLAT2_1F,
- MAP_ID_RUSTBORO_CITY_FLAT2_2F,
- MAP_ID_RUSTBORO_CITY_FLAT2_3F,
- MAP_ID_RUSTBORO_CITY_HOUSE3,
-};
-
-#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_3F 11
-#define MAP_GROUP_RUSTBORO_CITY_GYM 11
-#define MAP_GROUP_RUSTBORO_CITY_POKEMON_SCHOOL 11
-#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_MART 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT1_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT1_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_HOUSE1 11
-#define MAP_GROUP_RUSTBORO_CITY_CUTTERS_HOUSE 11
-#define MAP_GROUP_RUSTBORO_CITY_HOUSE2 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT2_1F 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT2_2F 11
-#define MAP_GROUP_RUSTBORO_CITY_FLAT2_3F 11
-#define MAP_GROUP_RUSTBORO_CITY_HOUSE3 11
-
-//--------------------------------------------------
-// Map Group 12
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_FORTREE_CITY_HOUSE1,
- MAP_ID_FORTREE_CITY_GYM,
- MAP_ID_FORTREE_CITY_POKEMON_CENTER_1F,
- MAP_ID_FORTREE_CITY_POKEMON_CENTER_2F,
- MAP_ID_FORTREE_CITY_MART,
- MAP_ID_FORTREE_CITY_HOUSE2,
- MAP_ID_FORTREE_CITY_HOUSE3,
- MAP_ID_FORTREE_CITY_HOUSE4,
- MAP_ID_FORTREE_CITY_HOUSE5,
- MAP_ID_FORTREE_CITY_DECORATION_SHOP,
-};
-
-#define MAP_GROUP_FORTREE_CITY_HOUSE1 12
-#define MAP_GROUP_FORTREE_CITY_GYM 12
-#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_1F 12
-#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_2F 12
-#define MAP_GROUP_FORTREE_CITY_MART 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE2 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE3 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE4 12
-#define MAP_GROUP_FORTREE_CITY_HOUSE5 12
-#define MAP_GROUP_FORTREE_CITY_DECORATION_SHOP 12
-
-//--------------------------------------------------
-// Map Group 13
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F,
- MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_2F,
- MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F,
- MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F,
- MAP_ID_LILYCOVE_CITY_CONTEST_LOBBY,
- MAP_ID_LILYCOVE_CITY_CONTEST_HALL,
- MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_1F,
- MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_2F,
- MAP_ID_LILYCOVE_CITY_UNUSED_MART,
- MAP_ID_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB,
- MAP_ID_LILYCOVE_CITY_HARBOR,
- MAP_ID_LILYCOVE_CITY_MOVE_DELETERS_HOUSE,
- MAP_ID_LILYCOVE_CITY_HOUSE1,
- MAP_ID_LILYCOVE_CITY_HOUSE2,
- MAP_ID_LILYCOVE_CITY_HOUSE3,
- MAP_ID_LILYCOVE_CITY_HOUSE4,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_1F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_2F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_3F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_4F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_5F,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP,
- MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR,
-};
-
-#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_CONTEST_LOBBY 13
-#define MAP_GROUP_LILYCOVE_CITY_CONTEST_HALL 13
-#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_UNUSED_MART 13
-#define MAP_GROUP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 13
-#define MAP_GROUP_LILYCOVE_CITY_HARBOR 13
-#define MAP_GROUP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE1 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE2 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE3 13
-#define MAP_GROUP_LILYCOVE_CITY_HOUSE4 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_1F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_2F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_3F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_4F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_5F 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 13
-#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 13
-
-//--------------------------------------------------
-// Map Group 14
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_MOSSDEEP_CITY_GYM,
- MAP_ID_MOSSDEEP_CITY_HOUSE1,
- MAP_ID_MOSSDEEP_CITY_HOUSE2,
- MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_1F,
- MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_2F,
- MAP_ID_MOSSDEEP_CITY_MART,
- MAP_ID_MOSSDEEP_CITY_HOUSE3,
- MAP_ID_MOSSDEEP_CITY_STEVENS_HOUSE,
- MAP_ID_MOSSDEEP_CITY_HOUSE4,
- MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_1F,
- MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_2F,
- MAP_ID_MOSSDEEP_CITY_GAME_CORNER_1F,
- MAP_ID_MOSSDEEP_CITY_GAME_CORNER_B1F,
-};
-
-#define MAP_GROUP_MOSSDEEP_CITY_GYM 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE1 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE2 14
-#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_1F 14
-#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_2F 14
-#define MAP_GROUP_MOSSDEEP_CITY_MART 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE3 14
-#define MAP_GROUP_MOSSDEEP_CITY_STEVENS_HOUSE 14
-#define MAP_GROUP_MOSSDEEP_CITY_HOUSE4 14
-#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_1F 14
-#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_2F 14
-#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_1F 14
-#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_B1F 14
-
-//--------------------------------------------------
-// Map Group 15
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SOOTOPOLIS_CITY_GYM_1F,
- MAP_ID_SOOTOPOLIS_CITY_GYM_B1F,
- MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_1F,
- MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_2F,
- MAP_ID_SOOTOPOLIS_CITY_MART,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE1,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE2,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE3,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE4,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE5,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE6,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE7,
- MAP_ID_SOOTOPOLIS_CITY_HOUSE8,
- MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_1,
- MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_2,
-};
-
-#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_1F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_B1F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_MART 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE1 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE2 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE3 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE4 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE5 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE6 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE7 15
-#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE8 15
-#define MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_1 15
-#define MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_2 15
-//--------------------------------------------------
-// Map Group 16
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_EVER_GRANDE_CITY_SIDNEYS_ROOM,
- MAP_ID_EVER_GRANDE_CITY_PHOEBES_ROOM,
- MAP_ID_EVER_GRANDE_CITY_GLACIAS_ROOM,
- MAP_ID_EVER_GRANDE_CITY_DRAKES_ROOM,
- MAP_ID_EVER_GRANDE_CITY_CHAMPIONS_ROOM,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR1,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR2,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR3,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR4,
- MAP_ID_EVER_GRANDE_CITY_CORRIDOR5,
- MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F,
- MAP_ID_EVER_GRANDE_CITY_HALL_OF_FAME,
- MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_1F,
- MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_2F,
- MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F,
-};
-
-#define MAP_GROUP_EVER_GRANDE_CITY_SIDNEYS_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_PHOEBES_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_GLACIAS_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_DRAKES_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CHAMPIONS_ROOM 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR1 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR2 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR3 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR4 16
-#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR5 16
-#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F 16
-#define MAP_GROUP_EVER_GRANDE_CITY_HALL_OF_FAME 16
-#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_1F 16
-#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_2F 16
-#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F 16
-
-//--------------------------------------------------
-// Map Group 17
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE104_MR_BRINEYS_HOUSE,
- MAP_ID_ROUTE104_PRETTY_PETAL_FLOWER_SHOP,
-};
-
-#define MAP_GROUP_ROUTE104_MR_BRINEYS_HOUSE 17
-#define MAP_GROUP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 17
-
-//--------------------------------------------------
-// Map Group 18
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE111_WINSTRATE_FAMILYS_HOUSE,
- MAP_ID_ROUTE111_OLD_LADYS_REST_STOP,
-};
-
-#define MAP_GROUP_ROUTE111_WINSTRATE_FAMILYS_HOUSE 18
-#define MAP_GROUP_ROUTE111_OLD_LADYS_REST_STOP 18
-
-//--------------------------------------------------
-// Map Group 19
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE112_CABLE_CAR_STATION,
- MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION,
-};
-
-#define MAP_GROUP_ROUTE112_CABLE_CAR_STATION 19
-#define MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION 19
-
-//--------------------------------------------------
-// Map Group 20
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE114_FOSSIL_MANIACS_HOUSE,
- MAP_ID_ROUTE114_FOSSIL_MANIACS_TUNNEL,
- MAP_ID_ROUTE114_LANETTES_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_HOUSE 20
-#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_TUNNEL 20
-#define MAP_GROUP_ROUTE114_LANETTES_HOUSE 20
-
-//--------------------------------------------------
-// Map Group 21
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE116_TUNNELERS_REST_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE116_TUNNELERS_REST_HOUSE 21
-
-//--------------------------------------------------
-// Map Group 22
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE117_POKEMON_DAY_CARE,
-};
-
-#define MAP_GROUP_ROUTE117_POKEMON_DAY_CARE 22
-
-//--------------------------------------------------
-// Map Group 23
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE121_SAFARI_ZONE_ENTRANCE,
-};
-
-#define MAP_GROUP_ROUTE121_SAFARI_ZONE_ENTRANCE 23
-
-//--------------------------------------------------
-// Map Group 24
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_METEOR_FALLS_1F_1R,
- MAP_ID_METEOR_FALLS_1F_2R,
- MAP_ID_METEOR_FALLS_B1F_1R,
- MAP_ID_METEOR_FALLS_B1F_2R,
- MAP_ID_RUSTURF_TUNNEL,
- MAP_ID_UNDERWATER_SOOTOPOLIS_CITY,
- MAP_ID_DESERT_RUINS,
- MAP_ID_GRANITE_CAVE_1F,
- MAP_ID_GRANITE_CAVE_B1F,
- MAP_ID_GRANITE_CAVE_B2F,
- MAP_ID_GRANITE_CAVE_STEVENS_ROOM,
- MAP_ID_PETALBURG_WOODS,
- MAP_ID_MT_CHIMNEY,
- MAP_ID_JAGGED_PASS,
- MAP_ID_FIERY_PATH,
- MAP_ID_MT_PYRE_1F,
- MAP_ID_MT_PYRE_2F,
- MAP_ID_MT_PYRE_3F,
- MAP_ID_MT_PYRE_4F,
- MAP_ID_MT_PYRE_5F,
- MAP_ID_MT_PYRE_6F,
- MAP_ID_MT_PYRE_EXTERIOR,
- MAP_ID_MT_PYRE_SUMMIT,
- MAP_ID_AQUA_HIDEOUT_1F,
- MAP_ID_AQUA_HIDEOUT_B1F,
- MAP_ID_AQUA_HIDEOUT_B2F,
- MAP_ID_UNDERWATER_SEAFLOOR_CAVERN,
- MAP_ID_SEAFLOOR_CAVERN_ENTRANCE,
- MAP_ID_SEAFLOOR_CAVERN_ROOM1,
- MAP_ID_SEAFLOOR_CAVERN_ROOM2,
- MAP_ID_SEAFLOOR_CAVERN_ROOM3,
- MAP_ID_SEAFLOOR_CAVERN_ROOM4,
- MAP_ID_SEAFLOOR_CAVERN_ROOM5,
- MAP_ID_SEAFLOOR_CAVERN_ROOM6,
- MAP_ID_SEAFLOOR_CAVERN_ROOM7,
- MAP_ID_SEAFLOOR_CAVERN_ROOM8,
- MAP_ID_SEAFLOOR_CAVERN_ROOM9,
- MAP_ID_CAVE_OF_ORIGIN_ENTRANCE,
- MAP_ID_CAVE_OF_ORIGIN_1F,
- MAP_ID_CAVE_OF_ORIGIN_B1F,
- MAP_ID_CAVE_OF_ORIGIN_B2F,
- MAP_ID_CAVE_OF_ORIGIN_B3F,
- MAP_ID_CAVE_OF_ORIGIN_B4F,
- MAP_ID_VICTORY_ROAD_1F,
- MAP_ID_VICTORY_ROAD_B1F,
- MAP_ID_VICTORY_ROAD_B2F,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_INNER_ROOM,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM,
- MAP_ID_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM,
- MAP_ID_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM,
- MAP_ID_NEW_MAUVILLE_ENTRANCE,
- MAP_ID_NEW_MAUVILLE_INSIDE,
- MAP_ID_ABANDONED_SHIP_DECK,
- MAP_ID_ABANDONED_SHIP_CORRIDORS_1F,
- MAP_ID_ABANDONED_SHIP_ROOMS_1F,
- MAP_ID_ABANDONED_SHIP_CORRIDORS_B1F,
- MAP_ID_ABANDONED_SHIP_ROOMS_B1F,
- MAP_ID_ABANDONED_SHIP_ROOMS2_B1F,
- MAP_ID_ABANDONED_SHIP_UNDERWATER1,
- MAP_ID_ABANDONED_SHIP_ROOM_B1F,
- MAP_ID_ABANDONED_SHIP_ROOMS2_1F,
- MAP_ID_ABANDONED_SHIP_CAPTAINS_OFFICE,
- MAP_ID_ABANDONED_SHIP_UNDERWATER2,
- MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS,
- MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS,
- MAP_ID_ISLAND_CAVE,
- MAP_ID_ANCIENT_TOMB,
- MAP_ID_UNDERWATER_ROUTE134,
- MAP_ID_UNDERWATER_SEALED_CHAMBER,
- MAP_ID_SEALED_CHAMBER_OUTER_ROOM,
- MAP_ID_SEALED_CHAMBER_INNER_ROOM,
- MAP_ID_SCORCHED_SLAB,
- MAP_ID_UNUSED_AQUA_HIDEOUT_1F,
- MAP_ID_UNUSED_AQUA_HIDEOUT_B1F,
- MAP_ID_UNUSED_AQUA_HIDEOUT_B2F,
- MAP_ID_SKY_PILLAR_ENTRANCE,
- MAP_ID_SKY_PILLAR_OUTSIDE,
- MAP_ID_SKY_PILLAR_1F,
- MAP_ID_SKY_PILLAR_2F,
- MAP_ID_SKY_PILLAR_3F,
- MAP_ID_SKY_PILLAR_4F,
- MAP_ID_SHOAL_CAVE_LOW_TIDE_ICE_ROOM,
- MAP_ID_SKY_PILLAR_5F,
- MAP_ID_SKY_PILLAR_TOP,
- MAP_ID_MAGMA_HIDEOUT_ENTRANCE,
- MAP_ID_MAGMA_HIDEOUT_B1F,
- MAP_ID_MAGMA_HIDEOUT_B2F,
- MAP_ID_MAGMA_HIDEOUT_B3F,
- MAP_ID_MAGMA_HIDEOUT_B4F,
- MAP_ID_MAGMA_HIDEOUT_B5F,
- MAP_ID_MAGMA_HIDEOUT_B6F,
- MAP_ID_MAGMA_HIDEOUT_B7F,
- MAP_ID_MIRAGE_TOWER_1F,
- MAP_ID_MIRAGE_TOWER_2F,
- MAP_ID_MIRAGE_TOWER_3F,
- MAP_ID_MIRAGE_TOWER_4F,
- MAP_ID_DESERT_UNDERPASS,
- MAP_ID_ARTISAN_CAVE_1F,
- MAP_ID_ARTISAN_CAVE_2F,
- MAP_ID_UNKNOWN_UNDERWATER,
- MAP_ID_MARINE_CAVE_1F,
- MAP_ID_MARINE_CAVE_2F,
- MAP_ID_TERRA_CAVE_1F,
- MAP_ID_TERRA_CAVE_2F,
- MAP_ID_ALTERING_CAVE,
- MAP_ID_METEOR_FALLS_B1F_3R,
-};
-
-#define MAP_GROUP_METEOR_FALLS_1F_1R 24
-#define MAP_GROUP_METEOR_FALLS_1F_2R 24
-#define MAP_GROUP_METEOR_FALLS_B1F_1R 24
-#define MAP_GROUP_METEOR_FALLS_B1F_2R 24
-#define MAP_GROUP_RUSTURF_TUNNEL 24
-#define MAP_GROUP_UNDERWATER_SOOTOPOLIS_CITY 24
-#define MAP_GROUP_DESERT_RUINS 24
-#define MAP_GROUP_GRANITE_CAVE_1F 24
-#define MAP_GROUP_GRANITE_CAVE_B1F 24
-#define MAP_GROUP_GRANITE_CAVE_B2F 24
-#define MAP_GROUP_GRANITE_CAVE_STEVENS_ROOM 24
-#define MAP_GROUP_PETALBURG_WOODS 24
-#define MAP_GROUP_MT_CHIMNEY 24
-#define MAP_GROUP_JAGGED_PASS 24
-#define MAP_GROUP_FIERY_PATH 24
-#define MAP_GROUP_MT_PYRE_1F 24
-#define MAP_GROUP_MT_PYRE_2F 24
-#define MAP_GROUP_MT_PYRE_3F 24
-#define MAP_GROUP_MT_PYRE_4F 24
-#define MAP_GROUP_MT_PYRE_5F 24
-#define MAP_GROUP_MT_PYRE_6F 24
-#define MAP_GROUP_MT_PYRE_EXTERIOR 24
-#define MAP_GROUP_MT_PYRE_SUMMIT 24
-#define MAP_GROUP_AQUA_HIDEOUT_1F 24
-#define MAP_GROUP_AQUA_HIDEOUT_B1F 24
-#define MAP_GROUP_AQUA_HIDEOUT_B2F 24
-#define MAP_GROUP_UNDERWATER_SEAFLOOR_CAVERN 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ENTRANCE 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM1 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM2 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM3 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM4 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM5 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM6 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM7 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM8 24
-#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM9 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_ENTRANCE 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_1F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B1F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B2F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B3F 24
-#define MAP_GROUP_CAVE_OF_ORIGIN_B4F 24
-#define MAP_GROUP_VICTORY_ROAD_1F 24
-#define MAP_GROUP_VICTORY_ROAD_B1F 24
-#define MAP_GROUP_VICTORY_ROAD_B2F 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 24
-#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 24
-#define MAP_GROUP_NEW_MAUVILLE_ENTRANCE 24
-#define MAP_GROUP_NEW_MAUVILLE_INSIDE 24
-#define MAP_GROUP_ABANDONED_SHIP_DECK 24
-#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS_1F 24
-#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER1 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOM_B1F 24
-#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F 24
-#define MAP_GROUP_ABANDONED_SHIP_CAPTAINS_OFFICE 24
-#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER2 24
-#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 24
-#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 24
-#define MAP_GROUP_ISLAND_CAVE 24
-#define MAP_GROUP_ANCIENT_TOMB 24
-#define MAP_GROUP_UNDERWATER_ROUTE134 24
-#define MAP_GROUP_UNDERWATER_SEALED_CHAMBER 24
-#define MAP_GROUP_SEALED_CHAMBER_OUTER_ROOM 24
-#define MAP_GROUP_SEALED_CHAMBER_INNER_ROOM 24
-#define MAP_GROUP_SCORCHED_SLAB 24
-#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_1F 24
-#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_B1F 24
-#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_B2F 24
-#define MAP_GROUP_SKY_PILLAR_ENTRANCE 24
-#define MAP_GROUP_SKY_PILLAR_OUTSIDE 24
-#define MAP_GROUP_SKY_PILLAR_1F 24
-#define MAP_GROUP_SKY_PILLAR_2F 24
-#define MAP_GROUP_SKY_PILLAR_3F 24
-#define MAP_GROUP_SKY_PILLAR_4F 24
-#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 24
-#define MAP_GROUP_SKY_PILLAR_5F 24
-#define MAP_GROUP_SKY_PILLAR_TOP 24
-#define MAP_GROUP_MAGMA_HIDEOUT_ENTRANCE 24
-#define MAP_GROUP_MAGMA_HIDEOUT_B1F 24
-#define MAP_GROUP_MAGMA_HIDEOUT_B2F 24
-#define MAP_GROUP_MAGMA_HIDEOUT_B3F 24
-#define MAP_GROUP_MAGMA_HIDEOUT_B4F 24
-#define MAP_GROUP_MAGMA_HIDEOUT_B5F 24
-#define MAP_GROUP_MAGMA_HIDEOUT_B6F 24
-#define MAP_GROUP_MAGMA_HIDEOUT_B7F 24
-#define MAP_GROUP_MIRAGE_TOWER_1F 24
-#define MAP_GROUP_MIRAGE_TOWER_2F 24
-#define MAP_GROUP_MIRAGE_TOWER_3F 24
-#define MAP_GROUP_MIRAGE_TOWER_4F 24
-#define MAP_GROUP_DESERT_UNDERPASS 24
-#define MAP_GROUP_ARTISAN_CAVE_1F 24
-#define MAP_GROUP_ARTISAN_CAVE_2F 24
-#define MAP_GROUP_UNKNOWN_UNDERWATER 24
-#define MAP_GROUP_MARINE_CAVE_1F 24
-#define MAP_GROUP_MARINE_CAVE_2F 24
-#define MAP_GROUP_TERRA_CAVE_1F 24
-#define MAP_GROUP_TERRA_CAVE_2F 24
-#define MAP_GROUP_ALTERING_CAVE 24
-#define MAP_GROUP_METEOR_FALLS_B1F_3R 24
-
-//--------------------------------------------------
-// Map Group 25
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SECRET_BASE_RED_CAVE1,
- MAP_ID_SECRET_BASE_BROWN_CAVE1,
- MAP_ID_SECRET_BASE_BLUE_CAVE1,
- MAP_ID_SECRET_BASE_YELLOW_CAVE1,
- MAP_ID_SECRET_BASE_TREE1,
- MAP_ID_SECRET_BASE_SHRUB1,
- MAP_ID_SECRET_BASE_RED_CAVE2,
- MAP_ID_SECRET_BASE_BROWN_CAVE2,
- MAP_ID_SECRET_BASE_BLUE_CAVE2,
- MAP_ID_SECRET_BASE_YELLOW_CAVE2,
- MAP_ID_SECRET_BASE_TREE2,
- MAP_ID_SECRET_BASE_SHRUB2,
- MAP_ID_SECRET_BASE_RED_CAVE3,
- MAP_ID_SECRET_BASE_BROWN_CAVE3,
- MAP_ID_SECRET_BASE_BLUE_CAVE3,
- MAP_ID_SECRET_BASE_YELLOW_CAVE3,
- MAP_ID_SECRET_BASE_TREE3,
- MAP_ID_SECRET_BASE_SHRUB3,
- MAP_ID_SECRET_BASE_RED_CAVE4,
- MAP_ID_SECRET_BASE_BROWN_CAVE4,
- MAP_ID_SECRET_BASE_BLUE_CAVE4,
- MAP_ID_SECRET_BASE_YELLOW_CAVE4,
- MAP_ID_SECRET_BASE_TREE4,
- MAP_ID_SECRET_BASE_SHRUB4,
- MAP_ID_SINGLE_BATTLE_COLOSSEUM,
- MAP_ID_TRADE_CENTER,
- MAP_ID_RECORD_CORNER,
- MAP_ID_DOUBLE_BATTLE_COLOSSEUM,
- MAP_ID_LINK_CONTEST_ROOM1,
- MAP_ID_UNKNOWN_MAP_25_29,
- MAP_ID_UNKNOWN_MAP_25_30,
- MAP_ID_UNKNOWN_MAP_25_31,
- MAP_ID_UNKNOWN_MAP_25_32,
- MAP_ID_UNKNOWN_MAP_25_33,
- MAP_ID_UNKNOWN_MAP_25_34,
- MAP_ID_LINK_CONTEST_ROOM2,
- MAP_ID_LINK_CONTEST_ROOM3,
- MAP_ID_LINK_CONTEST_ROOM4,
- MAP_ID_LINK_CONTEST_ROOM5,
- MAP_ID_LINK_CONTEST_ROOM6,
- MAP_ID_INSIDE_OF_TRUCK,
- MAP_ID_SS_TIDAL_CORRIDOR,
- MAP_ID_SS_TIDAL_LOWER_DECK,
- MAP_ID_SS_TIDAL_ROOMS,
- MAP_ID_TEST_ROOM_1,
- MAP_ID_TEST_ROOM_2,
- MAP_ID_TEST_ROOM_3,
- MAP_ID_TEST_ROOM_4,
- MAP_ID_TEST_ROOM_5,
- MAP_ID_TEST_ROOM_6,
- MAP_ID_TEST_ROOM_7,
- MAP_ID_TEST_ROOM_8,
- MAP_ID_TEST_ROOM_9,
- MAP_ID_TEST_ROOM_10,
- MAP_ID_TEST_ROOM_11,
- MAP_ID_TEST_ROOM_12,
- MAP_ID_TEST_ROOM_13,
- MAP_ID_TEST_ROOM_14,
- MAP_ID_TEST_ROOM_15,
- MAP_ID_TEST_ROOM_16,
- MAP_ID_UNION_ROOM,
-};
-
-#define MAP_GROUP_SECRET_BASE_RED_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE1 25
-#define MAP_GROUP_SECRET_BASE_TREE1 25
-#define MAP_GROUP_SECRET_BASE_SHRUB1 25
-#define MAP_GROUP_SECRET_BASE_RED_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE2 25
-#define MAP_GROUP_SECRET_BASE_TREE2 25
-#define MAP_GROUP_SECRET_BASE_SHRUB2 25
-#define MAP_GROUP_SECRET_BASE_RED_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE3 25
-#define MAP_GROUP_SECRET_BASE_TREE3 25
-#define MAP_GROUP_SECRET_BASE_SHRUB3 25
-#define MAP_GROUP_SECRET_BASE_RED_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_BROWN_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_BLUE_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE4 25
-#define MAP_GROUP_SECRET_BASE_TREE4 25
-#define MAP_GROUP_SECRET_BASE_SHRUB4 25
-#define MAP_GROUP_SINGLE_BATTLE_COLOSSEUM 25
-#define MAP_GROUP_TRADE_CENTER 25
-#define MAP_GROUP_RECORD_CORNER 25
-#define MAP_GROUP_DOUBLE_BATTLE_COLOSSEUM 25
-#define MAP_GROUP_LINK_CONTEST_ROOM1 25
-#define MAP_GROUP_UNKNOWN_MAP_25_29 25
-#define MAP_GROUP_UNKNOWN_MAP_25_30 25
-#define MAP_GROUP_UNKNOWN_MAP_25_31 25
-#define MAP_GROUP_UNKNOWN_MAP_25_32 25
-#define MAP_GROUP_UNKNOWN_MAP_25_33 25
-#define MAP_GROUP_UNKNOWN_MAP_25_34 25
-#define MAP_GROUP_LINK_CONTEST_ROOM2 25
-#define MAP_GROUP_LINK_CONTEST_ROOM3 25
-#define MAP_GROUP_LINK_CONTEST_ROOM4 25
-#define MAP_GROUP_LINK_CONTEST_ROOM5 25
-#define MAP_GROUP_LINK_CONTEST_ROOM6 25
-#define MAP_GROUP_INSIDE_OF_TRUCK 25
-#define MAP_GROUP_SS_TIDAL_CORRIDOR 25
-#define MAP_GROUP_SS_TIDAL_LOWER_DECK 25
-#define MAP_GROUP_SS_TIDAL_ROOMS 25
-#define MAP_GROUP_TEST_ROOM_1 25
-#define MAP_GROUP_TEST_ROOM_2 25
-#define MAP_GROUP_TEST_ROOM_3 25
-#define MAP_GROUP_TEST_ROOM_4 25
-#define MAP_GROUP_TEST_ROOM_5 25
-#define MAP_GROUP_TEST_ROOM_6 25
-#define MAP_GROUP_TEST_ROOM_7 25
-#define MAP_GROUP_TEST_ROOM_8 25
-#define MAP_GROUP_TEST_ROOM_9 25
-#define MAP_GROUP_TEST_ROOM_10 25
-#define MAP_GROUP_TEST_ROOM_11 25
-#define MAP_GROUP_TEST_ROOM_12 25
-#define MAP_GROUP_TEST_ROOM_13 25
-#define MAP_GROUP_TEST_ROOM_14 25
-#define MAP_GROUP_TEST_ROOM_15 25
-#define MAP_GROUP_TEST_ROOM_16 25
-#define MAP_GROUP_UNION_ROOM 25
-//--------------------------------------------------
-// Map Group 26
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_SAFARI_ZONE_NORTHWEST,
- MAP_ID_SAFARI_ZONE_NORTHEAST,
- MAP_ID_SAFARI_ZONE_SOUTHWEST,
- MAP_ID_SAFARI_ZONE_SOUTHEAST,
- MAP_ID_BATTLE_FRONTIER_OUTSIDE_WEST,
- MAP_ID_BATTLE_TOWER_LOBBY,
- MAP_ID_BATTLE_TOWER_ELEVATOR,
- MAP_ID_BATTLE_TOWER_CORRIDOR,
- MAP_ID_BATTLE_TOWER_BATTLE_ROOM,
- MAP_ID_SOUTHERN_ISLAND_EXTERIOR,
- MAP_ID_SOUTHERN_ISLAND_INTERIOR,
- MAP_ID_SAFARI_ZONE_REST_HOUSE,
- MAP_ID_SAFARI_ZONE_EM_1,
- MAP_ID_SAFARI_ZONE_EM_2,
- MAP_ID_BATTLE_FRONTIER_OUTSIDE_EAST,
- MAP_ID_BATTLE_FRONTIER_TAG_LINK,
- MAP_ID_BATTLE_FRONTIER_TAG_LINK_CORRIDOR,
- MAP_ID_BATTLE_FRONTIER_TAG_LINK_ARENA,
- MAP_ID_BATTLE_DOME_LOBBY,
- MAP_ID_BATTLE_DOME_CORRIDOR,
- MAP_ID_BATTLE_DOME_ROOM,
- MAP_ID_BATTLE_DOME_ARENA,
- MAP_ID_BATTLE_PALACE_LOBBY,
- MAP_ID_BATTLE_PALACE_CORRIDOR,
- MAP_ID_BATTLE_PALACE_1F,
- MAP_ID_BATTLE_PYRAMID_LOBBY,
- MAP_ID_BATTLE_PYRAMID_UNKNOWN,
- MAP_ID_BATTLE_PYRAMID_PEAK,
- MAP_ID_BATTLE_ARENA_LOBBY,
- MAP_ID_BATTLE_ARENA_CORRIDOR,
- MAP_ID_BATTLE_ARENA_ARENA,
- MAP_ID_BATTLE_FACTORY_LOBBY,
- MAP_ID_BATTLE_FACTORY_CORRIDOR,
- MAP_ID_BATTLE_FACTORY_ARENA,
- MAP_ID_BATTLE_PALACE_2F,
- MAP_ID_BATTLE_PALACE_3F,
- MAP_ID_BATTLE_PALACE_4F,
- MAP_ID_BATTLE_PALACE_5F,
- MAP_ID_BATTLE_PALACE_6F,
- MAP_ID_BATTLE_PALACE_TEST_ROOM,
- MAP_ID_RANKING_HALL,
- MAP_ID_STAT_RATER_HOUSE,
- MAP_ID_BATTLE_FRONTIER_EXCHANGE,
- MAP_ID_BATTLE_FRONTIER_MANIAC_HOUSE,
- MAP_ID_BATTLE_FRONTIER_GAMBLING_HOUSE,
- MAP_ID_BATTLE_FRONTIER_HOUSE1,
- MAP_ID_BATTLE_FRONTIER_SCOTTS_HOUSE,
- MAP_ID_BATTLE_FRONTIER_HOUSE2,
- MAP_ID_BATTLE_FRONTIER_HOUSE3,
- MAP_ID_BATTLE_FRONTIER_HOUSE4,
- MAP_ID_BATTLE_FRONTIER_ENTRANCE_HALL,
- MAP_ID_BATTLE_FRONTIER_HOUSE5,
- MAP_ID_BATTLE_FRONTIER_UNUSED_HOUSE,
- MAP_ID_BATTLE_FRONTIER_POKEMON_CENTER_1F,
- MAP_ID_BATTLE_FRONTIER_POKEMON_CENTER_2F,
- MAP_ID_BATTLE_FRONTIER_MART,
- MAP_ID_FARAWAY_ISLAND_OUTSIDE,
- MAP_ID_FARAWAY_ISLAND_FOREST,
- MAP_ID_BIRTH_ISLAND_OUTSIDE,
- MAP_ID_BIRTH_ISLAND_DOCKS,
- MAP_ID_TRAINER_HILL_LOBBY,
- MAP_ID_TRAINER_HILL_1F,
- MAP_ID_TRAINER_HILL_2F,
- MAP_ID_TRAINER_HILL_3F,
- MAP_ID_TRAINER_HILL_4F,
- MAP_ID_TRAINER_HILL_5F,
- MAP_ID_NAVEL_ROCK_OUTSIDE,
- MAP_ID_NAVEL_ROCK_DOCKS,
- MAP_ID_NAVEL_ROCK_1F,
- MAP_ID_NAVEL_ROCK_2F,
- MAP_ID_NAVEL_ROCK_3F,
- MAP_ID_NAVEL_ROCK_4F,
- MAP_ID_NAVEL_ROCK_5F,
- MAP_ID_NAVEL_ROCK_6F,
- MAP_ID_NAVEL_ROCK_7F,
- MAP_ID_NAVEL_ROCK_PEAK,
- MAP_ID_NAVEL_ROCK_B1F,
- MAP_ID_NAVEL_ROCK_B2F,
- MAP_ID_NAVEL_ROCK_B3F,
- MAP_ID_NAVEL_ROCK_B4F,
- MAP_ID_NAVEL_ROCK_B5F,
- MAP_ID_NAVEL_ROCK_B6F,
- MAP_ID_NAVEL_ROCK_B7F,
- MAP_ID_NAVEL_ROCK_B8F,
- MAP_ID_NAVEL_ROCK_B9F,
- MAP_ID_NAVEL_ROCK_B10F,
- MAP_ID_NAVEL_ROCK_B11F,
- MAP_ID_NAVEL_ROCK_INNER,
- MAP_ID_TRAINER_HILL_ELEVATOR,
-};
-
-#define MAP_GROUP_SAFARI_ZONE_NORTHWEST 26
-#define MAP_GROUP_SAFARI_ZONE_NORTHEAST 26
-#define MAP_GROUP_SAFARI_ZONE_SOUTHWEST 26
-#define MAP_GROUP_SAFARI_ZONE_SOUTHEAST 26
-#define MAP_GROUP_BATTLE_FRONTIER_OUTSIDE_WEST 26
-#define MAP_GROUP_BATTLE_TOWER_LOBBY 26
-#define MAP_GROUP_BATTLE_TOWER_ELEVATOR 26
-#define MAP_GROUP_BATTLE_TOWER_CORRIDOR 26
-#define MAP_GROUP_BATTLE_TOWER_BATTLE_ROOM 26
-#define MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR 26
-#define MAP_GROUP_SOUTHERN_ISLAND_INTERIOR 26
-#define MAP_GROUP_SAFARI_ZONE_REST_HOUSE 26
-#define MAP_GROUP_SAFARI_ZONE_EM_1 26
-#define MAP_GROUP_SAFARI_ZONE_EM_2 26
-#define MAP_GROUP_BATTLE_FRONTIER_OUTSIDE_EAST 26
-#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK 26
-#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK_CORRIDOR 26
-#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK_ARENA 26
-#define MAP_GROUP_BATTLE_DOME_LOBBY 26
-#define MAP_GROUP_BATTLE_DOME_CORRIDOR 26
-#define MAP_GROUP_BATTLE_DOME_ROOM 26
-#define MAP_GROUP_BATTLE_DOME_ARENA 26
-#define MAP_GROUP_BATTLE_PALACE_LOBBY 26
-#define MAP_GROUP_BATTLE_PALACE_CORRIDOR 26
-#define MAP_GROUP_BATTLE_PALACE_1F 26
-#define MAP_GROUP_BATTLE_PYRAMID_LOBBY 26
-#define MAP_GROUP_BATTLE_PYRAMID_UNKNOWN 26
-#define MAP_GROUP_BATTLE_PYRAMID_PEAK 26
-#define MAP_GROUP_BATTLE_ARENA_LOBBY 26
-#define MAP_GROUP_BATTLE_ARENA_CORRIDOR 26
-#define MAP_GROUP_BATTLE_ARENA_ARENA 26 // rename
-#define MAP_GROUP_BATTLE_FACTORY_LOBBY 26
-#define MAP_GROUP_BATTLE_FACTORY_CORRIDOR 26
-#define MAP_GROUP_BATTLE_FACTORY_ARENA 26
-#define MAP_GROUP_BATTLE_PALACE_2F 26
-#define MAP_GROUP_BATTLE_PALACE_3F 26
-#define MAP_GROUP_BATTLE_PALACE_4F 26
-#define MAP_GROUP_BATTLE_PALACE_5F 26
-#define MAP_GROUP_BATTLE_PALACE_6F 26
-#define MAP_GROUP_BATTLE_PALACE_TEST_ROOM 26
-#define MAP_GROUP_RANKING_HALL 26
-#define MAP_GROUP_STAT_RATER_HOUSE 26
-#define MAP_GROUP_BATTLE_FRONTIER_EXCHANGE 26
-#define MAP_GROUP_BATTLE_FRONTIER_MANIAC_HOUSE 26
-#define MAP_GROUP_BATTLE_FRONTIER_GAMBLING_HOUSE 26
-#define MAP_GROUP_BATTLE_FRONTIER_HOUSE1 26
-#define MAP_GROUP_BATTLE_FRONTIER_SCOTTS_HOUSE 26
-#define MAP_GROUP_BATTLE_FRONTIER_HOUSE2 26
-#define MAP_GROUP_BATTLE_FRONTIER_HOUSE3 26
-#define MAP_GROUP_BATTLE_FRONTIER_HOUSE4 26
-#define MAP_GROUP_BATTLE_FRONTIER_ENTRANCE_HALL 26
-#define MAP_GROUP_BATTLE_FRONTIER_HOUSE5 26
-#define MAP_GROUP_BATTLE_FRONTIER_UNUSED_HOUSE 26
-#define MAP_GROUP_BATTLE_FRONTIER_POKEMON_CENTER_1F 26
-#define MAP_GROUP_BATTLE_FRONTIER_POKEMON_CENTER_2F 26
-#define MAP_GROUP_BATTLE_FRONTIER_MART 26
-#define MAP_GROUP_FARAWAY_ISLAND_OUTSIDE 26
-#define MAP_GROUP_FARAWAY_ISLAND_FOREST 26
-#define MAP_GROUP_BIRTH_ISLAND_OUTSIDE 26
-#define MAP_GROUP_BIRTH_ISLAND_DOCKS 26
-#define MAP_GROUP_TRAINER_HILL_LOBBY 26
-#define MAP_GROUP_TRAINER_HILL_1F 26
-#define MAP_GROUP_TRAINER_HILL_2F 26
-#define MAP_GROUP_TRAINER_HILL_3F 26
-#define MAP_GROUP_TRAINER_HILL_4F 26
-#define MAP_GROUP_TRAINER_HILL_5F 26
-#define MAP_GROUP_NAVEL_ROCK_OUTSIDE 26
-#define MAP_GROUP_NAVEL_ROCK_DOCKS 26
-#define MAP_GROUP_NAVEL_ROCK_1F 26
-#define MAP_GROUP_NAVEL_ROCK_2F 26
-#define MAP_GROUP_NAVEL_ROCK_3F 26
-#define MAP_GROUP_NAVEL_ROCK_4F 26
-#define MAP_GROUP_NAVEL_ROCK_5F 26
-#define MAP_GROUP_NAVEL_ROCK_6F 26
-#define MAP_GROUP_NAVEL_ROCK_7F 26
-#define MAP_GROUP_NAVEL_ROCK_PEAK 26
-#define MAP_GROUP_NAVEL_ROCK_B1F 26
-#define MAP_GROUP_NAVEL_ROCK_B2F 26
-#define MAP_GROUP_NAVEL_ROCK_B3F 26
-#define MAP_GROUP_NAVEL_ROCK_B4F 26
-#define MAP_GROUP_NAVEL_ROCK_B5F 26
-#define MAP_GROUP_NAVEL_ROCK_B6F 26
-#define MAP_GROUP_NAVEL_ROCK_B7F 26
-#define MAP_GROUP_NAVEL_ROCK_B8F 26
-#define MAP_GROUP_NAVEL_ROCK_B9F 26
-#define MAP_GROUP_NAVEL_ROCK_B10F 26
-#define MAP_GROUP_NAVEL_ROCK_B11F 26
-#define MAP_GROUP_NAVEL_ROCK_INNER 26
-#define MAP_GROUP_TRAINER_HILL_ELEVATOR 26
-//--------------------------------------------------
-// Map Group 27
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE104_PROTOTYPE,
- MAP_ID_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP,
-};
-
-#define MAP_GROUP_ROUTE104_PROTOTYPE 27
-#define MAP_GROUP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP 27
-
-//--------------------------------------------------
-// Map Group 28
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE109_SEASHORE_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE109_SEASHORE_HOUSE 28
-
-//--------------------------------------------------
-// Map Group 29
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE110_TRICK_HOUSE_ENTRANCE,
- MAP_ID_ROUTE110_TRICK_HOUSE_END,
- MAP_ID_ROUTE110_TRICK_HOUSE_CORRIDOR,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE1,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE2,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE3,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE4,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE5,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE6,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE7,
- MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE8,
- MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE,
- MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE,
-};
-
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_ENTRANCE 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_END 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_CORRIDOR 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE1 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE2 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE3 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE4 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE5 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE6 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE7 29
-#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE8 29
-#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE 29
-#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE 29
-
-//--------------------------------------------------
-// Map Group 30
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE113_GLASS_WORKSHOP,
-};
-
-#define MAP_GROUP_ROUTE113_GLASS_WORKSHOP 30
-
-//--------------------------------------------------
-// Map Group 31
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE123_BERRY_MASTERS_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE123_BERRY_MASTERS_HOUSE 31
-
-//--------------------------------------------------
-// Map Group 32
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE119_WEATHER_INSTITUTE_1F,
- MAP_ID_ROUTE119_WEATHER_INSTITUTE_2F,
- MAP_ID_ROUTE119_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_1F 32
-#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_2F 32
-#define MAP_GROUP_ROUTE119_HOUSE 32
-
-//--------------------------------------------------
-// Map Group 33
-//--------------------------------------------------
-
-enum
-{
- MAP_ID_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE,
-};
-
-#define MAP_GROUP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 33
-
-#endif // GUARD_MAP_CONSTANTS_H \ No newline at end of file
diff --git a/include/map_object_constants.h b/include/map_object_constants.h
deleted file mode 100644
index 79482b54a..000000000
--- a/include/map_object_constants.h
+++ /dev/null
@@ -1,239 +0,0 @@
-#ifndef GUARD_MAP_OBJECT_CONSTANTS_H
-#define GUARD_MAP_OBJECT_CONSTANTS_H
-
-enum
-{
- MAP_OBJ_GFX_BRENDAN_NORMAL,
- MAP_OBJ_GFX_BRENDAN_MACH_BIKE,
- MAP_OBJ_GFX_BRENDAN_SURFING,
- MAP_OBJ_GFX_BRENDAN_FIELD_MOVE,
- MAP_OBJ_GFX_QUINTY_PLUMP,
- MAP_OBJ_GFX_LITTLE_BOY_1,
- MAP_OBJ_GFX_LITTLE_GIRL_1,
- MAP_OBJ_GFX_BOY_1,
- MAP_OBJ_GFX_GIRL_1,
- MAP_OBJ_GFX_BOY_2,
- MAP_OBJ_GFX_GIRL_2,
- MAP_OBJ_GFX_LITTLE_BOY_2,
- MAP_OBJ_GFX_LITTLE_GIRL_2,
- MAP_OBJ_GFX_BOY_3,
- MAP_OBJ_GFX_GIRL_3,
- MAP_OBJ_GFX_BOY_4,
- MAP_OBJ_GFX_WOMAN_1,
- MAP_OBJ_GFX_FAT_MAN,
- MAP_OBJ_GFX_WOMAN_2,
- MAP_OBJ_GFX_MAN_1,
- MAP_OBJ_GFX_WOMAN_3,
- MAP_OBJ_GFX_OLD_MAN_1,
- MAP_OBJ_GFX_OLD_WOMAN_1,
- MAP_OBJ_GFX_MAN_2,
- MAP_OBJ_GFX_WOMAN_4,
- MAP_OBJ_GFX_MAN_3,
- MAP_OBJ_GFX_WOMAN_5,
- MAP_OBJ_GFX_COOK,
- MAP_OBJ_GFX_WOMAN_6,
- MAP_OBJ_GFX_OLD_MAN_2,
- MAP_OBJ_GFX_OLD_WOMAN_2,
- MAP_OBJ_GFX_CAMPER,
- MAP_OBJ_GFX_PICNICKER,
- MAP_OBJ_GFX_MAN_4,
- MAP_OBJ_GFX_WOMAN_7,
- MAP_OBJ_GFX_YOUNGSTER,
- MAP_OBJ_GFX_BUG_CATCHER,
- MAP_OBJ_GFX_PSYCHIC_M,
- MAP_OBJ_GFX_SCHOOL_KID_M,
- MAP_OBJ_GFX_MANIAC,
- MAP_OBJ_GFX_HEX_MANIAC,
- MAP_OBJ_GFX_WOMAN_8,
- MAP_OBJ_GFX_SWIMMER_M,
- MAP_OBJ_GFX_SWIMMER_F,
- MAP_OBJ_GFX_BLACK_BELT,
- MAP_OBJ_GFX_BEAUTY,
- MAP_OBJ_GFX_SCIENTIST_1,
- MAP_OBJ_GFX_LASS,
- MAP_OBJ_GFX_GENTLEMAN,
- MAP_OBJ_GFX_SAILOR,
- MAP_OBJ_GFX_FISHERMAN,
- MAP_OBJ_GFX_RUNNING_TRIATHLETE_M,
- MAP_OBJ_GFX_RUNNING_TRIATHLETE_F,
- MAP_OBJ_GFX_TUBER_F,
- MAP_OBJ_GFX_TUBER_M,
- MAP_OBJ_GFX_HIKER,
- MAP_OBJ_GFX_CYCLING_TRIATHLETE_M,
- MAP_OBJ_GFX_CYCLING_TRIATHLETE_F,
- MAP_OBJ_GFX_NURSE,
- MAP_OBJ_GFX_ITEM_BALL,
- MAP_OBJ_GFX_BERRY_TREE,
- MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES,
- MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES,
- MAP_OBJ_GFX_BRENDAN_ACRO_BIKE,
- MAP_OBJ_GFX_PROF_BIRCH,
- MAP_OBJ_GFX_MAN_5,
- MAP_OBJ_GFX_MAN_6,
- MAP_OBJ_GFX_REPORTER_M,
- MAP_OBJ_GFX_REPORTER_F,
- MAP_OBJ_GFX_BARD,
- MAP_OBJ_GFX_HIPSTER,
- MAP_OBJ_GFX_TRADER,
- MAP_OBJ_GFX_STORYTELLER,
- MAP_OBJ_GFX_GIDDY,
- MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1,
- MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2,
- MAP_OBJ_GFX_UNUSED_NATU_DOLL,
- MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL,
- MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL,
- MAP_OBJ_GFX_UNUSED_WOOPER_DOLL,
- MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL,
- MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL,
- MAP_OBJ_GFX_CUTTABLE_TREE,
- MAP_OBJ_GFX_MART_EMPLOYEE,
- MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN,
- MAP_OBJ_GFX_TEALA,
- MAP_OBJ_GFX_BREAKABLE_ROCK,
- MAP_OBJ_GFX_PUSHABLE_BOULDER,
- MAP_OBJ_GFX_MR_BRINEYS_BOAT,
- MAP_OBJ_GFX_MAY_NORMAL,
- MAP_OBJ_GFX_MAY_MACH_BIKE,
- MAP_OBJ_GFX_MAY_ACRO_BIKE,
- MAP_OBJ_GFX_MAY_SURFING,
- MAP_OBJ_GFX_MAY_FIELD_MOVE,
- MAP_OBJ_GFX_TRUCK,
- MAP_OBJ_GFX_MACHOKE_CARRYING_BOX,
- MAP_OBJ_GFX_MACHOKE_FACING_AWAY,
- MAP_OBJ_GFX_BIRCHS_BAG,
- MAP_OBJ_GFX_POOCHYENA,
- MAP_OBJ_GFX_ARTIST,
- MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL,
- MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE,
- MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE,
- MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING,
- MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE,
- MAP_OBJ_GFX_RIVAL_MAY_NORMAL,
- MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE,
- MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE,
- MAP_OBJ_GFX_RIVAL_MAY_SURFING,
- MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE,
- MAP_OBJ_GFX_CAMERAMAN,
- MAP_OBJ_GFX_BRENDAN_UNDERWATER,
- MAP_OBJ_GFX_MAY_UNDERWATER,
- MAP_OBJ_GFX_MOVING_BOX,
- MAP_OBJ_GFX_CABLE_CAR,
- MAP_OBJ_GFX_SCIENTIST_2,
- MAP_OBJ_GFX_MAN_7,
- MAP_OBJ_GFX_AQUA_MEMBER_M,
- MAP_OBJ_GFX_AQUA_MEMBER_F,
- MAP_OBJ_GFX_MAGMA_MEMBER_M,
- MAP_OBJ_GFX_MAGMA_MEMBER_F,
- MAP_OBJ_GFX_SIDNEY,
- MAP_OBJ_GFX_PHOEBE,
- MAP_OBJ_GFX_GLACIA,
- MAP_OBJ_GFX_DRAKE,
- MAP_OBJ_GFX_ROXANNE,
- MAP_OBJ_GFX_BRAWLY,
- MAP_OBJ_GFX_WATTSON,
- MAP_OBJ_GFX_FLANNERY,
- MAP_OBJ_GFX_NORMAN,
- MAP_OBJ_GFX_WINONA,
- MAP_OBJ_GFX_LIZA,
- MAP_OBJ_GFX_TATE,
- MAP_OBJ_GFX_WALLACE,
- MAP_OBJ_GFX_STEVEN,
- MAP_OBJ_GFX_WALLY,
- MAP_OBJ_GFX_LITTLE_BOY_3,
- MAP_OBJ_GFX_BRENDAN_FISHING,
- MAP_OBJ_GFX_MAY_FISHING,
- MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN,
- MAP_OBJ_GFX_SS_TIDAL,
- MAP_OBJ_GFX_SUBMARINE_SHADOW,
- MAP_OBJ_GFX_PICHU_DOLL,
- MAP_OBJ_GFX_PIKACHU_DOLL,
- MAP_OBJ_GFX_MARILL_DOLL,
- MAP_OBJ_GFX_TOGEPI_DOLL,
- MAP_OBJ_GFX_CYNDAQUIL_DOLL,
- MAP_OBJ_GFX_CHIKORITA_DOLL,
- MAP_OBJ_GFX_TOTODILE_DOLL,
- MAP_OBJ_GFX_JIGGLYPUFF_DOLL,
- MAP_OBJ_GFX_MEOWTH_DOLL,
- MAP_OBJ_GFX_CLEFAIRY_DOLL,
- MAP_OBJ_GFX_DITTO_DOLL,
- MAP_OBJ_GFX_SMOOCHUM_DOLL,
- MAP_OBJ_GFX_TREECKO_DOLL,
- MAP_OBJ_GFX_TORCHIC_DOLL,
- MAP_OBJ_GFX_MUDKIP_DOLL,
- MAP_OBJ_GFX_DUSKULL_DOLL,
- MAP_OBJ_GFX_WYNAUT_DOLL,
- MAP_OBJ_GFX_BALTOY_DOLL,
- MAP_OBJ_GFX_KECLEON_DOLL,
- MAP_OBJ_GFX_AZURILL_DOLL,
- MAP_OBJ_GFX_SKITTY_DOLL,
- MAP_OBJ_GFX_SWABLU_DOLL,
- MAP_OBJ_GFX_GULPIN_DOLL,
- MAP_OBJ_GFX_LOTAD_DOLL,
- MAP_OBJ_GFX_SEEDOT_DOLL,
- MAP_OBJ_GFX_PIKA_CUSHION,
- MAP_OBJ_GFX_ROUND_CUSHION,
- MAP_OBJ_GFX_KISS_CUSHION,
- MAP_OBJ_GFX_ZIGZAG_CUSHION,
- MAP_OBJ_GFX_SPIN_CUSHION,
- MAP_OBJ_GFX_DIAMOND_CUSHION,
- MAP_OBJ_GFX_BALL_CUSHION,
- MAP_OBJ_GFX_GRASS_CUSHION,
- MAP_OBJ_GFX_FIRE_CUSHION,
- MAP_OBJ_GFX_WATER_CUSHION,
- MAP_OBJ_GFX_BIG_SNORLAX_DOLL,
- MAP_OBJ_GFX_BIG_RHYDON_DOLL,
- MAP_OBJ_GFX_BIG_LAPRAS_DOLL,
- MAP_OBJ_GFX_BIG_VENUSAUR_DOLL,
- MAP_OBJ_GFX_BIG_CHARIZARD_DOLL,
- MAP_OBJ_GFX_BIG_BLASTOISE_DOLL,
- MAP_OBJ_GFX_BIG_WAILMER_DOLL,
- MAP_OBJ_GFX_BIG_REGIROCK_DOLL,
- MAP_OBJ_GFX_BIG_REGICE_DOLL,
- MAP_OBJ_GFX_BIG_REGISTEEL_DOLL,
- MAP_OBJ_GFX_LATIAS,
- MAP_OBJ_GFX_LATIOS,
- MAP_OBJ_GFX_BOY_5,
- MAP_OBJ_GFX_CONTEST_JUDGE,
- MAP_OBJ_GFX_BRENDAN_WATERING,
- MAP_OBJ_GFX_MAY_WATERING,
- MAP_OBJ_GFX_BRENDAN_DECORATING,
- MAP_OBJ_GFX_MAY_DECORATING,
- MAP_OBJ_GFX_ARCHIE,
- MAP_OBJ_GFX_MAXIE,
- MAP_OBJ_GFX_KYOGRE_1,
- MAP_OBJ_GFX_GROUDON_1,
- MAP_OBJ_GFX_FOSSIL,
- MAP_OBJ_GFX_REGIROCK,
- MAP_OBJ_GFX_REGICE,
- MAP_OBJ_GFX_REGISTEEL,
- MAP_OBJ_GFX_SKITTY,
- MAP_OBJ_GFX_KECLEON_1,
- MAP_OBJ_GFX_KYOGRE_2,
- MAP_OBJ_GFX_GROUDON_2,
- MAP_OBJ_GFX_RAYQUAZA,
- MAP_OBJ_GFX_ZIGZAGOON,
- MAP_OBJ_GFX_PIKACHU,
- MAP_OBJ_GFX_AZUMARILL,
- MAP_OBJ_GFX_WINGULL,
- MAP_OBJ_GFX_KECLEON_2,
- MAP_OBJ_GFX_TUBER_M_SWIMMING,
- MAP_OBJ_GFX_AZURILL,
- MAP_OBJ_GFX_MOM,
- MAP_OBJ_GFX_LINK_BRENDAN,
- MAP_OBJ_GFX_LINK_MAY,
-};
-
-enum {
- SHADOW_SIZE_S,
- SHADOW_SIZE_M,
- SHADOW_SIZE_L,
- SHADOW_SIZE_XL
-};
-
-enum {
- TRACKS_NONE,
- TRACKS_FOOT,
- TRACKS_BIKE_TIRE
-};
-
-#endif // GUARD_MAP_OBJECT_CONSTANTS_H
diff --git a/include/overworld.h b/include/overworld.h
index ea3d27319..a5fba0c10 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -68,4 +68,7 @@ void c2_load_new_map(void);
void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
void mapldr_default(void);
+void IncrementGameStat(u8);
+u32 GetGameStat(u8);
+
#endif //GUARD_ROM4_H
diff --git a/src/battle_2.c b/src/battle_2.c
index eead4d7a9..48430b0f6 100644
--- a/src/battle_2.c
+++ b/src/battle_2.c
@@ -15,8 +15,8 @@
#include "berry.h"
#include "text.h"
#include "item.h"
-#include "items.h"
-#include "hold_effects.h"
+#include "constants/items.h"
+#include "constants/hold_effects.h"
#include "link.h"
#include "bg.h"
#include "dma3.h"
@@ -33,10 +33,10 @@
#include "util.h"
#include "trig.h"
#include "battle_ai_script_commands.h"
-#include "battle_move_effects.h"
+#include "constants/battle_move_effects.h"
#include "battle_controllers.h"
#include "pokedex.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "moves.h"
#include "trainer_classes.h"
#include "evolution_scene.h"
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 97226f5c9..0debca274 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -3,10 +3,10 @@
#include "pokemon.h"
#include "battle.h"
#include "species.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "rng.h"
#include "item.h"
-#include "battle_move_effects.h"
+#include "constants/battle_move_effects.h"
#include "moves.h"
#include "util.h"
diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c
index f5b6c7fe4..af038ba9b 100644
--- a/src/battle_ai_switch_items.c
+++ b/src/battle_ai_switch_items.c
@@ -1,13 +1,13 @@
#include "global.h"
#include "battle.h"
#include "battle_controllers.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "moves.h"
#include "pokemon.h"
#include "species.h"
#include "rng.h"
#include "util.h"
-#include "items.h"
+#include "constants/items.h"
#include "pokemon_item_effects.h"
extern u8 gActiveBank;
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index d69de8c29..97024d12c 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -11,7 +11,7 @@
#include "util.h"
#include "main.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "songs.h"
#include "sound.h"
#include "moves.h"
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 7ea2abccf..61ca8c45d 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -10,7 +10,7 @@
#include "util.h"
#include "main.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "songs.h"
#include "sound.h"
#include "moves.h"
diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c
index 442e32cca..fef841bca 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle_controller_wally.c
@@ -10,7 +10,7 @@
#include "util.h"
#include "main.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "songs.h"
#include "sound.h"
#include "moves.h"
diff --git a/src/battle_controllers.c b/src/battle_controllers.c
index 2d373e876..a6e6a1b6d 100644
--- a/src/battle_controllers.c
+++ b/src/battle_controllers.c
@@ -9,7 +9,7 @@
#include "species.h"
#include "recorded_battle.h"
#include "util.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "battle_message.h"
extern u32 gBattleTypeFlags;
diff --git a/src/battle_message.c b/src/battle_message.c
index 77f7cc722..f3df05949 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -5,7 +5,7 @@
#include "moves.h"
#include "text.h"
#include "string_util.h"
-#include "items.h"
+#include "constants/items.h"
#include "event_data.h"
#include "link.h"
#include "item.h"
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index d9b35c053..cf701ba18 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -1,14 +1,14 @@
#include "global.h"
#include "battle.h"
-#include "battle_move_effects.h"
+#include "constants/battle_move_effects.h"
#include "battle_message.h"
#include "battle_ai_script_commands.h"
#include "battle_scripts.h"
#include "moves.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "item.h"
-#include "items.h"
-#include "hold_effects.h"
+#include "constants/items.h"
+#include "constants/hold_effects.h"
#include "util.h"
#include "pokemon.h"
#include "calculate_base_damage.h"
diff --git a/src/battle_util.c b/src/battle_util.c
index 5c305a4e4..ed1355eca 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -1,14 +1,14 @@
#include "global.h"
#include "battle.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "moves.h"
-#include "hold_effects.h"
+#include "constants/hold_effects.h"
#include "pokemon.h"
#include "species.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "util.h"
-#include "battle_move_effects.h"
+#include "constants/battle_move_effects.h"
#include "battle_scripts.h"
#include "rng.h"
#include "text.h"
diff --git a/src/battle_util2.c b/src/battle_util2.c
index e119c85d7..24904d709 100644
--- a/src/battle_util2.c
+++ b/src/battle_util2.c
@@ -4,7 +4,7 @@
#include "malloc.h"
#include "pokemon.h"
#include "event_data.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "rng.h"
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
diff --git a/src/berry.c b/src/berry.c
index 0c1553463..8522ca9c7 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -2,7 +2,7 @@
#include "berry.h"
#include "main.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "text.h"
#include "rng.h"
#include "event_data.h"
diff --git a/src/berry_blender.c b/src/berry_blender.c
index aa333ebaf..22e558479 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -1,4 +1,6 @@
#include "global.h"
+#include "constants/game_stat.h"
+#include "overworld.h"
#include "berry_blender.h"
#include "bg.h"
#include "window.h"
@@ -20,7 +22,7 @@
#include "item_menu_icons.h"
#include "berry.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "string_util.h"
#include "international_string_util.h"
#include "rng.h"
diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c
index 85b2bc509..c3b66f87a 100755
--- a/src/braille_puzzles.c
+++ b/src/braille_puzzles.c
@@ -6,7 +6,7 @@
#include "species.h"
#include "task.h"
#include "field_effect.h"
-#include "flags.h"
+#include "constants/flags.h"
extern void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatileId); // fieldmap
extern void DrawWholeMapView(); // field_camera
diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c
index 89770b17a..868bf734a 100644
--- a/src/calculate_base_damage.c
+++ b/src/calculate_base_damage.c
@@ -1,14 +1,14 @@
#include "global.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "battle.h"
-#include "hold_effects.h"
+#include "constants/hold_effects.h"
#include "event_data.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "pokemon.h"
#include "species.h"
#include "moves.h"
-#include "battle_move_effects.h"
+#include "constants/battle_move_effects.h"
extern u32 gBattleTypeFlags;
extern struct BattlePokemon gBattleMons[4];
diff --git a/src/daycare.c b/src/daycare.c
index 8dd45863a..331ec192f 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -3,7 +3,7 @@
#include "daycare.h"
#include "string_util.h"
#include "species.h"
-#include "items.h"
+#include "constants/items.h"
#include "mail.h"
#include "pokemon_storage_system.h"
#include "event_data.h"
diff --git a/src/decoration.c b/src/decoration.c
index 8093825f4..124d6f988 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "constants/decorations.h"
#include "decompress.h"
#include "malloc.h"
#include "text.h"
@@ -32,7 +33,7 @@
#include "tilesets.h"
#include "item_icon.h"
#include "trader.h"
-#include "map_object_constants.h"
+#include "constants/map_objects.h"
#include "decoration_inventory.h"
#include "decoration.h"
#include "graphics.h"
diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c
index 03ab6c00c..308320206 100644
--- a/src/decoration_inventory.c
+++ b/src/decoration_inventory.c
@@ -1,6 +1,7 @@
// Includes
#include "global.h"
+#include "constants/decorations.h"
#include "decoration.h"
#include "decoration_inventory.h"
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index d9d77d2e9..1bff57f84 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -2,7 +2,7 @@
#include "pokemon.h"
#include "egg_hatch.h"
#include "pokedex.h"
-#include "items.h"
+#include "constants/items.h"
#include "script.h"
#include "decompress.h"
#include "task.h"
@@ -23,7 +23,7 @@
#include "bg.h"
#include "m4a.h"
#include "window.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "daycare.h"
#include "battle.h" // to get rid of later
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index bc7177bd7..421f24a0e 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -15,7 +15,7 @@
#include "window.h"
#include "bg.h"
#include "species.h"
-#include "game_stat.h"
+#include "constants/game_stat.h"
#include "blend_palette.h"
#include "string_util.h"
#include "m4a.h"
@@ -24,6 +24,7 @@
#include "trig.h"
#include "rng.h"
#include "event_data.h"
+#include "overworld.h"
struct HallofFameMon
{
diff --git a/src/heal_location.c b/src/heal_location.c
index efc534170..aa90fe1ae 100644
--- a/src/heal_location.c
+++ b/src/heal_location.c
@@ -1,10 +1,10 @@
// Includes
#include "global.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "heal_location.h"
-#define HEAL_LOCATION(map, x, y) {MAP_GROUP_##map, MAP_ID_##map, x, y}
+#define HEAL_LOCATION(map, x, y) {MAP_GROUP(map), MAP_NUM(map), x, y}
// Static type declarations
diff --git a/src/item.c b/src/item.c
index 5cf9edf6c..931027e25 100644
--- a/src/item.c
+++ b/src/item.c
@@ -1,6 +1,6 @@
#include "global.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "string_util.h"
#include "text.h"
#include "event_data.h"
diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c
index 62171e475..bcb9f86f7 100644
--- a/src/lilycove_lady.c
+++ b/src/lilycove_lady.c
@@ -11,7 +11,7 @@
#include "rng.h"
#include "string_util.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "item_menu.h"
#include "text.h"
#include "easy_chat.h"
diff --git a/src/lottery_corner.c b/src/lottery_corner.c
index 211b78f19..e8fd234c5 100644
--- a/src/lottery_corner.c
+++ b/src/lottery_corner.c
@@ -2,7 +2,7 @@
#include "lottery_corner.h"
#include "event_data.h"
#include "pokemon.h"
-#include "items.h"
+#include "constants/items.h"
#include "rng.h"
#include "species.h"
#include "string_util.h"
diff --git a/src/mail.c b/src/mail.c
index dddc06feb..f56e05c44 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "constants/items.h"
#include "main.h"
#include "overworld.h"
#include "task.h"
diff --git a/src/pokemon_1.c b/src/pokemon_1.c
index f56ade967..1d8246eae 100644
--- a/src/pokemon_1.c
+++ b/src/pokemon_1.c
@@ -2,7 +2,7 @@
#include "pokemon.h"
#include "rng.h"
#include "main.h"
-#include "items.h"
+#include "constants/items.h"
#include "string_util.h"
#include "text.h"
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index 1fafee810..6c7707424 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -1,7 +1,7 @@
#include "global.h"
#include "pokemon.h"
#include "main.h"
-#include "items.h"
+#include "constants/items.h"
#include "string_util.h"
#include "battle_message.h"
#include "rtc.h"
@@ -9,7 +9,7 @@
#include "battle.h"
#include "species.h"
#include "link.h"
-#include "hold_effects.h"
+#include "constants/hold_effects.h"
#include "rng.h"
#include "trainer_classes.h"
#include "trainer_ids.h"
@@ -19,7 +19,7 @@
#include "task.h"
#include "sprite.h"
#include "text.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "pokemon_animation.h"
#include "pokedex.h"
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index e9cd3e215..7829ac87c 100755
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -3,7 +3,7 @@
#include "bg.h"
#include "decompress.h"
#include "item.h"
-#include "items.h"
+#include "constants/items.h"
#include "link.h"
#include "m4a.h"
#include "main.h"
diff --git a/src/region_map.c b/src/region_map.c
index 8c8f64df9..96d780b04 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -7,9 +7,9 @@
#include "palette.h"
#include "party_menu.h"
#include "trig.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "overworld.h"
-#include "flags.h"
+#include "constants/flags.h"
#include "event_data.h"
#include "rom6.h"
#include "secret_base.h"
@@ -242,56 +242,56 @@ static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_ic
static const u8 gUnknown_085A1D68[] = INCBIN_U8("graphics/pokenav/fly_target_icons.4bpp.lz");
static const u8 gUnknown_085A1E3C[][3] = {
- {MAP_GROUP_LITTLEROOT_TOWN, MAP_ID_LITTLEROOT_TOWN, 1},
- {MAP_GROUP_OLDALE_TOWN, MAP_ID_OLDALE_TOWN, 14},
- {MAP_GROUP_DEWFORD_TOWN, MAP_ID_DEWFORD_TOWN, 15},
- {MAP_GROUP_LAVARIDGE_TOWN, MAP_ID_LAVARIDGE_TOWN, 16},
- {MAP_GROUP_FALLARBOR_TOWN, MAP_ID_FALLARBOR_TOWN, 17},
- {MAP_GROUP_VERDANTURF_TOWN, MAP_ID_VERDANTURF_TOWN, 18},
- {MAP_GROUP_PACIFIDLOG_TOWN, MAP_ID_PACIFIDLOG_TOWN, 19},
- {MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, 3},
- {MAP_GROUP_SLATEPORT_CITY, MAP_ID_SLATEPORT_CITY, 4},
- {MAP_GROUP_MAUVILLE_CITY, MAP_ID_MAUVILLE_CITY, 5},
- {MAP_GROUP_RUSTBORO_CITY, MAP_ID_RUSTBORO_CITY, 6},
- {MAP_GROUP_FORTREE_CITY, MAP_ID_FORTREE_CITY, 7},
- {MAP_GROUP_LILYCOVE_CITY, MAP_ID_LILYCOVE_CITY, 8},
- {MAP_GROUP_MOSSDEEP_CITY, MAP_ID_MOSSDEEP_CITY, 9},
- {MAP_GROUP_SOOTOPOLIS_CITY, MAP_ID_SOOTOPOLIS_CITY, 10},
- {MAP_GROUP_EVER_GRANDE_CITY, MAP_ID_EVER_GRANDE_CITY, 11},
- {MAP_GROUP_ROUTE101, MAP_ID_ROUTE101, 0},
- {MAP_GROUP_ROUTE102, MAP_ID_ROUTE102, 0},
- {MAP_GROUP_ROUTE103, MAP_ID_ROUTE103, 0},
- {MAP_GROUP_ROUTE104, MAP_ID_ROUTE104, 0},
- {MAP_GROUP_ROUTE105, MAP_ID_ROUTE105, 0},
- {MAP_GROUP_ROUTE106, MAP_ID_ROUTE106, 0},
- {MAP_GROUP_ROUTE107, MAP_ID_ROUTE107, 0},
- {MAP_GROUP_ROUTE108, MAP_ID_ROUTE108, 0},
- {MAP_GROUP_ROUTE109, MAP_ID_ROUTE109, 0},
- {MAP_GROUP_ROUTE110, MAP_ID_ROUTE110, 0},
- {MAP_GROUP_ROUTE111, MAP_ID_ROUTE111, 0},
- {MAP_GROUP_ROUTE112, MAP_ID_ROUTE112, 0},
- {MAP_GROUP_ROUTE113, MAP_ID_ROUTE113, 0},
- {MAP_GROUP_ROUTE114, MAP_ID_ROUTE114, 0},
- {MAP_GROUP_ROUTE115, MAP_ID_ROUTE115, 0},
- {MAP_GROUP_ROUTE116, MAP_ID_ROUTE116, 0},
- {MAP_GROUP_ROUTE117, MAP_ID_ROUTE117, 0},
- {MAP_GROUP_ROUTE118, MAP_ID_ROUTE118, 0},
- {MAP_GROUP_ROUTE119, MAP_ID_ROUTE119, 0},
- {MAP_GROUP_ROUTE120, MAP_ID_ROUTE120, 0},
- {MAP_GROUP_ROUTE121, MAP_ID_ROUTE121, 0},
- {MAP_GROUP_ROUTE122, MAP_ID_ROUTE122, 0},
- {MAP_GROUP_ROUTE123, MAP_ID_ROUTE123, 0},
- {MAP_GROUP_ROUTE124, MAP_ID_ROUTE124, 0},
- {MAP_GROUP_ROUTE125, MAP_ID_ROUTE125, 0},
- {MAP_GROUP_ROUTE126, MAP_ID_ROUTE126, 0},
- {MAP_GROUP_ROUTE127, MAP_ID_ROUTE127, 0},
- {MAP_GROUP_ROUTE128, MAP_ID_ROUTE128, 0},
- {MAP_GROUP_ROUTE129, MAP_ID_ROUTE129, 0},
- {MAP_GROUP_ROUTE130, MAP_ID_ROUTE130, 0},
- {MAP_GROUP_ROUTE131, MAP_ID_ROUTE131, 0},
- {MAP_GROUP_ROUTE132, MAP_ID_ROUTE132, 0},
- {MAP_GROUP_ROUTE133, MAP_ID_ROUTE133, 0},
- {MAP_GROUP_ROUTE134, MAP_ID_ROUTE134, 0}
+ {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 1},
+ {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 14},
+ {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 15},
+ {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 16},
+ {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 17},
+ {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 18},
+ {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 19},
+ {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 3},
+ {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 4},
+ {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 5},
+ {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 6},
+ {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 7},
+ {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 8},
+ {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 9},
+ {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 10},
+ {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 11},
+ {MAP_GROUP(ROUTE101), MAP_NUM(ROUTE101), 0},
+ {MAP_GROUP(ROUTE102), MAP_NUM(ROUTE102), 0},
+ {MAP_GROUP(ROUTE103), MAP_NUM(ROUTE103), 0},
+ {MAP_GROUP(ROUTE104), MAP_NUM(ROUTE104), 0},
+ {MAP_GROUP(ROUTE105), MAP_NUM(ROUTE105), 0},
+ {MAP_GROUP(ROUTE106), MAP_NUM(ROUTE106), 0},
+ {MAP_GROUP(ROUTE107), MAP_NUM(ROUTE107), 0},
+ {MAP_GROUP(ROUTE108), MAP_NUM(ROUTE108), 0},
+ {MAP_GROUP(ROUTE109), MAP_NUM(ROUTE109), 0},
+ {MAP_GROUP(ROUTE110), MAP_NUM(ROUTE110), 0},
+ {MAP_GROUP(ROUTE111), MAP_NUM(ROUTE111), 0},
+ {MAP_GROUP(ROUTE112), MAP_NUM(ROUTE112), 0},
+ {MAP_GROUP(ROUTE113), MAP_NUM(ROUTE113), 0},
+ {MAP_GROUP(ROUTE114), MAP_NUM(ROUTE114), 0},
+ {MAP_GROUP(ROUTE115), MAP_NUM(ROUTE115), 0},
+ {MAP_GROUP(ROUTE116), MAP_NUM(ROUTE116), 0},
+ {MAP_GROUP(ROUTE117), MAP_NUM(ROUTE117), 0},
+ {MAP_GROUP(ROUTE118), MAP_NUM(ROUTE118), 0},
+ {MAP_GROUP(ROUTE119), MAP_NUM(ROUTE119), 0},
+ {MAP_GROUP(ROUTE120), MAP_NUM(ROUTE120), 0},
+ {MAP_GROUP(ROUTE121), MAP_NUM(ROUTE121), 0},
+ {MAP_GROUP(ROUTE122), MAP_NUM(ROUTE122), 0},
+ {MAP_GROUP(ROUTE123), MAP_NUM(ROUTE123), 0},
+ {MAP_GROUP(ROUTE124), MAP_NUM(ROUTE124), 0},
+ {MAP_GROUP(ROUTE125), MAP_NUM(ROUTE125), 0},
+ {MAP_GROUP(ROUTE126), MAP_NUM(ROUTE126), 0},
+ {MAP_GROUP(ROUTE127), MAP_NUM(ROUTE127), 0},
+ {MAP_GROUP(ROUTE128), MAP_NUM(ROUTE128), 0},
+ {MAP_GROUP(ROUTE129), MAP_NUM(ROUTE129), 0},
+ {MAP_GROUP(ROUTE130), MAP_NUM(ROUTE130), 0},
+ {MAP_GROUP(ROUTE131), MAP_NUM(ROUTE131), 0},
+ {MAP_GROUP(ROUTE132), MAP_NUM(ROUTE132), 0},
+ {MAP_GROUP(ROUTE133), MAP_NUM(ROUTE133), 0},
+ {MAP_GROUP(ROUTE134), MAP_NUM(ROUTE134), 0}
};
static const u8 *const gUnknown_085A1ED4[] = {
@@ -871,10 +871,10 @@ static void RegionMap_InitializeStateBasedOnPlayerLocation(void)
u16 xOnMap;
struct WarpData *storedWarp;
- if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_SS_TIDAL_CORRIDOR
- && (gSaveBlock1Ptr->location.mapNum == MAP_ID_SS_TIDAL_CORRIDOR
- || gSaveBlock1Ptr->location.mapNum == MAP_ID_SS_TIDAL_LOWER_DECK
- || gSaveBlock1Ptr->location.mapNum == MAP_ID_SS_TIDAL_ROOMS))
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SS_TIDAL_CORRIDOR)
+ && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(SS_TIDAL_CORRIDOR)
+ || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SS_TIDAL_LOWER_DECK)
+ || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SS_TIDAL_ROOMS)))
{
RegionMap_InitializeStateBasedOnSSTidalLocation();
return;
diff --git a/src/safari_zone.c b/src/safari_zone.c
index d3d40af28..19a26dad9 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -1,7 +1,7 @@
#include "global.h"
#include "safari_zone.h"
#include "event_data.h"
-#include "game_stat.h"
+#include "constants/game_stat.h"
#include "main.h"
#include "battle.h"
#include "string_util.h"
diff --git a/src/save.c b/src/save.c
index 528c67145..023ca6870 100644
--- a/src/save.c
+++ b/src/save.c
@@ -1,7 +1,7 @@
#include "global.h"
#include "gba/flash_internal.h"
#include "save.h"
-#include "game_stat.h"
+#include "constants/game_stat.h"
#include "task.h"
extern struct SaveSectionLocation gRamSaveSectionLocations[0xE];
diff --git a/src/save_location.c b/src/save_location.c
index 61a5fd30d..262aaf40c 100755
--- a/src/save_location.c
+++ b/src/save_location.c
@@ -1,9 +1,6 @@
#include "global.h"
#include "save_location.h"
-#include "map_constants.h"
-
-// used to make the list defines a little less ugly.
-#define MAP(name) ((MAP_GROUP_##name << 8) + (MAP_ID_##name))
+#include "constants/maps.h"
// specialSaveWarp flags
#define POKECENTER_SAVEWARP (1 << 1)
@@ -29,44 +26,44 @@ static bool32 IsCurMapInLocationList(const u16 *list)
// TODO: Not require a packed u16 array for these lists
static const u16 sSaveLocationPokeCenterList[] =
{
- MAP(OLDALE_TOWN_POKEMON_CENTER_1F),
- MAP(OLDALE_TOWN_POKEMON_CENTER_2F),
- MAP(DEWFORD_TOWN_POKEMON_CENTER_1F),
- MAP(DEWFORD_TOWN_POKEMON_CENTER_2F),
- MAP(LAVARIDGE_TOWN_POKEMON_CENTER_1F),
- MAP(LAVARIDGE_TOWN_POKEMON_CENTER_2F),
- MAP(FALLARBOR_TOWN_POKEMON_CENTER_1F),
- MAP(FALLARBOR_TOWN_POKEMON_CENTER_2F),
- MAP(VERDANTURF_TOWN_POKEMON_CENTER_1F),
- MAP(VERDANTURF_TOWN_POKEMON_CENTER_2F),
- MAP(PACIFIDLOG_TOWN_POKEMON_CENTER_1F),
- MAP(PACIFIDLOG_TOWN_POKEMON_CENTER_2F),
- MAP(PETALBURG_CITY_POKEMON_CENTER_1F),
- MAP(PETALBURG_CITY_POKEMON_CENTER_2F),
- MAP(SLATEPORT_CITY_POKEMON_CENTER_1F),
- MAP(SLATEPORT_CITY_POKEMON_CENTER_2F),
- MAP(MAUVILLE_CITY_POKEMON_CENTER_1F),
- MAP(MAUVILLE_CITY_POKEMON_CENTER_2F),
- MAP(RUSTBORO_CITY_POKEMON_CENTER_1F),
- MAP(RUSTBORO_CITY_POKEMON_CENTER_2F),
- MAP(FORTREE_CITY_POKEMON_CENTER_1F),
- MAP(FORTREE_CITY_POKEMON_CENTER_2F),
- MAP(LILYCOVE_CITY_POKEMON_CENTER_1F),
- MAP(LILYCOVE_CITY_POKEMON_CENTER_2F),
- MAP(MOSSDEEP_CITY_POKEMON_CENTER_1F),
- MAP(MOSSDEEP_CITY_POKEMON_CENTER_2F),
- MAP(SOOTOPOLIS_CITY_POKEMON_CENTER_1F),
- MAP(SOOTOPOLIS_CITY_POKEMON_CENTER_2F),
- MAP(EVER_GRANDE_CITY_POKEMON_CENTER_1F),
- MAP(EVER_GRANDE_CITY_POKEMON_CENTER_2F),
- MAP(EVER_GRANDE_CITY_POKEMON_LEAGUE_1F),
- MAP(EVER_GRANDE_CITY_POKEMON_LEAGUE_2F),
- MAP(BATTLE_FRONTIER_POKEMON_CENTER_1F),
- MAP(BATTLE_FRONTIER_POKEMON_CENTER_2F),
- MAP(SINGLE_BATTLE_COLOSSEUM),
- MAP(TRADE_CENTER),
- MAP(RECORD_CORNER),
- MAP(DOUBLE_BATTLE_COLOSSEUM),
+ MAP_OLDALE_TOWN_POKEMON_CENTER_1F,
+ MAP_OLDALE_TOWN_POKEMON_CENTER_2F,
+ MAP_DEWFORD_TOWN_POKEMON_CENTER_1F,
+ MAP_DEWFORD_TOWN_POKEMON_CENTER_2F,
+ MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F,
+ MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F,
+ MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F,
+ MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F,
+ MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F,
+ MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F,
+ MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F,
+ MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F,
+ MAP_PETALBURG_CITY_POKEMON_CENTER_1F,
+ MAP_PETALBURG_CITY_POKEMON_CENTER_2F,
+ MAP_SLATEPORT_CITY_POKEMON_CENTER_1F,
+ MAP_SLATEPORT_CITY_POKEMON_CENTER_2F,
+ MAP_MAUVILLE_CITY_POKEMON_CENTER_1F,
+ MAP_MAUVILLE_CITY_POKEMON_CENTER_2F,
+ MAP_RUSTBORO_CITY_POKEMON_CENTER_1F,
+ MAP_RUSTBORO_CITY_POKEMON_CENTER_2F,
+ MAP_FORTREE_CITY_POKEMON_CENTER_1F,
+ MAP_FORTREE_CITY_POKEMON_CENTER_2F,
+ MAP_LILYCOVE_CITY_POKEMON_CENTER_1F,
+ MAP_LILYCOVE_CITY_POKEMON_CENTER_2F,
+ MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F,
+ MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F,
+ MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F,
+ MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F,
+ MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F,
+ MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F,
+ MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F,
+ MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F,
+ MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F,
+ MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F,
+ MAP_SINGLE_BATTLE_COLOSSEUM,
+ MAP_TRADE_CENTER,
+ MAP_RECORD_CORNER,
+ MAP_DOUBLE_BATTLE_COLOSSEUM,
0xFFFF,
};
@@ -77,7 +74,7 @@ static bool32 IsCurMapPokeCenter(void)
static const u16 sSaveLocationReloadLocList[] = // there's only 1 location, and it's presumed its for the save reload feature for battle tower
{
- MAP(BATTLE_TOWER_LOBBY),
+ MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY,
0xFFFF,
};
diff --git a/src/secret_base.c b/src/secret_base.c
index de2b7221a..7a1f0158e 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -1,6 +1,7 @@
// Includes
#include "global.h"
+#include "constants/decorations.h"
#include "malloc.h"
#include "task.h"
#include "palette.h"
@@ -10,7 +11,7 @@
#include "menu_helpers.h"
#include "new_menu_helpers.h"
#include "menu_indicators.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "songs.h"
#include "sound.h"
#include "overworld.h"
@@ -89,30 +90,30 @@ const struct {
};
const u8 gUnknown_0858CFE8[] = {
- MAP_ID_SECRET_BASE_RED_CAVE1, 0x00, 0x01, 0x03,
- MAP_ID_SECRET_BASE_RED_CAVE2, 0x00, 0x05, 0x09,
- MAP_ID_SECRET_BASE_RED_CAVE3, 0x00, 0x01, 0x03,
- MAP_ID_SECRET_BASE_RED_CAVE4, 0x00, 0x07, 0x0d,
- MAP_ID_SECRET_BASE_BROWN_CAVE1, 0x00, 0x02, 0x03,
- MAP_ID_SECRET_BASE_BROWN_CAVE2, 0x00, 0x09, 0x02,
- MAP_ID_SECRET_BASE_BROWN_CAVE3, 0x00, 0x0d, 0x04,
- MAP_ID_SECRET_BASE_BROWN_CAVE4, 0x00, 0x01, 0x02,
- MAP_ID_SECRET_BASE_BLUE_CAVE1, 0x00, 0x01, 0x03,
- MAP_ID_SECRET_BASE_BLUE_CAVE2, 0x00, 0x01, 0x02,
- MAP_ID_SECRET_BASE_BLUE_CAVE3, 0x00, 0x03, 0x0f,
- MAP_ID_SECRET_BASE_BLUE_CAVE4, 0x00, 0x03, 0x0e,
- MAP_ID_SECRET_BASE_YELLOW_CAVE1, 0x00, 0x09, 0x03,
- MAP_ID_SECRET_BASE_YELLOW_CAVE2, 0x00, 0x08, 0x07,
- MAP_ID_SECRET_BASE_YELLOW_CAVE3, 0x00, 0x03, 0x06,
- MAP_ID_SECRET_BASE_YELLOW_CAVE4, 0x00, 0x05, 0x09,
- MAP_ID_SECRET_BASE_TREE1, 0x00, 0x02, 0x03,
- MAP_ID_SECRET_BASE_TREE2, 0x00, 0x05, 0x06,
- MAP_ID_SECRET_BASE_TREE3, 0x00, 0x0f, 0x03,
- MAP_ID_SECRET_BASE_TREE4, 0x00, 0x04, 0x0a,
- MAP_ID_SECRET_BASE_SHRUB1, 0x00, 0x03, 0x03,
- MAP_ID_SECRET_BASE_SHRUB2, 0x00, 0x01, 0x02,
- MAP_ID_SECRET_BASE_SHRUB3, 0x00, 0x07, 0x08,
- MAP_ID_SECRET_BASE_SHRUB4, 0x00, 0x09, 0x06
+ MAP_NUM(SECRET_BASE_RED_CAVE1), 0x00, 0x01, 0x03,
+ MAP_NUM(SECRET_BASE_RED_CAVE2), 0x00, 0x05, 0x09,
+ MAP_NUM(SECRET_BASE_RED_CAVE3), 0x00, 0x01, 0x03,
+ MAP_NUM(SECRET_BASE_RED_CAVE4), 0x00, 0x07, 0x0d,
+ MAP_NUM(SECRET_BASE_BROWN_CAVE1), 0x00, 0x02, 0x03,
+ MAP_NUM(SECRET_BASE_BROWN_CAVE2), 0x00, 0x09, 0x02,
+ MAP_NUM(SECRET_BASE_BROWN_CAVE3), 0x00, 0x0d, 0x04,
+ MAP_NUM(SECRET_BASE_BROWN_CAVE4), 0x00, 0x01, 0x02,
+ MAP_NUM(SECRET_BASE_BLUE_CAVE1), 0x00, 0x01, 0x03,
+ MAP_NUM(SECRET_BASE_BLUE_CAVE2), 0x00, 0x01, 0x02,
+ MAP_NUM(SECRET_BASE_BLUE_CAVE3), 0x00, 0x03, 0x0f,
+ MAP_NUM(SECRET_BASE_BLUE_CAVE4), 0x00, 0x03, 0x0e,
+ MAP_NUM(SECRET_BASE_YELLOW_CAVE1), 0x00, 0x09, 0x03,
+ MAP_NUM(SECRET_BASE_YELLOW_CAVE2), 0x00, 0x08, 0x07,
+ MAP_NUM(SECRET_BASE_YELLOW_CAVE3), 0x00, 0x03, 0x06,
+ MAP_NUM(SECRET_BASE_YELLOW_CAVE4), 0x00, 0x05, 0x09,
+ MAP_NUM(SECRET_BASE_TREE1), 0x00, 0x02, 0x03,
+ MAP_NUM(SECRET_BASE_TREE2), 0x00, 0x05, 0x06,
+ MAP_NUM(SECRET_BASE_TREE3), 0x00, 0x0f, 0x03,
+ MAP_NUM(SECRET_BASE_TREE4), 0x00, 0x04, 0x0a,
+ MAP_NUM(SECRET_BASE_SHRUB1), 0x00, 0x03, 0x03,
+ MAP_NUM(SECRET_BASE_SHRUB2), 0x00, 0x01, 0x02,
+ MAP_NUM(SECRET_BASE_SHRUB3), 0x00, 0x07, 0x08,
+ MAP_NUM(SECRET_BASE_SHRUB4), 0x00, 0x09, 0x06
};
const struct MenuAction gUnknown_0858D048[] = {
@@ -360,7 +361,7 @@ void sub_80E8F9C(void)
s8 idx;
idx = sCurSecretBaseId / 10 * 4;
- warp1_set_2(MAP_GROUP_SECRET_BASE_RED_CAVE1, gUnknown_0858CFE8[idx], gUnknown_0858CFE8[idx + 1]);
+ warp1_set_2(MAP_GROUP(SECRET_BASE_RED_CAVE1), gUnknown_0858CFE8[idx], gUnknown_0858CFE8[idx + 1]);
}
void sub_80E8FD0(u8 taskId)
@@ -455,7 +456,7 @@ void sub_80E91F8(void)
bool8 CurrentMapIsSecretBase(void)
{
- if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_SECRET_BASE_RED_CAVE1 && (u8)gSaveBlock1Ptr->location.mapNum <= MAP_ID_SECRET_BASE_SHRUB4)
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SECRET_BASE_RED_CAVE1) && (u8)gSaveBlock1Ptr->location.mapNum <= MAP_NUM(SECRET_BASE_SHRUB4))
{
return TRUE;
}
diff --git a/src/tv.c b/src/tv.c
index 1d978b093..842ae41c6 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -3,7 +3,7 @@
#include "global.h"
#include "rtc.h"
#include "overworld.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "rng.h"
#include "event_data.h"
#include "fieldmap.h"
@@ -19,7 +19,7 @@
#include "battle.h"
#include "battle_tower.h"
#include "contest.h"
-#include "items.h"
+#include "constants/items.h"
#include "item.h"
#include "link.h"
#include "main.h"
@@ -832,7 +832,7 @@ void UpdateTVScreensOnMap(int width, int height)
case 2:
break;
default:
- if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F && gSaveBlock1Ptr->location.mapNum == MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F)
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LILYCOVE_CITY_COVE_LILY_MOTEL_1F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(LILYCOVE_CITY_COVE_LILY_MOTEL_1F))
{
SetTVMetatilesOnMap(width, height, 0x3);
}
@@ -1575,7 +1575,9 @@ void SaveRecordedItemPurchasesForTVShow(void)
TVShow *show;
u8 i;
- if (!(gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_TRAINER_HILL_LOBBY && gSaveBlock1Ptr->location.mapNum == MAP_ID_TRAINER_HILL_LOBBY) && !(gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_BATTLE_FRONTIER_MART && gSaveBlock1Ptr->location.mapNum == MAP_ID_BATTLE_FRONTIER_MART) && !rbernoulli(1, 3))
+ if (!(gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRAINER_HILL_ENTRANCE) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_HILL_ENTRANCE))
+ && !(gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_MART) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_MART))
+ && !rbernoulli(1, 3))
{
sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows);
if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_SMART_SHOPPER, FALSE) != TRUE)
@@ -2959,13 +2961,13 @@ bool8 IsPriceDiscounted(u8 newsKind)
switch (newsKind)
{
case POKENEWS_SLATEPORT:
- if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_SLATEPORT_CITY && gSaveBlock1Ptr->location.mapNum == MAP_ID_SLATEPORT_CITY && gSpecialVar_LastTalked == 25)
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SLATEPORT_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SLATEPORT_CITY) && gSpecialVar_LastTalked == 25)
{
return TRUE;
}
return FALSE;
case POKENEWS_LILYCOVE:
- if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP && gSaveBlock1Ptr->location.mapNum == MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP)
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP))
{
return TRUE;
}
@@ -3694,20 +3696,20 @@ u32 GetPlayerIDAsU32(void)
u8 CheckForBigMovieOrEmergencyNewsOnTV(void)
{
- if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)
+ if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F))
{
return 0;
}
if (gSaveBlock2Ptr->playerGender == MALE)
{
- if (gSaveBlock1Ptr->location.mapNum != MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)
+ if (gSaveBlock1Ptr->location.mapNum != MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F))
{
return 0;
}
}
else
{
- if (gSaveBlock1Ptr->location.mapNum != MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F)
+ if (gSaveBlock1Ptr->location.mapNum != MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_1F))
{
return 0;
}
@@ -3725,11 +3727,11 @@ u8 CheckForBigMovieOrEmergencyNewsOnTV(void)
void GetMomOrDadStringForTVMessage(void)
{
- if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F))
{
if (gSaveBlock2Ptr->playerGender == MALE)
{
- if (gSaveBlock1Ptr->location.mapNum == MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)
+ if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F))
{
StringCopy(gStringVar1, gText_Mom);
VarSet(VAR_0x4003, 1);
@@ -3737,7 +3739,7 @@ void GetMomOrDadStringForTVMessage(void)
}
else
{
- if (gSaveBlock1Ptr->location.mapNum == MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F)
+ if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_1F))
{
StringCopy(gStringVar1, gText_Mom);
VarSet(VAR_0x4003, 1);
diff --git a/src/wild_encounter.c b/src/wild_encounter.c
index ce1e02e5e..953624b15 100644
--- a/src/wild_encounter.c
+++ b/src/wild_encounter.c
@@ -5,19 +5,20 @@
#include "metatile_behavior.h"
#include "fieldmap.h"
#include "rng.h"
-#include "map_constants.h"
+#include "constants/maps.h"
#include "field_player_avatar.h"
-#include "abilities.h"
+#include "constants/abilities.h"
#include "event_data.h"
#include "safari_zone.h"
+#include "overworld.h"
#include "pokeblock.h"
#include "battle_setup.h"
#include "roamer.h"
-#include "game_stat.h"
+#include "constants/game_stat.h"
#include "tv.h"
#include "link.h"
#include "script.h"
-#include "items.h"
+#include "constants/items.h"
extern const u8 EventScript_RepelWoreOff[];
@@ -84,8 +85,8 @@ static bool8 CheckFeebas(void)
u8 route119Section = 0;
u16 waterTileNum;
- if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_ROUTE119
- && gSaveBlock1Ptr->location.mapNum == MAP_ID_ROUTE119)
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE119)
+ && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE119))
{
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
x -= 7;
@@ -283,8 +284,8 @@ static u16 GetCurrentMapWildMonHeaderId(void)
if (gWildMonHeaders[i].mapGroup == gSaveBlock1Ptr->location.mapGroup &&
gWildMonHeaders[i].mapNum == gSaveBlock1Ptr->location.mapNum)
{
- if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_ALTERING_CAVE &&
- gSaveBlock1Ptr->location.mapNum == MAP_ID_ALTERING_CAVE)
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ALTERING_CAVE) &&
+ gSaveBlock1Ptr->location.mapNum == MAP_NUM(ALTERING_CAVE))
{
u16 alteringCaveId = VarGet(VAR_ALTERING_CAVE_WILD_SET);
if (alteringCaveId > 8)
@@ -513,8 +514,8 @@ static bool8 DoGlobalWildEncounterDiceRoll(void)
static bool8 AreLegendariesInSootopolisPreventingEncounters(void)
{
- if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP_SOOTOPOLIS_CITY
- || gSaveBlock1Ptr->location.mapNum != MAP_ID_SOOTOPOLIS_CITY)
+ if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(SOOTOPOLIS_CITY)
+ || gSaveBlock1Ptr->location.mapNum != MAP_NUM(SOOTOPOLIS_CITY))
{
return FALSE;
}