summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/abilities.h81
-rw-r--r--include/battle.h711
-rw-r--r--include/battle_ai_script_commands.h4
-rw-r--r--include/battle_anim.h50
-rw-r--r--include/battle_bg.h13
-rw-r--r--include/battle_controllers.h112
-rw-r--r--include/battle_frontier_1.h7
-rw-r--r--include/battle_frontier_2.h1
-rw-r--r--include/battle_gfx_sfx_util.h50
-rw-r--r--include/battle_interface.h13
-rw-r--r--include/battle_link_817C95C.h2
-rw-r--r--include/battle_main.h (renamed from include/battle_2.h)16
-rw-r--r--include/battle_message.h12
-rw-r--r--include/battle_move_effects.h222
-rw-r--r--include/battle_script_commands.h45
-rw-r--r--include/battle_scripts.h290
-rw-r--r--include/battle_setup.h84
-rw-r--r--include/battle_transition.h68
-rw-r--r--include/battle_util.h12
-rw-r--r--include/battle_util2.h10
-rw-r--r--include/berry.h10
-rw-r--r--include/berry_blender.h8
-rw-r--r--include/berry_fix_program.h6
-rw-r--r--include/berry_tag_screen.h6
-rw-r--r--include/bg.h2
-rw-r--r--include/bike.h78
-rw-r--r--include/blend_palette.h10
-rw-r--r--include/clear_save_data_menu.h6
-rw-r--r--include/config.h17
-rw-r--r--include/constants/abilities.h83
-rw-r--r--include/constants/battle.h284
-rw-r--r--include/constants/battle_ai.h52
-rw-r--r--include/constants/battle_anim.h85
-rw-r--r--include/constants/battle_move_effects.h219
-rw-r--r--include/constants/battle_script_commands.h97
-rw-r--r--include/constants/battle_string_ids.h (renamed from include/battle_string_ids.h)7
-rw-r--r--include/constants/decorations.h126
-rw-r--r--include/constants/easy_chat.h1079
-rw-r--r--include/constants/flags.h1579
-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.h467
-rw-r--r--include/constants/map_objects.h263
-rw-r--r--include/constants/maps.h598
-rw-r--r--include/constants/mauville_man.h10
-rw-r--r--include/constants/moves.h362
-rw-r--r--include/constants/opponents.h860
-rw-r--r--include/constants/pokemon.h80
-rw-r--r--include/constants/region_map_sections.h219
-rw-r--r--include/constants/rgb.h16
-rw-r--r--include/constants/songs.h541
-rw-r--r--include/constants/species.h450
-rw-r--r--include/constants/trainers.h1129
-rw-r--r--include/constants/vars.h287
-rw-r--r--include/constants/weather.h39
-rw-r--r--include/contest.h10
-rw-r--r--include/coord_event_weather.h6
-rw-r--r--include/data/bard_music/pokemon.h2
-rw-r--r--include/data/pokedex_orders.h1199
-rw-r--r--include/data/pokemon/base_stats.h13576
-rw-r--r--include/data/pokemon/cry_ids.h143
-rw-r--r--include/data/pokemon/egg_moves.h1315
-rw-r--r--include/data/pokemon/evolution.h192
-rw-r--r--include/data/pokemon/experience_tables.h849
-rw-r--r--include/data/pokemon/item_effects.h241
-rw-r--r--include/data/pokemon/level_up_learnset_pointers.h420
-rw-r--r--include/data/pokemon/level_up_learnsets.h5623
-rw-r--r--include/data/pokemon/tmhm_learnsets.h9393
-rw-r--r--include/data/pokemon/trainer_class_lookups.h176
-rw-r--r--include/data/region_map/region_map_entries.h421
-rw-r--r--include/daycare.h27
-rw-r--r--include/decompress.h4
-rw-r--r--include/decoration.h124
-rw-r--r--include/dewford_trend.h1
-rw-r--r--include/dma3.h6
-rw-r--r--include/egg_hatch.h10
-rw-r--r--include/event_data.h14
-rw-r--r--[-rwxr-xr-x]include/event_scripts.h40
-rw-r--r--include/field_camera.h2
-rw-r--r--include/field_door.h15
-rw-r--r--include/field_effect.h12
-rw-r--r--include/field_effect_helpers.h1
-rw-r--r--[-rwxr-xr-x]include/field_map_obj.h14
-rw-r--r--include/field_map_obj_helpers.h30
-rw-r--r--include/field_player_avatar.h23
-rw-r--r--include/field_poison.h19
-rw-r--r--include/field_screen.h1
-rw-r--r--include/field_specials.h2
-rw-r--r--include/field_weather.h167
-rw-r--r--include/flags.h111
-rw-r--r--include/fldeff_80F9BCC.h1
-rw-r--r--include/fldeff_teleport.h7
-rw-r--r--include/gba/defines.h8
-rw-r--r--include/gba/gba.h2
-rw-r--r--include/gba/io_reg.h55
-rw-r--r--include/gba/isagbprint.h50
-rw-r--r--include/gba/libc.h10
-rw-r--r--include/gba/m4a_internal.h2
-rw-r--r--include/gba/macro.h96
-rw-r--r--include/gba/types.h2
-rw-r--r--include/global.fieldmap.h49
-rw-r--r--include/global.h164
-rw-r--r--include/graphics.h2635
-rw-r--r--include/hall_of_fame.h8
-rw-r--r--include/heal_location.h25
-rw-r--r--include/international_string_util.h4
-rw-r--r--include/intro.h8
-rw-r--r--include/item.h1
-rw-r--r--include/item_icon.h15
-rw-r--r--include/item_menu.h13
-rw-r--r--include/item_menu_icons.h12
-rw-r--r--include/item_use.h54
-rw-r--r--include/items.h398
-rw-r--r--include/landmark.h6
-rw-r--r--include/lilycove_lady.h2
-rw-r--r--include/link.h16
-rw-r--r--include/list_menu.h53
-rw-r--r--include/mail.h18
-rw-r--r--include/mail_data.h12
-rw-r--r--include/main.h2
-rw-r--r--include/main_menu.h6
-rw-r--r--include/malloc.h6
-rw-r--r--include/map_constants.h1342
-rw-r--r--include/map_obj_8097404.h32
-rw-r--r--include/map_object_constants.h239
-rw-r--r--include/menu.h42
-rw-r--r--include/menu_helpers.h18
-rw-r--r--include/moves.h366
-rw-r--r--include/mystery_event_menu.h6
-rw-r--r--include/mystery_event_msg.h16
-rw-r--r--include/mystery_event_script.h6
-rw-r--r--include/naming_screen.h89
-rw-r--r--include/new_menu_helpers.h17
-rw-r--r--include/option_menu.h6
-rw-r--r--include/overworld.h15
-rw-r--r--include/palette.h3
-rw-r--r--include/party_menu.h15
-rw-r--r--include/pokeball.h26
-rw-r--r--include/pokeblock.h53
-rw-r--r--include/pokedex.h2
-rw-r--r--include/pokemon.h116
-rw-r--r--include/pokemon_3.h2
-rw-r--r--include/pokemon_animation.h7
-rw-r--r--include/pokemon_icon.h3
-rw-r--r--include/pokemon_storage_system.h5
-rw-r--r--include/pokenav.h17
-rw-r--r--include/random.h (renamed from include/rng.h)6
-rw-r--r--include/rayquaza_scene.h17
-rw-r--r--include/recorded_battle.h41
-rw-r--r--include/region_map.h299
-rw-r--r--include/reset_rtc_screen.h6
-rw-r--r--include/rom6.h10
-rw-r--r--include/safari_zone.h2
-rw-r--r--include/save.h59
-rw-r--r--include/scanline_effect.h47
-rw-r--r--include/secret_base.h2
-rw-r--r--include/songs.h466
-rw-r--r--include/species.h454
-rw-r--r--include/sprite.h14
-rw-r--r--include/starter_choose.h7
-rw-r--r--include/strings.h175
-rw-r--r--include/text.h18
-rw-r--r--include/text_window.h15
-rw-r--r--include/time_events.h8
-rw-r--r--include/title_screen.h8
-rw-r--r--include/trainer_classes.h74
-rw-r--r--include/trainer_front_sprites.h101
-rw-r--r--include/trainer_ids.h7
-rw-r--r--include/trainer_see.h30
-rw-r--r--include/tv.h3
-rw-r--r--include/unk_text_util.h9
-rw-r--r--include/unk_transition.h13
-rw-r--r--include/unknown_task.h22
-rw-r--r--include/vars.h73
-rw-r--r--include/wallclock.h6
-rw-r--r--include/wild_encounter.h44
-rw-r--r--include/window.h2
177 files changed, 47898 insertions, 5399 deletions
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.h b/include/battle.h
index ace2bb4ad..5225b72e3 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -2,67 +2,18 @@
#define GUARD_BATTLE_H
// should they be included here or included individually by every file?
+#include "constants/battle.h"
#include "battle_util.h"
#include "battle_script_commands.h"
-#include "battle_2.h"
+#include "battle_main.h"
#include "battle_ai_switch_items.h"
+#include "battle_gfx_sfx_util.h"
+#include "battle_util2.h"
+#include "battle_bg.h"
-/*
- Banks are a name given to what could be called a 'battlerId' or 'monControllerId'.
- Each bank has a value consisting of two bits.
- 0x1 bit is responsible for the side, 0 = player's side, 1 = opponent's side.
- 0x2 bit is responsible for the id of sent out pokemon. 0 means it's the first sent out pokemon, 1 it's the second one. (Triple battle didn't exist at the time yet.)
-*/
-
-#define BATTLE_BANKS_COUNT 4
-
-#define IDENTITY_PLAYER_MON1 0
-#define IDENTITY_OPPONENT_MON1 1
-#define IDENTITY_PLAYER_MON2 2
-#define IDENTITY_OPPONENT_MON2 3
-
-#define SIDE_PLAYER 0x0
-#define SIDE_OPPONENT 0x1
-
-#define BIT_SIDE 0x1
-#define BIT_MON 0x2
-
-#define GET_BANK_IDENTITY(bank)((gBanksByIdentity[bank]))
-#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE))
-#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE))
-
-#define BATTLE_TYPE_DOUBLE 0x0001
-#define BATTLE_TYPE_LINK 0x0002
-#define BATTLE_TYPE_WILD 0x0004
-#define BATTLE_TYPE_TRAINER 0x0008
-#define BATTLE_TYPE_FIRST_BATTLE 0x0010
-#define BATTLE_TYPE_20 0x0020
-#define BATTLE_TYPE_MULTI 0x0040
-#define BATTLE_TYPE_SAFARI 0x0080
-#define BATTLE_TYPE_BATTLE_TOWER 0x0100
-#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
-#define BATTLE_TYPE_ROAMER 0x0400
-#define BATTLE_TYPE_EREADER_TRAINER 0x0800
-#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
-#define BATTLE_TYPE_LEGENDARY 0x2000
-#define BATTLE_TYPE_REGI 0x4000
-#define BATTLE_TYPE_TWO_OPPONENTS 0x8000
-#define BATTLE_TYPE_DOME 0x10000
-#define BATTLE_TYPE_PALACE 0x20000
-#define BATTLE_TYPE_ARENA 0x40000
-#define BATTLE_TYPE_FACTORY 0x80000
-#define BATTLE_TYPE_x100000 0x100000
-#define BATTLE_TYPE_PYRAMID 0x200000
-#define BATTLE_TYPE_INGAME_PARTNER 0x400000
-#define BATTLE_TYPE_x800000 0x800000
-#define BATTLE_TYPE_RECORDED 0x1000000
-#define BATTLE_TYPE_x2000000 0x2000000
-#define BATTLE_TYPE_x4000000 0x4000000
-#define BATTLE_TYPE_SECRET_BASE 0x8000000
-#define BATTLE_TYPE_GROUDON 0x10000000
-#define BATTLE_TYPE_KYORGE 0x20000000
-#define BATTLE_TYPE_RAYQUAZA 0x40000000
-#define BATTLE_TYPE_x80000000 0x80000000
+#define GET_BATTLER_POSITION(battler) (gBattlerPositions[battler])
+#define GET_BATTLER_SIDE(battler) (GetBattlerPosition(battler) & BIT_SIDE)
+#define GET_BATTLER_SIDE2(battler) (GET_BATTLER_POSITION(battler) & BIT_SIDE)
#define TRAINER_OPPONENT_3FE 0x3FE
#define TRAINER_OPPONENT_C00 0xC00
@@ -70,165 +21,37 @@
#define STEVEN_PARTNER_ID 0xC03
#define SECRET_BASE_OPPONENT 0x400
-#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID)
-#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000)
-
-#define BATTLE_WON 0x1
-#define BATTLE_LOST 0x2
-#define BATTLE_DREW 0x3
-#define BATTLE_RAN 0x4
-#define BATTLE_PLAYER_TELEPORTED 0x5
-#define BATTLE_POKE_FLED 0x6
-#define BATTLE_CAUGHT 0x7
-#define BATTLE_SAFARI_OUT_OF_BALLS 0x8
-#define BATTLE_FORFEITED 0x9
-#define BATTLE_OPPONENT_TELEPORTED 0xA
-
-#define BATTLE_OUTCOME_BIT_x80 0x80
-
-#define STATUS_SLEEP 0x7
-#define STATUS_POISON 0x8
-#define STATUS_BURN 0x10
-#define STATUS_FREEZE 0x20
-#define STATUS_PARALYSIS 0x40
-#define STATUS_TOXIC_POISON 0x80
-#define STATUS_TOXIC_COUNTER 0xF00
-
-#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON))
-#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON))
-
-#define STATUS2_CONFUSION 0x00000007
-#define STATUS2_FLINCHED 0x00000008
-#define STATUS2_UPROAR 0x00000070
-#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
-#define STATUS2_LOCK_CONFUSE 0x00000C00
-#define STATUS2_MULTIPLETURNS 0x00001000
-#define STATUS2_WRAPPED 0x0000E000
-#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every bank
-#define STATUS2_INFATUATED_WITH(bank)((gBitTable[bank] << 16))
-#define STATUS2_FOCUS_ENERGY 0x00100000
-#define STATUS2_TRANSFORMED 0x00200000
-#define STATUS2_RECHARGE 0x00400000
-#define STATUS2_RAGE 0x00800000
-#define STATUS2_SUBSTITUTE 0x01000000
-#define STATUS2_DESTINY_BOND 0x02000000
-#define STATUS2_ESCAPE_PREVENTION 0x04000000
-#define STATUS2_NIGHTMARE 0x08000000
-#define STATUS2_CURSED 0x10000000
-#define STATUS2_FORESIGHT 0x20000000
-#define STATUS2_DEFENSE_CURL 0x40000000
-#define STATUS2_TORMENT 0x80000000
-
-#define STATUS3_LEECHSEED_BANK 0x3
-#define STATUS3_LEECHSEED 0x4
-#define STATUS3_ALWAYS_HITS 0x18 // two bits
-#define STATUS3_PERISH_SONG 0x20
-#define STATUS3_ON_AIR 0x40
-#define STATUS3_UNDERGROUND 0x80
-#define STATUS3_MINIMIZED 0x100
-#define STATUS3_ROOTED 0x400
-#define STATUS3_CHARGED_UP 0x200
-#define STATUS3_YAWN 0x1800 // two bits
-#define STATUS3_IMPRISONED_OTHERS 0x2000
-#define STATUS3_GRUDGE 0x4000
-#define STATUS3_CANT_SCORE_A_CRIT 0x8000
-#define STATUS3_MUDSPORT 0x10000
-#define STATUS3_WATERSPORT 0x20000
-#define STATUS3_UNDERWATER 0x40000
-#define STATUS3_INTIMIDATE_POKES 0x80000
-#define STATUS3_TRACE 0x100000
-
-#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER))
-
-#define HITMARKER_x10 0x00000010
-#define HITMARKER_x20 0x00000020
-#define HITMARKER_DESTINYBOND 0x00000040
-#define HITMARKER_NO_ANIMATIONS 0x00000080
-#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100
-#define HITMARKER_NO_ATTACKSTRING 0x00000200
-#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400
-#define HITMARKER_NO_PPDEDUCT 0x00000800
-#define HITMARKER_PURSUIT_TRAP 0x00001000
-#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
-#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
-#define HITMARKER_RUN 0x00008000
-#define HITMARKER_IGNORE_ON_AIR 0x00010000
-#define HITMARKER_IGNORE_UNDERGROUND 0x00020000
-#define HITMARKER_IGNORE_UNDERWATER 0x00040000
-#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000
-#define HITMARKER_x100000 0x00100000
-#define HITMARKER_x200000 0x00200000
-#define HITMARKER_x400000 0x00400000
-#define HITMARKER_x800000 0x00800000
-#define HITMARKER_GRUDGE 0x01000000
-#define HITMARKER_OBEYS 0x02000000
-#define HITMARKER_x4000000 0x04000000
-#define HITMARKER_x8000000 0x08000000
-#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C))
-#define HITMARKER_UNK(bank) ((0x10000000 << bank))
-
-#define SIDE_STATUS_REFLECT (1 << 0)
-#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
-#define SIDE_STATUS_X4 (1 << 2)
-#define SIDE_STATUS_SPIKES (1 << 4)
-#define SIDE_STATUS_SAFEGUARD (1 << 5)
-#define SIDE_STATUS_FUTUREATTACK (1 << 6)
-#define SIDE_STATUS_MIST (1 << 8)
-#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
-
-#define ACTION_USE_MOVE 0
-#define ACTION_USE_ITEM 1
-#define ACTION_SWITCH 2
-#define ACTION_RUN 3
-#define ACTION_WATCHES_CAREFULLY 4
-#define ACTION_SAFARI_ZONE_BALL 5
-#define ACTION_POKEBLOCK_CASE 6
-#define ACTION_GO_NEAR 7
-#define ACTION_SAFARI_ZONE_RUN 8
-#define ACTION_9 9
-#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action
-#define ACTION_CANCEL_PARTNER 12 // when choosing an action
-#define ACTION_FINISHED 12 // when executing an action
-#define ACTION_NOTHING_FAINTED 13 // when choosing an action
-#define ACTION_INIT_VALUE 0xFF
-
-#define MOVESTATUS_MISSED (1 << 0)
-#define MOVESTATUS_SUPEREFFECTIVE (1 << 1)
-#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2)
-#define MOVESTATUS_NOTAFFECTED (1 << 3)
-#define MOVESTATUS_ONEHITKO (1 << 4)
-#define MOVESTATUS_FAILED (1 << 5)
-#define MOVESTATUS_ENDURED (1 << 6)
-#define MOVESTATUS_HUNGON (1 << 7)
-
-#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))
+// Battle Actions
+// These determine what each battler will do in a turn
+#define B_ACTION_USE_MOVE 0
+#define B_ACTION_USE_ITEM 1
+#define B_ACTION_SWITCH 2
+#define B_ACTION_RUN 3
+#define B_ACTION_SAFARI_WATCH_CAREFULLY 4
+#define B_ACTION_SAFARI_BALL 5
+#define B_ACTION_SAFARI_POKEBLOCK 6
+#define B_ACTION_SAFARI_GO_NEAR 7
+#define B_ACTION_SAFARI_RUN 8
+// The exact purposes of these are unclear
+#define B_ACTION_UNKNOWN9 9
+#define B_ACTION_EXEC_SCRIPT 10 // when executing an action
+#define B_ACTION_CANCEL_PARTNER 12 // when choosing an action
+#define B_ACTION_FINISHED 12 // when executing an action
+#define B_ACTION_NOTHING_FAINTED 13 // when choosing an action
+#define B_ACTION_NONE 0xFF
#define MAX_TRAINER_ITEMS 4
#define MAX_MON_MOVES 4
-#define WEATHER_RAIN_TEMPORARY (1 << 0)
-#define WEATHER_RAIN_DOWNPOUR (1 << 1)
-#define WEATHER_RAIN_PERMANENT (1 << 2)
-#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT))
-#define WEATHER_SANDSTORM_TEMPORARY (1 << 3)
-#define WEATHER_SANDSTORM_PERMANENT (1 << 4)
-#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT))
-#define WEATHER_SUN_TEMPORARY (1 << 5)
-#define WEATHER_SUN_PERMANENT (1 << 6)
-#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT))
-#define WEATHER_HAIL (1 << 7)
-#define WEATHER_HAIL_ANY ((WEATHER_HAIL))
-#define WEATHER_ANY ((WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY))
-
#define BATTLE_TERRAIN_GRASS 0
#define BATTLE_TERRAIN_LONG_GRASS 1
#define BATTLE_TERRAIN_SAND 2
#define BATTLE_TERRAIN_UNDERWATER 3
#define BATTLE_TERRAIN_WATER 4
#define BATTLE_TERRAIN_POND 5
-#define BATTLE_TERRAIN_ROCK 6
+#define BATTLE_TERRAIN_MOUNTAIN 6
#define BATTLE_TERRAIN_CAVE 7
-#define BATTLE_TERRAIN_INSIDE 8
+#define BATTLE_TERRAIN_BUILDING 8
#define BATTLE_TERRAIN_PLAIN 9
// array entries for battle communication
@@ -252,29 +75,22 @@
#define MOVE_TARGET_FOES_AND_ALLY 0x20
#define MOVE_TARGET_OPPONENTS_FIELD 0x40
+// defines for the u8 array gTypeEffectiveness
+#define TYPE_EFFECT_ATK_TYPE(i)((gTypeEffectiveness[i + 0]))
+#define TYPE_EFFECT_DEF_TYPE(i)((gTypeEffectiveness[i + 1]))
+#define TYPE_EFFECT_MULTIPLIER(i)((gTypeEffectiveness[i + 2]))
+
+// defines for the gTypeEffectiveness multipliers
#define TYPE_MUL_NO_EFFECT 0
#define TYPE_MUL_NOT_EFFECTIVE 5
#define TYPE_MUL_NORMAL 10
#define TYPE_MUL_SUPER_EFFECTIVE 20
-#define BS_GET_TARGET 0
-#define BS_GET_ATTACKER 1
-#define BS_GET_EFFECT_BANK 2
-#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
-#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability
-#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
-#define BS_GET_SCRIPTING_BANK 10
-#define BS_GET_OPPONENT1 12
-#define BS_GET_PLAYER2 13
-#define BS_GET_OPPONENT2 14
-
-// for battle script commands
-#define CMP_EQUAL 0x0
-#define CMP_NOT_EQUAL 0x1
-#define CMP_GREATER_THAN 0x2
-#define CMP_LESS_THAN 0x3
-#define CMP_COMMON_BITS 0x4
-#define CMP_NO_COMMON_BITS 0x5
+// special type table Ids
+#define TYPE_FORESIGHT 0xFE
+#define TYPE_ENDTABLE 0xFF
+
+#define BATTLE_BUFFER_LINK_SIZE 0x1000
struct TrainerMonNoItemDefaultMoves
{
@@ -283,9 +99,6 @@ struct TrainerMonNoItemDefaultMoves
u16 species;
};
-u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg);
-u8 GetBankSide(u8 bank);
-
struct TrainerMonItemDefaultMoves
{
u16 iv;
@@ -313,10 +126,10 @@ struct TrainerMonItemCustomMoves
union TrainerMonPtr
{
- struct TrainerMonNoItemDefaultMoves* NoItemDefaultMoves;
- struct TrainerMonNoItemCustomMoves* NoItemCustomMoves;
- struct TrainerMonItemDefaultMoves* ItemDefaultMoves;
- struct TrainerMonItemCustomMoves* ItemCustomMoves;
+ struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves;
+ struct TrainerMonNoItemCustomMoves *NoItemCustomMoves;
+ struct TrainerMonItemDefaultMoves *ItemDefaultMoves;
+ struct TrainerMonItemCustomMoves *ItemCustomMoves;
};
struct Trainer
@@ -333,9 +146,6 @@ struct Trainer
/*0x24*/ union TrainerMonPtr party;
};
-#define PARTY_FLAG_CUSTOM_MOVES 0x1
-#define PARTY_FLAG_HAS_ITEM 0x2
-
extern const struct Trainer gTrainers[];
#define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F))
@@ -361,8 +171,8 @@ struct DisableStruct
/*0x0D*/ u8 unkD;
/*0x0E*/ u8 encoreTimer1 : 4;
/*0x0E*/ u8 encoreTimer2 : 4;
- /*0x0F*/ u8 perishSong1 : 4;
- /*0x0F*/ u8 perishSong2 : 4;
+ /*0x0F*/ u8 perishSongTimer1 : 4;
+ /*0x0F*/ u8 perishSongTimer2 : 4;
/*0x10*/ u8 furyCutterCounter;
/*0x11*/ u8 rolloutCounter1 : 4;
/*0x11*/ u8 rolloutCounter2 : 4;
@@ -370,8 +180,8 @@ struct DisableStruct
/*0x12*/ u8 chargeTimer2 : 4;
/*0x13*/ u8 tauntTimer1:4;
/*0x13*/ u8 tauntTimer2:4;
- /*0x14*/ u8 bankPreventingEscape;
- /*0x15*/ u8 bankWithSureHit;
+ /*0x14*/ u8 battlerPreventingEscape;
+ /*0x15*/ u8 battlerWithSureHit;
/*0x16*/ u8 isFirstTurn;
/*0x17*/ u8 unk17;
/*0x18*/ u8 truantCounter : 1;
@@ -382,8 +192,6 @@ struct DisableStruct
/*0x1A*/ u8 unk1A[2];
};
-extern struct DisableStruct gDisableStructs[BATTLE_BANKS_COUNT];
-
struct ProtectStruct
{
/* field_0 */
@@ -417,13 +225,11 @@ struct ProtectStruct
/* field_4 */ u32 physicalDmg;
/* field_8 */ u32 specialDmg;
- /* field_C */ u8 physicalBank;
- /* field_D */ u8 specialBank;
+ /* field_C */ u8 physicalBattlerId;
+ /* field_D */ u8 specialBattlerId;
/* field_E */ u16 fieldE;
};
-extern struct ProtectStruct gProtectStructs[BATTLE_BANKS_COUNT];
-
struct SpecialStatus
{
u8 statLowered : 1; // 0x1
@@ -435,49 +241,43 @@ struct SpecialStatus
u8 flag40 : 1;
u8 focusBanded : 1;
u8 field1[3];
- s32 moveturnLostHP;
- s32 moveturnLostHP_physical;
- s32 moveturnLostHP_special;
- u8 moveturnPhysicalBank;
- u8 moveturnSpecialBank;
+ s32 dmg;
+ s32 physicalDmg;
+ s32 specialDmg;
+ u8 physicalBattlerId;
+ u8 specialBattlerId;
u8 field12;
u8 field13;
};
-extern struct SpecialStatus gSpecialStatuses[BATTLE_BANKS_COUNT];
-
struct SideTimer
{
/*0x00*/ u8 reflectTimer;
- /*0x01*/ u8 reflectBank;
+ /*0x01*/ u8 reflectBattlerId;
/*0x02*/ u8 lightscreenTimer;
- /*0x03*/ u8 lightscreenBank;
+ /*0x03*/ u8 lightscreenBattlerId;
/*0x04*/ u8 mistTimer;
- /*0x05*/ u8 mistBank;
+ /*0x05*/ u8 mistBattlerId;
/*0x06*/ u8 safeguardTimer;
- /*0x07*/ u8 safeguardBank;
+ /*0x07*/ u8 safeguardBattlerId;
/*0x08*/ u8 followmeTimer;
/*0x09*/ u8 followmeTarget;
/*0x0A*/ u8 spikesAmount;
/*0x0B*/ u8 fieldB;
};
-extern struct SideTimer gSideTimers[];
-
struct WishFutureKnock
{
- u8 futureSightCounter[BATTLE_BANKS_COUNT];
- u8 futureSightAttacker[BATTLE_BANKS_COUNT];
- s32 futureSightDmg[BATTLE_BANKS_COUNT];
- u16 futureSightMove[BATTLE_BANKS_COUNT];
- u8 wishCounter[BATTLE_BANKS_COUNT];
- u8 wishUserID[BATTLE_BANKS_COUNT];
+ u8 futureSightCounter[MAX_BATTLERS_COUNT];
+ u8 futureSightAttacker[MAX_BATTLERS_COUNT];
+ s32 futureSightDmg[MAX_BATTLERS_COUNT];
+ u16 futureSightMove[MAX_BATTLERS_COUNT];
+ u8 wishCounter[MAX_BATTLERS_COUNT];
+ u8 wishMonId[MAX_BATTLERS_COUNT];
u8 weatherDuration;
u8 knockedOffPokes[2];
};
-extern struct WishFutureKnock gWishFutureKnock;
-
struct AI_ThinkingStruct
{
u8 aiState;
@@ -494,16 +294,16 @@ struct AI_ThinkingStruct
struct UsedMoves
{
- u16 moves[BATTLE_BANKS_COUNT];
- u16 unknown[BATTLE_BANKS_COUNT];
+ u16 moves[MAX_BATTLERS_COUNT];
+ u16 unknown[MAX_BATTLERS_COUNT];
};
struct BattleHistory
{
- struct UsedMoves usedMoves[BATTLE_BANKS_COUNT];
- u8 abilities[BATTLE_BANKS_COUNT];
- u8 itemEffects[BATTLE_BANKS_COUNT];
- u16 trainerItems[BATTLE_BANKS_COUNT];
+ struct UsedMoves usedMoves[MAX_BATTLERS_COUNT];
+ u8 abilities[MAX_BATTLERS_COUNT];
+ u8 itemEffects[MAX_BATTLERS_COUNT];
+ u16 trainerItems[MAX_BATTLERS_COUNT];
u8 itemsNo;
};
@@ -541,12 +341,6 @@ struct BattleResources
struct BattleScriptsStack *AI_ScriptsStack;
};
-extern struct BattleResources* gBattleResources;
-
-#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack)
-#define BATTLE_CALLBACKS_STACK (gBattleResources->battleCallbackStack)
-#define BATTLE_LVLUP_STATS (gBattleResources->statsBeforeLvlUp)
-
struct BattleResults
{
u8 playerFaintCounter; // 0x0
@@ -570,21 +364,19 @@ struct BattleResults
u16 playerMon2Species; // 0x26
u16 caughtMonSpecies; // 0x28
u8 caughtMonNick[10]; // 0x2A
- u8 filler34[2];
+ u8 filler34[2]; // 0x34
u8 catchAttempts[11]; // 0x36
};
-extern struct BattleResults gBattleResults;
-
struct BattleStruct
{
u8 turnEffectsTracker;
- u8 turnEffectsBank;
+ u8 turnEffectsBattlerId;
u8 filler2;
- u8 turncountersTracker;
+ u8 turnCountersTracker;
u8 wrappedMove[8]; // ask gamefreak why they declared it that way
u8 moveTarget[4];
- u8 expGetterId;
+ u8 expGetterMonId;
u8 field_11;
u8 wildVictorySong;
u8 dynamicMoveType;
@@ -598,20 +390,20 @@ struct BattleStruct
u8 field_45;
u8 field_46;
u8 field_47;
- u8 focusPunchBank;
+ u8 focusPunchBattlerId;
u8 field_49;
u8 moneyMultiplier;
- u8 field_4B;
+ u8 savedTurnActionNumber;
u8 switchInAbilitiesCounter;
- u8 field_4D;
- u8 field_4E;
+ u8 faintedActionsState;
+ u8 faintedActionsBattlerId;
u8 field_4F;
u16 expValue;
u8 field_52;
u8 sentInPokes;
- bool8 selectionScriptFinished[BATTLE_BANKS_COUNT];
+ bool8 selectionScriptFinished[MAX_BATTLERS_COUNT];
u8 field_58[4];
- u8 field_5C[4];
+ u8 monToSwitchIntoId[MAX_BATTLERS_COUNT];
u8 field_60[4][3];
u8 runTries;
u8 caughtMonNick[11];
@@ -623,8 +415,8 @@ struct BattleStruct
u8 field_7D;
u8 field_7E;
u8 formToChangeInto;
- u8 chosenMovePositions[BATTLE_BANKS_COUNT];
- u8 stateIdAfterSelScript[BATTLE_BANKS_COUNT];
+ u8 chosenMovePositions[MAX_BATTLERS_COUNT];
+ u8 stateIdAfterSelScript[MAX_BATTLERS_COUNT];
u8 field_88;
u8 field_89;
u8 field_8A;
@@ -632,7 +424,7 @@ struct BattleStruct
u8 field_8C;
u8 field_8D;
u8 stringMoveType;
- u8 expGetterBank;
+ u8 expGetterBattlerId;
u8 field_90;
u8 field_91;
u8 field_92;
@@ -657,12 +449,12 @@ struct BattleStruct
u8 synchronizeMoveEffect;
u8 field_B3;
void (*savedCallback)(void);
- u16 usedHeldItems[BATTLE_BANKS_COUNT];
+ u16 usedHeldItems[MAX_BATTLERS_COUNT];
u8 chosenItem[4]; // why is this an u8?
u8 AI_itemType[2];
u8 AI_itemFlags[2];
- u16 choicedMove[BATTLE_BANKS_COUNT];
- u16 changedItems[BATTLE_BANKS_COUNT];
+ u16 choicedMove[MAX_BATTLERS_COUNT];
+ u16 changedItems[MAX_BATTLERS_COUNT];
u8 intimidateBank;
u8 switchInItemsCounter;
u8 field_DA;
@@ -670,35 +462,26 @@ struct BattleStruct
u8 fillerDC[0xDF-0xDC];
u8 field_DF;
u8 mirrorMoveArrays[32];
- u16 castformPalette[4][16];
+ u16 castformPalette[MAX_BATTLERS_COUNT][16];
u8 field_180;
u8 field_181;
u8 field_182;
u8 field_183;
struct BattleEnigmaBerry battleEnigmaBerry;
- u8 field_1A0;
- u8 field_1A1;
+ u8 wishPerishSongState;
+ u8 wishPerishSongBattlerId;
bool8 overworldWeatherDone;
u8 atkCancellerTracker;
u8 field_1A4[96];
u8 field_204[104];
u8 field_26C[40];
- u8 field_294[4];
+ u8 AI_monToSwitchIntoId[MAX_BATTLERS_COUNT];
u8 field_298[8];
u8 field_2A0;
u8 field_2A1;
u8 field_2A2;
};
-extern struct BattleStruct* gBattleStruct;
-
-#define MEME_ACCESS_U8(structName, structPtr, arrayId, offsetField, value) \
-{ \
- u8* var2 = (u8*)((u32)(arrayId)); \
- var2 = (u32)(structPtr) + var2; \
- var2[offsetof(struct structName, offsetField)] = value; \
-}
-
#define GET_MOVE_TYPE(move, typeArg) \
{ \
if (gBattleStruct->dynamicMoveType) \
@@ -707,128 +490,31 @@ extern struct BattleStruct* gBattleStruct;
typeArg = gBattleMoves[move].type; \
}
-#define MOVE_EFFECT_SLEEP 0x1
-#define MOVE_EFFECT_POISON 0x2
-#define MOVE_EFFECT_BURN 0x3
-#define MOVE_EFFECT_FREEZE 0x4
-#define MOVE_EFFECT_PARALYSIS 0x5
-#define MOVE_EFFECT_TOXIC 0x6
-#define MOVE_EFFECT_CONFUSION 0x7
-#define MOVE_EFFECT_FLINCH 0x8
-#define MOVE_EFFECT_TRI_ATTACK 0x9
-#define MOVE_EFFECT_UPROAR 0xA
-#define MOVE_EFFECT_PAYDAY 0xB
-#define MOVE_EFFECT_CHARGING 0xC
-#define MOVE_EFFECT_WRAP 0xD
-#define MOVE_EFFECT_RECOIL_25 0xE
-#define MOVE_EFFECT_ATK_PLUS_1 0xF
-#define MOVE_EFFECT_DEF_PLUS_1 0x10
-#define MOVE_EFFECT_SPD_PLUS_1 0x11
-#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12
-#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13
-#define MOVE_EFFECT_ACC_PLUS_1 0x14
-#define MOVE_EFFECT_EVS_PLUS_1 0x15
-#define MOVE_EFFECT_ATK_MINUS_1 0x16
-#define MOVE_EFFECT_DEF_MINUS_1 0x17
-#define MOVE_EFFECT_SPD_MINUS_1 0x18
-#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19
-#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A
-#define MOVE_EFFECT_ACC_MINUS_1 0x1B
-#define MOVE_EFFECT_EVS_MINUS_1 0x1C
-#define MOVE_EFFECT_RECHARGE 0x1D
-#define MOVE_EFFECT_RAGE 0x1E
-#define MOVE_EFFECT_STEAL_ITEM 0x1F
-#define MOVE_EFFECT_PREVENT_ESCAPE 0x20
-#define MOVE_EFFECT_NIGHTMARE 0x21
-#define MOVE_EFFECT_ALL_STATS_UP 0x22
-#define MOVE_EFFECT_RAPIDSPIN 0x23
-#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24
-#define MOVE_EFFECT_ATK_DEF_DOWN 0x25
-#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26
-#define MOVE_EFFECT_ATK_PLUS_2 0x27
-#define MOVE_EFFECT_DEF_PLUS_2 0x28
-#define MOVE_EFFECT_SPD_PLUS_2 0x29
-#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A
-#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B
-#define MOVE_EFFECT_ACC_PLUS_2 0x2C
-#define MOVE_EFFECT_EVS_PLUS_2 0x2D
-#define MOVE_EFFECT_ATK_MINUS_2 0x2E
-#define MOVE_EFFECT_DEF_MINUS_2 0x2F
-#define MOVE_EFFECT_SPD_MINUS_2 0x30
-#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31
-#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32
-#define MOVE_EFFECT_ACC_MINUS_2 0x33
-#define MOVE_EFFECT_EVS_MINUS_2 0x34
-#define MOVE_EFFECT_THRASH 0x35
-#define MOVE_EFFECT_KNOCK_OFF 0x36
-#define MOVE_EFFECT_NOTHING_37 0x37
-#define MOVE_EFFECT_NOTHING_38 0x38
-#define MOVE_EFFECT_NOTHING_39 0x39
-#define MOVE_EFFECT_NOTHING_3A 0x3A
-#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B
-#define MOVE_EFFECT_NOTHING_3C 0x3C
-#define MOVE_EFFECT_NOTHING_3D 0x3D
-#define MOVE_EFFECT_NOTHING_3E 0x3E
-#define MOVE_EFFECT_NOTHING_3F 0x3F
-#define MOVE_EFFECT_AFFECTS_USER 0x40
-#define MOVE_EFFECT_CERTAIN 0x80
-
-// table ids for general animations
-#define B_ANIM_CASTFORM_CHANGE 0x0
-#define B_ANIM_STATS_CHANGE 0x1
-#define B_ANIM_SUBSTITUTE_FADE 0x2
-#define B_ANIM_SUBSTITUTE_APPEAR 0x3
-#define B_ANIM_x4 0x4
-#define B_ANIM_ITEM_KNOCKOFF 0x5
-#define B_ANIM_TURN_TRAP 0x6
-#define B_ANIM_ITEM_EFFECT 0x7
-#define B_ANIM_SMOKEBALL_ESCAPE 0x8
-#define B_ANIM_HANGED_ON 0x9
-#define B_ANIM_RAIN_CONTINUES 0xA
-#define B_ANIM_SUN_CONTINUES 0xB
-#define B_ANIM_SANDSTORM_CONTINUES 0xC
-#define B_ANIM_HAIL_CONTINUES 0xD
-#define B_ANIM_LEECH_SEED_DRAIN 0xE
-#define B_ANIM_MON_HIT 0xF
-#define B_ANIM_ITEM_STEAL 0x10
-#define B_ANIM_SNATCH_MOVE 0x11
-#define B_ANIM_FUTURE_SIGHT_HIT 0x12
-#define B_ANIM_x13 0x13
-#define B_ANIM_x14 0x14
-#define B_ANIM_INGRAIN_HEAL 0x15
-#define B_ANIM_WISH_HEAL 0x16
-
-// special animations table
-#define B_ANIM_LVL_UP 0x0
-#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1
-#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2
-#define B_ANIM_BALL_THROW 0x3
-#define B_ANIM_SAFARI_BALL_THROW 0x4
-#define B_ANIM_SUBSTITUTE_TO_MON 0x5
-#define B_ANIM_MON_TO_SUBSTITUTE 0x6
+#define IS_MOVE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY)
+#define IS_MOVE_SPECIAL(moveType)(moveType > TYPE_MYSTERY)
#define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8
#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40
#define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit
-#define SET_STAT_BUFF_ID(n)((n & 0xF))
#define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0))
+#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7))
+
struct BattleScripting
{
s32 painSplitHp;
s32 bideDmg;
u8 multihitString[6];
u8 dmgMultiplier;
- u8 field_F;
+ u8 twoTurnsMoveStringId;
u8 animArg1;
u8 animArg2;
- u8 field_12;
- u8 field_13;
+ u16 tripleKickPower;
u8 atk49_state;
- u8 field_15;
- u8 field_16;
- u8 bank;
+ u8 battlerWithAbility;
+ u8 multihitMoveEffect;
+ u8 battler;
u8 animTurn;
u8 animTargetsHit;
u8 statChanger;
@@ -845,62 +531,6 @@ struct BattleScripting
u8 multiplayerId;
};
-extern struct BattleScripting gBattleScripting;
-
-// functions
-
-// battle_1
-void LoadBattleTextboxAndBackground(void);
-void LoadBattleEntryBackground(void);
-void ApplyPlayerChosenFrameToBattleMenu(void);
-bool8 LoadChosenBattleElement(u8 caseId);
-void DrawMainBattleBackground(void);
-void task00_0800F6FC(u8 taskId);
-
-// battle_5
-void AllocateBattleResrouces(void);
-void FreeBattleResources(void);
-void AdjustFriendshipOnBattleFaint(u8 bank);
-void sub_80571DC(u8 bank, u8 arg1);
-u32 sub_805725C(u8 bank);
-
-// battle 7
-void AllocateBattleSpritesData(void);
-void FreeBattleSpritesData(void);
-void AllocateMonSpritesGfx(void);
-void FreeMonSpritesGfx(void);
-void BattleMusicStop(void);
-void sub_805E990(struct Pokemon *mon, u8 bank);
-void sub_805EF14(void);
-bool8 BattleInitAllSprites(u8 *state1, u8 *state2);
-void sub_805E350(void);
-bool8 BattleLoadAllHealthBoxesGfx(u8 state);
-void LoadAndCreateEnemyShadowSprites(void);
-void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species);
-void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank);
-void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank);
-void BattleLoadSubstituteSpriteGfx(u8 bank, bool8 arg1);
-void nullsub_24(u16 arg0);
-void nullsub_25(u8 arg0);
-void ClearTemporarySpeciesSpriteData(u8 bank, bool8 dontClearSubstitute);
-void sub_805D714(struct Sprite *sprite);
-void DecompressTrainerBackPic(u16 backPicId, u8 bank);
-void DecompressTrainerFrontPic(u16 frontPicId, u8 bank);
-void FreeTrainerFrontPicPalette(u16 frontPicId);
-void sub_805D7AC(struct Sprite *sprite);
-bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn);
-void sub_805EB9C(u8 arg0);
-void sub_805E394(void);
-void TrySetBehindSubstituteSpriteBit(u8 bank, u16 move);
-void DoStatusAnimation(bool8 isStatus2, u32 status);
-void DoSpecialBattleAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tableId);
-bool8 DoBattleAnimationFromTable(u8 active, u8 atkBank, u8 defBank, u8 tableId, u16 argument);
-void CopyBattleSpriteInvisibility(u8 bank);
-u16 ChooseMoveAndTargetInBattlePalace(void);
-void LoadBattleBarGfx(u8 arg0);
-bool8 mplay_80342A4(u8 bank);
-void sub_805EEE0(u8 bank);
-
enum
{
BACK_PIC_BRENDAN,
@@ -914,14 +544,14 @@ enum
};
// rom_80A5C6C
-u8 GetBankSide(u8 bank);
-u8 GetBankIdentity(u8 bank);
-u8 GetBankByIdentity(u8 bank);
+u8 GetBattlerSide(u8 battler);
+u8 GetBattlerPosition(u8 bank);
+u8 GetBattlerAtPosition(u8 bank);
struct BattleSpriteInfo
{
u16 invisible : 1; // 0x1
- u16 flag_x2 : 1; // 0x2
+ u16 lowHpSong : 1; // 0x2
u16 behindSubstitute : 1; // 0x4
u16 flag_x8 : 1; // 0x8
u16 hpNumbersNoBars : 1; // 0x10
@@ -930,7 +560,7 @@ struct BattleSpriteInfo
struct BattleAnimationInfo
{
- u16 field; // to fill up later
+ u16 animArg; // to fill up later
u8 field_2;
u8 field_3;
u8 field_4;
@@ -944,6 +574,12 @@ struct BattleAnimationInfo
u8 field_9_x20 : 1;
u8 field_9_x40 : 1;
u8 field_9_x80 : 1;
+ u8 field_A;
+ u8 field_B;
+ u8 field_C;
+ u8 field_D;
+ u8 field_E;
+ u8 field_F;
};
struct BattleHealthboxInfo
@@ -951,7 +587,7 @@ struct BattleHealthboxInfo
u8 flag_x1 : 1;
u8 flag_x2 : 1;
u8 flag_x4 : 1;
- u8 flag_x8 : 1;
+ u8 ballAnimActive : 1; // 0x8
u8 statusAnimActive : 1; // x10
u8 animFromTableActive : 1; // x20
u8 specialAnimActive : 1; //x40
@@ -966,7 +602,7 @@ struct BattleHealthboxInfo
u8 animationState;
u8 field_5;
u8 field_6;
- u8 field_7;
+ u8 shadowSpriteId;
u8 field_8;
u8 field_9;
u8 field_A;
@@ -984,21 +620,12 @@ struct BattleBarInfo
struct BattleSpriteData
{
- struct BattleSpriteInfo *bankData;
+ struct BattleSpriteInfo *battlerData;
struct BattleHealthboxInfo *healthBoxesData;
struct BattleAnimationInfo *animationData;
struct BattleBarInfo *battleBars;
};
-extern struct BattleSpriteData *gBattleSpritesDataPtr;
-
-#define BATTLE_BUFFER_LINK_SIZE 0x1000
-
-extern u8 *gLinkBattleSendBuffer;
-extern u8 *gLinkBattleRecvBuffer;
-
-// Move this somewhere else
-
#include "sprite.h"
struct MonSpritesGfx
@@ -1006,15 +633,113 @@ struct MonSpritesGfx
void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon
void* sprites[4];
struct SpriteTemplate templates[4];
- u8 field_74[0x100];
- u8 *fontPixels;
+ struct SpriteFrameImage field_74[4][4];
+ u8 field_F4[0x80];
+ u8 *barFontGfx;
+ void *field_178;
+ void *field_17C;
};
-extern struct BattleSpritesGfx* gMonSpritesGfx;
-extern u8 gBattleOutcome;
-extern u16 gLastUsedItem;
+// all battle variables are declared in battle_main.c
extern u32 gBattleTypeFlags;
-extern struct MonSpritesGfx* gMonSpritesGfxPtr;
-extern u16 gTrainerBattleOpponent_A;
+extern u8 gBattleTerrain;
+extern u32 gUnknown_02022FF4;
+extern u8 *gUnknown_0202305C;
+extern u8 *gUnknown_02023060;
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
+extern u8 gActiveBattler;
+extern u32 gBattleControllerExecFlags;
+extern u8 gBattlersCount;
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattlerPositions[MAX_BATTLERS_COUNT];
+extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT];
+extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT];
+extern u8 gCurrentTurnActionNumber;
+extern u8 gCurrentActionFuncId;
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gCurrMovePos;
+extern u8 gChosenMovePos;
+extern u16 gCurrentMove;
+extern u16 gChosenMove;
+extern u16 gRandomMove;
+extern s32 gBattleMoveDamage;
+extern s32 gHpDealt;
+extern s32 gTakenDmg[MAX_BATTLERS_COUNT];
+extern u16 gLastUsedItem;
+extern u8 gLastUsedAbility;
+extern u8 gBattlerAttacker;
+extern u8 gBattlerTarget;
+extern u8 gBattlerFainted;
+extern u8 gEffectBattler;
+extern u8 gPotentialItemEffectBattler;
+extern u8 gAbsentBattlerFlags;
+extern u8 gCritMultiplier;
+extern u8 gMultiHitCounter;
+extern const u8 *gBattlescriptCurrInstr;
+extern u32 gUnusedBattleMainVar;
+extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT];
+extern const u8 *gSelectionBattleScripts[MAX_BATTLERS_COUNT];
+extern const u8 *gPalaceSelectionBattleScripts[MAX_BATTLERS_COUNT];
+extern u16 gLastPrintedMoves[MAX_BATTLERS_COUNT];
+extern u16 gLastMoves[MAX_BATTLERS_COUNT];
+extern u16 gLastLandedMoves[MAX_BATTLERS_COUNT];
+extern u16 gLastHitByType[MAX_BATTLERS_COUNT];
+extern u16 gLastResultingMoves[MAX_BATTLERS_COUNT];
+extern u16 gLockedMoves[MAX_BATTLERS_COUNT];
+extern u8 gLastHitBy[MAX_BATTLERS_COUNT];
+extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT];
+extern u8 gMoveResultFlags;
+extern u32 gHitMarker;
+extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT];
+extern u8 gUnknown_0202428C;
+extern u16 gSideStatuses[2];
+extern struct SideTimer gSideTimers[2];
+extern u32 gStatuses3[MAX_BATTLERS_COUNT];
+extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT];
+extern u16 gPauseCounterBattle;
+extern u16 gPaydayMoney;
+extern u16 gRandomTurnNumber;
+extern u8 gBattleCommunication[BATTLE_COMMUNICATION_ENTRIES_COUNT];
+extern u8 gBattleOutcome;
+extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT];
+extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT];
+extern u16 gBattleWeather;
+extern struct WishFutureKnock gWishFutureKnock;
+extern u16 gIntroSlideFlags;
+extern u8 gSentPokesToOpponent[2];
+extern u16 gDynamicBasePower;
+extern u16 gExpShareExp;
+extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT];
+extern struct BattleScripting gBattleScripting;
+extern struct BattleStruct *gBattleStruct;
+extern u8 *gLinkBattleSendBuffer;
+extern u8 *gLinkBattleRecvBuffer;
+extern struct BattleResources *gBattleResources;
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gBattlerStatusSummaryTaskId[MAX_BATTLERS_COUNT];
+extern u8 gBattlerInMenuId;
+extern bool8 gDoingBattleAnim;
+extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
+extern u8 gPlayerDpadHoldFrames;
+extern struct BattleSpriteData *gBattleSpritesDataPtr;
+extern struct MonSpritesGfx *gMonSpritesGfxPtr;
+extern struct BattleHealthboxInfo *gUnknown_020244D8;
+extern struct BattleHealthboxInfo *gUnknown_020244DC;
+extern u16 gBattleMovePower;
+extern u16 gMoveToLearn;
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
+
+extern void (*gPreBattleCallback1)(void);
+extern void (*gBattleMainFunc)(void);
+extern struct BattleResults gBattleResults;
+extern u8 gLeveledUpInBattle;
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gMultiUsePlayerCursor;
+extern u8 gNumberOfMovesToChoose;
+extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
#endif // GUARD_BATTLE_H
diff --git a/include/battle_ai_script_commands.h b/include/battle_ai_script_commands.h
index 5fb422b41..316f76de6 100644
--- a/include/battle_ai_script_commands.h
+++ b/include/battle_ai_script_commands.h
@@ -4,9 +4,9 @@
void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves);
void BattleAI_SetupAIData(u8 defaultScoreMoves);
u8 BattleAI_ChooseMoveOrAction(void);
-void ClearBankMoveHistory(u8 bank);
+void ClearBattlerMoveHistory(u8 bank);
void RecordAbilityBattle(u8 bank, u8 abilityId);
-void ClearBankAbilityHistory(u8 bank);
+void ClearBattlerAbilityHistory(u8 bank);
void RecordItemEffectBattle(u8 bank, u8 itemEffect);
void ClearBankItemEffectHistory(u8 bank);
diff --git a/include/battle_anim.h b/include/battle_anim.h
index e912af6b1..aa62db46d 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -3,14 +3,6 @@
enum
{
- ANIM_BANK_ATTACKER,
- ANIM_BANK_TARGET,
- ANIM_BANK_ATK_PARTNER,
- ANIM_BANK_DEF_PARTNER,
-};
-
-enum
-{
BG_ANIM_SCREEN_SIZE,
BG_ANIM_AREA_OVERFLOW_MODE,
BG_ANIM2,
@@ -53,9 +45,9 @@ extern u8 gAnimFriendship;
extern u16 gWeatherMoveAnim;
extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT];
extern u8 gAnimMoveTurn;
-extern u8 gAnimBankAttacker;
-extern u8 gAnimBankTarget;
-extern u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT];
+extern u8 gBattleAnimAttacker;
+extern u8 gBattleAnimTarget;
+extern u16 gAnimSpeciesByBanks[MAX_BATTLERS_COUNT];
extern u8 gUnknown_02038440;
void ClearBattleAnimationVars(void);
@@ -64,8 +56,8 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
void DestroyAnimSprite(struct Sprite *sprite);
void DestroyAnimVisualTask(u8 taskId);
void DestroyAnimSoundTask(u8 taskId);
-bool8 IsAnimBankSpriteVisible(u8 bank);
-void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible);
+bool8 IsBattlerSpriteVisible(u8 battlerId);
+void sub_80A438C(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible);
bool8 IsContest(void);
s8 BattleAnimAdjustPanning(s8 pan);
s8 BattleAnimAdjustPanning2(s8 pan);
@@ -79,20 +71,40 @@ void HandleIntroSlide(u8 terrainId);
// battle_anim_80A5C6C.s
void sub_80A6EEC(struct Sprite *sprite);
+void sub_80A68D4(struct Sprite *sprite);
+void sub_80A6F3C(struct Sprite *sprite);
void sub_80A8278(void);
void sub_80A6B30(struct UnknownAnimStruct2*);
void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1);
-u8 sub_80A82E4(u8 bank);
-u8 sub_80A5C6C(u8 bank, u8 attributeId);
-bool8 IsBankSpritePresent(u8 bank);
+u8 sub_80A82E4(u8 battlerId);
+bool8 AnimateBallThrow(struct Sprite *sprite);
+
+enum
+{
+ BANK_X_POS,
+ BANK_Y_POS,
+};
+
+u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId);
+
+bool8 IsBattlerSpritePresent(u8 battlerId);
void sub_80A6C68(u8 arg0);
-u8 GetAnimBankSpriteId(u8 wantedBank);
+u8 GetAnimBattlerSpriteId(u8 wantedBattler);
bool8 IsDoubleBattle(void);
u8 sub_80A6D94(void);
u8 sub_80A8364(u8);
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*));
void oamt_add_pos2_onto_pos1(struct Sprite *sprite);
-u8 sub_80A6138(u8 bank);
-u8 sub_80A82E4(u8 bank);
+u8 GetBattlerSpriteDefault_Y(u8 battlerId);
+u8 sub_80A82E4(u8 battlerId);
+u8 GetSubstituteSpriteDefault_Y(u8 battlerId);
+
+// battle_anim_80A9C70.s
+void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId);
+
+// battle_anim_8170478.s
+u8 ItemIdToBallId(u16 itemId);
+u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
+u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
#endif // GUARD_BATTLE_ANIM_H
diff --git a/include/battle_bg.h b/include/battle_bg.h
new file mode 100644
index 000000000..7fc09fbf7
--- /dev/null
+++ b/include/battle_bg.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_BATTLE_BG_H
+#define GUARD_BATTLE_BG_H
+
+void sub_8035658(void);
+void sub_80356D0(void);
+void ApplyPlayerChosenFrameToBattleMenu(void);
+void DrawMainBattleBackground(void);
+void LoadBattleTextboxAndBackground(void);
+void sub_8035D74(u8 taskId);
+void LoadBattleEntryBackground(void);
+bool8 LoadChosenBattleElement(u8 caseId);
+
+#endif // GUARD_BATTLE_BG_H
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index 973a723e0..a0fc41b52 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -181,62 +181,62 @@ void sub_8033648(void);
void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data);
// emitters
-void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
-void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused
-void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
-void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused
-void EmitLoadMonSprite(u8 bufferId);
-void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
-void EmitReturnMonToBall(u8 bufferId, u8 arg1);
-void EmitDrawTrainerPic(u8 bufferId);
-void EmitTrainerSlide(u8 bufferId);
-void EmitTrainerSlideBack(u8 bufferId);
-void EmitFaintAnimation(u8 bufferId);
-void EmitPaletteFade(u8 bufferId); // unused
-void EmitSuccessBallThrowAnim(u8 bufferId); // unused
-void EmitBallThrowAnim(u8 bufferId, u8 caseId);
-void EmitPause(u8 bufferId, u8 toWait, void *data); // unused
-void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
-void EmitPrintString(u8 bufferId, u16 stringId);
-void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId);
-void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
-void EmitUnknownYesNoBox(u8 bufferId);
-void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
-void EmitChooseItem(u8 bufferId, u8* arg1);
-void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
-void EmitCmd23(u8 bufferId); // unused
-void EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
-void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
-void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
-void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
-void EmitStatusXor(u8 bufferId, u8 b); // unused
-void EmitDataTransfer(u8 bufferId, u16 size, void *data);
-void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
-void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused
-void EmitCmd32(u8 bufferId, u16 size, void *c); // unused
-void EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2);
-void EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
-void EmitOneReturnValue(u8 bufferId, u16 arg1);
-void EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
-void EmitCmd37(u8 bufferId); // unused
-void EmitCmd38(u8 bufferId, u8 b); // unused
-void EmitCmd39(u8 bufferId); // unused
-void EmitCmd40(u8 bufferId); // unused
-void EmitHitAnimation(u8 bufferId);
-void EmitCmd42(u8 bufferId);
-void EmitEffectivenessSound(u8 bufferId, u16 songId);
-void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
-void EmitFaintingCry(u8 bufferId);
-void EmitIntroSlide(u8 bufferId, u8 terrainId);
-void EmitIntroTrainerBallThrow(u8 bufferId);
-void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
-void EmitCmd49(u8 bufferId);
-void EmitCmd50(u8 bufferId);
-void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
-void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
-void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
-void EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
-void EmitCmd55(u8 bufferId, u8 arg1);
+void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
+void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused
+void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
+void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused
+void BtlController_EmitLoadMonSprite(u8 bufferId);
+void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
+void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1);
+void BtlController_EmitDrawTrainerPic(u8 bufferId);
+void BtlController_EmitTrainerSlide(u8 bufferId);
+void BtlController_EmitTrainerSlideBack(u8 bufferId);
+void BtlController_EmitFaintAnimation(u8 bufferId);
+void BtlController_EmitPaletteFade(u8 bufferId); // unused
+void BtlController_EmitSuccessBallThrowAnim(u8 bufferId); // unused
+void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId);
+void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data); // unused
+void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
+void BtlController_EmitPrintString(u8 bufferId, u16 stringId);
+void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId);
+void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
+void BtlController_EmitUnknownYesNoBox(u8 bufferId);
+void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
+void BtlController_EmitChooseItem(u8 bufferId, u8* arg1);
+void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
+void BtlController_EmitCmd23(u8 bufferId); // unused
+void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
+void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
+void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
+void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
+void BtlController_EmitStatusXor(u8 bufferId, u8 b); // unused
+void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data);
+void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
+void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused
+void BtlController_EmitCmd32(u8 bufferId, u16 size, void *c); // unused
+void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2);
+void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
+void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1);
+void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
+void BtlController_EmitCmd37(u8 bufferId); // unused
+void BtlController_EmitCmd38(u8 bufferId, u8 b); // unused
+void BtlController_EmitCmd39(u8 bufferId); // unused
+void BtlController_EmitCmd40(u8 bufferId); // unused
+void BtlController_EmitHitAnimation(u8 bufferId);
+void BtlController_EmitCmd42(u8 bufferId);
+void BtlController_EmitPlaySE(u8 bufferId, u16 songId);
+void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
+void BtlController_EmitFaintingCry(u8 bufferId);
+void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId);
+void BtlController_EmitIntroTrainerBallThrow(u8 bufferId);
+void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
+void BtlController_EmitCmd49(u8 bufferId);
+void BtlController_EmitCmd50(u8 bufferId);
+void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
+void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
+void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
+void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
+void BtlController_EmitCmd55(u8 bufferId, u8 arg1);
// player controller
void SetControllerToPlayer(void);
diff --git a/include/battle_frontier_1.h b/include/battle_frontier_1.h
new file mode 100644
index 000000000..5483b28ef
--- /dev/null
+++ b/include/battle_frontier_1.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_BATTLE_FRONTIER_1_H
+#define GUARD_BATTLE_FRONTIER_1_H
+
+bool32 sub_8196094(void);
+void sub_8196080(const u8 *str);
+
+#endif // GUARD_BATTLE_FRONTIER_1_H
diff --git a/include/battle_frontier_2.h b/include/battle_frontier_2.h
index 4f37248cc..801c3f3ec 100644
--- a/include/battle_frontier_2.h
+++ b/include/battle_frontier_2.h
@@ -5,5 +5,6 @@ void sub_81A8934(u8);
void sub_81A895C(void);
u16 sub_81A89A0(u8);
void sub_81A8AF8(void);
+bool8 InBattlePike(void);
#endif // GUARD_BATTLE_FRONTIER_2_H
diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h
new file mode 100644
index 000000000..e1c6325b6
--- /dev/null
+++ b/include/battle_gfx_sfx_util.h
@@ -0,0 +1,50 @@
+#ifndef GUARD_BATTLE_GFX_SFX_UTIL
+#define GUARD_BATTLE_GFX_SFX_UTIL
+
+void AllocateBattleSpritesData(void);
+void FreeBattleSpritesData(void);
+u16 ChooseMoveAndTargetInBattlePalace(void);
+void sub_805D714(struct Sprite *sprite);
+void sub_805D770(struct Sprite *sprite, bool8 arg1);
+void sub_805D7AC(struct Sprite *sprite);
+void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status);
+bool8 TryHandleLaunchBattleTableAnimation(u8 activeBattlerId, u8 attacker, u8 target, u8 tableId, u16 argument);
+void InitAndLaunchSpecialAnimation(u8 activeBattlerId, u8 attacker, u8 target, u8 tableId);
+bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn);
+bool8 mplay_80342A4(u8 battlerId);
+void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId);
+void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId);
+void nullsub_23(void);
+void nullsub_24(u16 species);
+void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId);
+void DecompressTrainerBackPic(u16 backPicId, u8 battlerId);
+void nullsub_25(u8 arg0);
+void FreeTrainerFrontPicPalette(u16 frontPicId);
+void sub_805DFFC(void);
+bool8 BattleLoadAllHealthBoxesGfx(u8 state);
+void LoadBattleBarGfx(u8 arg0);
+bool8 BattleInitAllSprites(u8 *state1, u8 *battlerId);
+void ClearSpritesHealthboxAnimData(void);
+void CopyAllBattleSpritesInvisibilities(void);
+void CopyBattleSpriteInvisibility(u8 battlerId);
+void HandleSpeciesGfxDataChange(u8 attacker, u8 target, bool8 notTransform);
+void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite);
+void LoadBattleMonGfxAndAnimate(u8 battlerId, bool8 loadMonSprite, u8 spriteId);
+void TrySetBehindSubstituteSpriteBit(u8 battlerId, u16 move);
+void ClearBehindSubstituteBit(u8 battlerId);
+void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId);
+void BattleStopLowHpSound(void);
+u8 GetMonHPBarLevel(struct Pokemon *mon);
+void sub_805EAE8(void);
+void sub_805EB9C(u8 affineMode);
+void LoadAndCreateEnemyShadowSprites(void);
+void SpriteCB_SetInvisible(struct Sprite *sprite);
+void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species);
+void HideBattlerShadowSprite(u8 battlerId);
+void sub_805EF14(void);
+void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute);
+void AllocateMonSpritesGfx(void);
+void FreeMonSpritesGfx(void);
+bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon);
+
+#endif // GUARD_BATTLE_GFX_SFX_UTIL
diff --git a/include/battle_interface.h b/include/battle_interface.h
index aad30f7b3..fe8c03f70 100644
--- a/include/battle_interface.h
+++ b/include/battle_interface.h
@@ -15,6 +15,15 @@ enum
EXP_BAR
};
+enum
+{
+ HP_BAR_EMPTY,
+ HP_BAR_RED,
+ HP_BAR_YELLOW,
+ HP_BAR_GREEN,
+ HP_BAR_FULL,
+};
+
#define TAG_HEALTHBOX_PLAYER1_TILE 0xD6FF
#define TAG_HEALTHBOX_PLAYER2_TILE 0xD700
#define TAG_HEALTHBOX_OPPONENT1_TILE 0xD701
@@ -45,7 +54,7 @@ enum
HEALTHBOX_SAFARI_BALLS_TEXT
};
-u8 CreateBankHealthboxSprites(u8 bank);
+u8 CreateBattlerHealthboxSprites(u8 bank);
u8 CreateSafariPlayerHealthboxSprites(void);
void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue);
void SetHealthboxSpriteInvisible(u8 healthboxSpriteId);
@@ -53,7 +62,7 @@ void SetHealthboxSpriteVisible(u8 healthboxSpriteId);
void DestoryHealthboxSprite(u8 healthboxSpriteId);
void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly);
void UpdateOamPriorityInAllHealthboxes(u8 priority);
-void SetBankHealthboxSpritePos(u8 bank);
+void InitBattlerHealthboxCoords(u8 bank);
void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);
void SwapHpBarsWithHpText(void);
u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart);
diff --git a/include/battle_link_817C95C.h b/include/battle_link_817C95C.h
index 815c1f058..cb2cb0b27 100644
--- a/include/battle_link_817C95C.h
+++ b/include/battle_link_817C95C.h
@@ -6,6 +6,6 @@ void sub_817E0FC(u16 move, u16 weatherFlags, struct DisableStruct *disableStruct
void sub_817E32C(u8 animationId);
void sub_817E3F4(void);
void sub_817F2A8(void);
-u8 GetBankMoveSlotId(u8 bank, u16 move);
+u8 GetBattlerMoveSlotId(u8 bank, u16 move);
#endif // GUARD_BATTLE_LINK_817C95C_H
diff --git a/include/battle_2.h b/include/battle_main.h
index ee61efd9b..d7a522f17 100644
--- a/include/battle_2.h
+++ b/include/battle_main.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_BATTLE_2_H
-#define GUARD_BATTLE_2_H
+#ifndef GUARD_BATTLE_MAIN_H
+#define GUARD_BATTLE_MAIN_H
void CB2_InitBattle(void);
void BattleMainCB2(void);
@@ -21,8 +21,8 @@ void sub_8039B58(struct Sprite *sprite);
void sub_8039BB4(struct Sprite *sprite);
void sub_80105DC(struct Sprite *sprite);
void sub_8039C00(struct Sprite *sprite);
-void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d);
-void dp11b_obj_free(u8 bank, bool8 b);
+void dp11b_obj_instanciate(u8 battlerId, u8 b, s8 c, s8 d);
+void dp11b_obj_free(u8 battlerId, bool8 b);
void sub_8039E44(struct Sprite *sprite);
void sub_8039E60(struct Sprite *sprite);
void sub_8039E84(struct Sprite *sprite);
@@ -35,12 +35,12 @@ void sub_803B3AC(void); // unused
void sub_803B598(void); // unused
void BattleTurnPassed(void);
u8 IsRunningFromBattleImpossible(void);
-void sub_803BDA0(u8 bank);
+void sub_803BDA0(u8 battlerId);
void SwapTurnOrder(u8 id1, u8 id2);
-u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves);
+u8 GetWhoStrikesFirst(u8 battlerId1, u8 battlerId2, bool8 ignoreChosenMoves);
void RunBattleScriptCommands_PopCallbacksStack(void);
void RunBattleScriptCommands(void);
-bool8 TryRunFromBattle(u8 bank);
+bool8 TryRunFromBattle(u8 battlerId);
extern const u8 gStatusConditionString_PoisonJpn[8];
extern const u8 gStatusConditionString_SleepJpn[8];
@@ -52,4 +52,4 @@ extern const u8 gStatusConditionString_LoveJpn[8];
extern const u8 * const gStatusConditionStringsTable[7][2];
-#endif // GUARD_BATTLE_2_H
+#endif // GUARD_BATTLE_MAIN_H
diff --git a/include/battle_message.h b/include/battle_message.h
index 3f9b38cad..30ddca469 100644
--- a/include/battle_message.h
+++ b/include/battle_message.h
@@ -67,13 +67,21 @@
#define B_BUFF_STAT 5
#define B_BUFF_SPECIES 6
#define B_BUFF_MON_NICK 7
-#define B_BUFF_NEGATIVE_FLAVOUR 8
+#define B_BUFF_NEGATIVE_FLAVOR 8
#define B_BUFF_ABILITY 9
#define B_BUFF_ITEM 10
#define B_BUFF_PLACEHOLDER_BEGIN 0xFD
#define B_BUFF_EOS 0xFF
+#define PREPARE_FLAVOR_BUFFER(textVar, flavorId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NEGATIVE_FLAVOR; \
+ textVar[2] = flavorId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
#define PREPARE_STAT_BUFFER(textVar, statId) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
@@ -189,7 +197,7 @@
struct StringInfoBattle
{
u16 currentMove;
- u16 lastMove;
+ u16 originallyUsedMove;
u16 lastItem;
u8 lastAbility;
u8 scrActive;
diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h
deleted file mode 100644
index 4a9415379..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_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
- EFFECT_SOLARBEAM,
- EFFECT_THUNDER,
- EFFECT_TELEPORT,
- EFFECT_BEAT_UP,
- EFFECT_FLY,
- 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/battle_script_commands.h b/include/battle_script_commands.h
index a466abc04..6c84d1f0f 100644
--- a/include/battle_script_commands.h
+++ b/include/battle_script_commands.h
@@ -1,54 +1,13 @@
#ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H
#define GUARD_BATTLE_SCRIPT_COMMANDS_H
-#define CMP_EQUAL 0x0
-#define CMP_NOT_EQUAL 0x1
-#define CMP_GREATER_THAN 0x2
-#define CMP_LESS_THAN 0x3
-#define CMP_COMMON_BITS 0x4
-#define CMP_NO_COMMON_BITS 0x5
-
-#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
-#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability
-#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
-
-#define ATK48_STAT_NEGATIVE 0x1
-#define ATK48_STAT_BY_TWO 0x2
-#define ATK48_BIT_x4 0x4
-#define ATK48_LOWER_FAIL_CHECK 0x8
-
-#define ATK4F_DONT_CHECK_STATUSES 0x80
-
-#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
-#define VARIOUS_SET_MAGIC_COAT_TARGET 1
-#define VARIOUS_CAN_RUN_FROM_BATTLE 2
-#define VARIOUS_GET_MOVE_TARGET 3
-#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
-#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
-#define VARIOUS_EMIT_YESNOBOX 13
-#define VARIOUS_WAIT_CRY 18
-#define VARIOUS_RETURN_OPPONENT_MON1 19
-#define VARIOUS_RETURN_OPPONENT_MON2 20
-#define VARIOUS_SET_TELEPORT_OUTCOME 25
-#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26
-
-#define ATK80_DMG_CHANGE_SIGN 0
-#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1
-#define ATK80_DMG_DOUBLED 2
-
-#define STAT_CHANGE_BS_PTR 0x1
-#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20
-
-#define STAT_CHANGE_WORKED 0
-#define STAT_CHANGE_DIDNT_WORK 1
-
#define WINDOW_CLEAR 0x1
#define WINDOW_x80 0x80
void AI_CalcDmg(u8 bankAtk, u8 bankDef);
u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef);
u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
-u8 BankGetTurnOrder(u8 bank);
+u8 GetBattlerTurnOrderNum(u8 bank);
void SetMoveEffect(bool8 primary, u8 certain);
void BattleDestroyYesNoCursorAt(u8 cursorPosition);
void BattleCreateYesNoCursorAt(u8 cursorPosition);
@@ -57,6 +16,6 @@ void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
bool8 UproarWakeUpCheck(u8 bank);
extern void (* const gBattleScriptingCommandsTable[])(void);
-extern const u8 gUnknown_0831C494[];
+extern const u8 gUnknown_0831C494[][4];
#endif // GUARD_BATTLE_SCRIPT_COMMANDS_H
diff --git a/include/battle_scripts.h b/include/battle_scripts.h
new file mode 100644
index 000000000..ffd999660
--- /dev/null
+++ b/include/battle_scripts.h
@@ -0,0 +1,290 @@
+#ifndef GUARD_BATTLE_SCRIPTS_H
+#define GUARD_BATTLE_SCRIPTS_H
+
+extern const u8 BattleScript_HitFromCritCalc[];
+extern const u8 BattleScript_MoveEnd[];
+extern const u8 BattleScript_MakeMoveMissed[];
+extern const u8 BattleScript_PrintMoveMissed[];
+extern const u8 BattleScript_MoveMissedPause[];
+extern const u8 BattleScript_MoveMissed[];
+extern const u8 BattleScript_ButItFailed[];
+extern const u8 BattleScript_StatUp[];
+extern const u8 BattleScript_StatDown[];
+extern const u8 BattleScript_AlreadyAtFullHp[];
+extern const u8 BattleScript_PresentHealTarget[];
+extern const u8 BattleScript_MoveUsedMustRecharge[];
+extern const u8 BattleScript_FaintAttacker[];
+extern const u8 BattleScript_FaintTarget[];
+extern const u8 BattleScript_GiveExp[];
+extern const u8 BattleScript_HandleFaintedMon[];
+extern const u8 BattleScript_LocalTrainerBattleWon[];
+extern const u8 BattleScript_LocalTwoTrainersDefeated[];
+extern const u8 BattleScript_LocalBattleWonLoseTexts[];
+extern const u8 BattleScript_LocalBattleWonReward[];
+extern const u8 BattleScript_PayDayMoneyAndPickUpItems[];
+extern const u8 BattleScript_LocalBattleLost[];
+extern const u8 BattleScript_LocalBattleLostPrintWhiteOut[];
+extern const u8 BattleScript_LocalBattleLostEnd[];
+extern const u8 BattleScript_CheckDomeDrew[];
+extern const u8 BattleScript_82DAA0B[];
+extern const u8 BattleScript_82DAA31[];
+extern const u8 BattleScript_LinkBattleWonOrLost[];
+extern const u8 BattleScript_82DAA5C[];
+extern const u8 BattleScript_82DAA83[];
+extern const u8 BattleScript_FrontierTrainerBattleWon[];
+extern const u8 BattleScript_82DAAAB[];
+extern const u8 BattleScript_82DAAAE[];
+extern const u8 BattleScript_82DAACB[];
+extern const u8 BattleScript_82DAADA[];
+extern const u8 BattleScript_SmokeBallEscape[];
+extern const u8 BattleScript_RanAwayUsingMonAbility[];
+extern const u8 BattleScript_GotAwaySafely[];
+extern const u8 BattleScript_WildMonFled[];
+extern const u8 BattleScript_PrintCantRunFromTrainer[];
+extern const u8 BattleScript_PrintFailedToRunString[];
+extern const u8 BattleScript_PrintCantEscapeFromBattle[];
+extern const u8 BattleScript_PrintFullBox[];
+extern const u8 BattleScript_ActionSwitch[];
+extern const u8 BattleScript_82DAB35[];
+extern const u8 BattleScript_82DAB37[];
+extern const u8 BattleScript_82DAB44[];
+extern const u8 BattleScript_82DAB77[];
+extern const u8 BattleScript_82DABB8[];
+extern const u8 BattleScript_Pausex20[];
+extern const u8 BattleScript_LevelUp[];
+extern const u8 BattleScript_RainContinuesOrEnds[];
+extern const u8 BattleScript_DamagingWeatherContinues[];
+extern const u8 BattleScript_SandStormHailEnds[];
+extern const u8 BattleScript_SunlightContinues[];
+extern const u8 BattleScript_SunlightFaded[];
+extern const u8 BattleScript_OverworldWeatherStarts[];
+extern const u8 BattleScript_SideStatusWoreOff[];
+extern const u8 BattleScript_SafeguardProtected[];
+extern const u8 BattleScript_SafeguardEnds[];
+extern const u8 BattleScript_LeechSeedTurnDrain[];
+extern const u8 BattleScript_82DAD47[];
+extern const u8 BattleScript_82DAD4D[];
+extern const u8 BattleScript_BideStoringEnergy[];
+extern const u8 BattleScript_BideAttack[];
+extern const u8 BattleScript_BideNoEnergyToAttack[];
+extern const u8 BattleScript_SuccessForceOut[];
+extern const u8 BattleScript_82DADF1[];
+extern const u8 BattleScript_MistProtected[];
+extern const u8 BattleScript_RageIsBuilding[];
+extern const u8 BattleScript_MoveUsedIsDisabled[];
+extern const u8 BattleScript_SelectingDisabledMove[];
+extern const u8 BattleScript_DisabledNoMore[];
+extern const u8 BattleScript_SelectingDisabledMoveInPalace[];
+extern const u8 BattleScript_SelectingUnusableMoveInPalace[];
+extern const u8 BattleScript_EncoredNoMore[];
+extern const u8 BattleScript_DestinyBondTakesLife[];
+extern const u8 BattleScript_SpikesOnAttacker[];
+extern const u8 BattleScript_82DAE7A[];
+extern const u8 BattleScript_SpikesOnTarget[];
+extern const u8 BattleScript_82DAEB1[];
+extern const u8 BattleScript_SpikesOnFaintedBattler[];
+extern const u8 BattleScript_82DAEE8[];
+extern const u8 BattleScript_82DAEFE[];
+extern const u8 BattleScript_PerishSongTakesLife[];
+extern const u8 BattleScript_PerishSongCountGoesDown[];
+extern const u8 BattleScript_AllStatsUp[];
+extern const u8 BattleScript_82DAF54[];
+extern const u8 BattleScript_82DAF72[];
+extern const u8 BattleScript_82DAF86[];
+extern const u8 BattleScript_82DAF9A[];
+extern const u8 BattleScript_82DAFAE[];
+extern const u8 BattleScript_82DAFC2[];
+extern const u8 BattleScript_RapidSpinAway[];
+extern const u8 BattleScript_WrapFree[];
+extern const u8 BattleScript_LeechSeedFree[];
+extern const u8 BattleScript_SpikesFree[];
+extern const u8 BattleScript_MonTookFutureAttack[];
+extern const u8 BattleScript_82DB001[];
+extern const u8 BattleScript_82DB008[];
+extern const u8 BattleScript_82DB020[];
+extern const u8 BattleScript_82DB027[];
+extern const u8 BattleScript_82DB03F[];
+extern const u8 BattleScript_82DB058[];
+extern const u8 BattleScript_NoMovesLeft[];
+extern const u8 BattleScript_SelectingMoveWithNoPP[];
+extern const u8 BattleScript_NoPPForMove[];
+extern const u8 BattleScript_SelectingTormentedMove[];
+extern const u8 BattleScript_MoveUsedIsTormented[];
+extern const u8 BattleScript_SelectingTormentedMoveInPalace[];
+extern const u8 BattleScript_SelectingNotAllowedMoveTaunt[];
+extern const u8 BattleScript_MoveUsedIsTaunted[];
+extern const u8 BattleScript_SelectingNotAllowedMoveTauntInPalace[];
+extern const u8 BattleScript_WishComesTrue[];
+extern const u8 BattleScript_IngrainTurnHeal[];
+extern const u8 BattleScript_AtkDefDown[];
+extern const u8 BattleScript_82DB144[];
+extern const u8 BattleScript_82DB167[];
+extern const u8 BattleScript_KnockedOff[];
+extern const u8 BattleScript_MoveUsedIsImprisoned[];
+extern const u8 BattleScript_SelectingImprisionedMove[];
+extern const u8 BattleScript_SelectingImprisionedMoveInPalace[];
+extern const u8 BattleScript_GrudgeTakesPp[];
+extern const u8 BattleScript_MagicCoatBounce[];
+extern const u8 BattleScript_SnatchedMove[];
+extern const u8 BattleScript_EnduredMsg[];
+extern const u8 BattleScript_OneHitKOMsg[];
+extern const u8 BattleScript_SAtkDown2[];
+extern const u8 BattleScript_82DB1FE[];
+extern const u8 BattleScript_FocusPunchSetUp[];
+extern const u8 BattleScript_MoveUsedIsAsleep[];
+extern const u8 BattleScript_MoveUsedWokeUp[];
+extern const u8 BattleScript_MonWokeUpInUproar[];
+extern const u8 BattleScript_PoisonTurnDmg[];
+extern const u8 BattleScript_82DB243[];
+extern const u8 BattleScript_82DB245[];
+extern const u8 BattleScript_82DB25E[];
+extern const u8 BattleScript_BurnTurnDmg[];
+extern const u8 BattleScript_MoveUsedIsFrozen[];
+extern const u8 BattleScript_MoveUsedUnfroze[];
+extern const u8 BattleScript_DefrostedViaFireMove[];
+extern const u8 BattleScript_MoveUsedIsParalyzed[];
+extern const u8 BattleScript_MoveUsedFlinched[];
+extern const u8 BattleScript_PrintUproarOverTurns[];
+extern const u8 BattleScript_ThrashConfuses[];
+extern const u8 BattleScript_MoveUsedIsConfused[];
+extern const u8 BattleScript_82DB2D4[];
+extern const u8 BattleScript_82DB2FF[];
+extern const u8 BattleScript_MoveUsedIsConfusedNoMore[];
+extern const u8 BattleScript_PrintPayDayMoneyString[];
+extern const u8 BattleScript_WrapTurnDmg[];
+extern const u8 BattleScript_WrapEnds[];
+extern const u8 BattleScript_MoveUsedIsInLove[];
+extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[];
+extern const u8 BattleScript_NightmareTurnDmg[];
+extern const u8 BattleScript_CurseTurnDmg[];
+extern const u8 BattleScript_TargetPRLZHeal[];
+extern const u8 BattleScript_MoveEffectSleep[];
+extern const u8 BattleScript_82DB374[];
+extern const u8 BattleScript_YawnMakesAsleep[];
+extern const u8 BattleScript_MoveEffectPoison[];
+extern const u8 BattleScript_MoveEffectBurn[];
+extern const u8 BattleScript_MoveEffectFreeze[];
+extern const u8 BattleScript_MoveEffectParalysis[];
+extern const u8 BattleScript_MoveEffectUproar[];
+extern const u8 BattleScript_MoveEffectToxic[];
+extern const u8 BattleScript_MoveEffectPayDay[];
+extern const u8 BattleScript_MoveEffectWrap[];
+extern const u8 BattleScript_MoveEffectConfusion[];
+extern const u8 BattleScript_MoveEffectRecoil33[];
+extern const u8 BattleScript_DoRecoil33[];
+extern const u8 BattleScript_Recoil33End[];
+extern const u8 BattleScript_ItemSteal[];
+extern const u8 BattleScript_DrizzleActivates[];
+extern const u8 BattleScript_SpeedBoostActivates[];
+extern const u8 BattleScript_TraceActivates[];
+extern const u8 BattleScript_RainDishActivates[];
+extern const u8 BattleScript_SandstreamActivates[];
+extern const u8 BattleScript_ShedSkinActivates[];
+extern const u8 BattleScript_WeatherFormChanges[];
+extern const u8 BattleScript_WeatherFormChangesLoop[];
+extern const u8 BattleScript_CastformChange[];
+extern const u8 BattleScript_82DB4AF[];
+extern const u8 BattleScript_82DB4B8[];
+extern const u8 BattleScript_82DB4BE[];
+extern const u8 BattleScript_82DB4C1[];
+extern const u8 BattleScript_82DB4CD[];
+extern const u8 BattleScript_82DB510[];
+extern const u8 BattleScript_82DB51B[];
+extern const u8 BattleScript_82DB51C[];
+extern const u8 BattleScript_DroughtActivates[];
+extern const u8 BattleScript_TookAttack[];
+extern const u8 BattleScript_SturdyPreventsOHKO[];
+extern const u8 BattleScript_DampStopsExplosion[];
+extern const u8 BattleScript_MoveHPDrain_PPLoss[];
+extern const u8 BattleScript_MoveHPDrain[];
+extern const u8 BattleScript_MonMadeMoveUseless_PPLoss[];
+extern const u8 BattleScript_MonMadeMoveUseless[];
+extern const u8 BattleScript_FlashFireBoost_PPLoss[];
+extern const u8 BattleScript_FlashFireBoost[];
+extern const u8 BattleScript_AbilityNoStatLoss[];
+extern const u8 BattleScript_BRNPrevention[];
+extern const u8 BattleScript_PRLZPrevention[];
+extern const u8 BattleScript_PSNPrevention[];
+extern const u8 BattleScript_ObliviousPreventsAttraction[];
+extern const u8 BattleScript_FlinchPrevention[];
+extern const u8 BattleScript_OwnTempoPrevents[];
+extern const u8 BattleScript_SoundproofProtected[];
+extern const u8 BattleScript_AbilityNoSpecificStatLoss[];
+extern const u8 BattleScript_StickyHoldActivates[];
+extern const u8 BattleScript_ColorChangeActivates[];
+extern const u8 BattleScript_RoughSkinActivates[];
+extern const u8 BattleScript_CuteCharmActivates[];
+extern const u8 BattleScript_ApplySecondaryEffect[];
+extern const u8 BattleScript_SynchronizeActivates[];
+extern const u8 BattleScript_NoItemSteal[];
+extern const u8 BattleScript_AbilityCuredStatus[];
+extern const u8 BattleScript_82DB695[];
+extern const u8 BattleScript_IgnoresAndUsesRandomMove[];
+extern const u8 BattleScript_MoveUsedLoafingAround[];
+extern const u8 BattleScript_82DB6C7[];
+extern const u8 BattleScript_IgnoresAndFallsAsleep[];
+extern const u8 BattleScript_82DB6F0[];
+extern const u8 BattleScript_SubstituteFade[];
+extern const u8 BattleScript_BerryCurePrlzEnd2[];
+extern const u8 BattleScript_BerryCureParRet[];
+extern const u8 BattleScript_BerryCurePsnEnd2[];
+extern const u8 BattleScript_BerryCurePsnRet[];
+extern const u8 BattleScript_BerryCureBrnEnd2[];
+extern const u8 BattleScript_BerryCureBrnRet[];
+extern const u8 BattleScript_BerryCureFrzEnd2[];
+extern const u8 BattleScript_BerryCureFrzRet[];
+extern const u8 BattleScript_BerryCureSlpEnd2[];
+extern const u8 BattleScript_BerryCureSlpRet[];
+extern const u8 BattleScript_BerryCureConfusionEnd2[];
+extern const u8 BattleScript_BerryCureConfusionRet[];
+extern const u8 BattleScript_BerryCureChosenStatusEnd2[];
+extern const u8 BattleScript_BerryCureChosenStatusRet[];
+extern const u8 BattleScript_WhiteHerbEnd2[];
+extern const u8 BattleScript_WhiteHerbRet[];
+extern const u8 BattleScript_ItemHealHP_RemoveItem[];
+extern const u8 BattleScript_BerryPPHealEnd2[];
+extern const u8 BattleScript_ItemHealHP_End2[];
+extern const u8 BattleScript_ItemHealHP_Ret[];
+extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[];
+extern const u8 BattleScript_HangedOnMsg[];
+extern const u8 BattleScript_BerryConfuseHealEnd2[];
+extern const u8 BattleScript_BerryStatRaiseEnd2[];
+extern const u8 BattleScript_82DB85B[];
+extern const u8 BattleScript_BerryFocusEnergyEnd2[];
+extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[];
+extern const u8 BattleScript_82DB87D[];
+extern const u8 BattleScript_82DB881[];
+extern const u8 BattleScript_82DB887[];
+extern const u8 BattleScript_82DB89D[];
+extern const u8 BattleScript_82DB8BE[];
+extern const u8 BattleScript_82DB8E0[];
+extern const u8 BattleScript_82DB8F3[];
+extern const u8 BattleScript_82DB973[];
+extern const u8 BattleScript_82DB992[];
+extern const u8 BattleScript_AskIfWantsToForfeitMatch[];
+extern const u8 BattleScript_PrintPlayerForfeited[];
+extern const u8 BattleScript_PrintPlayerForfeitedLinkBattle[];
+extern const u8 BattleScript_BallThrow[];
+extern const u8 BattleScript_BallThrowByWally[];
+extern const u8 BattleScript_SafariBallThrow[];
+extern const u8 BattleScript_SuccessBallThrow[];
+extern const u8 BattleScript_82DBD92[];
+extern const u8 BattleScript_82DBDA5[];
+extern const u8 BattleScript_82DBDC2[];
+extern const u8 BattleScript_82DBDC3[];
+extern const u8 BattleScript_WallyBallThrow[];
+extern const u8 BattleScript_ShakeBallThrow[];
+extern const u8 BattleScript_82DBE01[];
+extern const u8 BattleScript_TrainerBallBlock[];
+extern const u8 BattleScript_82DBE12[];
+extern const u8 BattleScript_82DBE1C[];
+extern const u8 BattleScript_82DBE4B[];
+extern const u8 BattleScript_82DBE6F[];
+extern const u8 BattleScript_82DBE91[];
+extern const u8 BattleScript_RunByUsingItem[];
+extern const u8 BattleScript_ActionWatchesCarefully[];
+extern const u8 BattleScript_ActionGetNear[];
+extern const u8 BattleScript_ActionThrowPokeblock[];
+extern const u8 BattleScript_82DBEE3[];
+
+#endif // GUARD_BATTLE_SCRIPTS_H
diff --git a/include/battle_setup.h b/include/battle_setup.h
index e4acd8601..e4bae6fdb 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -1,15 +1,85 @@
#ifndef GUARD_BATTLE_SETUP_H
#define GUARD_BATTLE_SETUP_H
+enum
+{
+ TRAINER_BATTLE_NORMAL,
+ TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC,
+ TRAINER_BATTLE_CONTINUE_SCRIPT,
+ TRAINER_BATTLE_NORMAL_NO_INTRO_TEXT,
+ TRAINER_BATTLE_DOUBLE,
+ TRAINER_BATTLE_REMATCH,
+ TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE,
+ TRAINER_BATTLE_REMATCH_DOUBLE,
+ TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC,
+ TRAINER_BATTLE_9,
+ TRAINER_BATTLE_SET_TRAINER_A,
+ TRAINER_BATTLE_SET_TRAINER_B,
+ TRAINER_BATTLE_12,
+};
+
+#define REMATCHES_COUNT 5
+#define REMATCH_TABLE_ENTRIES 78
+#define REMATCH_WALLY_ENTRY 64
+#define REMATCH_ELITE_FOUR_ENTRIES 73
+
+struct RematchTrainer
+{
+ u16 trainerIds[REMATCHES_COUNT];
+ u16 mapGroup;
+ u16 mapNum;
+};
+
+extern const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES];
+
+extern u16 gTrainerBattleOpponent_A;
+extern u16 gTrainerBattleOpponent_B;
+extern u16 gPartnerTrainerId;
+
+void BattleSetup_StartWildBattle(void);
+void BattleSetup_StartBattlePikeWildBattle(void);
+void BattleSetup_StartRoamerBattle(void);
+void StartWallyTutorialBattle(void);
void BattleSetup_StartScriptedWildBattle(void);
+void BattleSetup_StartLatiBattle(void);
+void BattleSetup_StartLegendaryBattle(void);
+void StartGroudonKyogreBattle(void);
+void StartRegiBattle(void);
u8 BattleSetup_GetTerrainId(void);
-u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
-
-u8 HasTrainerAlreadyBeenFought(u16);
-void trainer_flag_set(u16);
-void trainer_flag_clear(u16);
+u8 sub_80B100C(s32 arg0);
+void ChooseStarter(void);
+void ResetTrainerOpponentIds(void);
+void SetMapVarsToTrainer(void);
+const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
+void ConfigureAndSetUpOneTrainerBattle(u8 trainerMapObjId, const u8 *trainerScript);
+void ConfigureTwoTrainersBattle(u8 trainerMapObjId, const u8 *trainerScript);
+void SetUpTwoTrainersBattle(void);
+bool32 GetTrainerFlagFromScriptPointer(const u8 *data);
+void sub_80B16D8(void);
+u8 GetTrainerBattleMode(void);
+bool8 GetTrainerFlag(void);
+bool8 HasTrainerBeenFought(u16 trainerId);
+void SetTrainerFlag(u16 trainerId);
+void ClearTrainerFlag(u16 trainerId);
void BattleSetup_StartTrainerBattle(void);
-u8 *BattleSetup_GetScriptAddrAfterBattle(void);
-u8 *BattleSetup_GetTrainerPostBattleScript(void);
+void BattleSetup_StartRematchBattle(void);
+void ShowTrainerIntroSpeech(void);
+const u8 *BattleSetup_GetScriptAddrAfterBattle(void);
+const u8 *BattleSetup_GetTrainerPostBattleScript(void);
+void ShowTrainerCantBattleSpeech(void);
+void SetUpTrainerEncounterMusic(void);
+const u8 *GetTrainerALoseText(void);
+const u8 *GetTrainerBLoseText(void);
+const u8 *GetTrainerWonSpeech(void);
+void UpdateRematchIfDefeated(s32 rematchTableId);
+void IncrementRematchStepCounter(void);
+void TryUpdateRandomTrainerRematches(u16 mapGroup, u16 mapNum);
+bool32 DoesSomeoneWantRematchIn(u16 mapGroup, u16 mapNum);
+bool32 IsRematchTrainerIn(u16 mapGroup, u16 mapNum);
+u16 GetLastBeatenRematchTrainerId(u16 trainerId);
+bool8 ShouldTryRematchBattle(void);
+bool8 IsTrainerReadyForRematch(void);
+void ShouldTryGetTrainerScript(void);
+u16 CountBattledRematchTeams(u16 trainerId);
#endif // GUARD_BATTLE_SETUP_H
diff --git a/include/battle_transition.h b/include/battle_transition.h
index 1603f5c93..0d6ef3c83 100644
--- a/include/battle_transition.h
+++ b/include/battle_transition.h
@@ -1,6 +1,72 @@
#ifndef GUARD_BATTLE_TRANSITION_H
#define GUARD_BATTLE_TRANSITION_H
-void sub_8149DFC(u8 a1);
+void TestBattleTransition(u8 transitionId);
+void BattleTransition_StartOnField(u8 transitionId);
+void BattleTransition_Start(u8 transitionId);
+bool8 IsBattleTransitionDone(void);
+bool8 FldEff_Pokeball(void);
+void TransitionPhase1_Task_RunFuncs(u8 taskId);
+void sub_8149F58(u16 **a0, u16 **a1);
+
+extern const struct SpritePalette gFieldEffectObjectPaletteInfo10;
+
+enum // TRANSITION_MUGSHOT
+{
+ MUGSHOT_SYDNEY,
+ MUGSHOT_PHOEBE,
+ MUGSHOT_GLACIA,
+ MUGSHOT_DRAKE,
+ MUGSHOT_CHAMPION,
+ MUGSHOTS_COUNT
+};
+
+// credits for the names go to Dyskinesia, Tetrable and Farore
+// names are naturally subject to change
+
+#define B_TRANSITION_BLUR 0
+#define B_TRANSITION_SWIRL 1
+#define B_TRANSITION_SHUFFLE 2
+#define B_TRANSITION_BIG_POKEBALL 3
+#define B_TRANSITION_POKEBALLS_TRAIL 4
+#define B_TRANSITION_CLOCKWISE_BLACKFADE 5
+#define B_TRANSITION_RIPPLE 6
+#define B_TRANSITION_WAVE 7
+#define B_TRANSITION_SLICE 8
+#define B_TRANSITION_WHITEFADE 9
+#define B_TRANSITION_GRID_SQUARES 10
+#define B_TRANSITION_SHARDS 11
+#define B_TRANSITION_SYDNEY 12
+#define B_TRANSITION_PHOEBE 13
+#define B_TRANSITION_GLACIA 14
+#define B_TRANSITION_DRAKE 15
+#define B_TRANSITION_CHAMPION 16
+// added in Emerald
+#define B_TRANSITION_AQUA 17
+#define B_TRANSITION_MAGMA 18
+#define B_TRANSITION_REGICE 19
+#define B_TRANSITION_REGISTEEL 20
+#define B_TRANSITION_REGIROCK 21
+#define B_TRANSITION_KYOGRE 22
+#define B_TRANSITION_GROUDON 23
+#define B_TRANSITION_RAYQUAZA 24
+#define B_TRANSITION_SHRED_SPLIT 25
+#define B_TRANSITION_BLACKHOLE1 26
+#define B_TRANSITION_BLACKHOLE2 27
+#define B_TRANSITION_RECTANGULAR_SPIRAL 28
+#define B_TRANSITION_29 29
+#define B_TRANSITION_30 30
+#define B_TRANSITION_31 31
+#define B_TRANSITION_32 32
+#define B_TRANSITION_33 33
+#define B_TRANSITION_34 34
+#define B_TRANSITION_35 35
+#define B_TRANSITION_36 36
+#define B_TRANSITION_37 37
+#define B_TRANSITION_38 38
+#define B_TRANSITION_39 39
+#define B_TRANSITION_40 40
+#define B_TRANSITION_41 41
+#define B_TRANSITION_COUNT 42
#endif // GUARD_BATTLE_TRANSITION_H
diff --git a/include/battle_util.h b/include/battle_util.h
index b21b250c4..d992faa47 100644
--- a/include/battle_util.h
+++ b/include/battle_util.h
@@ -44,12 +44,12 @@
#define BS_GET_PLAYER2 13
#define BS_GET_OPPONENT2 14
-u8 GetBattleBank(u8 caseId);
+u8 GetBattlerForBattleScript(u8 caseId);
void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move);
void PressurePPLoseOnUsingPerishSong(u8 bankAtk);
void PressurePPLoseOnUsingImprision(u8 bankAtk);
-void MarkAllBufferBanksForExecution(void); // unused
-void MarkBufferBankForExecution(u8 bank);
+void MarkAllBattlersForControllerExec(void); // unused
+void MarkBattlerForControllerExec(u8 bank);
void sub_803F850(u8 arg0);
void CancelMultiTurnMoves(u8 bank);
bool8 WasUnableToUseMove(u8 bank);
@@ -66,8 +66,8 @@ bool8 AreAllMovesUnusable(void);
u8 GetImprisonedMovesCount(u8 bank, u16 move);
u8 UpdateTurnCounters(void);
u8 TurnBasedEffects(void);
-bool8 sub_8041364(void);
-bool8 sub_8041728(void);
+bool8 HandleWishPerishSongOnTurnEnd(void);
+bool8 HandleFaintedMonActions(void);
void TryClearRageStatuses(void);
u8 AtkCanceller_UnableToUseMove(void);
bool8 sub_80423F4(u8 bank, u8 r1, u8 r2);
@@ -79,6 +79,6 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn);
void ClearFuryCutterDestinyBondGrudge(u8 bank);
void HandleAction_RunBattleScript(void);
u8 GetMoveTarget(u16 move, u8 useMoveTarget);
-u8 IsPokeDisobedient(void);
+u8 IsMonDisobedient(void);
#endif // GUARD_BATTLE_UTIL_H
diff --git a/include/battle_util2.h b/include/battle_util2.h
new file mode 100644
index 000000000..3954e42dc
--- /dev/null
+++ b/include/battle_util2.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_BATTLE_UTIL2_H
+#define GUARD_BATTLE_UTIL2_H
+
+void AllocateBattleResources(void);
+void FreeBattleResources(void);
+void AdjustFriendshipOnBattleFaint(u8 bank);
+void sub_80571DC(u8 bank, u8 arg1);
+u32 sub_805725C(u8 bank);
+
+#endif // GUARD_BATTLE_UTIL_H
diff --git a/include/berry.h b/include/berry.h
index f51503d41..425a664c9 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -11,6 +11,16 @@ enum
BERRY_FIRMNESS_SUPER_HARD,
};
+enum
+{
+ FLAVOR_SPICY,
+ FLAVOR_DRY,
+ FLAVOR_SWEET,
+ FLAVOR_BITTER,
+ FLAVOR_SOUR,
+ FLAVOR_COUNT
+};
+
#define NUM_BERRIES 44
extern const u8 *const gBerryTreeFieldObjectGraphicsIdTablePointers[NUM_BERRIES];
diff --git a/include/berry_blender.h b/include/berry_blender.h
new file mode 100644
index 000000000..fb62e3fa3
--- /dev/null
+++ b/include/berry_blender.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_BERRY_BLENDER_H
+#define GUARD_BERRY_BLENDER_H
+
+void DoBerryBlending(void);
+u16 GetBlenderArrowPosition(void);
+void ShowBerryBlenderRecordWindow(void);
+
+#endif // GUARD_BERRY_BLENDER_H
diff --git a/include/berry_fix_program.h b/include/berry_fix_program.h
new file mode 100644
index 000000000..6c31a0c8b
--- /dev/null
+++ b/include/berry_fix_program.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BERRY_FIX_PROGRAM_H
+#define GUARD_BERRY_FIX_PROGRAM_H
+
+void CB2_InitBerryFixProgram(void);
+
+#endif // GUARD_BERRY_FIX_PROGRAM_H
diff --git a/include/berry_tag_screen.h b/include/berry_tag_screen.h
new file mode 100644
index 000000000..26664bea6
--- /dev/null
+++ b/include/berry_tag_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BERRY_TAG_SCREEN_H
+#define GUARD_BERRY_TAG_SCREEN_H
+
+void DoBerryTagScreen(void);
+
+#endif // GUARD_BERRY_TAG_SCREEN_H
diff --git a/include/bg.h b/include/bg.h
index 0c6b4ac26..de3897fa4 100644
--- a/include/bg.h
+++ b/include/bg.h
@@ -70,7 +70,7 @@ void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height);
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
-void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
+void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);
diff --git a/include/bike.h b/include/bike.h
new file mode 100644
index 000000000..e625ad438
--- /dev/null
+++ b/include/bike.h
@@ -0,0 +1,78 @@
+#ifndef GUARD_BIKE_H
+#define GUARD_BIKE_H
+
+// the struct below is used for checking button combinations of the last input so that the acro can potentially perform a side/turn jump.
+// its possible that at some point Game Freak intended for the acro bike to have more complex tricks: but only the acro jump combinations can be seen in the final ROM.
+struct BikeHistoryInputInfo
+{
+ u32 dirHistoryMatch; // the direction you need to press
+ u32 abStartSelectHistoryMatch; // the button you need to press
+ u32 dirHistoryMask; // mask applied so that way only the recent nybble (the recent input) is checked
+ u32 abStartSelectHistoryMask; // mask applied so that way only the recent nybble (the recent input) is checked
+ const u8 *dirTimerHistoryList; // list of timers to check for direction before the button+dir combination can be verified.
+ const u8 *abStartSelectHistoryList; // list of timers to check for buttons before the button+dir combination can be verified.
+ u32 direction; // direction to jump
+};
+
+// Player speeds
+enum
+{
+ SPEED_STANDING,
+ SPEED_NORMAL,
+ SPEED_FAST,
+ SPEED_FASTER,
+ SPEED_FASTEST,
+};
+
+// mach bike transitions enum
+enum
+{
+ MACH_TRANS_FACE_DIRECTION,
+ MACH_TRANS_TURN_DIRECTION,
+ MACH_TRANS_KEEP_MOVING,
+ MACH_TRANS_START_MOVING
+};
+
+// Acro bike states
+enum
+{
+ ACRO_STATE_NORMAL,
+ ACRO_STATE_TURNING,
+ ACRO_STATE_WHEELIE_STANDING,
+ ACRO_STATE_BUNNY_HOP,
+ ACRO_STATE_WHEELIE_MOVING,
+ ACRO_STATE_SIDE_JUMP,
+ ACRO_STATE_TURN_JUMP,
+};
+
+// Acro bike transitions
+enum
+{
+ ACRO_TRANS_FACE_DIRECTION,
+ ACRO_TRANS_TURN_DIRECTION,
+ ACRO_TRANS_MOVING,
+ ACRO_TRANS_NORMAL_TO_WHEELIE,
+ ACRO_TRANS_WHEELIE_TO_NORMAL,
+ ACRO_TRANS_WHEELIE_IDLE,
+ ACRO_TRANS_WHEELIE_HOPPING_STANDING,
+ ACRO_TRANS_WHEELIE_HOPPING_MOVING,
+ ACRO_TRANS_SIDE_JUMP,
+ ACRO_TRANS_TURN_JUMP,
+ ACRO_TRANS_WHEELIE_MOVING,
+ ACRO_TRANS_WHEELIE_RISING_MOVING,
+ ACRO_TRANS_WHEELIE_LOWERING_MOVING,
+};
+
+void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys);
+void Bike_TryAcroBikeHistoryUpdate(u16 newKeys, u16 heldKeys);
+bool8 RS_IsRunningDisallowed(u8 tile);
+bool8 IsBikingDisallowedByPlayer(void);
+bool8 player_should_look_direction_be_enforced_upon_movement(void);
+void GetOnOffBike(u8 transitionFlags);
+void BikeClearState(int newDirHistory, int newAbStartHistory);
+void Bike_UpdateBikeCounterSpeed(u8 counter);
+s16 GetPlayerSpeed(void);
+void Bike_HandleBumpySlopeJump(void);
+bool32 IsRunningDisallowed(u8 metatile);
+
+#endif // GUARD_BIKE_H
diff --git a/include/blend_palette.h b/include/blend_palette.h
index 1db3f4eb0..a00847bc3 100644
--- a/include/blend_palette.h
+++ b/include/blend_palette.h
@@ -1,12 +1,6 @@
#ifndef GUARD_BLEND_PALETTE_H
#define GUARD_BLEND_PALETTE_H
-// Exported type declarations
+void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor);
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-void BlendPalette(u16, u16, u8, u16);
-
-#endif //GUARD_BLEND_PALETTE_H
+#endif // GUARD_BLEND_PALETTE_H
diff --git a/include/clear_save_data_menu.h b/include/clear_save_data_menu.h
new file mode 100644
index 000000000..86ba99849
--- /dev/null
+++ b/include/clear_save_data_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_CLEAR_SAVE_DATA_MENU_H
+#define GUARD_CLEAR_SAVE_DATA_MENU_H
+
+void CB2_InitClearSaveDataScreen(void);
+
+#endif // GUARD_CLEAR_SAVE_DATA_MENU_H
diff --git a/include/config.h b/include/config.h
index 162af3143..318ed39d8 100644
--- a/include/config.h
+++ b/include/config.h
@@ -1,6 +1,23 @@
#ifndef GUARD_CONFIG_H
#define GUARD_CONFIG_H
+// In the Generation 3 games, Asserts were used in various debug builds.
+// Ruby/Sapphire and Emerald do not have these asserts while Fire Red
+// still has them in the ROM. This is because the developers forgot
+// to define NDEBUG before release, however this has been changed as
+// Ruby's actual debug build does not use the AGBPrint features.
+#define NDEBUG
+
+// To enable print debugging, comment out "#define NDEBUG". This allows
+// the various AGBPrint functions to be used. (See include/gba/isagbprint.h).
+// Some emulators support a debug console window: uncomment NoCashGBAPrint()
+// and NoCashGBAPrintf() in libisagbprn.c to use no$gba's own proprietary
+// printing system. Use NoCashGBAPrint() and NoCashGBAPrintf() like you
+// would normally use AGBPrint() and AGBPrintf().
+
+// NOTE: Don't try to enable assert right now as many pointers
+// still exist in defines and WILL likely result in a broken ROM.
+
#define ENGLISH
#ifdef ENGLISH
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.h b/include/constants/battle.h
new file mode 100644
index 000000000..f3d7a8e0e
--- /dev/null
+++ b/include/constants/battle.h
@@ -0,0 +1,284 @@
+#ifndef GUARD_CONSTANTS_BATTLE_H
+#define GUARD_CONSTANTS_BATTLE_H
+
+/*
+ * A battler may be in one of four positions on the field. The first bit determines
+ * what side the battler is on, either the player's side or the opponent's side.
+ * The second bit determines what flank the battler is on, either the left or right.
+ * Note that the opponent's flanks are drawn corresponding to their perspective, so
+ * their right mon appears on the left, and their left mon appears on the right.
+ * The battler ID is usually the same as the position, except in the case of link battles.
+ *
+ * + ------------------------- +
+ * | Opponent's side |
+ * | Right Left |
+ * | 3 1 |
+ * | |
+ * | Player's side |
+ * | Left Right |
+ * | 0 2 |
+ * ----------------------------+
+ * | |
+ * | |
+ * +---------------------------+
+ */
+
+#define MAX_BATTLERS_COUNT 4
+
+#define B_POSITION_PLAYER_LEFT 0
+#define B_POSITION_OPPONENT_LEFT 1
+#define B_POSITION_PLAYER_RIGHT 2
+#define B_POSITION_OPPONENT_RIGHT 3
+
+// These macros can be used with either battler ID or positions to get the partner or the opposite mon
+#define BATTLE_OPPOSITE(id) ((id) ^ 1)
+#define BATTLE_PARTNER(id) ((id) ^ 2)
+
+#define B_SIDE_PLAYER 0
+#define B_SIDE_OPPONENT 1
+
+#define B_FLANK_LEFT 0
+#define B_FLANK_RIGHT 1
+
+#define BIT_SIDE 1
+#define BIT_FLANK 2
+
+// Battle Type Flags
+#define BATTLE_TYPE_DOUBLE 0x0001
+#define BATTLE_TYPE_LINK 0x0002
+#define BATTLE_TYPE_WILD 0x0004
+#define BATTLE_TYPE_TRAINER 0x0008
+#define BATTLE_TYPE_FIRST_BATTLE 0x0010
+#define BATTLE_TYPE_20 0x0020
+#define BATTLE_TYPE_MULTI 0x0040
+#define BATTLE_TYPE_SAFARI 0x0080
+#define BATTLE_TYPE_BATTLE_TOWER 0x0100
+#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
+#define BATTLE_TYPE_ROAMER 0x0400
+#define BATTLE_TYPE_EREADER_TRAINER 0x0800
+#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
+#define BATTLE_TYPE_LEGENDARY 0x2000
+#define BATTLE_TYPE_REGI 0x4000
+#define BATTLE_TYPE_TWO_OPPONENTS 0x8000
+#define BATTLE_TYPE_DOME 0x10000
+#define BATTLE_TYPE_PALACE 0x20000
+#define BATTLE_TYPE_ARENA 0x40000
+#define BATTLE_TYPE_FACTORY 0x80000
+#define BATTLE_TYPE_PIKE 0x100000
+#define BATTLE_TYPE_PYRAMID 0x200000
+#define BATTLE_TYPE_INGAME_PARTNER 0x400000
+#define BATTLE_TYPE_x800000 0x800000
+#define BATTLE_TYPE_RECORDED 0x1000000
+#define BATTLE_TYPE_x2000000 0x2000000
+#define BATTLE_TYPE_x4000000 0x4000000
+#define BATTLE_TYPE_SECRET_BASE 0x8000000
+#define BATTLE_TYPE_GROUDON 0x10000000
+#define BATTLE_TYPE_KYOGRE 0x20000000
+#define BATTLE_TYPE_RAYQUAZA 0x40000000
+#define BATTLE_TYPE_x80000000 0x80000000
+#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)
+#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE)
+
+// Battle Outcome defines
+#define B_OUTCOME_WON 0x1
+#define B_OUTCOME_LOST 0x2
+#define B_OUTCOME_DREW 0x3
+#define B_OUTCOME_RAN 0x4
+#define B_OUTCOME_PLAYER_TELEPORTED 0x5
+#define B_OUTCOME_MON_FLED 0x6
+#define B_OUTCOME_CAUGHT 0x7
+#define B_OUTCOME_NO_SAFARI_BALLS 0x8
+#define B_OUTCOME_FORFEITED 0x9
+#define B_OUTCOME_MON_TELEPORTED 0xA
+#define B_OUTCOME_LINK_BATTLE_RAN 0x80
+
+// Non-volatile status conditions
+// These persist remain outside of battle and after switching out
+#define STATUS1_NONE 0x0
+#define STATUS1_SLEEP 0x7
+#define STATUS1_POISON 0x8
+#define STATUS1_BURN 0x10
+#define STATUS1_FREEZE 0x20
+#define STATUS1_PARALYSIS 0x40
+#define STATUS1_TOXIC_POISON 0x80
+#define STATUS1_TOXIC_COUNTER 0xF00
+#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON)
+#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)
+
+// Volatile status ailments
+// These are removed after exiting the battle or switching out
+#define STATUS2_CONFUSION 0x00000007
+#define STATUS2_FLINCHED 0x00000008
+#define STATUS2_UPROAR 0x00000070
+#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
+#define STATUS2_LOCK_CONFUSE 0x00000C00
+#define STATUS2_MULTIPLETURNS 0x00001000
+#define STATUS2_WRAPPED 0x0000E000
+#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler
+#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16)
+#define STATUS2_FOCUS_ENERGY 0x00100000
+#define STATUS2_TRANSFORMED 0x00200000
+#define STATUS2_RECHARGE 0x00400000
+#define STATUS2_RAGE 0x00800000
+#define STATUS2_SUBSTITUTE 0x01000000
+#define STATUS2_DESTINY_BOND 0x02000000
+#define STATUS2_ESCAPE_PREVENTION 0x04000000
+#define STATUS2_NIGHTMARE 0x08000000
+#define STATUS2_CURSED 0x10000000
+#define STATUS2_FORESIGHT 0x20000000
+#define STATUS2_DEFENSE_CURL 0x40000000
+#define STATUS2_TORMENT 0x80000000
+
+// Seems like per-battler statuses. Not quite sure how to categorize these
+#define STATUS3_LEECHSEED_BANK 0x3
+#define STATUS3_LEECHSEED 0x4
+#define STATUS3_ALWAYS_HITS 0x18 // two bits
+#define STATUS3_PERISH_SONG 0x20
+#define STATUS3_ON_AIR 0x40
+#define STATUS3_UNDERGROUND 0x80
+#define STATUS3_MINIMIZED 0x100
+#define STATUS3_ROOTED 0x400
+#define STATUS3_CHARGED_UP 0x200
+#define STATUS3_YAWN 0x1800 // two bits
+#define STATUS3_IMPRISONED_OTHERS 0x2000
+#define STATUS3_GRUDGE 0x4000
+#define STATUS3_CANT_SCORE_A_CRIT 0x8000
+#define STATUS3_MUDSPORT 0x10000
+#define STATUS3_WATERSPORT 0x20000
+#define STATUS3_UNDERWATER 0x40000
+#define STATUS3_INTIMIDATE_POKES 0x80000
+#define STATUS3_TRACE 0x100000
+#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)
+
+// Not really sure what a "hitmarker" is.
+#define HITMARKER_x10 0x00000010
+#define HITMARKER_x20 0x00000020
+#define HITMARKER_DESTINYBOND 0x00000040
+#define HITMARKER_NO_ANIMATIONS 0x00000080
+#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100
+#define HITMARKER_NO_ATTACKSTRING 0x00000200
+#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400
+#define HITMARKER_NO_PPDEDUCT 0x00000800
+#define HITMARKER_PURSUIT_TRAP 0x00001000
+#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
+#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
+#define HITMARKER_RUN 0x00008000
+#define HITMARKER_IGNORE_ON_AIR 0x00010000
+#define HITMARKER_IGNORE_UNDERGROUND 0x00020000
+#define HITMARKER_IGNORE_UNDERWATER 0x00040000
+#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000
+#define HITMARKER_x100000 0x00100000
+#define HITMARKER_x200000 0x00200000
+#define HITMARKER_x400000 0x00400000
+#define HITMARKER_x800000 0x00800000
+#define HITMARKER_GRUDGE 0x01000000
+#define HITMARKER_OBEYS 0x02000000
+#define HITMARKER_x4000000 0x04000000
+#define HITMARKER_x8000000 0x08000000
+#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C)
+#define HITMARKER_UNK(battler) (0x10000000 << battler)
+
+// Per-side statuses that affect an entire party
+#define SIDE_STATUS_REFLECT (1 << 0)
+#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
+#define SIDE_STATUS_X4 (1 << 2)
+#define SIDE_STATUS_SPIKES (1 << 4)
+#define SIDE_STATUS_SAFEGUARD (1 << 5)
+#define SIDE_STATUS_FUTUREATTACK (1 << 6)
+#define SIDE_STATUS_MIST (1 << 8)
+#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
+
+// Flags describing move's result
+#define MOVE_RESULT_MISSED (1 << 0)
+#define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1)
+#define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2)
+#define MOVE_RESULT_DOESNT_AFFECT_FOE (1 << 3)
+#define MOVE_RESULT_ONE_HIT_KO (1 << 4)
+#define MOVE_RESULT_FAILED (1 << 5)
+#define MOVE_RESULT_FOE_ENDURED (1 << 6)
+#define MOVE_RESULT_FOE_HUNG_ON (1 << 7)
+#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)
+
+// Battle Weather flags
+#define WEATHER_RAIN_TEMPORARY (1 << 0)
+#define WEATHER_RAIN_DOWNPOUR (1 << 1) // unused
+#define WEATHER_RAIN_PERMANENT (1 << 2)
+#define WEATHER_RAIN_ANY (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)
+#define WEATHER_SANDSTORM_TEMPORARY (1 << 3)
+#define WEATHER_SANDSTORM_PERMANENT (1 << 4)
+#define WEATHER_SANDSTORM_ANY (WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)
+#define WEATHER_SUN_TEMPORARY (1 << 5)
+#define WEATHER_SUN_PERMANENT (1 << 6)
+#define WEATHER_SUN_ANY (WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)
+#define WEATHER_HAIL (1 << 7)
+#define WEATHER_HAIL_ANY (WEATHER_HAIL)
+#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)
+
+// Move Effects
+#define MOVE_EFFECT_SLEEP 0x1
+#define MOVE_EFFECT_POISON 0x2
+#define MOVE_EFFECT_BURN 0x3
+#define MOVE_EFFECT_FREEZE 0x4
+#define MOVE_EFFECT_PARALYSIS 0x5
+#define MOVE_EFFECT_TOXIC 0x6
+#define MOVE_EFFECT_CONFUSION 0x7
+#define MOVE_EFFECT_FLINCH 0x8
+#define MOVE_EFFECT_TRI_ATTACK 0x9
+#define MOVE_EFFECT_UPROAR 0xA
+#define MOVE_EFFECT_PAYDAY 0xB
+#define MOVE_EFFECT_CHARGING 0xC
+#define MOVE_EFFECT_WRAP 0xD
+#define MOVE_EFFECT_RECOIL_25 0xE
+#define MOVE_EFFECT_ATK_PLUS_1 0xF
+#define MOVE_EFFECT_DEF_PLUS_1 0x10
+#define MOVE_EFFECT_SPD_PLUS_1 0x11
+#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12
+#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13
+#define MOVE_EFFECT_ACC_PLUS_1 0x14
+#define MOVE_EFFECT_EVS_PLUS_1 0x15
+#define MOVE_EFFECT_ATK_MINUS_1 0x16
+#define MOVE_EFFECT_DEF_MINUS_1 0x17
+#define MOVE_EFFECT_SPD_MINUS_1 0x18
+#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19
+#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A
+#define MOVE_EFFECT_ACC_MINUS_1 0x1B
+#define MOVE_EFFECT_EVS_MINUS_1 0x1C
+#define MOVE_EFFECT_RECHARGE 0x1D
+#define MOVE_EFFECT_RAGE 0x1E
+#define MOVE_EFFECT_STEAL_ITEM 0x1F
+#define MOVE_EFFECT_PREVENT_ESCAPE 0x20
+#define MOVE_EFFECT_NIGHTMARE 0x21
+#define MOVE_EFFECT_ALL_STATS_UP 0x22
+#define MOVE_EFFECT_RAPIDSPIN 0x23
+#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24
+#define MOVE_EFFECT_ATK_DEF_DOWN 0x25
+#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26
+#define MOVE_EFFECT_ATK_PLUS_2 0x27
+#define MOVE_EFFECT_DEF_PLUS_2 0x28
+#define MOVE_EFFECT_SPD_PLUS_2 0x29
+#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A
+#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B
+#define MOVE_EFFECT_ACC_PLUS_2 0x2C
+#define MOVE_EFFECT_EVS_PLUS_2 0x2D
+#define MOVE_EFFECT_ATK_MINUS_2 0x2E
+#define MOVE_EFFECT_DEF_MINUS_2 0x2F
+#define MOVE_EFFECT_SPD_MINUS_2 0x30
+#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31
+#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32
+#define MOVE_EFFECT_ACC_MINUS_2 0x33
+#define MOVE_EFFECT_EVS_MINUS_2 0x34
+#define MOVE_EFFECT_THRASH 0x35
+#define MOVE_EFFECT_KNOCK_OFF 0x36
+#define MOVE_EFFECT_NOTHING_37 0x37
+#define MOVE_EFFECT_NOTHING_38 0x38
+#define MOVE_EFFECT_NOTHING_39 0x39
+#define MOVE_EFFECT_NOTHING_3A 0x3A
+#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B
+#define MOVE_EFFECT_NOTHING_3C 0x3C
+#define MOVE_EFFECT_NOTHING_3D 0x3D
+#define MOVE_EFFECT_NOTHING_3E 0x3E
+#define MOVE_EFFECT_NOTHING_3F 0x3F
+#define MOVE_EFFECT_AFFECTS_USER 0x40
+#define MOVE_EFFECT_CERTAIN 0x80
+
+#endif // GUARD_CONSTANTS_BATTLE_H
diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h
new file mode 100644
index 000000000..7d2c70307
--- /dev/null
+++ b/include/constants/battle_ai.h
@@ -0,0 +1,52 @@
+#ifndef GUARD_CONSTANTS_BATTLE_AI_H
+#define GUARD_CONSTANTS_BATTLE_AI_H
+
+// battlers
+#define AI_TARGET 0
+#define AI_USER 1
+#define AI_TARGET_PARTNER 2
+#define AI_USER_PARTNER 3
+
+// get_type command
+#define AI_TYPE1_TARGET 0
+#define AI_TYPE1_USER 1
+#define AI_TYPE2_TARGET 2
+#define AI_TYPE2_USER 3
+#define AI_TYPE_MOVE 4
+
+// type effectiveness
+#define AI_EFFECTIVENESS_x4 160
+#define AI_EFFECTIVENESS_x2 80
+#define AI_EFFECTIVENESS_x1 40
+#define AI_EFFECTIVENESS_x0_5 20
+#define AI_EFFECTIVENESS_x0_25 10
+#define AI_EFFECTIVENESS_x0 0
+
+// ai weather
+#define AI_WEATHER_SUN 0
+#define AI_WEATHER_RAIN 1
+#define AI_WEATHER_SANDSTORM 2
+#define AI_WEATHER_HAIL 3
+
+// get_how_powerful_move_is
+#define MOVE_POWER_DISCOURAGED 0
+#define MOVE_NOT_MOST_POWERFUL 1
+#define MOVE_MOST_POWERFUL 2
+
+// script's table id to bit
+#define AI_SCRIPT_CHECK_BAD_MOVE (1 << 0)
+#define AI_SCRIPT_CHECK_VIABILITY (1 << 1)
+#define AI_SCRIPT_TRY_TO_FAINT (1 << 2)
+#define AI_SCRIPT_SETUP_FIRST_TURN (1 << 3)
+#define AI_SCRIPT_RISKY (1 << 4)
+#define AI_SCRIPT_PREFER_STRONGEST_MOVE (1 << 5)
+#define AI_SCRIPT_PREFER_BATON_PASS (1 << 6)
+#define AI_SCRIPT_DOUBLE_BATTLE (1 << 7)
+#define AI_SCRIPT_HP_AWARE (1 << 8)
+#define AI_SCRIPT_UNKNOWN (1 << 9)
+// 10 - 28 are not used
+#define AI_SCRIPT_ROAMING (1 << 29)
+#define AI_SCRIPT_SAFARI (1 << 30)
+#define AI_SCRIPT_FIRST_BATTLE (1 << 31)
+
+#endif // GUARD_CONSTANTS_BATTLE_AI_H
diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h
new file mode 100644
index 000000000..270ac55e0
--- /dev/null
+++ b/include/constants/battle_anim.h
@@ -0,0 +1,85 @@
+#ifndef GUARD_CONSTANTS_BATTLE_ANIM_H
+#define GUARD_CONSTANTS_BATTLE_ANIM_H
+
+// battlers
+#define ANIM_ATTACKER 0
+#define ANIM_TARGET 1
+#define ANIM_ATK_PARTNER 2
+#define ANIM_DEF_PARTNER 3
+
+// move background ids
+#define BG_DARK_ 0 // the same as BG_DARK but is unused
+#define BG_DARK 1
+#define BG_GHOST 2
+#define BG_PSYCHIC 3
+#define BG_IMPACT_OPPONENT 4
+#define BG_IMPACT_PLAYER 5
+#define BG_IMPACT_CONTESTS 6
+#define BG_DRILL 7
+#define BG_DRILL_CONTESTS 8
+#define BG_HIGHSPEED_OPPONENT 9
+#define BG_HIGHSPEED_PLAYER 10
+#define BG_THUNDER 11
+#define BG_GUILLOTINE_OPPONENT 12
+#define BG_GUILLOTINE_PLAYER 13
+#define BG_GUILLOTINE_CONTESTS 14
+#define BG_ICE 15
+#define BG_COSMIC 16
+#define BG_SEISMICTOSS_SKUUPPERCUT 17
+#define BG_FLYING 18
+#define BG_FLYING_CONTESTS 19
+#define BG_AURORABEAM 20
+#define BG_FISSURE 21
+#define BG_BUG_OPPONENT 22
+#define BG_BUG_PLAYER 23
+#define BG_SOLARBEAM_OPPONENT 24
+#define BG_SOLARBEAM_PLAYER 25
+#define BG_SOLARBEAM_CONTESTS 26
+
+// table ids for general animations
+#define B_ANIM_CASTFORM_CHANGE 0x0
+#define B_ANIM_STATS_CHANGE 0x1
+#define B_ANIM_SUBSTITUTE_FADE 0x2
+#define B_ANIM_SUBSTITUTE_APPEAR 0x3
+#define B_ANIM_x4 0x4
+#define B_ANIM_ITEM_KNOCKOFF 0x5
+#define B_ANIM_TURN_TRAP 0x6
+#define B_ANIM_ITEM_EFFECT 0x7
+#define B_ANIM_SMOKEBALL_ESCAPE 0x8
+#define B_ANIM_HANGED_ON 0x9
+#define B_ANIM_RAIN_CONTINUES 0xA
+#define B_ANIM_SUN_CONTINUES 0xB
+#define B_ANIM_SANDSTORM_CONTINUES 0xC
+#define B_ANIM_HAIL_CONTINUES 0xD
+#define B_ANIM_LEECH_SEED_DRAIN 0xE
+#define B_ANIM_MON_HIT 0xF
+#define B_ANIM_ITEM_STEAL 0x10
+#define B_ANIM_SNATCH_MOVE 0x11
+#define B_ANIM_FUTURE_SIGHT_HIT 0x12
+#define B_ANIM_DOOM_DESIRE_HIT 0x13
+#define B_ANIM_x14 0x14
+#define B_ANIM_INGRAIN_HEAL 0x15
+#define B_ANIM_WISH_HEAL 0x16
+
+// special animations table
+#define B_ANIM_LVL_UP 0x0
+#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1
+#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2
+#define B_ANIM_BALL_THROW 0x3
+#define B_ANIM_SAFARI_BALL_THROW 0x4
+#define B_ANIM_SUBSTITUTE_TO_MON 0x5
+#define B_ANIM_MON_TO_SUBSTITUTE 0x6
+
+// status animation table
+#define B_ANIM_STATUS_PSN 0x0
+#define B_ANIM_STATUS_CONFUSION 0x1
+#define B_ANIM_STATUS_BRN 0x2
+#define B_ANIM_STATUS_INFATUATION 0x3
+#define B_ANIM_STATUS_SLP 0x4
+#define B_ANIM_STATUS_PRZ 0x5
+#define B_ANIM_STATUS_FRZ 0x6
+#define B_ANIM_STATUS_CURSED 0x7
+#define B_ANIM_STATUS_NIGHTMARE 0x8
+#define B_ANIM_STATUS_WRAPPED 0x9 // does not actually exist
+
+#endif // GUARD_CONSTANTS_BATTLE_ANIM_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/battle_script_commands.h b/include/constants/battle_script_commands.h
new file mode 100644
index 000000000..0390f17f4
--- /dev/null
+++ b/include/constants/battle_script_commands.h
@@ -0,0 +1,97 @@
+#ifndef GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
+#define GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
+
+// Battle Scripting and BattleCommunication addresses
+#define sPAINSPLIT_HP gBattleScripting
+#define sBIDE_DMG gBattleScripting + 4
+#define sMULTIHIT_STRING gBattleScripting + 8
+#define sDMG_MULTIPLIER gBattleScripting + 0xE
+#define sTWOTURN_STRINGID gBattleScripting + 0xF
+#define sB_ANIM_ARG1 gBattleScripting + 0x10
+#define sB_ANIM_ARG2 gBattleScripting + 0x11
+#define sTRIPLE_KICK_POWER gBattleScripting + 0x12
+#define sMOVEEND_STATE gBattleScripting + 0x14
+#define sBANK_WITH_ABILITY gBattleScripting + 0x15
+#define sMULTIHIT_EFFECT gBattleScripting + 0x16
+#define sBANK gBattleScripting + 0x17
+#define sB_ANIM_TURN gBattleScripting + 0x18
+#define sB_ANIM_TARGETS_HIT gBattleScripting + 0x19
+#define sSTATCHANGER gBattleScripting + 0x1A
+#define sFIELD_1B gBattleScripting + 0x1B
+#define sGIVEEXP_STATE gBattleScripting + 0x1C
+#define sBATTLE_STYLE gBattleScripting + 0x1D
+#define sLVLBOX_STATE gBattleScripting + 0x1E
+#define sLEARNMOVE_STATE gBattleScripting + 0x1F
+#define sFIELD_20 gBattleScripting + 0x20
+#define sRESHOW_MAIN_STATE gBattleScripting + 0x21
+#define sRESHOW_HELPER_STATE gBattleScripting + 0x22
+#define sFIELD_23 gBattleScripting + 0x23
+#define sFIELD_24 gBattleScripting + 0x24
+#define sMULTIPLAYER_ID gBattleScripting + 0x25
+
+#define cEFFECT_CHOOSER gBattleCommunication + 3
+#define cMULTISTRING_CHOOSER gBattleCommunication + 5
+
+// Battle Script defines for getting the wanted battler
+#define BS_TARGET 0
+#define BS_ATTACKER 1
+#define BS_EFFECT_BATTLER 2
+#define BS_FAINTED 3
+#define BS_BANK_0 7
+#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
+#define BS_ATTACKER_SIDE 8 // for atk1E_jumpifability
+#define BS_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
+#define BS_SCRIPTING 10
+#define BS_PLAYER1 11
+#define BS_OPPONENT1 12
+#define BS_PLAYER2 13
+#define BS_OPPONENT2 14
+
+// atk 01, accuracy calc
+#define NO_ACC_CALC 0xFFFE
+#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
+#define ACC_CURR_MOVE 0
+
+// compare operands
+#define CMP_EQUAL 0x0
+#define CMP_NOT_EQUAL 0x1
+#define CMP_GREATER_THAN 0x2
+#define CMP_LESS_THAN 0x3
+#define CMP_COMMON_BITS 0x4
+#define CMP_NO_COMMON_BITS 0x5
+
+// atk76, various
+#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
+#define VARIOUS_SET_MAGIC_COAT_TARGET 1
+#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
+#define VARIOUS_GET_MOVE_TARGET 3
+#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
+#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
+#define VARIOUS_EMIT_YESNOBOX 13
+#define VARIOUS_WAIT_CRY 18
+#define VARIOUS_RETURN_OPPONENT_MON1 19
+#define VARIOUS_RETURN_OPPONENT_MON2 20
+#define VARIOUS_SET_TELEPORT_OUTCOME 25
+#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26
+
+// atk80, dmg manipulation
+#define ATK80_DMG_CHANGE_SIGN 0
+#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1
+#define ATK80_DMG_DOUBLED 2
+
+// atk4F, a flag used for the jumpifcantswitch command
+#define ATK4F_DONT_CHECK_STATUSES 0x80
+
+// statchange defines
+#define STAT_CHANGE_BS_PTR 0x1
+#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20
+#define STAT_CHANGE_WORKED 0
+#define STAT_CHANGE_DIDNT_WORK 1
+
+// atk48
+#define ATK48_STAT_NEGATIVE 0x1
+#define ATK48_STAT_BY_TWO 0x2
+#define ATK48_BIT_x4 0x4
+#define ATK48_LOWER_FAIL_CHECK 0x8
+
+#endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
diff --git a/include/battle_string_ids.h b/include/constants/battle_string_ids.h
index f242284b0..db9ed59bd 100644
--- a/include/battle_string_ids.h
+++ b/include/constants/battle_string_ids.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_BATTLE_STRING_IDS_H
-#define GUARD_BATTLE_STRING_IDS_H
+#ifndef GUARD_CONSTANTS_BATTLE_STRING_IDS_H
+#define GUARD_CONSTANTS_BATTLE_STRING_IDS_H
#define BATTLESTRINGS_COUNT 369
@@ -12,7 +12,6 @@
#define STRINGID_USEDMOVE 4
#define STRINGID_BATTLEEND 5
-
// todo: make some of those names less vague: attacker/target vs pkmn, etc.
#define STRINGID_TRAINER1LOSETEXT 12
#define STRINGID_PKMNGAINEDEXP 13
@@ -384,4 +383,4 @@
#define STRINGID_TRAINER1WINTEXT 379
#define STRINGID_TRAINER2WINTEXT 380
-#endif // GUARD_BATTLE_STRING_IDS_H
+#endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_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..2c437c88e
--- /dev/null
+++ b/include/constants/easy_chat.h
@@ -0,0 +1,1079 @@
+#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
+#define EC_WORD_RED (EC_GROUP_TRAINER << 9) | 0x13
+#define EC_WORD_GREEN (EC_GROUP_TRAINER << 9) | 0x14
+#define EC_WORD_BAG (EC_GROUP_TRAINER << 9) | 0x15
+#define EC_WORD_FLAME (EC_GROUP_TRAINER << 9) | 0x16
+#define EC_WORD_GOLD (EC_GROUP_TRAINER << 9) | 0x17
+#define EC_WORD_LEAF (EC_GROUP_TRAINER << 9) | 0x18
+#define EC_WORD_SILVER (EC_GROUP_TRAINER << 9) | 0x19
+#define EC_WORD_EMERALD (EC_GROUP_TRAINER << 9) | 0x1a
+
+// 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
+#define EC_WORD_CRUSH (EC_GROUP_EVENTS << 9) | 0x16
+#define EC_WORD_DIRECT (EC_GROUP_EVENTS << 9) | 0x17
+#define EC_WORD_TOWER (EC_GROUP_EVENTS << 9) | 0x18
+#define EC_WORD_UNION (EC_GROUP_EVENTS << 9) | 0x19
+#define EC_WORD_ROOM (EC_GROUP_EVENTS << 9) | 0x1a
+#define EC_WORD_WIRELESS (EC_GROUP_EVENTS << 9) | 0x1b
+#define EC_WORD_FRONTIER (EC_GROUP_EVENTS << 9) | 0x1c
+
+// 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/constants/flags.h b/include/constants/flags.h
new file mode 100644
index 000000000..63e053cbd
--- /dev/null
+++ b/include/constants/flags.h
@@ -0,0 +1,1579 @@
+#ifndef GUARD_CONSTANTS_FLAGS_H
+#define GUARD_CONSTANTS_FLAGS_H
+
+#define FLAG_0x001 0x1
+#define FLAG_0x002 0x2
+#define FLAG_0x003 0x3
+#define FLAG_0x004 0x4
+#define FLAG_0x005 0x5
+#define FLAG_0x006 0x6
+#define FLAG_0x007 0x7
+#define FLAG_0x008 0x8
+#define FLAG_0x009 0x9
+#define FLAG_0x00A 0xA
+#define FLAG_0x00B 0xB
+#define FLAG_0x00C 0xC
+#define FLAG_0x00D 0xD
+#define FLAG_0x00E 0xE
+#define FLAG_0x00F 0xF
+#define FLAG_0x010 0x10
+#define FLAG_0x011 0x11
+#define FLAG_0x012 0x12
+#define FLAG_0x013 0x13
+#define FLAG_0x014 0x14
+#define FLAG_0x015 0x15
+#define FLAG_0x016 0x16
+#define FLAG_0x017 0x17
+#define FLAG_0x018 0x18
+#define FLAG_0x019 0x19
+#define FLAG_0x01A 0x1A
+#define FLAG_0x01B 0x1B
+#define FLAG_0x01C 0x1C
+#define FLAG_0x01D 0x1D
+#define FLAG_0x01E 0x1E
+#define FLAG_0x01F 0x1F
+#define FLAG_0x020 0x20
+#define FLAG_0x021 0x21
+#define FLAG_0x022 0x22
+#define FLAG_0x023 0x23
+#define FLAG_0x024 0x24
+#define FLAG_0x025 0x25
+#define FLAG_0x026 0x26
+#define FLAG_0x027 0x27
+#define FLAG_0x028 0x28
+#define FLAG_0x029 0x29
+#define FLAG_0x02A 0x2A
+#define FLAG_0x02B 0x2B
+#define FLAG_0x02C 0x2C
+#define FLAG_0x02D 0x2D
+#define FLAG_0x02E 0x2E
+#define FLAG_0x02F 0x2F
+#define FLAG_0x030 0x30
+#define FLAG_0x031 0x31
+#define FLAG_0x032 0x32
+#define FLAG_0x033 0x33
+#define FLAG_0x034 0x34
+#define FLAG_0x035 0x35
+#define FLAG_0x036 0x36
+#define FLAG_0x037 0x37
+#define FLAG_0x038 0x38
+#define FLAG_0x039 0x39
+#define FLAG_0x03A 0x3A
+#define FLAG_0x03B 0x3B
+#define FLAG_0x03C 0x3C
+#define FLAG_0x03D 0x3D
+#define FLAG_0x03E 0x3E
+#define FLAG_0x03F 0x3F
+#define FLAG_0x040 0x40
+#define FLAG_0x041 0x41
+#define FLAG_0x042 0x42
+#define FLAG_0x043 0x43
+#define FLAG_0x044 0x44
+#define FLAG_0x045 0x45
+#define FLAG_0x046 0x46
+#define FLAG_0x047 0x47
+#define FLAG_0x048 0x48
+#define FLAG_0x049 0x49
+#define FLAG_0x04A 0x4A
+#define FLAG_0x04B 0x4B
+#define FLAG_0x04C 0x4C
+#define FLAG_0x04D 0x4D
+#define FLAG_0x04E 0x4E
+#define FLAG_0x04F 0x4F
+#define FLAG_0x050 0x50
+#define FLAG_0x051 0x51
+#define FLAG_0x052 0x52
+#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
+#define FLAG_0x054 0x54
+#define FLAG_0x055 0x55
+#define FLAG_0x056 0x56
+#define FLAG_0x057 0x57
+#define FLAG_0x058 0x58
+#define FLAG_0x059 0x59
+#define FLAG_0x05A 0x5A
+#define FLAG_0x05B 0x5B
+#define FLAG_0x05C 0x5C
+#define FLAG_0x05D 0x5D
+#define FLAG_0x05E 0x5E
+#define FLAG_0x05F 0x5F
+#define FLAG_0x060 0x60
+#define FLAG_0x061 0x61
+#define FLAG_0x062 0x62
+#define FLAG_0x063 0x63
+#define FLAG_0x064 0x64
+#define FLAG_0x065 0x65
+#define FLAG_0x066 0x66
+#define FLAG_0x067 0x67
+#define FLAG_0x068 0x68
+#define FLAG_0x069 0x69
+#define FLAG_0x06A 0x6A
+#define FLAG_0x06B 0x6B
+#define FLAG_0x06C 0x6C
+#define FLAG_0x06D 0x6D
+#define FLAG_0x06E 0x6E
+#define FLAG_0x06F 0x6F
+#define FLAG_0x070 0x70
+#define FLAG_0x071 0x71
+#define FLAG_0x072 0x72
+#define FLAG_0x073 0x73
+#define FLAG_0x074 0x74
+#define FLAG_0x075 0x75
+#define FLAG_0x076 0x76
+#define FLAG_0x077 0x77
+#define FLAG_LANDMARK_MIRAGE_TOWER 0x78
+#define FLAG_0x079 0x79
+#define FLAG_0x07A 0x7A
+#define FLAG_0x07B 0x7B
+#define FLAG_0x07C 0x7C
+#define FLAG_0x07D 0x7D
+#define FLAG_0x07E 0x7E
+#define FLAG_0x07F 0x7F
+#define FLAG_0x080 0x80
+#define FLAG_0x081 0x81
+#define FLAG_0x082 0x82
+#define FLAG_0x083 0x83
+#define FLAG_0x084 0x84
+#define FLAG_0x085 0x85
+#define FLAG_PENDING_DAYCARE_EGG 0x86
+#define FLAG_0x087 0x87
+#define FLAG_0x088 0x88
+#define FLAG_0x089 0x89
+#define FLAG_0x08A 0x8A
+#define FLAG_0x08B 0x8B
+#define FLAG_0x08C 0x8C
+#define FLAG_0x08D 0x8D
+#define FLAG_0x08E 0x8E
+#define FLAG_0x08F 0x8F
+#define FLAG_0x090 0x90
+#define FLAG_0x091 0x91
+#define FLAG_0x092 0x92
+#define FLAG_0x093 0x93
+#define FLAG_0x094 0x94
+#define FLAG_0x095 0x95
+#define FLAG_0x096 0x96
+#define FLAG_0x097 0x97
+#define FLAG_0x098 0x98
+#define FLAG_0x099 0x99
+#define FLAG_0x09A 0x9A
+#define FLAG_0x09B 0x9B
+#define FLAG_0x09C 0x9C
+#define FLAG_0x09D 0x9D
+#define FLAG_0x09E 0x9E
+#define FLAG_0x09F 0x9F
+#define FLAG_0x0A0 0xA0
+#define FLAG_0x0A1 0xA1
+#define FLAG_0x0A2 0xA2
+#define FLAG_0x0A3 0xA3
+#define FLAG_0x0A4 0xA4
+#define FLAG_0x0A5 0xA5
+#define FLAG_0x0A6 0xA6
+#define FLAG_0x0A7 0xA7
+#define FLAG_0x0A8 0xA8
+#define FLAG_0x0A9 0xA9
+#define FLAG_0x0AA 0xAA
+#define FLAG_0x0AB 0xAB
+#define FLAG_0x0AC 0xAC
+#define FLAG_0x0AD 0xAD
+#define FLAG_0x0AE 0xAE
+#define FLAG_0x0AF 0xAF
+#define FLAG_0x0B0 0xB0
+#define FLAG_0x0B1 0xB1
+#define FLAG_0x0B2 0xB2
+#define FLAG_0x0B3 0xB3
+#define FLAG_0x0B4 0xB4
+#define FLAG_0x0B5 0xB5
+#define FLAG_0x0B6 0xB6
+#define FLAG_0x0B7 0xB7
+#define FLAG_0x0B8 0xB8
+#define FLAG_0x0B9 0xB9
+#define FLAG_0x0BA 0xBA
+#define FLAG_0x0BB 0xBB
+#define FLAG_0x0BC 0xBC
+#define FLAG_0x0BD 0xBD
+#define FLAG_0x0BE 0xBE
+#define FLAG_0x0BF 0xBF
+#define FLAG_0x0C0 0xC0
+#define FLAG_0x0C1 0xC1
+#define FLAG_0x0C2 0xC2
+#define FLAG_0x0C3 0xC3
+#define FLAG_0x0C4 0xC4
+#define FLAG_0x0C5 0xC5
+#define FLAG_0x0C6 0xC6
+#define FLAG_0x0C7 0xC7
+#define FLAG_0x0C8 0xC8
+#define FLAG_0x0C9 0xC9
+#define FLAG_0x0CA 0xCA
+#define FLAG_0x0CB 0xCB
+#define FLAG_0x0CC 0xCC
+#define FLAG_0x0CD 0xCD
+#define FLAG_0x0CE 0xCE
+#define FLAG_0x0CF 0xCF
+#define FLAG_0x0D0 0xD0
+#define FLAG_0x0D1 0xD1
+#define FLAG_0x0D2 0xD2
+#define FLAG_0x0D3 0xD3
+#define FLAG_0x0D4 0xD4
+#define FLAG_0x0D5 0xD5
+#define FLAG_0x0D6 0xD6
+#define FLAG_0x0D7 0xD7
+#define FLAG_0x0D8 0xD8
+#define FLAG_0x0D9 0xD9
+#define FLAG_0x0DA 0xDA
+#define FLAG_0x0DB 0xDB
+#define FLAG_0x0DC 0xDC
+#define FLAG_0x0DD 0xDD
+#define FLAG_0x0DE 0xDE
+#define FLAG_0x0DF 0xDF
+#define FLAG_0x0E0 0xE0
+#define FLAG_0x0E1 0xE1
+#define FLAG_0x0E2 0xE2
+#define FLAG_0x0E3 0xE3
+#define FLAG_0x0E4 0xE4
+#define FLAG_0x0E5 0xE5
+#define FLAG_0x0E6 0xE6
+#define FLAG_0x0E7 0xE7
+#define FLAG_0x0E8 0xE8
+#define FLAG_0x0E9 0xE9
+#define FLAG_0x0EA 0xEA
+#define FLAG_0x0EB 0xEB
+#define FLAG_0x0EC 0xEC
+#define FLAG_0x0ED 0xED
+#define FLAG_0x0EE 0xEE
+#define FLAG_0x0EF 0xEF
+#define FLAG_0x0F0 0xF0
+#define FLAG_0x0F1 0xF1
+#define FLAG_0x0F2 0xF2
+#define FLAG_0x0F3 0xF3
+#define FLAG_0x0F4 0xF4
+#define FLAG_0x0F5 0xF5
+#define FLAG_0x0F6 0xF6
+#define FLAG_0x0F7 0xF7
+#define FLAG_0x0F8 0xF8
+#define FLAG_0x0F9 0xF9
+#define FLAG_0x0FA 0xFA
+#define FLAG_0x0FB 0xFB
+#define FLAG_0x0FC 0xFC
+#define FLAG_0x0FD 0xFD
+#define FLAG_0x0FE 0xFE
+#define FLAG_0x0FF 0xFF
+#define FLAG_0x100 0x100
+#define FLAG_0x101 0x101
+#define FLAG_0x102 0x102
+#define FLAG_0x103 0x103
+#define FLAG_0x104 0x104
+#define FLAG_0x105 0x105
+#define FLAG_0x106 0x106
+#define FLAG_0x107 0x107
+#define FLAG_0x108 0x108
+#define FLAG_0x109 0x109
+#define FLAG_0x10A 0x10A
+#define FLAG_0x10B 0x10B
+#define FLAG_0x10C 0x10C
+#define FLAG_0x10D 0x10D
+#define FLAG_0x10E 0x10E
+#define FLAG_0x10F 0x10F
+#define FLAG_0x110 0x110
+#define FLAG_0x111 0x111
+#define FLAG_0x112 0x112
+#define FLAG_0x113 0x113
+#define FLAG_0x114 0x114
+#define FLAG_0x115 0x115
+#define FLAG_0x116 0x116
+#define FLAG_0x117 0x117
+#define FLAG_0x118 0x118
+#define FLAG_0x119 0x119
+#define FLAG_0x11A 0x11A
+#define FLAG_0x11B 0x11B
+#define FLAG_0x11C 0x11C
+#define FLAG_0x11D 0x11D
+#define FLAG_0x11E 0x11E
+#define FLAG_0x11F 0x11F
+#define FLAG_0x120 0x120
+#define FLAG_0x121 0x121
+#define FLAG_0x122 0x122
+#define FLAG_0x123 0x123
+#define FLAG_0x124 0x124
+#define FLAG_0x125 0x125
+#define FLAG_0x126 0x126
+#define FLAG_0x127 0x127
+#define FLAG_0x128 0x128
+#define FLAG_0x129 0x129
+#define FLAG_0x12A 0x12A
+#define FLAG_0x12B 0x12B
+#define FLAG_0x12C 0x12C
+#define FLAG_0x12D 0x12D
+#define FLAG_0x12E 0x12E
+#define FLAG_HAS_MATCH_CALL 0x12F
+#define FLAG_0x130 0x130
+#define FLAG_0x131 0x131
+#define FLAG_0x132 0x132
+#define FLAG_0x133 0x133
+#define FLAG_0x134 0x134
+#define FLAG_0x135 0x135
+#define FLAG_0x136 0x136
+#define FLAG_0x137 0x137
+#define FLAG_0x138 0x138
+#define FLAG_0x139 0x139
+#define FLAG_0x13A 0x13A
+#define FLAG_0x13B 0x13B
+#define FLAG_0x13C 0x13C
+#define FLAG_0x13D 0x13D
+#define FLAG_0x13E 0x13E
+#define FLAG_0x13F 0x13F
+#define FLAG_0x140 0x140
+#define FLAG_0x141 0x141
+#define FLAG_0x142 0x142
+#define FLAG_0x143 0x143
+#define FLAG_0x144 0x144
+#define FLAG_0x145 0x145
+#define FLAG_0x146 0x146
+#define FLAG_0x147 0x147
+#define FLAG_0x148 0x148
+#define FLAG_0x149 0x149
+#define FLAG_0x14A 0x14A
+#define FLAG_0x14B 0x14B
+#define FLAG_0x14C 0x14C
+#define FLAG_0x14D 0x14D
+#define FLAG_0x14E 0x14E
+#define FLAG_0x14F 0x14F
+#define FLAG_0x150 0x150
+#define FLAG_0x151 0x151
+#define FLAG_0x152 0x152
+#define FLAG_0x153 0x153
+#define FLAG_0x154 0x154
+#define FLAG_0x155 0x155
+#define FLAG_0x156 0x156
+#define FLAG_0x157 0x157
+#define FLAG_0x158 0x158
+#define FLAG_0x159 0x159
+#define FLAG_0x15A 0x15A
+#define FLAG_0x15B 0x15B
+#define FLAG_MATCH_CALL_REGISTERED 0x15C
+#define FLAG_0x15D 0x15D
+#define FLAG_0x15E 0x15E
+#define FLAG_0x15F 0x15F
+#define FLAG_0x160 0x160
+#define FLAG_0x161 0x161
+#define FLAG_0x162 0x162
+#define FLAG_0x163 0x163
+#define FLAG_0x164 0x164
+#define FLAG_0x165 0x165
+#define FLAG_0x166 0x166
+#define FLAG_0x167 0x167
+#define FLAG_0x168 0x168
+#define FLAG_0x169 0x169
+#define FLAG_0x16A 0x16A
+#define FLAG_0x16B 0x16B
+#define FLAG_0x16C 0x16C
+#define FLAG_0x16D 0x16D
+#define FLAG_0x16E 0x16E
+#define FLAG_0x16F 0x16F
+#define FLAG_0x170 0x170
+#define FLAG_0x171 0x171
+#define FLAG_0x172 0x172
+#define FLAG_0x173 0x173
+#define FLAG_0x174 0x174
+#define FLAG_0x175 0x175
+#define FLAG_0x176 0x176
+#define FLAG_0x177 0x177
+#define FLAG_0x178 0x178
+#define FLAG_0x179 0x179
+#define FLAG_0x17A 0x17A
+#define FLAG_0x17B 0x17B
+#define FLAG_0x17C 0x17C
+#define FLAG_0x17D 0x17D
+#define FLAG_0x17E 0x17E
+#define FLAG_0x17F 0x17F
+#define FLAG_0x180 0x180
+#define FLAG_0x181 0x181
+#define FLAG_0x182 0x182
+#define FLAG_0x183 0x183
+#define FLAG_0x184 0x184
+#define FLAG_0x185 0x185
+#define FLAG_0x186 0x186
+#define FLAG_0x187 0x187
+#define FLAG_0x188 0x188
+#define FLAG_0x189 0x189
+#define FLAG_0x18A 0x18A
+#define FLAG_0x18B 0x18B
+#define FLAG_0x18C 0x18C
+#define FLAG_0x18D 0x18D
+#define FLAG_0x18E 0x18E
+#define FLAG_0x18F 0x18F
+#define FLAG_0x190 0x190
+#define FLAG_0x191 0x191
+#define FLAG_0x192 0x192
+#define FLAG_0x193 0x193
+#define FLAG_0x194 0x194
+#define FLAG_0x195 0x195
+#define FLAG_0x196 0x196
+#define FLAG_0x197 0x197
+#define FLAG_0x198 0x198
+#define FLAG_0x199 0x199
+#define FLAG_0x19A 0x19A
+#define FLAG_0x19B 0x19B
+#define FLAG_0x19C 0x19C
+#define FLAG_0x19D 0x19D
+#define FLAG_0x19E 0x19E
+#define FLAG_0x19F 0x19F
+#define FLAG_0x1A0 0x1A0
+#define FLAG_0x1A1 0x1A1
+#define FLAG_0x1A2 0x1A2
+#define FLAG_0x1A3 0x1A3
+#define FLAG_0x1A4 0x1A4
+#define FLAG_0x1A5 0x1A5
+#define FLAG_0x1A6 0x1A6
+#define FLAG_0x1A7 0x1A7
+#define FLAG_0x1A8 0x1A8
+#define FLAG_0x1A9 0x1A9
+#define FLAG_0x1AA 0x1AA
+#define FLAG_0x1AB 0x1AB
+#define FLAG_0x1AC 0x1AC
+#define FLAG_0x1AD 0x1AD
+#define FLAG_0x1AE 0x1AE
+#define FLAG_0x1AF 0x1AF
+#define FLAG_0x1B0 0x1B0
+#define FLAG_0x1B1 0x1B1
+#define FLAG_0x1B2 0x1B2
+#define FLAG_0x1B3 0x1B3
+#define FLAG_0x1B4 0x1B4
+#define FLAG_0x1B5 0x1B5
+#define FLAG_0x1B6 0x1B6
+#define FLAG_0x1B7 0x1B7
+#define FLAG_0x1B8 0x1B8
+#define FLAG_0x1B9 0x1B9
+#define FLAG_0x1BA 0x1BA
+#define FLAG_0x1BB 0x1BB
+#define FLAG_0x1BC 0x1BC
+#define FLAG_0x1BD 0x1BD
+#define FLAG_0x1BE 0x1BE
+#define FLAG_0x1BF 0x1BF
+#define FLAG_0x1C0 0x1C0
+#define FLAG_0x1C1 0x1C1
+#define FLAG_0x1C2 0x1C2
+#define FLAG_0x1C3 0x1C3
+#define FLAG_0x1C4 0x1C4
+#define FLAG_0x1C5 0x1C5
+#define FLAG_0x1C6 0x1C6
+#define FLAG_0x1C7 0x1C7
+#define FLAG_0x1C8 0x1C8
+#define FLAG_0x1C9 0x1C9
+#define FLAG_0x1CA 0x1CA
+#define FLAG_0x1CB 0x1CB
+#define FLAG_0x1CC 0x1CC
+#define FLAG_0x1CD 0x1CD
+#define FLAG_0x1CE 0x1CE
+#define FLAG_0x1CF 0x1CF
+#define FLAG_0x1D0 0x1D0
+#define FLAG_0x1D1 0x1D1
+#define FLAG_0x1D2 0x1D2
+#define FLAG_0x1D3 0x1D3
+#define FLAG_0x1D4 0x1D4
+#define FLAG_0x1D5 0x1D5
+#define FLAG_0x1D6 0x1D6
+#define FLAG_0x1D7 0x1D7
+#define FLAG_0x1D8 0x1D8
+#define FLAG_0x1D9 0x1D9
+#define FLAG_0x1DA 0x1DA
+#define FLAG_0x1DB 0x1DB
+#define FLAG_0x1DC 0x1DC
+#define FLAG_0x1DD 0x1DD
+#define FLAG_0x1DE 0x1DE
+#define FLAG_0x1DF 0x1DF
+#define FLAG_0x1E0 0x1E0
+#define FLAG_0x1E1 0x1E1
+#define FLAG_0x1E2 0x1E2
+#define FLAG_0x1E3 0x1E3
+#define FLAG_MYSTERY_EVENT_DONE 0x1E4
+#define FLAG_0x1E5 0x1E5
+#define FLAG_0x1E6 0x1E6
+#define FLAG_0x1E7 0x1E7
+#define FLAG_0x1E8 0x1E8
+#define FLAG_0x1E9 0x1E9
+#define FLAG_0x1EA 0x1EA
+#define FLAG_0x1EB 0x1EB
+#define FLAG_0x1EC 0x1EC
+#define FLAG_0x1ED 0x1ED
+#define FLAG_0x1EE 0x1EE
+#define FLAG_0x1EF 0x1EF
+#define FLAG_0x1F0 0x1F0
+#define FLAG_0x1F1 0x1F1
+#define FLAG_0x1F2 0x1F2
+#define FLAG_0x1F3 0x1F3
+#define FLAG_0x1F4 0x1F4
+#define FLAG_0x1F5 0x1F5
+#define FLAG_0x1F6 0x1F6
+#define FLAG_0x1F7 0x1F7
+#define FLAG_0x1F8 0x1F8
+#define FLAG_0x1F9 0x1F9
+#define FLAG_0x1FA 0x1FA
+#define FLAG_0x1FB 0x1FB
+#define FLAG_0x1FC 0x1FC
+#define FLAG_0x1FD 0x1FD
+#define FLAG_0x1FE 0x1FE
+#define FLAG_0x1FF 0x1FF
+#define FLAG_0x200 0x200
+#define FLAG_0x201 0x201
+#define FLAG_0x202 0x202
+#define FLAG_0x203 0x203
+#define FLAG_0x204 0x204
+#define FLAG_0x205 0x205
+#define FLAG_0x206 0x206
+#define FLAG_0x207 0x207
+#define FLAG_0x208 0x208
+#define FLAG_0x209 0x209
+#define FLAG_0x20A 0x20A
+#define FLAG_0x20B 0x20B
+#define FLAG_0x20C 0x20C
+#define FLAG_0x20D 0x20D
+#define FLAG_0x20E 0x20E
+#define FLAG_0x20F 0x20F
+#define FLAG_0x210 0x210
+#define FLAG_0x211 0x211
+#define FLAG_0x212 0x212
+#define FLAG_0x213 0x213
+#define FLAG_0x214 0x214
+#define FLAG_0x215 0x215
+#define FLAG_0x216 0x216
+#define FLAG_0x217 0x217
+#define FLAG_0x218 0x218
+#define FLAG_0x219 0x219
+#define FLAG_0x21A 0x21A
+#define FLAG_0x21B 0x21B
+#define FLAG_0x21C 0x21C
+#define FLAG_0x21D 0x21D
+#define FLAG_0x21E 0x21E
+#define FLAG_0x21F 0x21F
+#define FLAG_0x220 0x220
+#define FLAG_0x221 0x221
+#define FLAG_0x222 0x222
+#define FLAG_0x223 0x223
+#define FLAG_0x224 0x224
+#define FLAG_0x225 0x225
+#define FLAG_0x226 0x226
+#define FLAG_0x227 0x227
+#define FLAG_0x228 0x228
+#define FLAG_0x229 0x229
+#define FLAG_0x22A 0x22A
+#define FLAG_0x22B 0x22B
+#define FLAG_0x22C 0x22C
+#define FLAG_0x22D 0x22D
+#define FLAG_0x22E 0x22E
+#define FLAG_0x22F 0x22F
+#define FLAG_0x230 0x230
+#define FLAG_0x231 0x231
+#define FLAG_0x232 0x232
+#define FLAG_0x233 0x233
+#define FLAG_0x234 0x234
+#define FLAG_0x235 0x235
+#define FLAG_0x236 0x236
+#define FLAG_0x237 0x237
+#define FLAG_0x238 0x238
+#define FLAG_0x239 0x239
+#define FLAG_0x23A 0x23A
+#define FLAG_0x23B 0x23B
+#define FLAG_0x23C 0x23C
+#define FLAG_0x23D 0x23D
+#define FLAG_0x23E 0x23E
+#define FLAG_0x23F 0x23F
+#define FLAG_0x240 0x240
+#define FLAG_0x241 0x241
+#define FLAG_0x242 0x242
+#define FLAG_0x243 0x243
+#define FLAG_0x244 0x244
+#define FLAG_0x245 0x245
+#define FLAG_0x246 0x246
+#define FLAG_0x247 0x247
+#define FLAG_0x248 0x248
+#define FLAG_0x249 0x249
+#define FLAG_0x24A 0x24A
+#define FLAG_0x24B 0x24B
+#define FLAG_0x24C 0x24C
+#define FLAG_0x24D 0x24D
+#define FLAG_0x24E 0x24E
+#define FLAG_0x24F 0x24F
+#define FLAG_0x250 0x250
+#define FLAG_0x251 0x251
+#define FLAG_0x252 0x252
+#define FLAG_0x253 0x253
+#define FLAG_0x254 0x254
+#define FLAG_0x255 0x255
+#define FLAG_0x256 0x256
+#define FLAG_0x257 0x257
+#define FLAG_0x258 0x258
+#define FLAG_0x259 0x259
+#define FLAG_0x25A 0x25A
+#define FLAG_0x25B 0x25B
+#define FLAG_0x25C 0x25C
+#define FLAG_0x25D 0x25D
+#define FLAG_0x25E 0x25E
+#define FLAG_0x25F 0x25F
+#define FLAG_0x260 0x260
+#define FLAG_0x261 0x261
+#define FLAG_0x262 0x262
+#define FLAG_0x263 0x263
+#define FLAG_0x264 0x264
+#define FLAG_0x265 0x265
+#define FLAG_0x266 0x266
+#define FLAG_0x267 0x267
+#define FLAG_0x268 0x268
+#define FLAG_0x269 0x269
+#define FLAG_0x26A 0x26A
+#define FLAG_0x26B 0x26B
+#define FLAG_0x26C 0x26C
+#define FLAG_0x26D 0x26D
+#define FLAG_0x26E 0x26E
+#define FLAG_0x26F 0x26F
+#define FLAG_0x270 0x270
+#define FLAG_0x271 0x271
+#define FLAG_0x272 0x272
+#define FLAG_0x273 0x273
+#define FLAG_0x274 0x274
+#define FLAG_0x275 0x275
+#define FLAG_0x276 0x276
+#define FLAG_0x277 0x277
+#define FLAG_0x278 0x278
+#define FLAG_0x279 0x279
+#define FLAG_0x27A 0x27A
+#define FLAG_0x27B 0x27B
+#define FLAG_0x27C 0x27C
+#define FLAG_0x27D 0x27D
+#define FLAG_0x27E 0x27E
+#define FLAG_0x27F 0x27F
+#define FLAG_0x280 0x280
+#define FLAG_0x281 0x281
+#define FLAG_0x282 0x282
+#define FLAG_0x283 0x283
+#define FLAG_0x284 0x284
+#define FLAG_0x285 0x285
+#define FLAG_0x286 0x286
+#define FLAG_0x287 0x287
+#define FLAG_0x288 0x288
+#define FLAG_0x289 0x289
+#define FLAG_0x28A 0x28A
+#define FLAG_0x28B 0x28B
+#define FLAG_0x28C 0x28C
+#define FLAG_0x28D 0x28D
+#define FLAG_0x28E 0x28E
+#define FLAG_0x28F 0x28F
+#define FLAG_0x290 0x290
+#define FLAG_0x291 0x291
+#define FLAG_0x292 0x292
+#define FLAG_0x293 0x293
+#define FLAG_0x294 0x294
+#define FLAG_0x295 0x295
+#define FLAG_0x296 0x296
+#define FLAG_0x297 0x297
+#define FLAG_0x298 0x298
+#define FLAG_0x299 0x299
+#define FLAG_0x29A 0x29A
+#define FLAG_0x29B 0x29B
+#define FLAG_0x29C 0x29C
+#define FLAG_0x29D 0x29D
+#define FLAG_0x29E 0x29E
+#define FLAG_0x29F 0x29F
+#define FLAG_0x2A0 0x2A0
+#define FLAG_0x2A1 0x2A1
+#define FLAG_0x2A2 0x2A2
+#define FLAG_0x2A3 0x2A3
+#define FLAG_0x2A4 0x2A4
+#define FLAG_0x2A5 0x2A5
+#define FLAG_0x2A6 0x2A6
+#define FLAG_0x2A7 0x2A7
+#define FLAG_0x2A8 0x2A8
+#define FLAG_0x2A9 0x2A9
+#define FLAG_0x2AA 0x2AA
+#define FLAG_0x2AB 0x2AB
+#define FLAG_0x2AC 0x2AC
+#define FLAG_0x2AD 0x2AD
+#define FLAG_0x2AE 0x2AE
+#define FLAG_0x2AF 0x2AF
+#define FLAG_0x2B0 0x2B0
+#define FLAG_0x2B1 0x2B1
+#define FLAG_0x2B2 0x2B2
+#define FLAG_0x2B3 0x2B3
+#define FLAG_0x2B4 0x2B4
+#define FLAG_0x2B5 0x2B5
+#define FLAG_0x2B6 0x2B6
+#define FLAG_0x2B7 0x2B7
+#define FLAG_0x2B8 0x2B8
+#define FLAG_0x2B9 0x2B9
+#define FLAG_0x2BA 0x2BA
+#define FLAG_0x2BB 0x2BB
+#define FLAG_0x2BC 0x2BC
+#define FLAG_0x2BD 0x2BD
+#define FLAG_0x2BE 0x2BE
+#define FLAG_0x2BF 0x2BF
+#define FLAG_0x2C0 0x2C0
+#define FLAG_0x2C1 0x2C1
+#define FLAG_0x2C2 0x2C2
+#define FLAG_0x2C3 0x2C3
+#define FLAG_0x2C4 0x2C4
+#define FLAG_0x2C5 0x2C5
+#define FLAG_0x2C6 0x2C6
+#define FLAG_0x2C7 0x2C7
+#define FLAG_0x2C8 0x2C8
+#define FLAG_0x2C9 0x2C9
+#define FLAG_0x2CA 0x2CA
+#define FLAG_0x2CB 0x2CB
+#define FLAG_0x2CC 0x2CC
+#define FLAG_0x2CD 0x2CD
+#define FLAG_0x2CE 0x2CE
+#define FLAG_0x2CF 0x2CF
+#define FLAG_0x2D0 0x2D0
+#define FLAG_0x2D1 0x2D1
+#define FLAG_0x2D2 0x2D2
+#define FLAG_0x2D3 0x2D3
+#define FLAG_0x2D4 0x2D4
+#define FLAG_0x2D5 0x2D5
+#define FLAG_0x2D6 0x2D6
+#define FLAG_0x2D7 0x2D7
+#define FLAG_0x2D8 0x2D8
+#define FLAG_0x2D9 0x2D9
+#define FLAG_0x2DA 0x2DA
+#define FLAG_0x2DB 0x2DB
+#define FLAG_0x2DC 0x2DC
+#define FLAG_0x2DD 0x2DD
+#define FLAG_0x2DE 0x2DE
+#define FLAG_0x2DF 0x2DF
+#define FLAG_0x2E0 0x2E0
+#define FLAG_0x2E1 0x2E1
+#define FLAG_0x2E2 0x2E2
+#define FLAG_0x2E3 0x2E3
+#define FLAG_0x2E4 0x2E4
+#define FLAG_0x2E5 0x2E5
+#define FLAG_0x2E6 0x2E6
+#define FLAG_0x2E7 0x2E7
+#define FLAG_0x2E8 0x2E8
+#define FLAG_0x2E9 0x2E9
+#define FLAG_0x2EA 0x2EA
+#define FLAG_0x2EB 0x2EB
+#define FLAG_0x2EC 0x2EC
+#define FLAG_0x2ED 0x2ED
+#define FLAG_0x2EE 0x2EE
+#define FLAG_0x2EF 0x2EF
+#define FLAG_0x2F0 0x2F0
+#define FLAG_0x2F1 0x2F1
+#define FLAG_0x2F2 0x2F2
+#define FLAG_0x2F3 0x2F3
+#define FLAG_0x2F4 0x2F4
+#define FLAG_0x2F5 0x2F5
+#define FLAG_0x2F6 0x2F6
+#define FLAG_0x2F7 0x2F7
+#define FLAG_0x2F8 0x2F8
+#define FLAG_0x2F9 0x2F9
+#define FLAG_0x2FA 0x2FA
+#define FLAG_0x2FB 0x2FB
+#define FLAG_0x2FC 0x2FC
+#define FLAG_0x2FD 0x2FD
+#define FLAG_0x2FE 0x2FE
+#define FLAG_0x2FF 0x2FF
+#define FLAG_0x300 0x300
+#define FLAG_0x301 0x301
+#define FLAG_0x302 0x302
+#define FLAG_0x303 0x303
+#define FLAG_0x304 0x304
+#define FLAG_0x305 0x305
+#define FLAG_0x306 0x306
+#define FLAG_0x307 0x307
+#define FLAG_0x308 0x308
+#define FLAG_0x309 0x309
+#define FLAG_0x30A 0x30A
+#define FLAG_0x30B 0x30B
+#define FLAG_0x30C 0x30C
+#define FLAG_0x30D 0x30D
+#define FLAG_0x30E 0x30E
+#define FLAG_0x30F 0x30F
+#define FLAG_0x310 0x310
+#define FLAG_0x311 0x311
+#define FLAG_0x312 0x312
+#define FLAG_0x313 0x313
+#define FLAG_0x314 0x314
+#define FLAG_0x315 0x315
+#define FLAG_0x316 0x316
+#define FLAG_0x317 0x317
+#define FLAG_0x318 0x318
+#define FLAG_0x319 0x319
+#define FLAG_0x31A 0x31A
+#define FLAG_0x31B 0x31B
+#define FLAG_0x31C 0x31C
+#define FLAG_0x31D 0x31D
+#define FLAG_0x31E 0x31E
+#define FLAG_0x31F 0x31F
+#define FLAG_0x320 0x320
+#define FLAG_0x321 0x321
+#define FLAG_0x322 0x322
+#define FLAG_0x323 0x323
+#define FLAG_0x324 0x324
+#define FLAG_0x325 0x325
+#define FLAG_0x326 0x326
+#define FLAG_0x327 0x327
+#define FLAG_0x328 0x328
+#define FLAG_0x329 0x329
+#define FLAG_0x32A 0x32A
+#define FLAG_0x32B 0x32B
+#define FLAG_0x32C 0x32C
+#define FLAG_0x32D 0x32D
+#define FLAG_0x32E 0x32E
+#define FLAG_0x32F 0x32F
+#define FLAG_0x330 0x330
+#define FLAG_0x331 0x331
+#define FLAG_0x332 0x332
+#define FLAG_0x333 0x333
+#define FLAG_0x334 0x334
+#define FLAG_0x335 0x335
+#define FLAG_0x336 0x336
+#define FLAG_0x337 0x337
+#define FLAG_0x338 0x338
+#define FLAG_0x339 0x339
+#define FLAG_0x33A 0x33A
+#define FLAG_0x33B 0x33B
+#define FLAG_0x33C 0x33C
+#define FLAG_0x33D 0x33D
+#define FLAG_0x33E 0x33E
+#define FLAG_0x33F 0x33F
+#define FLAG_0x340 0x340
+#define FLAG_0x341 0x341
+#define FLAG_0x342 0x342
+#define FLAG_0x343 0x343
+#define FLAG_0x344 0x344
+#define FLAG_0x345 0x345
+#define FLAG_0x346 0x346
+#define FLAG_0x347 0x347
+#define FLAG_0x348 0x348
+#define FLAG_0x349 0x349
+#define FLAG_0x34A 0x34A
+#define FLAG_0x34B 0x34B
+#define FLAG_0x34C 0x34C
+#define FLAG_0x34D 0x34D
+#define FLAG_0x34E 0x34E
+#define FLAG_0x34F 0x34F
+#define FLAG_0x350 0x350
+#define FLAG_0x351 0x351
+#define FLAG_0x352 0x352
+#define FLAG_0x353 0x353
+#define FLAG_0x354 0x354
+#define FLAG_0x355 0x355
+#define FLAG_0x356 0x356
+#define FLAG_0x357 0x357
+#define FLAG_0x358 0x358
+#define FLAG_0x359 0x359
+#define FLAG_0x35A 0x35A
+#define FLAG_0x35B 0x35B
+#define FLAG_0x35C 0x35C
+#define FLAG_0x35D 0x35D
+#define FLAG_0x35E 0x35E
+#define FLAG_0x35F 0x35F
+#define FLAG_0x360 0x360
+#define FLAG_0x361 0x361
+#define FLAG_0x362 0x362
+#define FLAG_0x363 0x363
+#define FLAG_0x364 0x364
+#define FLAG_0x365 0x365
+#define FLAG_0x366 0x366
+#define FLAG_0x367 0x367
+#define FLAG_0x368 0x368
+#define FLAG_0x369 0x369
+#define FLAG_0x36A 0x36A
+#define FLAG_0x36B 0x36B
+#define FLAG_0x36C 0x36C
+#define FLAG_0x36D 0x36D
+#define FLAG_0x36E 0x36E
+#define FLAG_0x36F 0x36F
+#define FLAG_0x370 0x370
+#define FLAG_0x371 0x371
+#define FLAG_0x372 0x372
+#define FLAG_0x373 0x373
+#define FLAG_0x374 0x374
+#define FLAG_0x375 0x375
+#define FLAG_0x376 0x376
+#define FLAG_0x377 0x377
+#define FLAG_0x378 0x378
+#define FLAG_0x379 0x379
+#define FLAG_0x37A 0x37A
+#define FLAG_0x37B 0x37B
+#define FLAG_0x37C 0x37C
+#define FLAG_0x37D 0x37D
+#define FLAG_0x37E 0x37E
+#define FLAG_0x37F 0x37F
+#define FLAG_0x380 0x380
+#define FLAG_0x381 0x381
+#define FLAG_0x382 0x382
+#define FLAG_0x383 0x383
+#define FLAG_0x384 0x384
+#define FLAG_0x385 0x385
+#define FLAG_0x386 0x386
+#define FLAG_0x387 0x387
+#define FLAG_0x388 0x388
+#define FLAG_0x389 0x389
+#define FLAG_0x38A 0x38A
+#define FLAG_0x38B 0x38B
+#define FLAG_0x38C 0x38C
+#define FLAG_0x38D 0x38D
+#define FLAG_0x38E 0x38E
+#define FLAG_0x38F 0x38F
+#define FLAG_0x390 0x390
+#define FLAG_0x391 0x391
+#define FLAG_0x392 0x392
+#define FLAG_0x393 0x393
+#define FLAG_0x394 0x394
+#define FLAG_0x395 0x395
+#define FLAG_0x396 0x396
+#define FLAG_0x397 0x397
+#define FLAG_0x398 0x398
+#define FLAG_0x399 0x399
+#define FLAG_0x39A 0x39A
+#define FLAG_0x39B 0x39B
+#define FLAG_0x39C 0x39C
+#define FLAG_0x39D 0x39D
+#define FLAG_0x39E 0x39E
+#define FLAG_0x39F 0x39F
+#define FLAG_0x3A0 0x3A0
+#define FLAG_0x3A1 0x3A1
+#define FLAG_0x3A2 0x3A2
+#define FLAG_0x3A3 0x3A3
+#define FLAG_0x3A4 0x3A4
+#define FLAG_0x3A5 0x3A5
+#define FLAG_0x3A6 0x3A6
+#define FLAG_0x3A7 0x3A7
+#define FLAG_0x3A8 0x3A8
+#define FLAG_0x3A9 0x3A9
+#define FLAG_0x3AA 0x3AA
+#define FLAG_0x3AB 0x3AB
+#define FLAG_0x3AC 0x3AC
+#define FLAG_0x3AD 0x3AD
+#define FLAG_0x3AE 0x3AE
+#define FLAG_0x3AF 0x3AF
+#define FLAG_0x3B0 0x3B0
+#define FLAG_0x3B1 0x3B1
+#define FLAG_0x3B2 0x3B2
+#define FLAG_0x3B3 0x3B3
+#define FLAG_0x3B4 0x3B4
+#define FLAG_0x3B5 0x3B5
+#define FLAG_0x3B6 0x3B6
+#define FLAG_0x3B7 0x3B7
+#define FLAG_0x3B8 0x3B8
+#define FLAG_0x3B9 0x3B9
+#define FLAG_0x3BA 0x3BA
+#define FLAG_0x3BB 0x3BB
+#define FLAG_0x3BC 0x3BC
+#define FLAG_0x3BD 0x3BD
+#define FLAG_0x3BE 0x3BE
+#define FLAG_0x3BF 0x3BF
+#define FLAG_0x3C0 0x3C0
+#define FLAG_0x3C1 0x3C1
+#define FLAG_0x3C2 0x3C2
+#define FLAG_0x3C3 0x3C3
+#define FLAG_0x3C4 0x3C4
+#define FLAG_0x3C5 0x3C5
+#define FLAG_0x3C6 0x3C6
+#define FLAG_0x3C7 0x3C7
+#define FLAG_0x3C8 0x3C8
+#define FLAG_0x3C9 0x3C9
+#define FLAG_0x3CA 0x3CA
+#define FLAG_0x3CB 0x3CB
+#define FLAG_0x3CC 0x3CC
+#define FLAG_0x3CD 0x3CD
+#define FLAG_0x3CE 0x3CE
+#define FLAG_0x3CF 0x3CF
+#define FLAG_0x3D0 0x3D0
+#define FLAG_0x3D1 0x3D1
+#define FLAG_0x3D2 0x3D2
+#define FLAG_0x3D3 0x3D3
+#define FLAG_0x3D4 0x3D4
+#define FLAG_0x3D5 0x3D5
+#define FLAG_0x3D6 0x3D6
+#define FLAG_0x3D7 0x3D7
+#define FLAG_0x3D8 0x3D8
+#define FLAG_0x3D9 0x3D9
+#define FLAG_0x3DA 0x3DA
+#define FLAG_0x3DB 0x3DB
+#define FLAG_0x3DC 0x3DC
+#define FLAG_0x3DD 0x3DD
+#define FLAG_0x3DE 0x3DE
+#define FLAG_0x3DF 0x3DF
+#define FLAG_0x3E0 0x3E0
+#define FLAG_0x3E1 0x3E1
+#define FLAG_0x3E2 0x3E2
+#define FLAG_0x3E3 0x3E3
+#define FLAG_0x3E4 0x3E4
+#define FLAG_0x3E5 0x3E5
+#define FLAG_0x3E6 0x3E6
+#define FLAG_0x3E7 0x3E7
+#define FLAG_0x3E8 0x3E8
+#define FLAG_0x3E9 0x3E9
+#define FLAG_0x3EA 0x3EA
+#define FLAG_0x3EB 0x3EB
+#define FLAG_0x3EC 0x3EC
+#define FLAG_0x3ED 0x3ED
+#define FLAG_0x3EE 0x3EE
+#define FLAG_0x3EF 0x3EF
+#define FLAG_0x3F0 0x3F0
+#define FLAG_0x3F1 0x3F1
+#define FLAG_0x3F2 0x3F2
+#define FLAG_0x3F3 0x3F3
+#define FLAG_0x3F4 0x3F4
+#define FLAG_0x3F5 0x3F5
+#define FLAG_0x3F6 0x3F6
+#define FLAG_0x3F7 0x3F7
+#define FLAG_0x3F8 0x3F8
+#define FLAG_0x3F9 0x3F9
+#define FLAG_0x3FA 0x3FA
+#define FLAG_0x3FB 0x3FB
+#define FLAG_0x3FC 0x3FC
+#define FLAG_0x3FD 0x3FD
+#define FLAG_0x3FE 0x3FE
+#define FLAG_0x3FF 0x3FF
+#define FLAG_0x400 0x400
+#define FLAG_0x401 0x401
+#define FLAG_0x402 0x402
+#define FLAG_0x403 0x403
+#define FLAG_0x404 0x404
+#define FLAG_0x405 0x405
+#define FLAG_0x406 0x406
+#define FLAG_0x407 0x407
+#define FLAG_0x408 0x408
+#define FLAG_0x409 0x409
+#define FLAG_0x40A 0x40A
+#define FLAG_0x40B 0x40B
+#define FLAG_0x40C 0x40C
+#define FLAG_0x40D 0x40D
+#define FLAG_0x40E 0x40E
+#define FLAG_0x40F 0x40F
+#define FLAG_0x410 0x410
+#define FLAG_0x411 0x411
+#define FLAG_0x412 0x412
+#define FLAG_0x413 0x413
+#define FLAG_0x414 0x414
+#define FLAG_0x415 0x415
+#define FLAG_0x416 0x416
+#define FLAG_0x417 0x417
+#define FLAG_0x418 0x418
+#define FLAG_0x419 0x419
+#define FLAG_0x41A 0x41A
+#define FLAG_0x41B 0x41B
+#define FLAG_0x41C 0x41C
+#define FLAG_0x41D 0x41D
+#define FLAG_0x41E 0x41E
+#define FLAG_0x41F 0x41F
+#define FLAG_0x420 0x420
+#define FLAG_0x421 0x421
+#define FLAG_0x422 0x422
+#define FLAG_0x423 0x423
+#define FLAG_0x424 0x424
+#define FLAG_0x425 0x425
+#define FLAG_0x426 0x426
+#define FLAG_0x427 0x427
+#define FLAG_0x428 0x428
+#define FLAG_0x429 0x429
+#define FLAG_0x42A 0x42A
+#define FLAG_0x42B 0x42B
+#define FLAG_0x42C 0x42C
+#define FLAG_0x42D 0x42D
+#define FLAG_0x42E 0x42E
+#define FLAG_0x42F 0x42F
+#define FLAG_0x430 0x430
+#define FLAG_0x431 0x431
+#define FLAG_0x432 0x432
+#define FLAG_0x433 0x433
+#define FLAG_0x434 0x434
+#define FLAG_0x435 0x435
+#define FLAG_0x436 0x436
+#define FLAG_0x437 0x437
+#define FLAG_0x438 0x438
+#define FLAG_0x439 0x439
+#define FLAG_0x43A 0x43A
+#define FLAG_0x43B 0x43B
+#define FLAG_0x43C 0x43C
+#define FLAG_0x43D 0x43D
+#define FLAG_0x43E 0x43E
+#define FLAG_0x43F 0x43F
+#define FLAG_0x440 0x440
+#define FLAG_0x441 0x441
+#define FLAG_0x442 0x442
+#define FLAG_0x443 0x443
+#define FLAG_0x444 0x444
+#define FLAG_0x445 0x445
+#define FLAG_0x446 0x446
+#define FLAG_0x447 0x447
+#define FLAG_0x448 0x448
+#define FLAG_0x449 0x449
+#define FLAG_0x44A 0x44A
+#define FLAG_0x44B 0x44B
+#define FLAG_0x44C 0x44C
+#define FLAG_0x44D 0x44D
+#define FLAG_0x44E 0x44E
+#define FLAG_0x44F 0x44F
+#define FLAG_0x450 0x450
+#define FLAG_0x451 0x451
+#define FLAG_0x452 0x452
+#define FLAG_0x453 0x453
+#define FLAG_0x454 0x454
+#define FLAG_0x455 0x455
+#define FLAG_0x456 0x456
+#define FLAG_0x457 0x457
+#define FLAG_0x458 0x458
+#define FLAG_0x459 0x459
+#define FLAG_0x45A 0x45A
+#define FLAG_0x45B 0x45B
+#define FLAG_0x45C 0x45C
+#define FLAG_0x45D 0x45D
+#define FLAG_0x45E 0x45E
+#define FLAG_0x45F 0x45F
+#define FLAG_0x460 0x460
+#define FLAG_0x461 0x461
+#define FLAG_0x462 0x462
+#define FLAG_0x463 0x463
+#define FLAG_0x464 0x464
+#define FLAG_0x465 0x465
+#define FLAG_0x466 0x466
+#define FLAG_0x467 0x467
+#define FLAG_0x468 0x468
+#define FLAG_0x469 0x469
+#define FLAG_0x46A 0x46A
+#define FLAG_0x46B 0x46B
+#define FLAG_0x46C 0x46C
+#define FLAG_0x46D 0x46D
+#define FLAG_0x46E 0x46E
+#define FLAG_0x46F 0x46F
+#define FLAG_0x470 0x470
+#define FLAG_0x471 0x471
+#define FLAG_0x472 0x472
+#define FLAG_0x473 0x473
+#define FLAG_0x474 0x474
+#define FLAG_0x475 0x475
+#define FLAG_0x476 0x476
+#define FLAG_0x477 0x477
+#define FLAG_0x478 0x478
+#define FLAG_0x479 0x479
+#define FLAG_0x47A 0x47A
+#define FLAG_0x47B 0x47B
+#define FLAG_0x47C 0x47C
+#define FLAG_0x47D 0x47D
+#define FLAG_0x47E 0x47E
+#define FLAG_0x47F 0x47F
+#define FLAG_0x480 0x480
+#define FLAG_0x481 0x481
+#define FLAG_0x482 0x482
+#define FLAG_0x483 0x483
+#define FLAG_0x484 0x484
+#define FLAG_0x485 0x485
+#define FLAG_0x486 0x486
+#define FLAG_0x487 0x487
+#define FLAG_0x488 0x488
+#define FLAG_0x489 0x489
+#define FLAG_0x48A 0x48A
+#define FLAG_0x48B 0x48B
+#define FLAG_0x48C 0x48C
+#define FLAG_0x48D 0x48D
+#define FLAG_0x48E 0x48E
+#define FLAG_0x48F 0x48F
+#define FLAG_0x490 0x490
+#define FLAG_0x491 0x491
+#define FLAG_0x492 0x492
+#define FLAG_0x493 0x493
+#define FLAG_0x494 0x494
+#define FLAG_0x495 0x495
+#define FLAG_0x496 0x496
+#define FLAG_0x497 0x497
+#define FLAG_0x498 0x498
+#define FLAG_0x499 0x499
+#define FLAG_0x49A 0x49A
+#define FLAG_0x49B 0x49B
+#define FLAG_0x49C 0x49C
+#define FLAG_0x49D 0x49D
+#define FLAG_0x49E 0x49E
+#define FLAG_0x49F 0x49F
+#define FLAG_0x4A0 0x4A0
+#define FLAG_0x4A1 0x4A1
+#define FLAG_0x4A2 0x4A2
+#define FLAG_0x4A3 0x4A3
+#define FLAG_0x4A4 0x4A4
+#define FLAG_0x4A5 0x4A5
+#define FLAG_0x4A6 0x4A6
+#define FLAG_0x4A7 0x4A7
+#define FLAG_0x4A8 0x4A8
+#define FLAG_0x4A9 0x4A9
+#define FLAG_0x4AA 0x4AA
+#define FLAG_0x4AB 0x4AB
+#define FLAG_0x4AC 0x4AC
+#define FLAG_0x4AD 0x4AD
+#define FLAG_0x4AE 0x4AE
+#define FLAG_0x4AF 0x4AF
+#define FLAG_0x4B0 0x4B0
+#define FLAG_0x4B1 0x4B1
+#define FLAG_0x4B2 0x4B2
+#define FLAG_0x4B3 0x4B3
+#define FLAG_0x4B4 0x4B4
+#define FLAG_0x4B5 0x4B5
+#define FLAG_0x4B6 0x4B6
+#define FLAG_0x4B7 0x4B7
+#define FLAG_0x4B8 0x4B8
+#define FLAG_0x4B9 0x4B9
+#define FLAG_0x4BA 0x4BA
+#define FLAG_0x4BB 0x4BB
+#define FLAG_0x4BC 0x4BC
+#define FLAG_0x4BD 0x4BD
+#define FLAG_0x4BE 0x4BE
+#define FLAG_0x4BF 0x4BF
+#define FLAG_0x4C0 0x4C0
+#define FLAG_0x4C1 0x4C1
+#define FLAG_0x4C2 0x4C2
+#define FLAG_0x4C3 0x4C3
+#define FLAG_0x4C4 0x4C4
+#define FLAG_0x4C5 0x4C5
+#define FLAG_0x4C6 0x4C6
+#define FLAG_0x4C7 0x4C7
+#define FLAG_0x4C8 0x4C8
+#define FLAG_0x4C9 0x4C9
+#define FLAG_0x4CA 0x4CA
+#define FLAG_0x4CB 0x4CB
+#define FLAG_0x4CC 0x4CC
+#define FLAG_0x4CD 0x4CD
+#define FLAG_0x4CE 0x4CE
+#define FLAG_0x4CF 0x4CF
+#define FLAG_0x4D0 0x4D0
+#define FLAG_0x4D1 0x4D1
+#define FLAG_0x4D2 0x4D2
+#define FLAG_0x4D3 0x4D3
+#define FLAG_0x4D4 0x4D4
+#define FLAG_0x4D5 0x4D5
+#define FLAG_0x4D6 0x4D6
+#define FLAG_0x4D7 0x4D7
+#define FLAG_0x4D8 0x4D8
+#define FLAG_0x4D9 0x4D9
+#define FLAG_0x4DA 0x4DA
+#define FLAG_0x4DB 0x4DB
+#define FLAG_0x4DC 0x4DC
+#define FLAG_0x4DD 0x4DD
+#define FLAG_0x4DE 0x4DE
+#define FLAG_0x4DF 0x4DF
+#define FLAG_0x4E0 0x4E0
+#define FLAG_0x4E1 0x4E1
+#define FLAG_0x4E2 0x4E2
+#define FLAG_0x4E3 0x4E3
+#define FLAG_0x4E4 0x4E4
+#define FLAG_0x4E5 0x4E5
+#define FLAG_0x4E6 0x4E6
+#define FLAG_0x4E7 0x4E7
+#define FLAG_0x4E8 0x4E8
+#define FLAG_0x4E9 0x4E9
+#define FLAG_0x4EA 0x4EA
+#define FLAG_0x4EB 0x4EB
+#define FLAG_0x4EC 0x4EC
+#define FLAG_0x4ED 0x4ED
+#define FLAG_0x4EE 0x4EE
+#define FLAG_0x4EF 0x4EF
+#define FLAG_0x4F0 0x4F0
+#define FLAG_0x4F1 0x4F1
+#define FLAG_0x4F2 0x4F2
+#define FLAG_0x4F3 0x4F3
+#define FLAG_0x4F4 0x4F4
+#define FLAG_0x4F5 0x4F5
+#define FLAG_0x4F6 0x4F6
+#define FLAG_0x4F7 0x4F7
+#define FLAG_0x4F8 0x4F8
+#define FLAG_0x4F9 0x4F9
+#define FLAG_0x4FA 0x4FA
+#define FLAG_0x4FB 0x4FB
+#define FLAG_0x4FC 0x4FC
+#define FLAG_0x4FD 0x4FD
+#define FLAG_0x4FE 0x4FE
+#define FLAG_0x4FF 0x4FF
+
+#define FLAG_TRAINER_FLAG_START 0x500
+
+#define TRAINERS_FLAG_NO 0x356
+#define SYSTEM_FLAGS (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860
+
+// SYSTEM FLAGS
+
+// 0x860
+#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0)
+#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 1)
+#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 2)
+// third one appears unused
+#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 4)
+#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 5)
+#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 6)
+
+// badges
+#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 7)
+#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 8)
+#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 9)
+#define FLAG_BADGE04_GET (SYSTEM_FLAGS + 0xA)
+#define FLAG_BADGE05_GET (SYSTEM_FLAGS + 0xB)
+#define FLAG_BADGE06_GET (SYSTEM_FLAGS + 0xC)
+#define FLAG_BADGE07_GET (SYSTEM_FLAGS + 0xD)
+#define FLAG_BADGE08_GET (SYSTEM_FLAGS + 0xE)
+
+// cities and towns
+#define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0xF)
+#define FLAG_VISITED_OLDALE_TOWN (SYSTEM_FLAGS + 0x10)
+#define FLAG_VISITED_DEWFORD_TOWN (SYSTEM_FLAGS + 0x11)
+#define FLAG_VISITED_LAVARIDGE_TOWN (SYSTEM_FLAGS + 0x12)
+#define FLAG_VISITED_FALLARBOR_TOWN (SYSTEM_FLAGS + 0x13)
+#define FLAG_VISITED_VERDANTURF_TOWN (SYSTEM_FLAGS + 0x14)
+#define FLAG_VISITED_PACIFIDLOG_TOWN (SYSTEM_FLAGS + 0x15)
+#define FLAG_VISITED_PETALBURG_CITY (SYSTEM_FLAGS + 0x16)
+#define FLAG_VISITED_SLATEPORT_CITY (SYSTEM_FLAGS + 0x17)
+#define FLAG_VISITED_MAUVILLE_CITY (SYSTEM_FLAGS + 0x18)
+#define FLAG_VISITED_RUSTBORO_CITY (SYSTEM_FLAGS + 0x19)
+#define FLAG_VISITED_FORTREE_CITY (SYSTEM_FLAGS + 0x1A)
+#define FLAG_VISITED_LILYCOVE_CITY (SYSTEM_FLAGS + 0x1B)
+#define FLAG_VISITED_MOSSDEEP_CITY (SYSTEM_FLAGS + 0x1C)
+#define FLAG_VISITED_SOOTOPOLIS_CITY (SYSTEM_FLAGS + 0x1D)
+#define FLAG_VISITED_EVER_GRANDE_CITY (SYSTEM_FLAGS + 0x1E)
+
+#define FLAG_0x87F (SYSTEM_FLAGS + 0x1F)
+#define FLAG_0x880 (SYSTEM_FLAGS + 0x20)
+#define FLAG_0x881 (SYSTEM_FLAGS + 0x21)
+#define FLAG_0x882 (SYSTEM_FLAGS + 0x22)
+#define FLAG_0x883 (SYSTEM_FLAGS + 0x23)
+#define FLAG_0x884 (SYSTEM_FLAGS + 0x24)
+#define FLAG_0x885 (SYSTEM_FLAGS + 0x25)
+#define FLAG_0x886 (SYSTEM_FLAGS + 0x26)
+#define FLAG_0x887 (SYSTEM_FLAGS + 0x27)
+
+#define FLAG_SYS_USE_FLASH (SYSTEM_FLAGS + 0x28)
+#define FLAG_SYS_USE_STRENGTH (SYSTEM_FLAGS + 0x29)
+#define FLAG_SYS_WEATHER_CTRL (SYSTEM_FLAGS + 0x2A)
+#define FLAG_SYS_CYCLING_ROAD (SYSTEM_FLAGS + 0x2B)
+#define FLAG_SYS_SAFARI_MODE (SYSTEM_FLAGS + 0x2C)
+#define FLAG_SYS_CRUISE_MODE (SYSTEM_FLAGS + 0x2D)
+
+#define FLAG_0x88E (SYSTEM_FLAGS + 0x2E)
+#define FLAG_0x88F (SYSTEM_FLAGS + 0x2F)
+
+#define FLAG_SYS_TV_HOME (SYSTEM_FLAGS + 0x30)
+#define FLAG_SYS_TV_WATCH (SYSTEM_FLAGS + 0x31)
+#define FLAG_SYS_TV_START (SYSTEM_FLAGS + 0x32)
+#define FLAG_SYS_POPWORD_INPUT (SYSTEM_FLAGS + 0x33)
+#define FLAG_SYS_MIX_RECORD (SYSTEM_FLAGS + 0x34)
+#define FLAG_SYS_CLOCK_SET (SYSTEM_FLAGS + 0x35)
+#define FLAG_SYS_NATIONAL_DEX (SYSTEM_FLAGS + 0x36)
+#define FLAG_SYS_CAVE_SHIP (SYSTEM_FLAGS + 0x37)
+#define FLAG_SYS_CAVE_WONDER (SYSTEM_FLAGS + 0x38)
+#define FLAG_SYS_CAVE_BATTLE (SYSTEM_FLAGS + 0x39)
+#define FLAG_SYS_SHOAL_TIDE (SYSTEM_FLAGS + 0x3A)
+#define FLAG_SYS_RIBBON_GET (SYSTEM_FLAGS + 0x3B)
+
+#define FLAG_LANDMARK_FLOWER_SHOP (SYSTEM_FLAGS + 0x3C)
+#define FLAG_LANDMARK_MR_BRINEY_HOUSE (SYSTEM_FLAGS + 0x3D)
+#define FLAG_LANDMARK_ABANDONED_SHIP (SYSTEM_FLAGS + 0x3E)
+#define FLAG_LANDMARK_SEASHORE_HOUSE (SYSTEM_FLAGS + 0x3F)
+#define FLAG_LANDMARK_NEW_MAUVILLE (SYSTEM_FLAGS + 0x40)
+#define FLAG_LANDMARK_OLD_LADY_REST_SHOP (SYSTEM_FLAGS + 0x41)
+#define FLAG_LANDMARK_TRICK_HOUSE (SYSTEM_FLAGS + 0x42)
+#define FLAG_LANDMARK_WINSTRATE_FAMILY (SYSTEM_FLAGS + 0x43)
+#define FLAG_LANDMARK_GLASS_WORKSHOP (SYSTEM_FLAGS + 0x44)
+#define FLAG_LANDMARK_LANETTES_HOUSE (SYSTEM_FLAGS + 0x45)
+#define FLAG_LANDMARK_POKEMON_DAYCARE (SYSTEM_FLAGS + 0x46)
+#define FLAG_LANDMARK_SEAFLOOR_CAVERN (SYSTEM_FLAGS + 0x47)
+#define FLAG_LANDMARK_BATTLE_FRONTIER (SYSTEM_FLAGS + 0x48)
+#define FLAG_LANDMARK_SOUTHERN_ISLAND (SYSTEM_FLAGS + 0x49)
+#define FLAG_LANDMARK_FIERY_PATH (SYSTEM_FLAGS + 0x4A)
+
+#define FLAG_SYS_PC_LANETTE (SYSTEM_FLAGS + 0x4B)
+#define FLAG_SYS_MYSTERY_EVENT_ENABLE (SYSTEM_FLAGS + 0x4C)
+#define FLAG_SYS_ENC_UP_ITEM (SYSTEM_FLAGS + 0x4D)
+#define FLAG_SYS_ENC_DOWN_ITEM (SYSTEM_FLAGS + 0x4E)
+#define FLAG_SYS_BRAILLE_DIG (SYSTEM_FLAGS + 0x4F)
+#define FLAG_SYS_BRAILLE_STRENGTH (SYSTEM_FLAGS + 0x50)
+#define FLAG_SYS_BRAILLE_WAIT (SYSTEM_FLAGS + 0x51)
+#define FLAG_SYS_BRAILLE_FLY (SYSTEM_FLAGS + 0x52)
+#define FLAG_SYS_HAS_EON_TICKET (SYSTEM_FLAGS + 0x53)
+
+#define FLAG_LANDMARK_POKEMON_LEAGUE (SYSTEM_FLAGS + 0x54)
+
+#define FLAG_LANDMARK_ISLAND_CAVE (SYSTEM_FLAGS + 0x55)
+#define FLAG_LANDMARK_DESERT_RUINS (SYSTEM_FLAGS + 0x56)
+#define FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE (SYSTEM_FLAGS + 0x57)
+#define FLAG_LANDMARK_SCORCHED_SLAB (SYSTEM_FLAGS + 0x58)
+#define FLAG_LANDMARK_ANCIENT_TOMB (SYSTEM_FLAGS + 0x59)
+#define FLAG_LANDMARK_TUNNELERS_REST_HOUSE (SYSTEM_FLAGS + 0x5A)
+#define FLAG_LANDMARK_HUNTERS_HOUSE (SYSTEM_FLAGS + 0x5B)
+#define FLAG_LANDMARK_SEALED_CHAMBER (SYSTEM_FLAGS + 0x5C)
+
+#define FLAG_SYS_TV_LATI (SYSTEM_FLAGS + 0x5D)
+
+#define FLAG_LANDMARK_SKY_PILLAR (SYSTEM_FLAGS + 0x5E)
+
+#define FLAG_SYS_SHOAL_ITEM (SYSTEM_FLAGS + 0x5F)
+#define FLAG_SYS_B_DASH (SYSTEM_FLAGS + 0x60) // got Running Shoes
+#define FLAG_SYS_CTRL_OBJ_DELETE (SYSTEM_FLAGS + 0x61)
+#define FLAG_SYS_RESET_RTC_ENABLE (SYSTEM_FLAGS + 0x62)
+
+#define FLAG_LANDMARK_BERRY_MASTERS_HOUSE (SYSTEM_FLAGS + 0x63)
+
+#define FLAG_SYS_TOWER_SILVER (SYSTEM_FLAGS + 0x64)
+#define FLAG_SYS_TOWER_GOLD (SYSTEM_FLAGS + 0x65)
+#define FLAG_SYS_DOME_SILVER (SYSTEM_FLAGS + 0x66)
+#define FLAG_SYS_DOME_GOLD (SYSTEM_FLAGS + 0x67)
+#define FLAG_SYS_PALACE_SILVER (SYSTEM_FLAGS + 0x68)
+#define FLAG_SYS_PALACE_GOLD (SYSTEM_FLAGS + 0x69)
+#define FLAG_SYS_ARENA_SILVER (SYSTEM_FLAGS + 0x6A)
+#define FLAG_SYS_ARENA_GOLD (SYSTEM_FLAGS + 0x6B)
+#define FLAG_SYS_FACTORY_SILVER (SYSTEM_FLAGS + 0x6C)
+#define FLAG_SYS_FACTORY_GOLD (SYSTEM_FLAGS + 0x6D)
+#define FLAG_SYS_PIKE_SILVER (SYSTEM_FLAGS + 0x6E)
+#define FLAG_SYS_PIKE_GOLD (SYSTEM_FLAGS + 0x6F)
+#define FLAG_SYS_PYRAMID_SILVER (SYSTEM_FLAGS + 0x70)
+#define FLAG_SYS_PYRAMID_GOLD (SYSTEM_FLAGS + 0x71)
+#define FLAG_SYS_FRONTIER_PASS (SYSTEM_FLAGS + 0x72)
+
+#define FLAG_0x8D3 (SYSTEM_FLAGS + 0x73)
+#define FLAG_0x8D4 (SYSTEM_FLAGS + 0x74)
+#define FLAG_0x8D5 (SYSTEM_FLAGS + 0x75)
+#define FLAG_0x8D6 (SYSTEM_FLAGS + 0x76)
+
+#define FLAG_SYS_STORAGE_UNKNOWN_FLAG (SYSTEM_FLAGS + 0x77)
+
+#define FLAG_0x8D8 (SYSTEM_FLAGS + 0x78)
+#define FLAG_0x8D9 (SYSTEM_FLAGS + 0x79)
+#define FLAG_0x8DA (SYSTEM_FLAGS + 0x7A)
+
+#define FLAG_SYS_MYSTERY_GIFT_ENABLE (SYSTEM_FLAGS + 0x7B)
+
+#define FLAG_0x8DC (SYSTEM_FLAGS + 0x7C)
+#define FLAG_LANDMARK_ALTERING_CAVE (SYSTEM_FLAGS + 0x7D)
+#define FLAG_LANDMARK_DESERT_UNDERPASS (SYSTEM_FLAGS + 0x7E)
+#define FLAG_0x8DF (SYSTEM_FLAGS + 0x7F)
+#define FLAG_0x8E0 (SYSTEM_FLAGS + 0x80)
+#define FLAG_0x8E1 (SYSTEM_FLAGS + 0x81)
+#define FLAG_LANDMARK_TRAINER_HILL (SYSTEM_FLAGS + 0x82)
+
+#define FLAG_0x8E3 (SYSTEM_FLAGS + 0x83)
+#define FLAG_0x8E4 (SYSTEM_FLAGS + 0x84)
+#define FLAG_0x8E5 (SYSTEM_FLAGS + 0x85)
+#define FLAG_0x8E6 (SYSTEM_FLAGS + 0x86)
+#define FLAG_0x8E7 (SYSTEM_FLAGS + 0x87)
+#define FLAG_0x8E8 (SYSTEM_FLAGS + 0x88)
+#define FLAG_0x8E9 (SYSTEM_FLAGS + 0x89)
+#define FLAG_0x8EA (SYSTEM_FLAGS + 0x8A)
+#define FLAG_0x8EB (SYSTEM_FLAGS + 0x8B)
+#define FLAG_0x8EC (SYSTEM_FLAGS + 0x8C)
+#define FLAG_0x8ED (SYSTEM_FLAGS + 0x8D)
+#define FLAG_0x8EE (SYSTEM_FLAGS + 0x8E)
+#define FLAG_0x8EF (SYSTEM_FLAGS + 0x8F)
+#define FLAG_0x8F0 (SYSTEM_FLAGS + 0x90)
+#define FLAG_0x8F1 (SYSTEM_FLAGS + 0x91)
+#define FLAG_0x8F2 (SYSTEM_FLAGS + 0x92)
+#define FLAG_0x8F3 (SYSTEM_FLAGS + 0x93)
+#define FLAG_0x8F4 (SYSTEM_FLAGS + 0x94)
+#define FLAG_0x8F5 (SYSTEM_FLAGS + 0x95)
+#define FLAG_0x8F6 (SYSTEM_FLAGS + 0x96)
+#define FLAG_0x8F7 (SYSTEM_FLAGS + 0x97)
+#define FLAG_0x8F8 (SYSTEM_FLAGS + 0x98)
+#define FLAG_0x8F9 (SYSTEM_FLAGS + 0x99)
+#define FLAG_0x8FA (SYSTEM_FLAGS + 0x9A)
+#define FLAG_0x8FB (SYSTEM_FLAGS + 0x9B)
+#define FLAG_0x8FC (SYSTEM_FLAGS + 0x9C)
+#define FLAG_0x8FD (SYSTEM_FLAGS + 0x9D)
+#define FLAG_0x8FE (SYSTEM_FLAGS + 0x9E)
+#define FLAG_0x8FF (SYSTEM_FLAGS + 0x9F)
+#define FLAG_0x900 (SYSTEM_FLAGS + 0xA0)
+#define FLAG_0x901 (SYSTEM_FLAGS + 0xA1)
+#define FLAG_0x902 (SYSTEM_FLAGS + 0xA2)
+#define FLAG_0x903 (SYSTEM_FLAGS + 0xA3)
+#define FLAG_0x904 (SYSTEM_FLAGS + 0xA4)
+#define FLAG_0x905 (SYSTEM_FLAGS + 0xA5)
+#define FLAG_0x906 (SYSTEM_FLAGS + 0xA6)
+#define FLAG_0x907 (SYSTEM_FLAGS + 0xA7)
+#define FLAG_0x908 (SYSTEM_FLAGS + 0xA8)
+#define FLAG_0x909 (SYSTEM_FLAGS + 0xA9)
+#define FLAG_0x90A (SYSTEM_FLAGS + 0xAA)
+#define FLAG_0x90B (SYSTEM_FLAGS + 0xAB)
+#define FLAG_0x90C (SYSTEM_FLAGS + 0xAC)
+#define FLAG_0x90D (SYSTEM_FLAGS + 0xAD)
+#define FLAG_0x90E (SYSTEM_FLAGS + 0xAE)
+#define FLAG_0x90F (SYSTEM_FLAGS + 0xAF)
+#define FLAG_0x910 (SYSTEM_FLAGS + 0xB0)
+#define FLAG_0x911 (SYSTEM_FLAGS + 0xB1)
+#define FLAG_0x912 (SYSTEM_FLAGS + 0xB2)
+#define FLAG_0x913 (SYSTEM_FLAGS + 0xB3)
+#define FLAG_0x914 (SYSTEM_FLAGS + 0xB4)
+#define FLAG_0x915 (SYSTEM_FLAGS + 0xB5)
+#define FLAG_0x916 (SYSTEM_FLAGS + 0xB6)
+#define FLAG_0x917 (SYSTEM_FLAGS + 0xB7)
+#define FLAG_0x918 (SYSTEM_FLAGS + 0xB8)
+#define FLAG_0x919 (SYSTEM_FLAGS + 0xB9)
+#define FLAG_0x91A (SYSTEM_FLAGS + 0xBA)
+#define FLAG_0x91B (SYSTEM_FLAGS + 0xBB)
+#define FLAG_0x91C (SYSTEM_FLAGS + 0xBC)
+#define FLAG_0x91D (SYSTEM_FLAGS + 0xBD)
+#define FLAG_0x91E (SYSTEM_FLAGS + 0xBE)
+#define FLAG_0x91F (SYSTEM_FLAGS + 0xBF)
+#define FLAG_0x920 (SYSTEM_FLAGS + 0xC0)
+#define FLAG_0x921 (SYSTEM_FLAGS + 0xC1)
+#define FLAG_0x922 (SYSTEM_FLAGS + 0xC2)
+#define FLAG_0x923 (SYSTEM_FLAGS + 0xC3)
+#define FLAG_0x924 (SYSTEM_FLAGS + 0xC4)
+#define FLAG_0x925 (SYSTEM_FLAGS + 0xC5)
+#define FLAG_0x926 (SYSTEM_FLAGS + 0xC6)
+#define FLAG_0x927 (SYSTEM_FLAGS + 0xC7)
+#define FLAG_0x928 (SYSTEM_FLAGS + 0xC8)
+#define FLAG_0x929 (SYSTEM_FLAGS + 0xC9)
+#define FLAG_0x92A (SYSTEM_FLAGS + 0xCA)
+#define FLAG_0x92B (SYSTEM_FLAGS + 0xCB)
+#define FLAG_0x92C (SYSTEM_FLAGS + 0xCC)
+#define FLAG_0x92D (SYSTEM_FLAGS + 0xCD)
+#define FLAG_0x92E (SYSTEM_FLAGS + 0xCE)
+#define FLAG_0x92F (SYSTEM_FLAGS + 0xCF)
+#define FLAG_0x930 (SYSTEM_FLAGS + 0xD0)
+#define FLAG_0x931 (SYSTEM_FLAGS + 0xD1)
+#define FLAG_0x932 (SYSTEM_FLAGS + 0xD2)
+#define FLAG_0x933 (SYSTEM_FLAGS + 0xD3)
+#define FLAG_0x934 (SYSTEM_FLAGS + 0xD4)
+#define FLAG_0x935 (SYSTEM_FLAGS + 0xD5)
+#define FLAG_0x936 (SYSTEM_FLAGS + 0xD6)
+#define FLAG_0x937 (SYSTEM_FLAGS + 0xD7)
+#define FLAG_0x938 (SYSTEM_FLAGS + 0xD8)
+#define FLAG_0x939 (SYSTEM_FLAGS + 0xD9)
+#define FLAG_0x93A (SYSTEM_FLAGS + 0xDA)
+#define FLAG_0x93B (SYSTEM_FLAGS + 0xDB)
+#define FLAG_0x93C (SYSTEM_FLAGS + 0xDC)
+#define FLAG_0x93D (SYSTEM_FLAGS + 0xDD)
+#define FLAG_0x93E (SYSTEM_FLAGS + 0xDE)
+#define FLAG_0x93F (SYSTEM_FLAGS + 0xDF)
+#define FLAG_0x940 (SYSTEM_FLAGS + 0xE0)
+#define FLAG_0x941 (SYSTEM_FLAGS + 0xE1)
+#define FLAG_0x942 (SYSTEM_FLAGS + 0xE2)
+#define FLAG_0x943 (SYSTEM_FLAGS + 0xE3)
+#define FLAG_0x944 (SYSTEM_FLAGS + 0xE4)
+#define FLAG_0x945 (SYSTEM_FLAGS + 0xE5)
+#define FLAG_0x946 (SYSTEM_FLAGS + 0xE6)
+#define FLAG_0x947 (SYSTEM_FLAGS + 0xE7)
+#define FLAG_0x948 (SYSTEM_FLAGS + 0xE8)
+#define FLAG_0x949 (SYSTEM_FLAGS + 0xE9)
+#define FLAG_0x94A (SYSTEM_FLAGS + 0xEA)
+#define FLAG_0x94B (SYSTEM_FLAGS + 0xEB)
+#define FLAG_0x94C (SYSTEM_FLAGS + 0xEC)
+#define FLAG_0x94D (SYSTEM_FLAGS + 0xED)
+#define FLAG_0x94E (SYSTEM_FLAGS + 0xEE)
+#define FLAG_0x94F (SYSTEM_FLAGS + 0xEF)
+#define FLAG_0x950 (SYSTEM_FLAGS + 0xF0)
+#define FLAG_0x951 (SYSTEM_FLAGS + 0xF1)
+#define FLAG_0x952 (SYSTEM_FLAGS + 0xF2)
+#define FLAG_0x953 (SYSTEM_FLAGS + 0xF3)
+#define FLAG_0x954 (SYSTEM_FLAGS + 0xF4)
+#define FLAG_0x955 (SYSTEM_FLAGS + 0xF5)
+#define FLAG_0x956 (SYSTEM_FLAGS + 0xF6)
+#define FLAG_0x957 (SYSTEM_FLAGS + 0xF7)
+#define FLAG_0x958 (SYSTEM_FLAGS + 0xF8)
+#define FLAG_0x959 (SYSTEM_FLAGS + 0xF9)
+#define FLAG_0x95A (SYSTEM_FLAGS + 0xFA)
+#define FLAG_0x95B (SYSTEM_FLAGS + 0xFB)
+#define FLAG_0x95C (SYSTEM_FLAGS + 0xFC)
+#define FLAG_0x95D (SYSTEM_FLAGS + 0xFD)
+#define FLAG_0x95E (SYSTEM_FLAGS + 0xFE)
+#define FLAG_0x95F (SYSTEM_FLAGS + 0xFF)
+
+// SPECIAL FLAGS (unknown purpose)
+#define FLAG_SPECIAL_FLAG_0x4000 0x4000
+#define FLAG_SPECIAL_FLAG_0x4001 0x4001
+#define FLAG_SPECIAL_FLAG_0x4002 0x4002
+#define FLAG_SPECIAL_FLAG_0x4003 0x4003
+#define FLAG_SPECIAL_FLAG_0x4004 0x4004
+
+#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..ca6fdbf64
--- /dev/null
+++ b/include/constants/items.h
@@ -0,0 +1,467 @@
+#ifndef GUARD_CONSTANTS_ITEMS_H
+#define GUARD_CONSTANTS_ITEMS_H
+
+#define ITEM_NONE 0
+
+// Balls
+#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
+
+// Pokemon Items
+#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
+
+// hold items
+#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
+
+// Key Items
+#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
+
+// TMs/HMs
+#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_TM01_FOCUS_PUNCH ITEM_TM01
+#define ITEM_TM02_DRAGON_CLAW ITEM_TM02
+#define ITEM_TM03_WATER_PULSE ITEM_TM03
+#define ITEM_TM04_CALM_MIND ITEM_TM04
+#define ITEM_TM05_ROAR ITEM_TM05
+#define ITEM_TM06_TOXIC ITEM_TM06
+#define ITEM_TM07_HAIL ITEM_TM07
+#define ITEM_TM08_BULK_UP ITEM_TM08
+#define ITEM_TM09_BULLET_SEED ITEM_TM09
+#define ITEM_TM10_HIDDEN_POWER ITEM_TM10
+#define ITEM_TM11_SUNNY_DAY ITEM_TM11
+#define ITEM_TM12_TAUNT ITEM_TM12
+#define ITEM_TM13_ICE_BEAM ITEM_TM13
+#define ITEM_TM14_BLIZZARD ITEM_TM14
+#define ITEM_TM15_HYPER_BEAM ITEM_TM15
+#define ITEM_TM16_LIGHT_SCREEN ITEM_TM16
+#define ITEM_TM17_PROTECT ITEM_TM17
+#define ITEM_TM18_RAIN_DANCE ITEM_TM18
+#define ITEM_TM19_GIGA_DRAIN ITEM_TM19
+#define ITEM_TM20_SAFEGUARD ITEM_TM20
+#define ITEM_TM21_FRUSTRATION ITEM_TM21
+#define ITEM_TM22_SOLARBEAM ITEM_TM22
+#define ITEM_TM23_IRON_TAIL ITEM_TM23
+#define ITEM_TM24_THUNDERBOLT ITEM_TM24
+#define ITEM_TM25_THUNDER ITEM_TM25
+#define ITEM_TM26_EARTHQUAKE ITEM_TM26
+#define ITEM_TM27_RETURN ITEM_TM27
+#define ITEM_TM28_DIG ITEM_TM28
+#define ITEM_TM29_PSYCHIC ITEM_TM29
+#define ITEM_TM30_SHADOW_BALL ITEM_TM30
+#define ITEM_TM31_BRICK_BREAK ITEM_TM31
+#define ITEM_TM32_DOUBLE_TEAM ITEM_TM32
+#define ITEM_TM33_REFLECT ITEM_TM33
+#define ITEM_TM34_SHOCK_WAVE ITEM_TM34
+#define ITEM_TM35_FLAMETHROWER ITEM_TM35
+#define ITEM_TM36_SLUDGE_BOMB ITEM_TM36
+#define ITEM_TM37_SANDSTORM ITEM_TM37
+#define ITEM_TM38_FIRE_BLAST ITEM_TM38
+#define ITEM_TM39_ROCK_TOMB ITEM_TM39
+#define ITEM_TM40_AERIAL_ACE ITEM_TM40
+#define ITEM_TM41_TORMENT ITEM_TM41
+#define ITEM_TM42_FACADE ITEM_TM42
+#define ITEM_TM43_SECRET_POWER ITEM_TM43
+#define ITEM_TM44_REST ITEM_TM44
+#define ITEM_TM45_ATTRACT ITEM_TM45
+#define ITEM_TM46_THIEF ITEM_TM46
+#define ITEM_TM47_STEEL_WING ITEM_TM47
+#define ITEM_TM48_SKILL_SWAP ITEM_TM48
+#define ITEM_TM49_SNATCH ITEM_TM49
+#define ITEM_TM50_OVERHEAT ITEM_TM50
+#define ITEM_HM01_CUT ITEM_HM01
+#define ITEM_HM02_FLY ITEM_HM02
+#define ITEM_HM03_SURF ITEM_HM03
+#define ITEM_HM04_STRENGTH ITEM_HM04
+#define ITEM_HM05_FLASH ITEM_HM05
+#define ITEM_HM06_ROCK_SMASH ITEM_HM06
+#define ITEM_HM07_WATERFALL ITEM_HM07
+#define ITEM_HM08_DIVE ITEM_HM08
+
+// Unknown
+#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 ITEM_LAST_ID 376
+#define ITEM_FIELD_ARROW ITEM_LAST_ID + 1
+
+#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..d5b983005
--- /dev/null
+++ b/include/constants/map_objects.h
@@ -0,0 +1,263 @@
+#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_RAYQUAZA_1 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_ANABEL 70
+#define MAP_OBJ_GFX_TUCKER 71
+#define MAP_OBJ_GFX_GRETA 72
+#define MAP_OBJ_GFX_SPENSER 73
+#define MAP_OBJ_GFX_NOLAND 74
+#define MAP_OBJ_GFX_LUCY 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_VIGAROTH_CARRYING_BOX 95
+#define MAP_OBJ_GFX_VIGAROTH_FACING_AWAY 96
+#define MAP_OBJ_GFX_BIRCHS_BAG 97
+#define MAP_OBJ_GFX_ZIGZAGOON_1 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_2 207
+#define MAP_OBJ_GFX_ZIGZAGOON_2 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 MAP_OBJ_GFX_JUAN 218
+#define MAP_OBJ_GFX_SCOTT 219
+#define MAP_OBJ_GFX_POOCHYENA 220
+#define MAP_OBJ_GFX_KYOGRE_3 221
+#define MAP_OBJ_GFX_GROUDON_3 222
+#define MAP_OBJ_GFX_MYSTERY_GIFT_MAN 223
+#define MAP_OBJ_GFX_TRICK_HOUSE_STATUE 224
+#define MAP_OBJ_GFX_KIRLIA 225
+#define MAP_OBJ_GFX_DUSCLOPS 226
+#define MAP_OBJ_GFX_UNION_ROOM_NURSE 227
+#define MAP_OBJ_GFX_SUDOWOODO 228
+#define MAP_OBJ_GFX_MEW 229
+#define MAP_OBJ_GFX_RED 230
+#define MAP_OBJ_GFX_LEAF 231
+#define MAP_OBJ_GFX_DEOXYS 232
+#define MAP_OBJ_GFX_DEOXYS_TRIANGLE 233
+#define MAP_OBJ_GFX_BRANDON 234
+#define MAP_OBJ_GFX_LINK_RS_BRENDAN 235
+#define MAP_OBJ_GFX_LINK_RS_MAY 236
+#define MAP_OBJ_GFX_LUGIA 237
+#define MAP_OBJ_GFX_HOOH 238
+#define MAP_OBJ_GFX_BARD_2 239
+#define MAP_OBJ_GFX_HIPSTER 240
+#define MAP_OBJ_GFX_TRADER 241
+#define MAP_OBJ_GFX_STORYTELLER 242
+#define MAP_OBJ_GFX_GIDDY 243
+#define MAP_OBJ_GFX_PLACEHOLDER_1 244
+#define MAP_OBJ_GFX_PLACEHOLDER_2 245
+
+#define SHADOW_SIZE_S 0
+#define SHADOW_SIZE_M 1
+#define SHADOW_SIZE_L 2
+#define SHADOW_SIZE_XL 3
+
+#define F_INANIMATE (1 << 6)
+#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7)
+
+#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..fb1cb82a8
--- /dev/null
+++ b/include/constants/maps.h
@@ -0,0 +1,598 @@
+#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))
+#define MAP_UNDERWATER5 (54 | (0 << 8))
+#define MAP_UNDERWATER6 (55 | (0 << 8))
+#define MAP_UNDERWATER7 (56 | (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..f3a3acb90
--- /dev/null
+++ b/include/constants/moves.h
@@ -0,0 +1,362 @@
+#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
+
+#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST
+
+#endif // GUARD_CONSTANTS_MOVES_H
diff --git a/include/constants/opponents.h b/include/constants/opponents.h
new file mode 100644
index 000000000..680a63763
--- /dev/null
+++ b/include/constants/opponents.h
@@ -0,0 +1,860 @@
+#ifndef GUARD_CONSTANTS_OPPONENTS_H
+#define GUARD_CONSTANTS_OPPONENTS_H
+
+#define OPPONENT_NONE 0
+#define OPPONENT_SAWYER_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_GABRIELLE_1 9
+#define OPPONENT_GRUNT_8 10
+#define OPPONENT_MARCEL 11
+#define OPPONENT_ALBERTO 12
+#define OPPONENT_ED 13
+#define OPPONENT_GRUNT_9 14
+#define OPPONENT_DECLAN 15
+#define OPPONENT_GRUNT_10 16
+#define OPPONENT_GRUNT_11 17
+#define OPPONENT_GRUNT_12 18
+#define OPPONENT_GRUNT_13 19
+#define OPPONENT_GRUNT_14 20
+#define OPPONENT_GRUNT_15 21
+#define OPPONENT_GRUNT_16 22
+#define OPPONENT_GRUNT_17 23
+#define OPPONENT_GRUNT_18 24
+#define OPPONENT_GRUNT_19 25
+#define OPPONENT_GRUNT_20 26
+#define OPPONENT_GRUNT_21 27
+#define OPPONENT_GRUNT_22 28
+#define OPPONENT_FREDRICK 29
+#define OPPONENT_MATT_1 30
+#define OPPONENT_ZANDER 31
+#define OPPONENT_SHELLY_1 32
+#define OPPONENT_SHELLY_2 33
+#define OPPONENT_ARCHIE 34
+#define OPPONENT_LEAH 35
+#define OPPONENT_DAISY 36
+#define OPPONENT_ROSE_1 37
+#define OPPONENT_FELIX 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_AUSTINA 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_BRAXTON 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_ALEXIA 90
+#define OPPONENT_JODY 91
+#define OPPONENT_WENDY 92
+#define OPPONENT_KEIRA 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_DAPHNE 115
+#define OPPONENT_GRUNT_23 116
+#define OPPONENT_CINDY_2 117
+#define OPPONENT_BRIANNA 118
+#define OPPONENT_NAOMI 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_MOLLIE 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_THALIA_1 144
+#define OPPONENT_MARK 145
+#define OPPONENT_GRUNT_24 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_DOMINIK 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_NOLEN 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_SANTIAGO 168
+#define OPPONENT_GILBERT 169
+#define OPPONENT_FRANKLIN 170
+#define OPPONENT_KEVIN 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_TAKAO 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_GRUNT_25 192
+#define OPPONENT_GRUNT_26 193
+#define OPPONENT_SHAWN 194
+#define OPPONENT_FERNANDO_1 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_JEFF 202
+#define OPPONENT_AXLE 203
+#define OPPONENT_JACE 204
+#define OPPONENT_KEEGAN 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_BEAU 212
+#define OPPONENT_LARRY 213
+#define OPPONENT_SHANE 214
+#define OPPONENT_JUSTIN 215
+#define OPPONENT_ETHAN_1 216
+#define OPPONENT_AUTUMN 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_JEFFREY_1 226
+#define OPPONENT_DEREK 227
+#define OPPONENT_JEFFREY_2 228
+#define OPPONENT_JEFFREY_3 229
+#define OPPONENT_JEFFREY_4 230
+#define OPPONENT_JEFFREY_5 231
+#define OPPONENT_EDWARD 232
+#define OPPONENT_PRESTON 233
+#define OPPONENT_VIRGIL 234
+#define OPPONENT_BLAKE 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_MICAH 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_1 265
+#define OPPONENT_BRAWLY_1 266
+#define OPPONENT_WATTSON_1 267
+#define OPPONENT_FLANNERY_1 268
+#define OPPONENT_NORMAN_1 269
+#define OPPONENT_WINONA_1 270
+#define OPPONENT_TATE_AND_LIZA_1 271
+#define OPPONENT_JUAN_1 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_BETHANY 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_QUINCY 324
+#define OPPONENT_KATELYNN 325
+#define OPPONENT_JAYLEN 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_WALLACE 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_CAMDEN 374
+#define OPPONENT_DEMETRIUS 375
+#define OPPONENT_ISAIAH_1 376
+#define OPPONENT_PABLO_1 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_ISOBEL 383
+#define OPPONENT_DONNY 384
+#define OPPONENT_TALIA 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_HUMBERTO 402
+#define OPPONENT_PRESLEY 403
+#define OPPONENT_EDWARDO 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_DIANNE 417
+#define OPPONENT_JANI 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_JOCELYN 425
+#define OPPONENT_LAURA 426
+#define OPPONENT_CYNDY_1 427
+#define OPPONENT_CORA 428
+#define OPPONENT_PAULA 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_IMANI 442
+#define OPPONENT_KYLA 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_SIENNA 459
+#define OPPONENT_DEBRA 460
+#define OPPONENT_LINDA 461
+#define OPPONENT_KAYLEE 462
+#define OPPONENT_LAUREL 463
+#define OPPONENT_CARLEE 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_CEDRIC 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_ELI 501
+#define OPPONENT_ANNIKA 502
+#define OPPONENT_JAZMYN 503
+#define OPPONENT_JONAS 504
+#define OPPONENT_KAYLEY 505
+#define OPPONENT_AURON 506
+#define OPPONENT_KELVIN 507
+#define OPPONENT_MARLEY 508
+#define OPPONENT_REYNA 509
+#define OPPONENT_HUDSON 510
+#define OPPONENT_CONOR 511
+#define OPPONENT_EDWIN_1 512
+#define OPPONENT_HECTOR 513
+#define OPPONENT_TABITHA_1 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_DAVIS 539
+#define OPPONENT_MITCHELL 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_HALLE 546
+#define OPPONENT_GARRISON 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_LORENZO 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_JULIO 566
+#define OPPONENT_GRUNT_27 567
+#define OPPONENT_GRUNT_28 568
+#define OPPONENT_GRUNT_29 569
+#define OPPONENT_GRUNT_30 570
+#define OPPONENT_MARC 571
+#define OPPONENT_BRENDEN 572
+#define OPPONENT_LILITH 573
+#define OPPONENT_CRISTIAN 574
+#define OPPONENT_SYLVIA 575
+#define OPPONENT_LEONARDO 576
+#define OPPONENT_ATHENA 577
+#define OPPONENT_HARRISON 578
+#define OPPONENT_GRUNT_31 579
+#define OPPONENT_CLARENCE 580
+#define OPPONENT_TERRY 581
+#define OPPONENT_NATE 582
+#define OPPONENT_KATHLEEN 583
+#define OPPONENT_CLIFFORD 584
+#define OPPONENT_NICHOLAS 585
+#define OPPONENT_GRUNT_32 586
+#define OPPONENT_GRUNT_33 587
+#define OPPONENT_GRUNT_34 588
+#define OPPONENT_GRUNT_35 589
+#define OPPONENT_GRUNT_36 590
+#define OPPONENT_MACEY 591
+#define OPPONENT_BRENDAN_10 592
+#define OPPONENT_BRENDAN_11 593
+#define OPPONENT_PAXTON 594
+#define OPPONENT_ISABELLA 595
+#define OPPONENT_GRUNT_37 596
+#define OPPONENT_TABITHA_2 597
+#define OPPONENT_JONATHAN 598
+#define OPPONENT_BRENDAN_12 599
+#define OPPONENT_MAY_10 600
+#define OPPONENT_MAXIE_1 601
+#define OPPONENT_MAXIE_2 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_KIRA_AND_DAN_1 642
+#define OPPONENT_KIRA_AND_DAN_2 643
+#define OPPONENT_KIRA_AND_DAN_3 644
+#define OPPONENT_KIRA_AND_DAN_4 645
+#define OPPONENT_KIRA_AND_DAN_5 646
+#define OPPONENT_JOHANNA 647
+#define OPPONENT_GERALD 648
+#define OPPONENT_VIVIAN 649
+#define OPPONENT_DANIELLE 650
+#define OPPONENT_HIDEO 651
+#define OPPONENT_KEIGO 652
+#define OPPONENT_RILEY 653
+#define OPPONENT_FLINT 654
+#define OPPONENT_ASHLEY 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_13 661
+#define OPPONENT_BRENDAN_14 662
+#define OPPONENT_BRENDAN_15 663
+#define OPPONENT_MAY_11 664
+#define OPPONENT_MAY_12 665
+#define OPPONENT_MAY_13 666
+#define OPPONENT_JONAH 667
+#define OPPONENT_HENRY 668
+#define OPPONENT_ROGER 669
+#define OPPONENT_ALEXA 670
+#define OPPONENT_RUBEN 671
+#define OPPONENT_KOJI_1 672
+#define OPPONENT_WAYNE 673
+#define OPPONENT_AIDAN 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_LILA_AND_ROY_1 687
+#define OPPONENT_LILA_AND_ROY_2 688
+#define OPPONENT_LILA_AND_ROY_3 689
+#define OPPONENT_LILA_AND_ROY_4 690
+#define OPPONENT_LILA_AND_ROY_5 691
+#define OPPONENT_LISA_AND_RAY 692
+#define OPPONENT_CHRIS 693
+#define OPPONENT_DAWSON 694
+#define OPPONENT_SARAH 695
+#define OPPONENT_DARIAN 696
+#define OPPONENT_HAILEY 697
+#define OPPONENT_CHANDLER 698
+#define OPPONENT_KALEB 699
+#define OPPONENT_JOSEPH 700
+#define OPPONENT_ALYSSA 701
+#define OPPONENT_MARCOS 702
+#define OPPONENT_RHETT 703
+#define OPPONENT_TYRON 704
+#define OPPONENT_CELINA 705
+#define OPPONENT_BIANCA 706
+#define OPPONENT_HAYDEN 707
+#define OPPONENT_SOPHIE 708
+#define OPPONENT_COBY 709
+#define OPPONENT_LAWRENCE 710
+#define OPPONENT_WYATT 711
+#define OPPONENT_ANGELINA 712
+#define OPPONENT_KAI 713
+#define OPPONENT_CHARLOTTE 714
+#define OPPONENT_DEANDRE 715
+#define OPPONENT_GRUNT_38 716
+#define OPPONENT_GRUNT_39 717
+#define OPPONENT_GRUNT_40 718
+#define OPPONENT_GRUNT_41 719
+#define OPPONENT_GRUNT_42 720
+#define OPPONENT_GRUNT_43 721
+#define OPPONENT_GRUNT_44 722
+#define OPPONENT_GRUNT_45 723
+#define OPPONENT_GRUNT_46 724
+#define OPPONENT_GRUNT_47 725
+#define OPPONENT_GRUNT_48 726
+#define OPPONENT_GRUNT_49 727
+#define OPPONENT_GRUNT_50 728
+#define OPPONENT_GRUNT_51 729
+#define OPPONENT_GRUNT_52 730
+#define OPPONENT_GRUNT_53 731
+#define OPPONENT_TABITHA_3 732
+#define OPPONENT_DARCY 733
+#define OPPONENT_MAXIE_3 734
+#define OPPONENT_PETE 735
+#define OPPONENT_ISABELLE 736
+#define OPPONENT_ANDRES_1 737
+#define OPPONENT_JOSUE 738
+#define OPPONENT_CAMRON 739
+#define OPPONENT_CORY_1 740
+#define OPPONENT_CAROLINA 741
+#define OPPONENT_ELIJAH 742
+#define OPPONENT_CELIA 743
+#define OPPONENT_BRYAN 744
+#define OPPONENT_BRANDEN 745
+#define OPPONENT_BRYANT 746
+#define OPPONENT_SHAYLA 747
+#define OPPONENT_KYRA 748
+#define OPPONENT_JAIDEN 749
+#define OPPONENT_ALIX 750
+#define OPPONENT_HELENE 751
+#define OPPONENT_MARLENE 752
+#define OPPONENT_DEVAN 753
+#define OPPONENT_JOHNSON 754
+#define OPPONENT_MELINA 755
+#define OPPONENT_BRANDI 756
+#define OPPONENT_AISHA 757
+#define OPPONENT_MAKAYLA 758
+#define OPPONENT_FABIAN 759
+#define OPPONENT_DAYTON 760
+#define OPPONENT_RACHEL 761
+#define OPPONENT_LEONEL 762
+#define OPPONENT_CALLIE 763
+#define OPPONENT_CALE 764
+#define OPPONENT_MYLES 765
+#define OPPONENT_PAT 766
+#define OPPONENT_CRISTIN_1 767
+#define OPPONENT_MAY_14 768
+#define OPPONENT_MAY_15 769
+#define OPPONENT_ROXANNE_2 770
+#define OPPONENT_ROXANNE_3 771
+#define OPPONENT_ROXANNE_4 772
+#define OPPONENT_ROXANNE_5 773
+#define OPPONENT_BRAWLY_2 774
+#define OPPONENT_BRAWLY_3 775
+#define OPPONENT_BRAWLY_4 776
+#define OPPONENT_BRAWLY_5 777
+#define OPPONENT_WATTSON_2 778
+#define OPPONENT_WATTSON_3 779
+#define OPPONENT_WATTSON_4 780
+#define OPPONENT_WATTSON_5 781
+#define OPPONENT_FLANNERY_2 782
+#define OPPONENT_FLANNERY_3 783
+#define OPPONENT_FLANNERY_4 784
+#define OPPONENT_FLANNERY_5 785
+#define OPPONENT_NORMAN_2 786
+#define OPPONENT_NORMAN_3 787
+#define OPPONENT_NORMAN_4 788
+#define OPPONENT_NORMAN_5 789
+#define OPPONENT_WINONA_2 790
+#define OPPONENT_WINONA_3 791
+#define OPPONENT_WINONA_4 792
+#define OPPONENT_WINONA_5 793
+#define OPPONENT_TATE_AND_LIZA_2 794
+#define OPPONENT_TATE_AND_LIZA_3 795
+#define OPPONENT_TATE_AND_LIZA_4 796
+#define OPPONENT_TATE_AND_LIZA_5 797
+#define OPPONENT_JUAN_2 798
+#define OPPONENT_JUAN_3 799
+#define OPPONENT_JUAN_4 800
+#define OPPONENT_JUAN_5 801
+#define OPPONENT_ANGELO 802
+#define OPPONENT_DARIUS 803
+#define OPPONENT_STEVEN 804
+#define OPPONENT_ANABEL 805
+#define OPPONENT_TUCKER 806
+#define OPPONENT_SPENSER 807
+#define OPPONENT_GRETA 808
+#define OPPONENT_NOLAND 809
+#define OPPONENT_LUCY 810
+#define OPPONENT_BRANDON 811
+#define OPPONENT_ANDRES_2 812
+#define OPPONENT_ANDRES_3 813
+#define OPPONENT_ANDRES_4 814
+#define OPPONENT_ANDRES_5 815
+#define OPPONENT_CORY_2 816
+#define OPPONENT_CORY_3 817
+#define OPPONENT_CORY_4 818
+#define OPPONENT_CORY_5 819
+#define OPPONENT_PABLO_2 820
+#define OPPONENT_PABLO_3 821
+#define OPPONENT_PABLO_4 822
+#define OPPONENT_PABLO_5 823
+#define OPPONENT_KOJI_2 824
+#define OPPONENT_KOJI_3 825
+#define OPPONENT_KOJI_4 826
+#define OPPONENT_KOJI_5 827
+#define OPPONENT_CRISTIN_2 828
+#define OPPONENT_CRISTIN_3 829
+#define OPPONENT_CRISTIN_4 830
+#define OPPONENT_CRISTIN_5 831
+#define OPPONENT_FERNANDO_2 832
+#define OPPONENT_FERNANDO_3 833
+#define OPPONENT_FERNANDO_4 834
+#define OPPONENT_FERNANDO_5 835
+#define OPPONENT_SAWYER_2 836
+#define OPPONENT_SAWYER_3 837
+#define OPPONENT_SAWYER_4 838
+#define OPPONENT_SAWYER_5 839
+#define OPPONENT_GABRIELLE_2 840
+#define OPPONENT_GABRIELLE_3 841
+#define OPPONENT_GABRIELLE_4 842
+#define OPPONENT_GABRIELLE_5 843
+#define OPPONENT_THALIA_2 844
+#define OPPONENT_THALIA_3 845
+#define OPPONENT_THALIA_4 846
+#define OPPONENT_THALIA_5 847
+#define OPPONENT_MARIELA 848
+#define OPPONENT_ALVARO 848
+#define OPPONENT_EVERETT 850
+#define OPPONENT_RED 851
+#define OPPONENT_LEAF 852
+#define OPPONENT_BRENDAN_16 853
+#define OPPONENT_MAY_16 854
+
+#endif // GUARD_CONSTANTS_OPPONENTS_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
new file mode 100644
index 000000000..78c1583b4
--- /dev/null
+++ b/include/constants/pokemon.h
@@ -0,0 +1,80 @@
+#ifndef GUARD_CONSTANTS_POKEMON_H
+#define GUARD_CONSTANTS_POKEMON_H
+
+// Pokemon types
+#define TYPE_NORMAL 0x00
+#define TYPE_FIGHTING 0x01
+#define TYPE_FLYING 0x02
+#define TYPE_POISON 0x03
+#define TYPE_GROUND 0x04
+#define TYPE_ROCK 0x05
+#define TYPE_BUG 0x06
+#define TYPE_GHOST 0x07
+#define TYPE_STEEL 0x08
+#define TYPE_MYSTERY 0x09
+#define TYPE_FIRE 0x0a
+#define TYPE_WATER 0x0b
+#define TYPE_GRASS 0x0c
+#define TYPE_ELECTRIC 0x0d
+#define TYPE_PSYCHIC 0x0e
+#define TYPE_ICE 0x0f
+#define TYPE_DRAGON 0x10
+#define TYPE_DARK 0x11
+#define NUMBER_OF_MON_TYPES 0x12
+
+// Pokemon egg groups
+#define EGG_GROUP_NONE 0
+#define EGG_GROUP_MONSTER 1
+#define EGG_GROUP_WATER_1 2
+#define EGG_GROUP_BUG 3
+#define EGG_GROUP_FLYING 4
+#define EGG_GROUP_FIELD 5
+#define EGG_GROUP_FAIRY 6
+#define EGG_GROUP_GRASS 7
+#define EGG_GROUP_HUMAN_LIKE 8
+#define EGG_GROUP_WATER_3 9
+#define EGG_GROUP_MINERAL 10
+#define EGG_GROUP_AMORPHOUS 11
+#define EGG_GROUP_WATER_2 12
+#define EGG_GROUP_DITTO 13
+#define EGG_GROUP_DRAGON 14
+#define EGG_GROUP_UNDISCOVERED 15
+
+// Pokemon natures
+#define NATURE_HARDY 0
+#define NATURE_LONELY 1
+#define NATURE_BRAVE 2
+#define NATURE_ADAMANT 3
+#define NATURE_NAUGHTY 4
+#define NATURE_BOLD 5
+#define NATURE_DOCILE 6
+#define NATURE_RELAXED 7
+#define NATURE_IMPISH 8
+#define NATURE_LAX 9
+#define NATURE_TIMID 10
+#define NATURE_HASTY 11
+#define NATURE_SERIOUS 12
+#define NATURE_JOLLY 13
+#define NATURE_NAIVE 14
+#define NATURE_MODEST 15
+#define NATURE_MILD 16
+#define NATURE_QUIET 17
+#define NATURE_BASHFUL 18
+#define NATURE_RASH 19
+#define NATURE_CALM 20
+#define NATURE_GENTLE 21
+#define NATURE_SASSY 22
+#define NATURE_CAREFUL 23
+#define NATURE_QUIRKY 24
+
+// Pokemon Stats
+#define STAT_HP 0
+#define STAT_ATK 1
+#define STAT_DEF 2
+#define STAT_SPEED 3
+#define STAT_SPATK 4
+#define STAT_SPDEF 5
+#define STAT_ACC 6 // only in battles
+#define STAT_EVASION 7 // only in battles
+
+#endif // GUARD_CONSTANTS_POKEMON_H
diff --git a/include/constants/region_map_sections.h b/include/constants/region_map_sections.h
new file mode 100644
index 000000000..b9c518b1b
--- /dev/null
+++ b/include/constants/region_map_sections.h
@@ -0,0 +1,219 @@
+#ifndef GUARD_REGIONMAPSEC_H
+#define GUARD_REGIONMAPSEC_H
+
+#define MAPSEC_LITTLEROOT_TOWN 0x00
+#define MAPSEC_OLDALE_TOWN 0x01
+#define MAPSEC_DEWFORD_TOWN 0x02
+#define MAPSEC_LAVARIDGE_TOWN 0x03
+#define MAPSEC_FALLARBOR_TOWN 0x04
+#define MAPSEC_VERDANTURF_TOWN 0x05
+#define MAPSEC_PACIFIDLOG_TOWN 0x06
+#define MAPSEC_PETALBURG_CITY 0x07
+#define MAPSEC_SLATEPORT_CITY 0x08
+#define MAPSEC_MAUVILLE_CITY 0x09
+#define MAPSEC_RUSTBORO_CITY 0x0A
+#define MAPSEC_FORTREE_CITY 0x0B
+#define MAPSEC_LILYCOVE_CITY 0x0C
+#define MAPSEC_MOSSDEEP_CITY 0x0D
+#define MAPSEC_SOOTOPOLIS_CITY 0x0E
+#define MAPSEC_EVER_GRANDE_CITY 0x0F
+#define MAPSEC_ROUTE_101 0x10
+#define MAPSEC_ROUTE_102 0x11
+#define MAPSEC_ROUTE_103 0x12
+#define MAPSEC_ROUTE_104 0x13
+#define MAPSEC_ROUTE_105 0x14
+#define MAPSEC_ROUTE_106 0x15
+#define MAPSEC_ROUTE_107 0x16
+#define MAPSEC_ROUTE_108 0x17
+#define MAPSEC_ROUTE_109 0x18
+#define MAPSEC_ROUTE_110 0x19
+#define MAPSEC_ROUTE_111 0x1A
+#define MAPSEC_ROUTE_112 0x1B
+#define MAPSEC_ROUTE_113 0x1C
+#define MAPSEC_ROUTE_114 0x1D
+#define MAPSEC_ROUTE_115 0x1E
+#define MAPSEC_ROUTE_116 0x1F
+#define MAPSEC_ROUTE_117 0x20
+#define MAPSEC_ROUTE_118 0x21
+#define MAPSEC_ROUTE_119 0x22
+#define MAPSEC_ROUTE_120 0x23
+#define MAPSEC_ROUTE_121 0x24
+#define MAPSEC_ROUTE_122 0x25
+#define MAPSEC_ROUTE_123 0x26
+#define MAPSEC_ROUTE_124 0x27
+#define MAPSEC_ROUTE_125 0x28
+#define MAPSEC_ROUTE_126 0x29
+#define MAPSEC_ROUTE_127 0x2A
+#define MAPSEC_ROUTE_128 0x2B
+#define MAPSEC_ROUTE_129 0x2C
+#define MAPSEC_ROUTE_130 0x2D
+#define MAPSEC_ROUTE_131 0x2E
+#define MAPSEC_ROUTE_132 0x2F
+#define MAPSEC_ROUTE_133 0x30
+#define MAPSEC_ROUTE_134 0x31
+#define MAPSEC_UNDERWATER_124 0x32
+#define MAPSEC_UNDERWATER_125 0x33
+#define MAPSEC_UNDERWATER_126 0x34
+#define MAPSEC_UNDERWATER_127 0x35
+#define MAPSEC_UNDERWATER_SOOTOPOLIS 0x36
+#define MAPSEC_GRANITE_CAVE 0x37
+#define MAPSEC_MT_CHIMNEY 0x38
+#define MAPSEC_SAFARI_ZONE 0x39
+#define MAPSEC_BATTLE_FRONTIER 0x3A
+#define MAPSEC_PETALBURG_WOODS 0x3B
+#define MAPSEC_RUSTURF_TUNNEL 0x3C
+#define MAPSEC_ABANDONED_SHIP 0x3D
+#define MAPSEC_NEW_MAUVILLE 0x3E
+#define MAPSEC_METEOR_FALLS 0x3F
+#define MAPSEC_METEOR_FALLS2 0x40
+#define MAPSEC_MT_PYRE 0x41
+#define MAPSEC_AQUA_HIDEOUT_OLD 0x42
+#define MAPSEC_SHOAL_CAVE 0x43
+#define MAPSEC_SEAFLOOR_CAVERN 0x44
+#define MAPSEC_UNDERWATER_128 0x45
+#define MAPSEC_VICTORY_ROAD 0x46
+#define MAPSEC_MIRAGE_ISLAND 0x47
+#define MAPSEC_CAVE_OF_ORIGIN 0x48
+#define MAPSEC_SOUTHERN_ISLAND 0x49
+#define MAPSEC_FIERY_PATH 0x4A
+#define MAPSEC_FIERY_PATH2 0x4B
+#define MAPSEC_JAGGED_PASS 0x4C
+#define MAPSEC_JAGGED_PASS2 0x4D
+#define MAPSEC_SEALED_CHAMBER 0x4E
+#define MAPSEC_UNDERWATER_SEALED_CHAMBER 0x4F
+#define MAPSEC_SCORCHED_SLAB 0x50
+#define MAPSEC_ISLAND_CAVE 0x51
+#define MAPSEC_DESERT_RUINS 0x52
+#define MAPSEC_ANCIENT_TOMB 0x53
+#define MAPSEC_INSIDE_OF_TRUCK 0x54
+#define MAPSEC_SKY_PILLAR 0x55
+#define MAPSEC_SECRET_BASE 0x56
+#define MAPSEC_DYNAMIC 0x57
+#define MAPSEC_PALLET_TOWN 0x58
+#define MAPSEC_VIRIDIAN_CITY 0x59
+#define MAPSEC_PEWTER_CITY 0x5A
+#define MAPSEC_CERULEAN_CITY 0x5B
+#define MAPSEC_LAVENDER_TOWN 0x5C
+#define MAPSEC_VERMILION_CITY 0x5D
+#define MAPSEC_CELADON_CITY 0x5E
+#define MAPSEC_FUCHSIA_CITY 0x5F
+#define MAPSEC_CINNABAR_ISLAND 0x60
+#define MAPSEC_INDIGO_PLATEAU 0x61
+#define MAPSEC_SAFFRON_CITY 0x62
+#define MAPSEC_ROUTE_4_FLYDUP 0x63
+#define MAPSEC_ROUTE_10_FLYDUP 0x64
+#define MAPSEC_ROUTE_1 0x65
+#define MAPSEC_ROUTE_2 0x66
+#define MAPSEC_ROUTE_3 0x67
+#define MAPSEC_ROUTE_4 0x68
+#define MAPSEC_ROUTE_5 0x69
+#define MAPSEC_ROUTE_6 0x6A
+#define MAPSEC_ROUTE_7 0x6B
+#define MAPSEC_ROUTE_8 0x6C
+#define MAPSEC_ROUTE_9 0x6D
+#define MAPSEC_ROUTE_10 0x6E
+#define MAPSEC_ROUTE_11 0x6F
+#define MAPSEC_ROUTE_12 0x70
+#define MAPSEC_ROUTE_13 0x71
+#define MAPSEC_ROUTE_14 0x72
+#define MAPSEC_ROUTE_15 0x73
+#define MAPSEC_ROUTE_16 0x74
+#define MAPSEC_ROUTE_17 0x75
+#define MAPSEC_ROUTE_18 0x76
+#define MAPSEC_ROUTE_19 0x77
+#define MAPSEC_ROUTE_20 0x78
+#define MAPSEC_ROUTE_21 0x79
+#define MAPSEC_ROUTE_22 0x7A
+#define MAPSEC_ROUTE_23 0x7B
+#define MAPSEC_ROUTE_24 0x7C
+#define MAPSEC_ROUTE_25 0x7D
+#define MAPSEC_VIRIDIAN_FOREST 0x7E
+#define MAPSEC_MT_MOON 0x7F
+#define MAPSEC_S_S_ANNE 0x80
+#define MAPSEC_UNDERGROUND_PATH 0x81
+#define MAPSEC_UNDERGROUND_PATH_2 0x82
+#define MAPSEC_DIGLETTS_CAVE 0x83
+#define MAPSEC_KANTO_VICTORY_ROAD 0x84
+#define MAPSEC_ROCKET_HIDEOUT 0x85
+#define MAPSEC_SILPH_CO 0x86
+#define MAPSEC_POKEMON_MANSION 0x87
+#define MAPSEC_KANTO_SAFARI_ZONE 0x88
+#define MAPSEC_POKEMON_LEAGUE 0x89
+#define MAPSEC_ROCK_TUNNEL 0x8A
+#define MAPSEC_SEAFOAM_ISLANDS 0x8B
+#define MAPSEC_POKEMON_TOWER 0x8C
+#define MAPSEC_CERULEAN_CAVE 0x8D
+#define MAPSEC_POWER_PLANT 0x8E
+#define MAPSEC_ONE_ISLAND 0x8F
+#define MAPSEC_TWO_ISLAND 0x90
+#define MAPSEC_THREE_ISLAND 0x91
+#define MAPSEC_FOUR_ISLAND 0x92
+#define MAPSEC_FIVE_ISLAND 0x93
+#define MAPSEC_SEVEN_ISLAND 0x94
+#define MAPSEC_SIX_ISLAND 0x95
+#define MAPSEC_KINDLE_ROAD 0x96
+#define MAPSEC_TREASURE_BEACH 0x97
+#define MAPSEC_CAPE_BRINK 0x98
+#define MAPSEC_BOND_BRIDGE 0x99
+#define MAPSEC_THREE_ISLE_PORT 0x9A
+#define MAPSEC_SEVII_ISLE_6 0x9B
+#define MAPSEC_SEVII_ISLE_7 0x9C
+#define MAPSEC_SEVII_ISLE_8 0x9D
+#define MAPSEC_SEVII_ISLE_9 0x9E
+#define MAPSEC_RESORT_GORGEOUS 0x9F
+#define MAPSEC_WATER_LABYRINTH 0xA0
+#define MAPSEC_FIVE_ISLE_MEADOW 0xA1
+#define MAPSEC_MEMORIAL_PILLAR 0xA2
+#define MAPSEC_OUTCAST_ISLAND 0xA3
+#define MAPSEC_GREEN_PATH 0xA4
+#define MAPSEC_WATER_PATH 0xA5
+#define MAPSEC_RUIN_VALLEY 0xA6
+#define MAPSEC_TRAINER_TOWER 0xA7
+#define MAPSEC_CANYON_ENTRANCE 0xA8
+#define MAPSEC_SEVAULT_CANYON 0xA9
+#define MAPSEC_TANOBY_RUINS 0xAA
+#define MAPSEC_SEVII_ISLE_22 0xAB
+#define MAPSEC_SEVII_ISLE_23 0xAC
+#define MAPSEC_SEVII_ISLE_24 0xAD
+#define MAPSEC_NAVEL_ROCK 0xAE
+#define MAPSEC_MT_EMBER 0xAF
+#define MAPSEC_BERRY_FOREST 0xB0
+#define MAPSEC_ICEFALL_CAVE 0xB1
+#define MAPSEC_ROCKET_WAREHOUSE 0xB2
+#define MAPSEC_TRAINER_TOWER_2 0xB3
+#define MAPSEC_DOTTED_HOLE 0xB4
+#define MAPSEC_LOST_CAVE 0xB5
+#define MAPSEC_PATTERN_BUSH 0xB6
+#define MAPSEC_ALTERING_CAVE 0xB7
+#define MAPSEC_TANOBY_CHAMBERS 0xB8
+#define MAPSEC_THREE_ISLE_PATH 0xB9
+#define MAPSEC_TANOBY_KEY 0xBA
+#define MAPSEC_BIRTH_ISLAND 0xBB
+#define MAPSEC_MONEAN_CHAMBER 0xBC
+#define MAPSEC_LIPTOO_CHAMBER 0xBD
+#define MAPSEC_WEEPTH_CHAMBER 0xBE
+#define MAPSEC_DILFORD_CHAMBER 0xBF
+#define MAPSEC_SCUFIB_CHAMBER 0xC0
+#define MAPSEC_RIXY_CHAMBER 0xC1
+#define MAPSEC_VIAPOIS_CHAMBER 0xC2
+#define MAPSEC_EMBER_SPA 0xC3
+#define MAPSEC_SPECIAL_AREA 0xC4
+#define MAPSEC_AQUA_HIDEOUT 0xC5
+#define MAPSEC_MAGMA_HIDEOUT 0xC6
+#define MAPSEC_MIRAGE_TOWER 0xC7
+#define MAPSEC_BIRTH_ISLAND_2 0xC8
+#define MAPSEC_FARAWAY_ISLAND 0xC9
+#define MAPSEC_ARTISAN_CAVE 0xCA
+#define MAPSEC_MARINE_CAVE 0xCB
+#define MAPSEC_UNDERWATER_MARINE_CAVE 0xCC
+#define MAPSEC_TERRA_CAVE 0xCD
+#define MAPSEC_UNDERWATER_TERRA_CAVE 0xCE
+#define MAPSEC_UNDERWATER_UNK1 0xCF
+#define MAPSEC_UNDERWATER_129 0xD0
+#define MAPSEC_DESERT_UNDERPASS 0xD1
+#define MAPSEC_ALTERING_CAVE_2 0xD2
+#define MAPSEC_NAVEL_ROCK2 0xD3
+#define MAPSEC_TRAINER_HILL 0xD4
+#define MAPSEC_NONE 0xD5
+
+#endif //GUARD_REGIONMAPSEC_H
diff --git a/include/constants/rgb.h b/include/constants/rgb.h
new file mode 100644
index 000000000..8b323799f
--- /dev/null
+++ b/include/constants/rgb.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_RGB_H
+#define GUARD_RGB_H
+
+#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
+#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F))
+
+#define RGB_BLACK RGB(0, 0, 0)
+#define RGB_WHITE RGB(31, 31, 31)
+#define RGB_RED RGB(31, 0, 0)
+#define RGB_GREEN RGB(0, 31, 0)
+#define RGB_BLUE RGB(0, 0, 31)
+#define RGB_YELLOW RGB(31, 31, 0)
+#define RGB_MAGENTA RGB(31, 0, 31)
+#define RGB_CYAN RGB(0, 31, 31)
+
+#endif // GUARD_RGB_H
diff --git a/include/constants/songs.h b/include/constants/songs.h
new file mode 100644
index 000000000..58a8e725c
--- /dev/null
+++ b/include/constants/songs.h
@@ -0,0 +1,541 @@
+#ifndef GUARD_CONSTANTS_SONGS_H
+#define GUARD_CONSTANTS_SONGS_H
+
+#define MUS_DUMMY 0
+#define SE_KAIFUKU 1 // Healing Item
+#define SE_PC_LOGIN 2 // PC Logon
+#define SE_PC_OFF 3 // PC Shutdown
+#define SE_PC_ON 4 // PC Startup
+#define SE_SELECT 5 // Cursor Selection
+#define SE_WIN_OPEN 6 // Start Menu
+#define SE_WALL_HIT 7 // Wall Bump
+#define SE_DOOR 8 // Opening Door
+#define SE_KAIDAN 9 // Stairs
+#define SE_DANSA 10 // Ledge
+#define SE_JITENSYA 11 // Bicycle Bell
+#define SE_KOUKA_L 12 // Not Very Effective
+#define SE_KOUKA_M 13 // Normal Effectiveness
+#define SE_KOUKA_H 14 // Super Effective
+#define SE_BOWA2 15 // Pokémon Withdrawal
+#define SE_POKE_DEAD 16 // Pokémon Fainted
+#define SE_NIGERU 17 // Flee from Wild Battle
+#define SE_JIDO_DOA 18 // Pokémon Center Door
+#define SE_NAMINORI 19 // Briney's Ship
+#define SE_BAN 20 // Bang
+#define SE_PIN 21 // Exclamation Bubble
+#define SE_BOO 22 // Contest Jam
+#define SE_BOWA 23 // Giving Poké Ball to Nurse, Poké Ball Wiggle
+#define SE_JYUNI 24 // Places in Contest Appearing
+#define SE_A 25 // Bard A
+#define SE_I 26 // Bard I
+#define SE_U 27 // Bard U
+#define SE_E 28 // Bard E
+#define SE_O 29 // Bard O
+#define SE_N 30 // Bard N
+#define SE_SEIKAI 31 // Success
+#define SE_HAZURE 32 // Failure
+#define SE_EXP 33 // Exp. Bar
+#define SE_JITE_PYOKO 34 // Bunny Hop
+#define SE_MU_PACHI 35
+#define SE_TK_KASYA 36 // Mossdeep Gym/Trick House Switch
+#define SE_FU_ZAKU 37
+#define SE_FU_ZAKU2 38
+#define SE_FU_ZUZUZU 39 // Lavaridge Gym Warp
+#define SE_RU_GASHIN 40 // Sootopolis Gym - Stairs Appear
+#define SE_RU_GASYAN 41 // Sootopolis Gym - Ice Breaking
+#define SE_RU_BARI 42 // Sootopolis Gym - Walking on Ice
+#define SE_RU_HYUU 43 // Falling Down
+#define SE_KI_GASYAN 44
+#define SE_TK_WARPIN 45 // Warp In
+#define SE_TK_WARPOUT 46 // Warp Out
+#define SE_TU_SAA 47 // Repel
+#define SE_HI_TURUN 48 // Moving Obstacle in Fortree Gym
+#define SE_TRACK_MOVE 49 // Moving Truck
+#define SE_TRACK_STOP 50 // Moving Truck Stop
+#define SE_TRACK_HAIKI 51 // Moving Truck Unload
+#define SE_TRACK_DOOR 52 // Moving Truck Door
+#define SE_MOTER 53
+#define SE_CARD 54
+#define SE_SAVE 55 // Save
+#define SE_KON 56 // Poké Ball Bounce 1
+#define SE_KON2 57 // Poké Ball Bounce 2
+#define SE_KON3 58 // Poké Ball Bounce 3
+#define SE_KON4 59 // Poké Ball Bounce 4
+#define SE_SUIKOMU 60 // Poké Ball Trade
+#define SE_NAGERU 61 // Poké Ball Throw
+#define SE_TOY_C 62 // Note C
+#define SE_TOY_D 63 // Note D
+#define SE_TOY_E 64 // Note E
+#define SE_TOY_F 65 // Note F
+#define SE_TOY_G 66 // Note G
+#define SE_TOY_A 67 // Note A
+#define SE_TOY_B 68 // Note B
+#define SE_TOY_C1 69 // Note High C
+#define SE_MIZU 70 // Puddle
+#define SE_HASHI 71 // Boardwalk
+#define SE_DAUGI 72 // Slots Credits
+#define SE_PINPON 73 // Ding-dong!
+#define SE_FUUSEN1 74 // Red Balloon
+#define SE_FUUSEN2 75 // Blue Balloon
+#define SE_FUUSEN3 76 // Yellow Balloon
+#define SE_TOY_KABE 77 // Breakable Door
+#define SE_TOY_DANGO 78 // Mud Ball
+#define SE_DOKU 79 // Overworld Poison Damage
+#define SE_ESUKA 80 // Escalator
+#define SE_T_AME 81 // Rain
+#define SE_T_AME_E 82 // Rain Stop
+#define SE_T_OOAME 83 // Heavy Rain
+#define SE_T_OOAME_E 84 // Heavy Rain Stop
+#define SE_T_KOAME 85 // Light Rain
+#define SE_T_KOAME_E 86 // Light Rain Stop
+#define SE_T_KAMI 87 // Thunder
+#define SE_T_KAMI2 88 // Thunder 2
+#define SE_ELEBETA 89 // Elevator
+#define SE_HINSI 90 // Low Health
+#define SE_EXPMAX 91 // Exp. Max
+#define SE_TAMAKORO 92 // Roulette Ball
+#define SE_TAMAKORO_E 93 // Roulette Ball 2
+#define SE_BASABASA 94
+#define SE_REGI 95 // Cash Register
+#define SE_C_GAJI 96 // Contest Hearts
+#define SE_C_MAKU_U 97 // Contest Curtain rise
+#define SE_C_MAKU_D 98 // Contest Curtain fall
+#define SE_C_PASI 99
+#define SE_C_SYU 100
+#define SE_C_PIKON 101 // Pokémon Appears in Contest
+#define SE_REAPOKE 102 // Shiny Pokémon
+#define SE_OP_BASYU 103 // Opening Movie -> Title Screen whoosh
+#define SE_BT_START 104 // Battle Mugshot whoosh
+#define SE_DENDOU 105 // Audience Cheering
+#define SE_JIHANKI 106 // Vending Machine
+#define SE_TAMA 107 // Orb Used
+#define SE_Z_SCROLL 108 // Pokédex Scrolling
+#define SE_Z_PAGE 109 // Pokédex Page
+#define SE_PN_ON 110 // PokéNav On
+#define SE_PN_OFF 111 // PokéNav Off
+#define SE_Z_SEARCH 112 // Pokédex Search
+#define SE_TAMAGO 113 // Egg hatch
+#define SE_TB_START 114 // Battle - Poké Ball Tray slide in
+#define SE_TB_KON 115 // Battle - Poké Ball Tray ball sound
+#define SE_TB_KARA 116 // Battle - Poké Ball Tray slide out
+#define SE_BIDORO 117
+#define SE_W085 118 // Thunderbolt
+#define SE_W085B 119 // Thunderbolt 2
+#define SE_W231 120 // Harden
+#define SE_W171 121 // Nightmare
+#define SE_W233 122 // Vital Throw
+#define SE_W233B 123 // Vital Throw 2
+#define SE_W145 124 // Bubble
+#define SE_W145B 125 // Bubble 2
+#define SE_W145C 126 // Bubble 3
+#define SE_W240 127 // Rain Dance
+#define SE_W015 128 // Cut
+#define SE_W081 129 // String Shot
+#define SE_W081B 130 // String Shot 2
+#define SE_W088 131 // Rock Throw
+#define SE_W016 132 // Gust
+#define SE_W016B 133 // Gust 2
+#define SE_W003 134 // DoubleSlap
+#define SE_W104 135 // Double Team
+#define SE_W013 136 // Razor Wind
+#define SE_W196 137 // Icy Wind
+#define SE_W086 138 // Thunder Wave
+#define SE_W004 139 // Comet Punch
+#define SE_W025 140 // Mega Kick
+#define SE_W025B 141 // Mega Kick 2
+#define SE_W152 142 // Crabhammer
+#define SE_W026 143 // Jump Kick
+#define SE_W172 144 // Flame Wheel
+#define SE_W172B 145 // Flame Wheel 2
+#define SE_W053 146 // Flamethrower
+#define SE_W007 147 // Fire Punch
+#define SE_W092 148 // Toxic
+#define SE_W221 149 // Sacred Fire
+#define SE_W221B 150 // Sacred Fire 2
+#define SE_W052 151 // Ember
+#define SE_W036 152 // Take Down
+#define SE_W059 153 // Blizzard
+#define SE_W059B 154 // Blizzard 2
+#define SE_W010 155 // Scratch
+#define SE_W011 156 // Vicegrip
+#define SE_W017 157 // Wing Attack
+#define SE_W019 158 // Fly
+#define SE_W028 159 // Sand-Attack
+#define SE_W013B 160 // Razor Wind 2
+#define SE_W044 161 // Bite
+#define SE_W029 162 // Headbutt
+#define SE_W057 163 // Surf
+#define SE_W056 164 // Hydro Pump
+#define SE_W250 165 // Whirlpool
+#define SE_W030 166 // Horn Attack
+#define SE_W039 167 // Tail Whip
+#define SE_W054 168 // Mist
+#define SE_W077 169 // PoisonPowder
+#define SE_W020 170 // Bind
+#define SE_W082 171 // Dragon Rage
+#define SE_W047 172 // Sing
+#define SE_W195 173 // Perish Song
+#define SE_W006 174 // Pay Day
+#define SE_W091 175 // Dig
+#define SE_W146 176 // Dizzy Punch
+#define SE_W120 177 // Self-Destruct
+#define SE_W153 178 // Explosion
+#define SE_W071B 179 // Absorb 2
+#define SE_W071 180 // Absorb
+#define SE_W103 181 // Screech
+#define SE_W062 182 // BubbleBeam
+#define SE_W062B 183 // BubbleBeam 2
+#define SE_W048 184 // Supersonic
+#define SE_W187 185 // Belly Drum
+#define SE_W118 186 // Metronome
+#define SE_W155 187 // Bonemerang
+#define SE_W122 188 // Lick
+#define SE_W060 189 // Psybeam
+#define SE_W185 190 // Faint Attack
+#define SE_W014 191 // Swords Dance
+#define SE_W043 192 // Leer
+#define SE_W207 193 // Swagger
+#define SE_W207B 194 // Swagger 2
+#define SE_W215 195 // Heal Bell
+#define SE_W109 196 // Confuse Ray
+#define SE_W173 197 // Snore
+#define SE_W280 198 // Brick Break
+#define SE_W202 199 // Giga Drain
+#define SE_W060B 200 // Psybeam 2
+#define SE_W076 201 // SolarBeam
+#define SE_W080 202 // Petal Dance
+#define SE_W100 203 // Teleport
+#define SE_W107 204 // Minimize
+#define SE_W166 205 // Sketch
+#define SE_W129 206 // Swift
+#define SE_W115 207 // Reflect
+#define SE_W112 208 // Barrier
+#define SE_W197 209 // Detect
+#define SE_W199 210 // Lock-On
+#define SE_W236 211 // Moonlight
+#define SE_W204 212 // Charm
+#define SE_W268 213 // Charge
+#define SE_W070 214 // Strength
+#define SE_W063 215 // Hyper Beam
+#define SE_W127 216 // Waterfall
+#define SE_W179 217 // Reversal
+#define SE_W151 218 // Acid Armor
+#define SE_W201 219 // Sandstorm
+#define SE_W161 220 // Tri-Attack
+#define SE_W161B 221 // Tri-Attack 2
+#define SE_W227 222 // Encore
+#define SE_W227B 223 // Encore 2
+#define SE_W226 224 // Baton Pass
+#define SE_W208 225 // Milk Drink
+#define SE_W213 226 // Attract
+#define SE_W213B 227 // Attract 2
+#define SE_W234 228 // Morning Sun
+#define SE_W260 229 // Flatter
+#define SE_W328 230 // Sand Tomb
+#define SE_W320 231 // GrassWhistle
+#define SE_W255 232 // Spit Up
+#define SE_W291 233 // Dive
+#define SE_W089 234 // Earthquake
+#define SE_W239 235 // Twister
+#define SE_W230 236 // Sweet Scent
+#define SE_W281 237 // Yawn
+#define SE_W327 238 // Sky Uppercut
+#define SE_W287 239 // Stat Increased
+#define SE_W257 240 // Heat Wave
+#define SE_W253 241 // Uproar
+#define SE_W258 242 // Hail
+#define SE_W322 243 // Cosmic Power
+#define SE_W298 244 // Teeter Dance
+#define SE_W287B 245 // Stat Decreased
+#define SE_W114 246 // Haze
+#define SE_W063B 247 // Hyper Beam 2
+// FRLG SFX below
+#define SE_RG_W_DOOR 248 // Door
+#define SE_RG_CARD1 249 // Trainer Card 1
+#define SE_RG_CARD2 250 // Trainer Card 2
+#define SE_RG_CARD3 251 // Trainer Card 3
+#define SE_RG_BAG1 252 // Bag Scroll
+#define SE_RG_BAG2 253 // Bag Pocket Change
+#define SE_RG_GETTING 254
+#define SE_RG_SHOP 255 // Cash Register
+#define SE_RG_KITEKI 256 // S.S. Anne Horn
+#define SE_RG_HELP_OP 257 // Help Menu Open
+#define SE_RG_HELP_CL 258 // Help Menu Close
+#define SE_RG_HELP_NG 259 // Help Menu Error
+#define SE_RG_DEOMOV 260 // Deoxys Moves
+#define SE_RG_EXCELLENT 261
+#define SE_RG_NAWAMISS 262
+// end FRLG SFX
+#define SE_TOREEYE 263 // Trainer's Eye Call
+#define SE_TOREOFF 264 // Trainer's Eye Hang Up
+#define SE_HANTEI1 265 // Battle Arena Time's Up 1
+#define SE_HANTEI2 266 // Battle Arena Time's Up 2
+#define SE_CURTAIN 267 // Battle Pike Curtain Open
+#define SE_CURTAIN1 268 // Battle Pike Curtain Close
+#define SE_USSOKI 269 // Sudowoodo
+
+#define MUS_TETSUJI 350 // Littleroot Town Test 'TETSUJI'
+#define MUS_FIELD13 351 // GSC - Route 38
+#define MUS_KACHI22 352 // Wild Pokémon Defeated
+#define MUS_KACHI2 353 // Wild Pokémon Defeated with Intro
+#define MUS_KACHI3 354 // Gym Leader Defeated
+#define MUS_KACHI5 355 // Victory! Elite Four
+#define MUS_PCC 356 // Crystal - Pokémon Communication Center
+#define MUS_NIBI 357 // GSC - Viridian/Saffron/Pewter/etc
+#define MUS_SUIKUN 358 // Crystal - Battle! Legendary Beasts
+#define MUS_DOORO1 359 // Route 101
+#define MUS_DOORO_X1 360 // Route 110
+#define MUS_DOORO_X3 361 // Route 120
+#define MUS_MACHI_S2 362 // Petalburg City
+#define MUS_MACHI_S4 363 // Oldale/Lavaridge Town
+#define MUS_GIM 364 // Gym
+#define MUS_NAMINORI 365 // Surfing
+#define MUS_DAN01 366 // Caves and Darkness
+#define MUS_FANFA1 367 // Level Up!
+#define MUS_ME_ASA 368 // Pokémon Healed
+#define MUS_ME_BACHI 369 // Obtained a Badge!
+#define MUS_FANFA4 370 // Obtained an Item!
+#define MUS_FANFA5 371 // Your Pokémon Just Evolved!
+#define MUS_ME_WAZA 372 // Obtained a TM/HM!
+#define MUS_BIJYUTU 373 // Lilycove Museum
+#define MUS_DOORO_X4 374 // Route 122/Intro
+#define MUS_FUNE_KAN 375 // Slateport Museum
+#define MUS_ME_SHINKA 376 // Evolution Intro
+#define MUS_SHINKA 377 // Evolution
+#define MUS_ME_WASURE 378 // Move Deleted/Messed Up Appeal
+#define MUS_SYOUJOEYE 379 // Encounter! Tuber
+#define MUS_BOYEYE 380 // Encounter! Boy
+#define MUS_DAN02 381 // Abandoned Ship/Southern Island
+#define MUS_MACHI_S3 382 // Fortree City/Pacifidlog Town
+#define MUS_ODAMAKI 383 // Professor Birch's Lab
+#define MUS_B_TOWER 384 // Battle Tower (RS)
+#define MUS_SWIMEYE 385 // Encounter! Swimmer
+#define MUS_DAN03 386 // Meteor Falls/Cave of Origin
+#define MUS_ME_KINOMI 387 // Obtained a Berry!
+#define MUS_ME_TAMA 388 // Awakening the Super-Ancient Pokémon
+#define MUS_ME_B_BIG 389 // Slots Jackpot!
+#define MUS_ME_B_SMALL 390 // Slots Victory!
+#define MUS_ME_ZANNEN 391 // Too bad!
+#define MUS_BD_TIME 392 // Roulette!
+#define MUS_TEST1 393 // Contest Test 1
+#define MUS_TEST2 394 // Contest Test 2
+#define MUS_TEST3 395 // Contest Test 3
+#define MUS_TEST4 396 // Contest Test 4
+#define MUS_TEST 397 // Encounter! Gentleman
+#define MUS_GOMACHI0 398 // Verdanturf Town
+#define MUS_GOTOWN 399 // Rustboro/Mauville/Mossdeep City
+#define MUS_POKECEN 400 // Pokémon Center
+#define MUS_NEXTROAD 401 // Route 104
+#define MUS_GRANROAD 402 // Route 119
+#define MUS_CYCLING 403 // Cycling
+#define MUS_FRIENDLY 404 // Pokémart
+#define MUS_MISHIRO 405 // Littleroot Town
+#define MUS_TOZAN 406 // Sky Pillar
+#define MUS_GIRLEYE 407 // Encounter! Girl
+#define MUS_MINAMO 408 // Lilycove City
+#define MUS_ASHROAD 409 // Route 111
+#define MUS_EVENT0 410 // Help me!
+#define MUS_DEEPDEEP 411 // Underwater
+#define MUS_KACHI1 412 // Victory! Trainer
+#define MUS_TITLE3 413 // Title Screen
+#define MUS_DEMO1 414 // Opening Movie
+#define MUS_GIRL_SUP 415 // Encounter! May
+#define MUS_HAGESHII 416 // Encounter! Biker
+#define MUS_KAKKOII 417 // Encounter! Electric Trainer
+#define MUS_KAZANBAI 418 // Route 113
+#define MUS_AQA_0 419 // Encounter! Team Aqua
+#define MUS_TSURETEK 420 // Follow Me!
+#define MUS_BOY_SUP 421 // Encounter! Brendan
+#define MUS_RAINBOW 422 // Ever Grande City
+#define MUS_AYASII 423 // Encounter! Psychic
+#define MUS_KACHI4 424 // Victory! Aqua/Magma Grunt
+#define MUS_ROPEWAY 425 // Cable Car
+#define MUS_CASINO 426 // Game Corner
+#define MUS_HIGHTOWN 427 // Dewford Town
+#define MUS_SAFARI 428 // Safari Zone
+#define MUS_C_ROAD 429 // Victory Road
+#define MUS_AJITO 430 // Aqua/Magma Hideout
+#define MUS_M_BOAT 431 // Sailing
+#define MUS_M_DUNGON 432 // Mt. Pyre (Inside)
+#define MUS_FINECITY 433 // Slateport City
+#define MUS_MACHUPI 434 // Mt. Pyre (Outside)
+#define MUS_P_SCHOOL 435 // Pokémon Trainer's School
+#define MUS_DENDOU 436 // You're the Champion!
+#define MUS_TONEKUSA 437 // Fallarbor Town
+#define MUS_MABOROSI 438 // Sealed Chamber
+#define MUS_CON_FAN 439 // Obtained a Contest Ribbon!
+#define MUS_CONTEST0 440 // Pokémon Contest
+#define MUS_MGM0 441 // Encounter! Team Magma
+#define MUS_T_BATTLE 442 // Opening Battle
+#define MUS_OOAME 443 // The Flood
+#define MUS_HIDERI 444 // The Drought
+#define MUS_RUNECITY 445 // Sootopolis City
+#define MUS_CON_K 446 // Contest/Berry Blending Results
+#define MUS_EIKOU_R 447 // Hall of Fame
+#define MUS_KARAKURI 448 // Trick House
+#define MUS_HUTAGO 449 // Encounter! Kid
+#define MUS_SITENNOU 450 // Encounter! Elite Four
+#define MUS_YAMA_EYE 451 // Encounter! Hiker
+#define MUS_CONLOBBY 452 // Contest Lobby
+#define MUS_INTER_V 453 // Encounter! Gabby and Ty
+#define MUS_DAIGO 454 // Encounter! Wallace
+#define MUS_THANKFOR 455 // Credits
+#define MUS_END 456 // The End
+#define MUS_B_FRONTIER 457 // Battle Frontier
+#define MUS_B_ARENA 458 // Battle Arena
+#define MUS_ME_POINTGET 459 // Obtained Battle Points!
+#define MUS_ME_TORE_EYE 460 // Registered Trainer!
+#define MUS_PYRAMID 461 // Battle Pyramid
+#define MUS_PYRAMID_TOP 462 // Top of the Battle Pyramid
+#define MUS_B_PALACE 463 // Battle Palace
+#define MUS_REKKUU_KOURIN 464 // Rayquaza Enters
+#define MUS_SATTOWER 465 // Battle Tower (Emerald)
+#define MUS_ME_SYMBOLGET 466 // Obtained a Frontier Symbol!
+#define MUS_B_DOME 467 // Battle Dome
+#define MUS_B_TUBE 468 // Battle Pike
+#define MUS_B_FACTORY 469 // Battle Factory
+#define MUS_VS_REKKU 470 // Battle! Legendary Pokémon
+#define MUS_VS_FRONT 471 // Battle! Frontier Brain
+#define MUS_VS_MEW 472 // Battle! Mew
+#define MUS_B_DOME1 473 // Battle Dome Lobby
+#define MUS_BATTLE27 474 // Battle! Wild Pokémon
+#define MUS_BATTLE31 475 // Battle! Team Aqua/Magma
+#define MUS_BATTLE20 476 // Battle! Trainer
+#define MUS_BATTLE32 477 // Battle! Gym Leader
+#define MUS_BATTLE33 478 // Battle! Champion
+#define MUS_BATTLE36 479 // Battle! Regi Trio
+#define MUS_BATTLE34 480 // Battle! Legendary Pokémon (dupe)
+#define MUS_BATTLE35 481 // Battle! Rival
+#define MUS_BATTLE38 482 // Battle! Elite Four
+#define MUS_BATTLE30 483 // Battle! Archie/Maxie
+// FRLG Music Below
+#define MUS_RG_ANNAI 484 // Follow Me!
+#define MUS_RG_SLOT 485 // Game Corner
+#define MUS_RG_AJITO 486 // Rocket Hideout
+#define MUS_RG_GYM 487 // Gym
+#define MUS_RG_PURIN 488 // Jigglypuff's Song
+#define MUS_RG_DEMO 489 // Opening Movie
+#define MUS_RG_TITLE 490 // Title Screen
+#define MUS_RG_GUREN 491 // Cinnabar Island
+#define MUS_RG_SHION 492 // Lavender Town
+#define MUS_RG_KAIHUKU 493 // RBY Pokémon Center Healing
+#define MUS_RG_CYCLING 494 // Cycling
+#define MUS_RG_ROCKET 495 // Encounter! Team Rocket
+#define MUS_RG_SHOUJO 496 // Encounter! Girl
+#define MUS_RG_SHOUNEN 497 // Encounter! Boy
+#define MUS_RG_DENDOU 498 // You're the Champion!
+#define MUS_RG_T_MORI 499 // Viridian Forest
+#define MUS_RG_OTSUKIMI 500 // Mt. Moon
+#define MUS_RG_POKEYASHI 501 // Pokémon Mansion
+#define MUS_RG_ENDING 502 // Credits
+#define MUS_RG_LOAD01 503 // Route 1
+#define MUS_RG_OPENING 504 // Route 24/Intro
+#define MUS_RG_LOAD02 505 // Route 3
+#define MUS_RG_LOAD03 506 // Route 11
+#define MUS_RG_CHAMP_R 507 // Victory Road/Indigo Plateau
+#define MUS_RG_VS_GYM 508 // Battle! Gym Leader/Elite Four
+#define MUS_RG_VS_TORE 509 // Battle! Trainer
+#define MUS_RG_VS_YASEI 510 // Battle! Wild Pokémon
+#define MUS_RG_VS_LAST 511 // Battle! Champion
+#define MUS_RG_MASARA 512 // Pallet Town
+#define MUS_RG_KENKYU 513 // Professor Oak's Lab
+#define MUS_RG_OHKIDO 514 // Professor Oak's Theme
+#define MUS_RG_POKECEN 515 // Pokémon Center
+#define MUS_RG_SANTOAN 516 // S.S. Anne
+#define MUS_RG_NAMINORI 517 // Surfing
+#define MUS_RG_P_TOWER 518 // Pokémon Tower
+#define MUS_RG_SHIRUHU 519 // Silph Co.
+#define MUS_RG_HANADA 520 // Cerulean/Fuschia City
+#define MUS_RG_TAMAMUSI 521 // Celadon City
+#define MUS_RG_WIN_TRE 522 // Victory! Trainer
+#define MUS_RG_WIN_YASEI 523 // Victory! Wild Pokémon
+#define MUS_RG_WIN_GYM 524 // Victory! Gym Leader
+#define MUS_RG_KUCHIBA 525 // Vermillion City
+#define MUS_RG_NIBI 526 // Viridian/Saffron/Pewter City
+#define MUS_RG_RIVAL1 527 // Encounter! Rival
+#define MUS_RG_RIVAL2 528 // Rival's Exit
+#define MUS_RG_FAN2 529 // Fanfare 2
+#define MUS_RG_FAN5 530 // Obtained a Starter!
+#define MUS_RG_FAN6 531 // Pokémon Caught! (Used in Emerald)
+#define MUS_ME_RG_PHOTO 532 // Trainer Photo
+#define MUS_RG_TITLEROG 533 // Game Freak
+#define MUS_RG_GET_YASEI 534 // Pokémon Caught Victory Theme
+#define MUS_RG_SOUSA 535 // Starting Tutorial
+#define MUS_RG_SEKAIKAN 536 // Starting Tutorial 2
+#define MUS_RG_SEIBETU 537 // Starting Tutorial 3
+#define MUS_RG_JUMP 538 // Jumping Minigame
+#define MUS_RG_UNION 539 // Union Room
+#define MUS_RG_NETWORK 540 // Network Center
+#define MUS_RG_OKURIMONO 541 // Mystery Gift
+#define MUS_RG_KINOMIKUI 542
+#define MUS_RG_NANADUNGEON 543 // Sevii Caves/Altering Cave (Mt. Moon)
+#define MUS_RG_OSHIE_TV 544 // Follow Me!
+#define MUS_RG_NANASHIMA 545 // Sevii Islands Routes (Lake of Rage)
+#define MUS_RG_NANAISEKI 546 // Sevii Forests (Viridian Forest)
+#define MUS_RG_NANA123 547 // Sevii Islands 1-3 (Viridian/Saffron/Pewter)
+#define MUS_RG_NANA45 548 // Sevii Islands 4-5 (Azalea Town)
+#define MUS_RG_NANA67 549 // Sevii Islands 6-7 (Violet City)
+#define MUS_RG_POKEFUE 550 // Poké Flute
+#define MUS_RG_VS_DEO 551 // Battle! Deoxys
+#define MUS_RG_VS_MYU2 552 // Battle! Mewtwo
+#define MUS_RG_VS_DEN 553 // Battle! Legendary Birds
+#define MUS_RG_EXEYE 554 // Encounter! Gym Leader
+#define MUS_RG_DEOEYE 555 // Encounter! Deoxys
+#define MUS_RG_T_TOWER 556 // Trainer Tower (Gym)
+#define MUS_RG_SLOWMASARA 557 // Pallet Town (Hall of Fame remix)
+#define MUS_RG_TVNOIZE 558 // Teachy TV
+#define PH_TRAP_BLEND 559
+#define PH_TRAP_HELD 560
+#define PH_TRAP_SOLO 561
+#define PH_FACE_BLEND 562
+#define PH_FACE_HELD 563
+#define PH_FACE_SOLO 564
+#define PH_CLOTH_BLEND 565
+#define PH_CLOTH_HELD 566
+#define PH_CLOTH_SOLO 567
+#define PH_DRESS_BLEND 568
+#define PH_DRESS_HELD 569
+#define PH_DRESS_SOLO 570
+#define PH_FLEECE_BLEND 571
+#define PH_FLEECE_HELD 572
+#define PH_FLEECE_SOLO 573
+#define PH_KIT_BLEND 574
+#define PH_KIT_HELD 575
+#define PH_KIT_SOLO 576
+#define PH_PRICE_BLEND 577
+#define PH_PRICE_HELD 578
+#define PH_PRICE_SOLO 579
+#define PH_LOT_BLEND 580
+#define PH_LOT_HELD 581
+#define PH_LOT_SOLO 582
+#define PH_GOAT_BLEND 583
+#define PH_GOAT_HELD 584
+#define PH_GOAT_SOLO 585
+#define PH_THOUGHT_BLEND 586
+#define PH_THOUGHT_HELD 587
+#define PH_THOUGHT_SOLO 588
+#define PH_CHOICE_BLEND 589
+#define PH_CHOICE_HELD 590
+#define PH_CHOICE_SOLO 591
+#define PH_MOUTH_BLEND 592
+#define PH_MOUTH_HELD 593
+#define PH_MOUTH_SOLO 594
+#define PH_FOOT_BLEND 595
+#define PH_FOOT_HELD 596
+#define PH_FOOT_SOLO 597
+#define PH_GOOSE_BLEND 598
+#define PH_GOOSE_HELD 599
+#define PH_GOOSE_SOLO 600
+#define PH_STRUT_BLEND 601
+#define PH_STRUT_HELD 602
+#define PH_STRUT_SOLO 603
+#define PH_CURE_BLEND 604
+#define PH_CURE_HELD 605
+#define PH_CURE_SOLO 606
+#define PH_NURSE_BLEND 607
+#define PH_NURSE_HELD 608
+#define PH_NURSE_SOLO 609
+
+#define MUS_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/trainers.h b/include/constants/trainers.h
new file mode 100644
index 000000000..48d4f081e
--- /dev/null
+++ b/include/constants/trainers.h
@@ -0,0 +1,1129 @@
+#ifndef GUARD_TRAINERS_H
+#define GUARD_TRAINERS_H
+
+#define TRAINER_NONE 0
+#define TRAINER_SAWYER_1 1
+#define TRAINER_GRUNT_1 2
+#define TRAINER_GRUNT_2 3
+#define TRAINER_GRUNT_3 4
+#define TRAINER_GRUNT_4 5
+#define TRAINER_GRUNT_5 6
+#define TRAINER_GRUNT_6 7
+#define TRAINER_GRUNT_7 8
+#define TRAINER_GABRIELLE_1 9
+#define TRAINER_GRUNT_8 10
+#define TRAINER_MARCEL 11
+#define TRAINER_ALBERTO 12
+#define TRAINER_ED 13
+#define TRAINER_GRUNT_9 14
+#define TRAINER_DECLAN 15
+#define TRAINER_GRUNT_10 16
+#define TRAINER_GRUNT_11 17
+#define TRAINER_GRUNT_12 18
+#define TRAINER_GRUNT_13 19
+#define TRAINER_GRUNT_14 20
+#define TRAINER_GRUNT_15 21
+#define TRAINER_GRUNT_16 22
+#define TRAINER_GRUNT_17 23
+#define TRAINER_GRUNT_18 24
+#define TRAINER_GRUNT_19 25
+#define TRAINER_GRUNT_20 26
+#define TRAINER_GRUNT_21 27
+#define TRAINER_GRUNT_22 28
+#define TRAINER_FREDRICK 29
+#define TRAINER_MATT 30
+#define TRAINER_ZANDER 31
+#define TRAINER_SHELLY_1 32
+#define TRAINER_SHELLY_2 33
+#define TRAINER_ARCHIE 34
+#define TRAINER_LEAH 35
+#define TRAINER_DAISY 36
+#define TRAINER_ROSE_1 37
+#define TRAINER_FELIX 38
+#define TRAINER_VIOLET 39
+#define TRAINER_ROSE_2 40
+#define TRAINER_ROSE_3 41
+#define TRAINER_ROSE_4 42
+#define TRAINER_ROSE_5 43
+#define TRAINER_DUSTY_1 44
+#define TRAINER_CHIP 45
+#define TRAINER_FOSTER 46
+#define TRAINER_DUSTY_2 47
+#define TRAINER_DUSTY_3 48
+#define TRAINER_DUSTY_4 49
+#define TRAINER_DUSTY_5 50
+#define TRAINER_GABBY_AND_TY_1 51
+#define TRAINER_GABBY_AND_TY_2 52
+#define TRAINER_GABBY_AND_TY_3 53
+#define TRAINER_GABBY_AND_TY_4 54
+#define TRAINER_GABBY_AND_TY_5 55
+#define TRAINER_GABBY_AND_TY_6 56
+#define TRAINER_LOLA_1 57
+#define TRAINER_AUSTINA 58
+#define TRAINER_GWEN 59
+#define TRAINER_LOLA_2 60
+#define TRAINER_LOLA_3 61
+#define TRAINER_LOLA_4 62
+#define TRAINER_LOLA_5 63
+#define TRAINER_RICKY_1 64
+#define TRAINER_SIMON 65
+#define TRAINER_CHARLIE 66
+#define TRAINER_RICKY_2 67
+#define TRAINER_RICKY_3 68
+#define TRAINER_RICKY_4 69
+#define TRAINER_RICKY_5 70
+#define TRAINER_RANDALL 71
+#define TRAINER_PARKER 72
+#define TRAINER_GEORGE 73
+#define TRAINER_BERKE 74
+#define TRAINER_BRAXTON 75
+#define TRAINER_VINCENT 76
+#define TRAINER_LEROY 77
+#define TRAINER_WILTON_1 78
+#define TRAINER_EDGAR 79
+#define TRAINER_ALBERT 80
+#define TRAINER_SAMUEL 81
+#define TRAINER_VITO 82
+#define TRAINER_OWEN 83
+#define TRAINER_WILTON_2 84
+#define TRAINER_WILTON_3 85
+#define TRAINER_WILTON_4 86
+#define TRAINER_WILTON_5 87
+#define TRAINER_WARREN 88
+#define TRAINER_MARY 89
+#define TRAINER_ALEXIA 90
+#define TRAINER_JODY 91
+#define TRAINER_WENDY 92
+#define TRAINER_KEIRA 93
+#define TRAINER_BROOKE_1 94
+#define TRAINER_JENNIFER 95
+#define TRAINER_HOPE 96
+#define TRAINER_SHANNON 97
+#define TRAINER_MICHELLE 98
+#define TRAINER_CAROLINE 99
+#define TRAINER_JULIE 100
+#define TRAINER_BROOKE_2 101
+#define TRAINER_BROOKE_3 102
+#define TRAINER_BROOKE_4 103
+#define TRAINER_BROOKE_5 104
+#define TRAINER_PATRICIA 105
+#define TRAINER_KINDRA 106
+#define TRAINER_TAMMY 107
+#define TRAINER_VALERIE_1 108
+#define TRAINER_TASHA 109
+#define TRAINER_VALERIE_2 110
+#define TRAINER_VALERIE_3 111
+#define TRAINER_VALERIE_4 112
+#define TRAINER_VALERIE_5 113
+#define TRAINER_CINDY_1 114
+#define TRAINER_DAPHNE 115
+#define TRAINER_GRUNT_23 116
+#define TRAINER_CINDY_2 117
+#define TRAINER_BRIANNA 118
+#define TRAINER_NAOMI 119
+#define TRAINER_CINDY_3 120
+#define TRAINER_CINDY_4 121
+#define TRAINER_CINDY_5 122
+#define TRAINER_CINDY_6 123
+#define TRAINER_MELISSA 124
+#define TRAINER_SHEILA 125
+#define TRAINER_SHIRLEY 126
+#define TRAINER_JESSICA_1 127
+#define TRAINER_CONNIE 128
+#define TRAINER_BRIDGET 129
+#define TRAINER_OLIVIA 130
+#define TRAINER_TIFFANY 131
+#define TRAINER_JESSICA_2 132
+#define TRAINER_JESSICA_3 133
+#define TRAINER_JESSICA_4 134
+#define TRAINER_JESSICA_5 135
+#define TRAINER_WINSTON_1 136
+#define TRAINER_MOLLIE 137
+#define TRAINER_GARRET 138
+#define TRAINER_WINSTON_2 139
+#define TRAINER_WINSTON_3 140
+#define TRAINER_WINSTON_4 141
+#define TRAINER_WINSTON_5 142
+#define TRAINER_STEVE_1 143
+#define TRAINER_THALIA_1 144
+#define TRAINER_MARK 145
+#define TRAINER_GRUNT_24 146
+#define TRAINER_STEVE_2 147
+#define TRAINER_STEVE_3 148
+#define TRAINER_STEVE_4 149
+#define TRAINER_STEVE_5 150
+#define TRAINER_LUIS 151
+#define TRAINER_DOMINIK 152
+#define TRAINER_DOUGLAS 153
+#define TRAINER_DARRIN 154
+#define TRAINER_TONY_1 155
+#define TRAINER_JEROME 156
+#define TRAINER_MATTHEW 157
+#define TRAINER_DAVID 158
+#define TRAINER_SPENCER 159
+#define TRAINER_ROLAND 160
+#define TRAINER_NOLEN 161
+#define TRAINER_STAN 162
+#define TRAINER_BARRY 163
+#define TRAINER_DEAN 164
+#define TRAINER_RODNEY 165
+#define TRAINER_RICHARD 166
+#define TRAINER_HERMAN 167
+#define TRAINER_SANTIAGO 168
+#define TRAINER_GILBERT 169
+#define TRAINER_FRANKLIN 170
+#define TRAINER_KEVIN 171
+#define TRAINER_JACK 172
+#define TRAINER_DUDLEY 173
+#define TRAINER_CHAD 174
+#define TRAINER_TONY_2 175
+#define TRAINER_TONY_3 176
+#define TRAINER_TONY_4 177
+#define TRAINER_TONY_5 178
+#define TRAINER_TAKAO 179
+#define TRAINER_HITOSHI 180
+#define TRAINER_KIYO 181
+#define TRAINER_KOICHI 182
+#define TRAINER_NOB_1 183
+#define TRAINER_NOB_2 184
+#define TRAINER_NOB_3 185
+#define TRAINER_NOB_4 186
+#define TRAINER_NOB_5 187
+#define TRAINER_YUJI 188
+#define TRAINER_DAISUKE 189
+#define TRAINER_ATSUSHI 190
+#define TRAINER_KIRK 191
+#define TRAINER_GRUNT_25 192
+#define TRAINER_GRUNT_26 193
+#define TRAINER_SHAWN 194
+#define TRAINER_FERNANDO_1 195
+#define TRAINER_DALTON_1 196
+#define TRAINER_DALTON_2 197
+#define TRAINER_DALTON_3 198
+#define TRAINER_DALTON_4 199
+#define TRAINER_DALTON_5 200
+#define TRAINER_COLE 201
+#define TRAINER_JEFF 202
+#define TRAINER_AXLE 203
+#define TRAINER_JACE 204
+#define TRAINER_KEEGAN 205
+#define TRAINER_BERNIE_1 206
+#define TRAINER_BERNIE_2 207
+#define TRAINER_BERNIE_3 208
+#define TRAINER_BERNIE_4 209
+#define TRAINER_BERNIE_5 210
+#define TRAINER_DREW 211
+#define TRAINER_BEAU 212
+#define TRAINER_LARRY 213
+#define TRAINER_SHANE 214
+#define TRAINER_JUSTIN 215
+#define TRAINER_ETHAN_1 216
+#define TRAINER_AUTUMN 217
+#define TRAINER_TRAVIS 218
+#define TRAINER_ETHAN_2 219
+#define TRAINER_ETHAN_3 220
+#define TRAINER_ETHAN_4 221
+#define TRAINER_ETHAN_5 222
+#define TRAINER_BRENT 223
+#define TRAINER_DONALD 224
+#define TRAINER_TAYLOR 225
+#define TRAINER_JEFFREY_1 226
+#define TRAINER_DEREK 227
+#define TRAINER_JEFFREY_2 228
+#define TRAINER_JEFFREY_3 229
+#define TRAINER_JEFFREY_4 230
+#define TRAINER_JEFFREY_5 231
+#define TRAINER_EDWARD 232
+#define TRAINER_PRESTON 233
+#define TRAINER_VIRGIL 234
+#define TRAINER_BLAKE 235
+#define TRAINER_WILLIAM 236
+#define TRAINER_JOSHUA 237
+#define TRAINER_CAMERON_1 238
+#define TRAINER_CAMERON_2 239
+#define TRAINER_CAMERON_3 240
+#define TRAINER_CAMERON_4 241
+#define TRAINER_CAMERON_5 242
+#define TRAINER_JACLYN 243
+#define TRAINER_HANNAH 244
+#define TRAINER_SAMANTHA 245
+#define TRAINER_MAURA 246
+#define TRAINER_KAYLA 247
+#define TRAINER_ALEXIS 248
+#define TRAINER_JACKI_1 249
+#define TRAINER_JACKI_2 250
+#define TRAINER_JACKI_3 251
+#define TRAINER_JACKI_4 252
+#define TRAINER_JACKI_5 253
+#define TRAINER_WALTER_1 254
+#define TRAINER_MICAH 255
+#define TRAINER_THOMAS 256
+#define TRAINER_WALTER_2 257
+#define TRAINER_WALTER_3 258
+#define TRAINER_WALTER_4 259
+#define TRAINER_WALTER_5 260
+#define TRAINER_SIDNEY 261
+#define TRAINER_PHOEBE 262
+#define TRAINER_GLACIA 263
+#define TRAINER_DRAKE 264
+#define TRAINER_ROXANNE_1 265
+#define TRAINER_BRAWLY_1 266
+#define TRAINER_WATTSON_1 267
+#define TRAINER_FLANNERY_1 268
+#define TRAINER_NORMAN_1 269
+#define TRAINER_WINONA_1 270
+#define TRAINER_TATE_AND_LIZA_1 271
+#define TRAINER_JUAN_1 272
+#define TRAINER_JERRY_1 273
+#define TRAINER_TED 274
+#define TRAINER_PAUL 275
+#define TRAINER_JERRY_2 276
+#define TRAINER_JERRY_3 277
+#define TRAINER_JERRY_4 278
+#define TRAINER_JERRY_5 279
+#define TRAINER_KAREN_1 280
+#define TRAINER_GEORGIA 281
+#define TRAINER_KAREN_2 282
+#define TRAINER_KAREN_3 283
+#define TRAINER_KAREN_4 284
+#define TRAINER_KAREN_5 285
+#define TRAINER_KATE_AND_JOY 286
+#define TRAINER_ANNA_AND_MEG_1 287
+#define TRAINER_ANNA_AND_MEG_2 288
+#define TRAINER_ANNA_AND_MEG_3 289
+#define TRAINER_ANNA_AND_MEG_4 290
+#define TRAINER_ANNA_AND_MEG_5 291
+#define TRAINER_VICTOR 292
+#define TRAINER_MIGUEL_1 293
+#define TRAINER_COLTON 294
+#define TRAINER_MIGUEL_2 295
+#define TRAINER_MIGUEL_3 296
+#define TRAINER_MIGUEL_4 297
+#define TRAINER_MIGUEL_5 298
+#define TRAINER_VICTORIA 299
+#define TRAINER_VANESSA 300
+#define TRAINER_BETHANY 301
+#define TRAINER_ISABEL_1 302
+#define TRAINER_ISABEL_2 303
+#define TRAINER_ISABEL_3 304
+#define TRAINER_ISABEL_4 305
+#define TRAINER_ISABEL_5 306
+#define TRAINER_TIMOTHY_1 307
+#define TRAINER_TIMOTHY_2 308
+#define TRAINER_TIMOTHY_3 309
+#define TRAINER_TIMOTHY_4 310
+#define TRAINER_TIMOTHY_5 311
+#define TRAINER_VICKY 312
+#define TRAINER_SHELBY_1 313
+#define TRAINER_SHELBY_2 314
+#define TRAINER_SHELBY_3 315
+#define TRAINER_SHELBY_4 316
+#define TRAINER_SHELBY_5 317
+#define TRAINER_CALVIN_1 318
+#define TRAINER_BILLY 319
+#define TRAINER_JOSH 320
+#define TRAINER_TOMMY 321
+#define TRAINER_JOEY 322
+#define TRAINER_BEN 323
+#define TRAINER_QUINCY 324
+#define TRAINER_KATELYNN 325
+#define TRAINER_JAYLEN 326
+#define TRAINER_DILLON 327
+#define TRAINER_CALVIN_2 328
+#define TRAINER_CALVIN_3 329
+#define TRAINER_CALVIN_4 330
+#define TRAINER_CALVIN_5 331
+#define TRAINER_EDDIE 332
+#define TRAINER_ALLEN 333
+#define TRAINER_TIMMY 334
+#define TRAINER_WALLACE 335
+#define TRAINER_ANDREW 336
+#define TRAINER_IVAN 337
+#define TRAINER_CLAUDE 338
+#define TRAINER_ELLIOT_1 339
+#define TRAINER_NED 340
+#define TRAINER_DALE 341
+#define TRAINER_NOLAN 342
+#define TRAINER_BARNY 343
+#define TRAINER_WADE 344
+#define TRAINER_CARTER 345
+#define TRAINER_ELLIOT_2 346
+#define TRAINER_ELLIOT_3 347
+#define TRAINER_ELLIOT_4 348
+#define TRAINER_ELLIOT_5 349
+#define TRAINER_RONALD 350
+#define TRAINER_JACOB 351
+#define TRAINER_ANTHONY 352
+#define TRAINER_BENJAMIN_1 353
+#define TRAINER_BENJAMIN_2 354
+#define TRAINER_BENJAMIN_3 355
+#define TRAINER_BENJAMIN_4 356
+#define TRAINER_BENJAMIN_5 357
+#define TRAINER_ABIGAIL_1 358
+#define TRAINER_JASMINE 359
+#define TRAINER_ABIGAIL_2 360
+#define TRAINER_ABIGAIL_3 361
+#define TRAINER_ABIGAIL_4 362
+#define TRAINER_ABIGAIL_5 363
+#define TRAINER_DYLAN_1 364
+#define TRAINER_DYLAN_2 365
+#define TRAINER_DYLAN_3 366
+#define TRAINER_DYLAN_4 367
+#define TRAINER_DYLAN_5 368
+#define TRAINER_MARIA_1 369
+#define TRAINER_MARIA_2 370
+#define TRAINER_MARIA_3 371
+#define TRAINER_MARIA_4 372
+#define TRAINER_MARIA_5 373
+#define TRAINER_CAMDEN 374
+#define TRAINER_DEMETRIUS 375
+#define TRAINER_ISAIAH_1 376
+#define TRAINER_PABLO_1 377
+#define TRAINER_CHASE 378
+#define TRAINER_ISAIAH_2 379
+#define TRAINER_ISAIAH_3 380
+#define TRAINER_ISAIAH_4 381
+#define TRAINER_ISAIAH_5 382
+#define TRAINER_ISOBEL 383
+#define TRAINER_DONNY 384
+#define TRAINER_TALIA 385
+#define TRAINER_KATELYN_1 386
+#define TRAINER_ALLISON 387
+#define TRAINER_KATELYN_2 388
+#define TRAINER_KATELYN_3 389
+#define TRAINER_KATELYN_4 390
+#define TRAINER_KATELYN_5 391
+#define TRAINER_NICOLAS_1 392
+#define TRAINER_NICOLAS_2 393
+#define TRAINER_NICOLAS_3 394
+#define TRAINER_NICOLAS_4 395
+#define TRAINER_NICOLAS_5 396
+#define TRAINER_AARON 397
+#define TRAINER_PERRY 398
+#define TRAINER_HUGH 399
+#define TRAINER_PHIL 400
+#define TRAINER_JARED 401
+#define TRAINER_HUMBERTO 402
+#define TRAINER_PRESLEY 403
+#define TRAINER_EDWARDO 404
+#define TRAINER_COLIN 405
+#define TRAINER_ROBERT_1 406
+#define TRAINER_BENNY 407
+#define TRAINER_CHESTER 408
+#define TRAINER_ROBERT_2 409
+#define TRAINER_ROBERT_3 410
+#define TRAINER_ROBERT_4 411
+#define TRAINER_ROBERT_5 412
+#define TRAINER_ALEX 413
+#define TRAINER_BECK 414
+#define TRAINER_YASU 415
+#define TRAINER_TAKASHI 416
+#define TRAINER_DIANNE 417
+#define TRAINER_JANI 418
+#define TRAINER_LAO_1 419
+#define TRAINER_LUNG 420
+#define TRAINER_LAO_2 421
+#define TRAINER_LAO_3 422
+#define TRAINER_LAO_4 423
+#define TRAINER_LAO_5 424
+#define TRAINER_JOCELYN 425
+#define TRAINER_LAURA 426
+#define TRAINER_CYNDY_1 427
+#define TRAINER_CORA 428
+#define TRAINER_PAULA 429
+#define TRAINER_CYNDY_2 430
+#define TRAINER_CYNDY_3 431
+#define TRAINER_CYNDY_4 432
+#define TRAINER_CYNDY_5 433
+#define TRAINER_MADELINE_1 434
+#define TRAINER_CLARISSA 435
+#define TRAINER_ANGELICA 436
+#define TRAINER_MADELINE_2 437
+#define TRAINER_MADELINE_3 438
+#define TRAINER_MADELINE_4 439
+#define TRAINER_MADELINE_5 440
+#define TRAINER_BEVERLY 441
+#define TRAINER_IMANI 442
+#define TRAINER_KYLA 443
+#define TRAINER_DENISE 444
+#define TRAINER_BETH 445
+#define TRAINER_TARA 446
+#define TRAINER_MISSY 447
+#define TRAINER_ALICE 448
+#define TRAINER_JENNY_1 449
+#define TRAINER_GRACE 450
+#define TRAINER_TANYA 451
+#define TRAINER_SHARON 452
+#define TRAINER_NIKKI 453
+#define TRAINER_BRENDA 454
+#define TRAINER_KATIE 455
+#define TRAINER_SUSIE 456
+#define TRAINER_KARA 457
+#define TRAINER_DANA 458
+#define TRAINER_SIENNA 459
+#define TRAINER_DEBRA 460
+#define TRAINER_LINDA 461
+#define TRAINER_KAYLEE 462
+#define TRAINER_LAUREL 463
+#define TRAINER_CARLEE 464
+#define TRAINER_JENNY_2 465
+#define TRAINER_JENNY_3 466
+#define TRAINER_JENNY_4 467
+#define TRAINER_JENNY_5 468
+#define TRAINER_HEIDI 469
+#define TRAINER_BECKY 470
+#define TRAINER_CAROL 471
+#define TRAINER_NANCY 472
+#define TRAINER_MARTHA 473
+#define TRAINER_DIANA_1 474
+#define TRAINER_CEDRIC 475
+#define TRAINER_IRENE 476
+#define TRAINER_DIANA_2 477
+#define TRAINER_DIANA_3 478
+#define TRAINER_DIANA_4 479
+#define TRAINER_DIANA_5 480
+#define TRAINER_AMY_AND_LIV_1 481
+#define TRAINER_AMY_AND_LIV_2 482
+#define TRAINER_GINA_AND_MIA_1 483
+#define TRAINER_MIU_AND_YUKI 484
+#define TRAINER_AMY_AND_LIV_3 485
+#define TRAINER_GINA_AND_MIA_2 486
+#define TRAINER_AMY_AND_LIV_4 487
+#define TRAINER_AMY_AND_LIV_5 488
+#define TRAINER_AMY_AND_LIV_6 489
+#define TRAINER_HUEY 490
+#define TRAINER_EDMOND 491
+#define TRAINER_ERNEST_1 492
+#define TRAINER_DWAYNE 493
+#define TRAINER_PHILLIP 494
+#define TRAINER_LEONARD 495
+#define TRAINER_DUNCAN 496
+#define TRAINER_ERNEST_2 497
+#define TRAINER_ERNEST_3 498
+#define TRAINER_ERNEST_4 499
+#define TRAINER_ERNEST_5 500
+#define TRAINER_ELI 501
+#define TRAINER_ANNIKA 502
+#define TRAINER_JAZMYN 503
+#define TRAINER_JONAS 504
+#define TRAINER_KAYLEY 505
+#define TRAINER_AURON 506
+#define TRAINER_KELVIN 507
+#define TRAINER_MARLEY 508
+#define TRAINER_REYNA 509
+#define TRAINER_HUDSON 510
+#define TRAINER_CONOR 511
+#define TRAINER_EDWIN_1 512
+#define TRAINER_HECTOR 513
+#define TRAINER_TABITHA_1 514
+#define TRAINER_EDWIN_2 515
+#define TRAINER_EDWIN_3 516
+#define TRAINER_EDWIN_4 517
+#define TRAINER_EDWIN_5 518
+#define TRAINER_WALLY_1 519
+#define TRAINER_BRENDAN_1 520
+#define TRAINER_BRENDAN_2 521
+#define TRAINER_BRENDAN_3 522
+#define TRAINER_BRENDAN_4 523
+#define TRAINER_BRENDAN_5 524
+#define TRAINER_BRENDAN_6 525
+#define TRAINER_BRENDAN_7 526
+#define TRAINER_BRENDAN_8 527
+#define TRAINER_BRENDAN_9 528
+#define TRAINER_MAY_1 529
+#define TRAINER_MAY_2 530
+#define TRAINER_MAY_3 531
+#define TRAINER_MAY_4 532
+#define TRAINER_MAY_5 533
+#define TRAINER_MAY_6 534
+#define TRAINER_MAY_7 535
+#define TRAINER_MAY_8 536
+#define TRAINER_MAY_9 537
+#define TRAINER_ISAAC_1 538
+#define TRAINER_DAVIS 539
+#define TRAINER_MITCHELL 540
+#define TRAINER_ISAAC_2 541
+#define TRAINER_ISAAC_3 542
+#define TRAINER_ISAAC_4 543
+#define TRAINER_ISAAC_5 544
+#define TRAINER_LYDIA_1 545
+#define TRAINER_HALLE 546
+#define TRAINER_GARRISON 547
+#define TRAINER_LYDIA_2 548
+#define TRAINER_LYDIA_3 549
+#define TRAINER_LYDIA_4 550
+#define TRAINER_LYDIA_5 551
+#define TRAINER_JACKSON_1 552
+#define TRAINER_LORENZO 553
+#define TRAINER_SEBASTIAN 554
+#define TRAINER_JACKSON_2 555
+#define TRAINER_JACKSON_3 556
+#define TRAINER_JACKSON_4 557
+#define TRAINER_JACKSON_5 558
+#define TRAINER_CATHERINE_1 559
+#define TRAINER_JENNA 560
+#define TRAINER_SOPHIA 561
+#define TRAINER_CATHERINE_2 562
+#define TRAINER_CATHERINE_3 563
+#define TRAINER_CATHERINE_4 564
+#define TRAINER_CATHERINE_5 565
+#define TRAINER_JULIO 566
+#define TRAINER_GRUNT_27 567
+#define TRAINER_GRUNT_28 568
+#define TRAINER_GRUNT_29 569
+#define TRAINER_GRUNT_30 570
+#define TRAINER_MARC 571
+#define TRAINER_BRENDEN 572
+#define TRAINER_LILITH 573
+#define TRAINER_CRISTIAN 574
+#define TRAINER_SYLVIA 575
+#define TRAINER_LEONARDO 576
+#define TRAINER_ATHENA 577
+#define TRAINER_HARRISON 578
+#define TRAINER_GRUNT_31 579
+#define TRAINER_CLARENCE 580
+#define TRAINER_TERRY 581
+#define TRAINER_NATE 582
+#define TRAINER_KATHLEEN 583
+#define TRAINER_CLIFFORD 584
+#define TRAINER_NICHOLAS 585
+#define TRAINER_GRUNT_32 586
+#define TRAINER_GRUNT_33 587
+#define TRAINER_GRUNT_34 588
+#define TRAINER_GRUNT_35 589
+#define TRAINER_GRUNT_36 590
+#define TRAINER_MACEY 591
+#define TRAINER_BRENDAN_10 592
+#define TRAINER_BRENDAN_11 593
+#define TRAINER_PAXTON 594
+#define TRAINER_ISABELLA 595
+#define TRAINER_GRUNT_37 596
+#define TRAINER_TABITHA_2 597
+#define TRAINER_JONATHAN 598
+#define TRAINER_BRENDAN_12 599
+#define TRAINER_MAY_10 600
+#define TRAINER_MAXIE_1 601
+#define TRAINER_MAXIE_2 602
+#define TRAINER_TIANA 603
+#define TRAINER_HALEY_1 604
+#define TRAINER_JANICE 605
+#define TRAINER_VIVI 606
+#define TRAINER_HALEY_2 607
+#define TRAINER_HALEY_3 608
+#define TRAINER_HALEY_4 609
+#define TRAINER_HALEY_5 610
+#define TRAINER_SALLY 611
+#define TRAINER_ROBIN 612
+#define TRAINER_ANDREA 613
+#define TRAINER_CRISSY 614
+#define TRAINER_RICK 615
+#define TRAINER_LYLE 616
+#define TRAINER_JOSE 617
+#define TRAINER_DOUG 618
+#define TRAINER_GREG 619
+#define TRAINER_KENT 620
+#define TRAINER_JAMES_1 621
+#define TRAINER_JAMES_2 622
+#define TRAINER_JAMES_3 623
+#define TRAINER_JAMES_4 624
+#define TRAINER_JAMES_5 625
+#define TRAINER_BRICE 626
+#define TRAINER_TRENT_1 627
+#define TRAINER_LENNY 628
+#define TRAINER_LUCAS_1 629
+#define TRAINER_ALAN 630
+#define TRAINER_CLARK 631
+#define TRAINER_ERIC 632
+#define TRAINER_LUCAS_2 633
+#define TRAINER_MIKE_1 634
+#define TRAINER_MIKE_2 635
+#define TRAINER_TRENT_2 636
+#define TRAINER_TRENT_3 637
+#define TRAINER_TRENT_4 638
+#define TRAINER_TRENT_5 639
+#define TRAINER_DEZ_AND_LUKE 640
+#define TRAINER_LEA_AND_JED 641
+#define TRAINER_KIRA_AND_DAN_1 642
+#define TRAINER_KIRA_AND_DAN_2 643
+#define TRAINER_KIRA_AND_DAN_3 644
+#define TRAINER_KIRA_AND_DAN_4 645
+#define TRAINER_KIRA_AND_DAN_5 646
+#define TRAINER_JOHANNA 647
+#define TRAINER_GERALD 648
+#define TRAINER_VIVIAN 649
+#define TRAINER_DANIELLE 650
+#define TRAINER_HIDEO 651
+#define TRAINER_KEIGO 652
+#define TRAINER_RILEY 653
+#define TRAINER_FLINT 654
+#define TRAINER_ASHLEY 655
+#define TRAINER_WALLY_2 656
+#define TRAINER_WALLY_3 657
+#define TRAINER_WALLY_4 658
+#define TRAINER_WALLY_5 659
+#define TRAINER_WALLY_6 660
+#define TRAINER_BRENDAN_13 661
+#define TRAINER_BRENDAN_14 662
+#define TRAINER_BRENDAN_15 663
+#define TRAINER_MAY_11 664
+#define TRAINER_MAY_12 665
+#define TRAINER_MAY_13 666
+#define TRAINER_JONAH 667
+#define TRAINER_HENRY 668
+#define TRAINER_ROGER 669
+#define TRAINER_ALEXA 670
+#define TRAINER_RUBEN 671
+#define TRAINER_KOJI_1 672
+#define TRAINER_WAYNE 673
+#define TRAINER_AIDAN 674
+#define TRAINER_REED 675
+#define TRAINER_TISHA 676
+#define TRAINER_TORI_AND_TIA 677
+#define TRAINER_KIM_AND_IRIS 678
+#define TRAINER_TYRA_AND_IVY 679
+#define TRAINER_MEL_AND_PAUL 680
+#define TRAINER_JOHN_AND_JAY_1 681
+#define TRAINER_JOHN_AND_JAY_2 682
+#define TRAINER_JOHN_AND_JAY_3 683
+#define TRAINER_JOHN_AND_JAY_4 684
+#define TRAINER_JOHN_AND_JAY_5 685
+#define TRAINER_RELI_AND_IAN 686
+#define TRAINER_LILA_AND_ROY_1 687
+#define TRAINER_LILA_AND_ROY_2 688
+#define TRAINER_LILA_AND_ROY_3 689
+#define TRAINER_LILA_AND_ROY_4 690
+#define TRAINER_LILA_AND_ROY_5 691
+#define TRAINER_LISA_AND_RAY 692
+#define TRAINER_CHRIS 693
+#define TRAINER_DAWSON 694
+#define TRAINER_SARAH 695
+#define TRAINER_DARIAN 696
+#define TRAINER_HAILEY 697
+#define TRAINER_CHANDLER 698
+#define TRAINER_KALEB 699
+#define TRAINER_JOSEPH 700
+#define TRAINER_ALYSSA 701
+#define TRAINER_MARCOS 702
+#define TRAINER_RHETT 703
+#define TRAINER_TYRON 704
+#define TRAINER_CELINA 705
+#define TRAINER_BIANCA 706
+#define TRAINER_HAYDEN 707
+#define TRAINER_SOPHIE 708
+#define TRAINER_COBY 709
+#define TRAINER_LAWRENCE 710
+#define TRAINER_WYATT 711
+#define TRAINER_ANGELINA 712
+#define TRAINER_KAI 713
+#define TRAINER_CHARLOTTE 714
+#define TRAINER_DEANDRE 715
+#define TRAINER_GRUNT_38 716
+#define TRAINER_GRUNT_39 717
+#define TRAINER_GRUNT_40 718
+#define TRAINER_GRUNT_41 719
+#define TRAINER_GRUNT_42 720
+#define TRAINER_GRUNT_43 721
+#define TRAINER_GRUNT_44 722
+#define TRAINER_GRUNT_45 723
+#define TRAINER_GRUNT_46 724
+#define TRAINER_GRUNT_47 725
+#define TRAINER_GRUNT_48 726
+#define TRAINER_GRUNT_49 727
+#define TRAINER_GRUNT_50 728
+#define TRAINER_GRUNT_51 729
+#define TRAINER_GRUNT_52 730
+#define TRAINER_GRUNT_53 731
+#define TRAINER_TABITHA_3 732
+#define TRAINER_DARCY 733
+#define TRAINER_MAXIE_3 734
+#define TRAINER_PETE 735
+#define TRAINER_ISABELLE 736
+#define TRAINER_ANDRES_1 737
+#define TRAINER_JOSUE 738
+#define TRAINER_CAMRON 739
+#define TRAINER_CORY_1 740
+#define TRAINER_CAROLINA 741
+#define TRAINER_ELIJAH 742
+#define TRAINER_CELIA 743
+#define TRAINER_BRYAN 744
+#define TRAINER_BRANDEN 745
+#define TRAINER_BRYANT 746
+#define TRAINER_SHAYLA 747
+#define TRAINER_KYRA 748
+#define TRAINER_JAIDEN 749
+#define TRAINER_ALIX 750
+#define TRAINER_HELENE 751
+#define TRAINER_MARLENE 752
+#define TRAINER_DEVAN 753
+#define TRAINER_JOHNSON 754
+#define TRAINER_MELINA 755
+#define TRAINER_BRANDI 756
+#define TRAINER_AISHA 757
+#define TRAINER_MAKAYLA 758
+#define TRAINER_FABIAN 759
+#define TRAINER_DAYTON 760
+#define TRAINER_RACHEL 761
+#define TRAINER_LEONEL 762
+#define TRAINER_CALLIE 763
+#define TRAINER_CALE 764
+#define TRAINER_MYLES 765
+#define TRAINER_PAT 766
+#define TRAINER_CRISTIN_1 767
+#define TRAINER_MAY_14 768
+#define TRAINER_MAY_15 769
+#define TRAINER_ROXANNE_2 770
+#define TRAINER_ROXANNE_3 771
+#define TRAINER_ROXANNE_4 772
+#define TRAINER_ROXANNE_5 773
+#define TRAINER_BRAWLY_2 774
+#define TRAINER_BRAWLY_3 775
+#define TRAINER_BRAWLY_4 776
+#define TRAINER_BRAWLY_5 777
+#define TRAINER_WATTSON_2 778
+#define TRAINER_WATTSON_3 779
+#define TRAINER_WATTSON_4 780
+#define TRAINER_WATTSON_5 781
+#define TRAINER_FLANNERY_2 782
+#define TRAINER_FLANNERY_3 783
+#define TRAINER_FLANNERY_4 784
+#define TRAINER_FLANNERY_5 785
+#define TRAINER_NORMAN_2 786
+#define TRAINER_NORMAN_3 787
+#define TRAINER_NORMAN_4 788
+#define TRAINER_NORMAN_5 789
+#define TRAINER_WINONA_2 790
+#define TRAINER_WINONA_3 791
+#define TRAINER_WINONA_4 792
+#define TRAINER_WINONA_5 793
+#define TRAINER_TATE_AND_LIZA_2 794
+#define TRAINER_TATE_AND_LIZA_3 795
+#define TRAINER_TATE_AND_LIZA_4 796
+#define TRAINER_TATE_AND_LIZA_5 797
+#define TRAINER_JUAN_2 798
+#define TRAINER_JUAN_3 799
+#define TRAINER_JUAN_4 800
+#define TRAINER_JUAN_5 801
+#define TRAINER_ANGELO 802
+#define TRAINER_DARIUS 803
+#define TRAINER_STEVEN 804
+#define TRAINER_ANABEL 805
+#define TRAINER_TUCKER 806
+#define TRAINER_SPENSER 807
+#define TRAINER_GRETA 808
+#define TRAINER_NOLAND 809
+#define TRAINER_LUCY 810
+#define TRAINER_BRANDON 811
+#define TRAINER_ANDRES_2 812
+#define TRAINER_ANDRES_3 813
+#define TRAINER_ANDRES_4 814
+#define TRAINER_ANDRES_5 815
+#define TRAINER_CORY_2 816
+#define TRAINER_CORY_3 817
+#define TRAINER_CORY_4 818
+#define TRAINER_CORY_5 819
+#define TRAINER_PABLO_2 820
+#define TRAINER_PABLO_3 821
+#define TRAINER_PABLO_4 822
+#define TRAINER_PABLO_5 823
+#define TRAINER_KOJI_2 824
+#define TRAINER_KOJI_3 825
+#define TRAINER_KOJI_4 826
+#define TRAINER_KOJI_5 827
+#define TRAINER_CRISTIN_2 828
+#define TRAINER_CRISTIN_3 829
+#define TRAINER_CRISTIN_4 830
+#define TRAINER_CRISTIN_5 831
+#define TRAINER_FERNANDO_2 832
+#define TRAINER_FERNANDO_3 833
+#define TRAINER_FERNANDO_4 834
+#define TRAINER_FERNANDO_5 835
+#define TRAINER_SAWYER_2 836
+#define TRAINER_SAWYER_3 837
+#define TRAINER_SAWYER_4 838
+#define TRAINER_SAWYER_5 839
+#define TRAINER_GABRIELLE_2 840
+#define TRAINER_GABRIELLE_3 841
+#define TRAINER_GABRIELLE_4 842
+#define TRAINER_GABRIELLE_5 843
+#define TRAINER_THALIA_2 844
+#define TRAINER_THALIA_3 845
+#define TRAINER_THALIA_4 846
+#define TRAINER_THALIA_5 847
+#define TRAINER_MARIELA 848
+#define TRAINER_ALVARO 849
+#define TRAINER_EVERETT 850
+#define TRAINER_RED 851
+#define TRAINER_LEAF 852
+#define TRAINER_BRENDAN_16 853
+#define TRAINER_MAY_16 854
+
+#define NO_OF_TRAINERS 854
+
+#define TRAINER_PIC_HIKER 0
+#define TRAINER_PIC_AQUA_GRUNT_M 1
+#define TRAINER_PIC_POKEMON_BREEDER_F 2
+#define TRAINER_PIC_COOL_TRAINER_M 3
+#define TRAINER_PIC_BIRD_KEEPER 4
+#define TRAINER_PIC_COLLECTOR 5
+#define TRAINER_PIC_AQUA_GRUNT_F 6
+#define TRAINER_PIC_SWIMMER_M 7
+#define TRAINER_PIC_MAGMA_GRUNT_M 8
+#define TRAINER_PIC_EXPERT_M 9
+#define TRAINER_PIC_AQUA_ADMIN_M 10
+#define TRAINER_PIC_BLACK_BELT 11
+#define TRAINER_PIC_AQUA_ADMIN_F 12
+#define TRAINER_PIC_AQUA_LEADER_ARCHIE 13
+#define TRAINER_PIC_HEX_MANIAC 14
+#define TRAINER_PIC_AROMA_LADY 15
+#define TRAINER_PIC_RUIN_MANIAC 16
+#define TRAINER_PIC_INTERVIEWER 17
+#define TRAINER_PIC_TUBER_F 18
+#define TRAINER_PIC_TUBER_M 19
+#define TRAINER_PIC_COOL_TRAINER_F 20
+#define TRAINER_PIC_LADY 21
+#define TRAINER_PIC_BEAUTY 22
+#define TRAINER_PIC_RICH_BOY 23
+#define TRAINER_PIC_EXPERT_F 24
+#define TRAINER_PIC_POKEMANIAC 25
+#define TRAINER_PIC_MAGMA_GRUNT_F 26
+#define TRAINER_PIC_GUITARIST 27
+#define TRAINER_PIC_KINDLER 28
+#define TRAINER_PIC_CAMPER 29
+#define TRAINER_PIC_PICNICKER 30
+#define TRAINER_PIC_BUG_MANIAC 31
+#define TRAINER_PIC_POKEMON_BREEDER_M 32
+#define TRAINER_PIC_PSYCHIC_M 33
+#define TRAINER_PIC_PSYCHIC_F 34
+#define TRAINER_PIC_GENTLEMAN 35
+#define TRAINER_PIC_ELITE_FOUR_SIDNEY 36
+#define TRAINER_PIC_ELITE_FOUR_PHOEBE 37
+#define TRAINER_PIC_ELITE_FOUR_GLACIA 38
+#define TRAINER_PIC_ELITE_FOUR_DRAKE 39
+#define TRAINER_PIC_LEADER_ROXANNE 40
+#define TRAINER_PIC_LEADER_BRAWLY 41
+#define TRAINER_PIC_LEADER_WATTSON 42
+#define TRAINER_PIC_LEADER_FLANNERY 43
+#define TRAINER_PIC_LEADER_NORMAN 44
+#define TRAINER_PIC_LEADER_WINONA 45
+#define TRAINER_PIC_LEADER_TATE_AND_LIZA 46
+#define TRAINER_PIC_LEADER_JUAN 47
+#define TRAINER_PIC_SCHOOL_KID_M 48
+#define TRAINER_PIC_SCHOOL_KID_F 49
+#define TRAINER_PIC_SR_AND_JR 50
+#define TRAINER_PIC_WINSTRATE_M 51
+#define TRAINER_PIC_WINSTRATE_F 52
+#define TRAINER_PIC_YOUNGSTER 53
+#define TRAINER_PIC_CHAMPION_WALLACE 54
+#define TRAINER_PIC_FISHERMAN 55
+#define TRAINER_PIC_CYCLING_TRIATHLETE_M 56
+#define TRAINER_PIC_CYCLING_TRIATHLETE_F 57
+#define TRAINER_PIC_RUNNING_TRIATHLETE_M 58
+#define TRAINER_PIC_RUNNING_TRIATHLETE_F 59
+#define TRAINER_PIC_SWIMMING_TRIATHLETE_M 60
+#define TRAINER_PIC_SWIMMING_TRIATHLETE_F 61
+#define TRAINER_PIC_DRAGON_TAMER 62
+#define TRAINER_PIC_NINJA_BOY 63
+#define TRAINER_PIC_BATTLE_GIRL 64
+#define TRAINER_PIC_PARASOL_LADY 65
+#define TRAINER_PIC_SWIMMER_F 66
+#define TRAINER_PIC_TWINS 67
+#define TRAINER_PIC_SAILOR 68
+#define TRAINER_PIC_MAGMA_ADMIN 69
+#define TRAINER_PIC_WALLY 70
+#define TRAINER_PIC_BRENDAN 71
+#define TRAINER_PIC_MAY 72
+#define TRAINER_PIC_BUG_CATCHER 73
+#define TRAINER_PIC_POKEMON_RANGER_M 74
+#define TRAINER_PIC_POKEMON_RANGER_F 75
+#define TRAINER_PIC_MAGMA_LEADER_MAXIE 76
+#define TRAINER_PIC_LASS 77
+#define TRAINER_PIC_YOUNG_COUPLE 78
+#define TRAINER_PIC_OLD_COUPLE 79
+#define TRAINER_PIC_SIS_AND_BRO 80
+#define TRAINER_PIC_STEVEN 81
+#define TRAINER_PIC_SALON_MAIDEN_ANABEL 82
+#define TRAINER_PIC_DOME_ACE_TUCKER 83
+#define TRAINER_PIC_PALACE_MAVEN_SPENSER 84
+#define TRAINER_PIC_ARENA_TYCOON_GRETA 85
+#define TRAINER_PIC_FACTORY_HEAD_NOLAND 86
+#define TRAINER_PIC_PIKE_QUEEN_LUCY 87
+#define TRAINER_PIC_PYRAMID_KING_BRANDON 88
+#define TRAINER_PIC_RED 89
+#define TRAINER_PIC_LEAF 90
+#define TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN 91
+#define TRAINER_PIC_RUBY_SAPPHIRE_MAY 92
+
+#define FACILITY_CLASS_HIKER 0x0
+#define FACILITY_CLASS_TEAM_AQUA_1 0x1
+#define FACILITY_CLASS_PKMN_BREEDER_1 0x2
+#define FACILITY_CLASS_COOLTRAINER_1 0x3
+#define FACILITY_CLASS_BIRD_KEEPER 0x4
+#define FACILITY_CLASS_COLLECTOR 0x5
+#define FACILITY_CLASS_TEAM_AQUA_2 0x6
+#define FACILITY_CLASS_SWIMMER_M 0x7
+#define FACILITY_CLASS_TEAM_MAGMA_1 0x8
+#define FACILITY_CLASS_EXPERT_1 0x9
+#define FACILITY_CLASS_BLACK_BELT 0xa
+#define FACILITY_CLASS_AQUA_LEADER 0xb
+#define FACILITY_CLASS_HEX_MANIAC 0xc
+#define FACILITY_CLASS_AROMA_LADY 0xd
+#define FACILITY_CLASS_RUIN_MANIAC 0xe
+#define FACILITY_CLASS_INTERVIEWER 0xf
+#define FACILITY_CLASS_TUBER_1 0x10
+#define FACILITY_CLASS_TUBER_2 0x11
+#define FACILITY_CLASS_COOLTRAINER_2 0x12
+#define FACILITY_CLASS_LADY 0x13
+#define FACILITY_CLASS_BEAUTY 0x14
+#define FACILITY_CLASS_RICH_BOY 0x15
+#define FACILITY_CLASS_EXPERT_2 0x16
+#define FACILITY_CLASS_POKEMANIAC 0x17
+#define FACILITY_CLASS_TEAM_MAGMA_2 0x18
+#define FACILITY_CLASS_GUITARIST 0x19
+#define FACILITY_CLASS_KINDLER 0x1a
+#define FACILITY_CLASS_CAMPER 0x1b
+#define FACILITY_CLASS_PICNICKER 0x1c
+#define FACILITY_CLASS_BUG_MANIAC 0x1d
+#define FACILITY_CLASS_PSYCHIC_1 0x1e
+#define FACILITY_CLASS_PSYCHIC_2 0x1f
+#define FACILITY_CLASS_GENTLEMAN 0x20
+#define FACILITY_CLASS_ELITE_FOUR_1 0x21
+#define FACILITY_CLASS_ELITE_FOUR_2 0x22
+#define FACILITY_CLASS_LEADER_1 0x23
+#define FACILITY_CLASS_LEADER_2 0x24
+#define FACILITY_CLASS_LEADER_3 0x25
+#define FACILITY_CLASS_SCHOOL_KID_1 0x26
+#define FACILITY_CLASS_SCHOOL_KID_2 0x27
+#define FACILITY_CLASS_SR_AND_JR 0x28
+#define FACILITY_CLASS_POKEFAN_1 0x29
+#define FACILITY_CLASS_POKEFAN_2 0x2a
+#define FACILITY_CLASS_YOUNGSTER 0x2b
+#define FACILITY_CLASS_CHAMPION 0x2c
+#define FACILITY_CLASS_FISHERMAN 0x2d
+#define FACILITY_CLASS_TRIATHLETE_1 0x2e
+#define FACILITY_CLASS_TRIATHLETE_2 0x2f
+#define FACILITY_CLASS_TRIATHLETE_3 0x30
+#define FACILITY_CLASS_TRIATHLETE_4 0x31
+#define FACILITY_CLASS_TRIATHLETE_5 0x32
+#define FACILITY_CLASS_TRIATHLETE_6 0x33
+#define FACILITY_CLASS_DRAGON_TAMER 0x34
+#define FACILITY_CLASS_NINJA_BOY 0x35
+#define FACILITY_CLASS_BATTLE_GIRL 0x36
+#define FACILITY_CLASS_PARASOL_LADY 0x37
+#define FACILITY_CLASS_SWIMMER_F 0x38
+#define FACILITY_CLASS_TWINS 0x39
+#define FACILITY_CLASS_SAILOR 0x3a
+#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b
+#define FACILITY_CLASS_PKMN_TRAINER_2 0x3c
+#define FACILITY_CLASS_PKMN_TRAINER_3 0x3d
+#define FACILITY_CLASS_PKMN_TRAINER_4 0x3e
+#define FACILITY_CLASS_PKMN_TRAINER_5 0x3f
+#define FACILITY_CLASS_PKMN_TRAINER_6 0x40
+#define FACILITY_CLASS_PKMN_TRAINER_7 0x41
+#define FACILITY_CLASS_PKMN_BREEDER_2 0x42
+#define FACILITY_CLASS_BUG_CATCHER 0x43
+#define FACILITY_CLASS_PKMN_RANGER_1 0x44
+#define FACILITY_CLASS_PKMN_RANGER_2 0x45
+#define FACILITY_CLASS_MAGMA_LEADER 0x46
+#define FACILITY_CLASS_LASS 0x47
+#define FACILITY_CLASS_YOUNG_COUPLE 0x48
+#define FACILITY_CLASS_OLD_COUPLE 0x49
+#define FACILITY_CLASS_SIS_AND_BRO 0x4a
+#define FACILITY_CLASS_PKMN_TRAINER_8 0x4b
+#define FACILITY_CLASS_SALON_MAIDEN 0x4c
+#define FACILITY_CLASS_DOME_ACE 0x4d
+#define FACILITY_CLASS_PKMN_TRAINER_9 0x4e
+#define FACILITY_CLASS_PKMN_TRAINER_10 0x4f
+#define FACILITY_CLASS_PKMN_TRAINER_11 0x50
+#define FACILITY_CLASS_PKMN_TRAINER_12 0x51
+
+#define TRAINER_CLASS_PKMN_TRAINER_1 0x0
+#define TRAINER_CLASS_PKMN_TRAINER_2 0x1
+#define TRAINER_CLASS_HIKER 0x2
+#define TRAINER_CLASS_TEAM_AQUA 0x3
+#define TRAINER_CLASS_PKMN_BREEDER 0x4
+#define TRAINER_CLASS_COOLTRAINER_1 0x5
+#define TRAINER_CLASS_BIRD_KEEPER 0x6
+#define TRAINER_CLASS_COLLECTOR 0x7
+#define TRAINER_CLASS_SWIMMER_M 0x8
+#define TRAINER_CLASS_TEAM_MAGMA 0x9
+#define TRAINER_CLASS_EXPERT 0xa
+#define TRAINER_CLASS_AQUA_ADMIN 0xb
+#define TRAINER_CLASS_BLACK_BELT 0xc
+#define TRAINER_CLASS_AQUA_LEADER 0xd
+#define TRAINER_CLASS_HEX_MANIAC 0xe
+#define TRAINER_CLASS_AROMA_LADY 0xf
+#define TRAINER_CLASS_RUIN_MANIAC 0x10
+#define TRAINER_CLASS_INTERVIEWER 0x11
+#define TRAINER_CLASS_TUBER_1 0x12
+#define TRAINER_CLASS_TUBER_2 0x13
+#define TRAINER_CLASS_LADY 0x14
+#define TRAINER_CLASS_BEAUTY 0x15
+#define TRAINER_CLASS_RICH_BOY 0x16
+#define TRAINER_CLASS_POKEMANIAC 0x17
+#define TRAINER_CLASS_GUITARIST 0x18
+#define TRAINER_CLASS_KINDLER 0x19
+#define TRAINER_CLASS_CAMPER 0x1a
+#define TRAINER_CLASS_PICNICKER 0x1b
+#define TRAINER_CLASS_BUG_MANIAC 0x1c
+#define TRAINER_CLASS_PSYCHIC 0x1d
+#define TRAINER_CLASS_GENTLEMAN 0x1e
+#define TRAINER_CLASS_ELITE_FOUR 0x1f
+#define TRAINER_CLASS_LEADER 0x20
+#define TRAINER_CLASS_SCHOOL_KID 0x21
+#define TRAINER_CLASS_SR_AND_JR 0x22
+#define TRAINER_CLASS_WINSTRATE 0x23
+#define TRAINER_CLASS_POKEFAN 0x24
+#define TRAINER_CLASS_YOUNGSTER 0x25
+#define TRAINER_CLASS_CHAMPION 0x26
+#define TRAINER_CLASS_FISHERMAN 0x27
+#define TRAINER_CLASS_TRIATHLETE 0x28
+#define TRAINER_CLASS_DRAGON_TAMER 0x29
+#define TRAINER_CLASS_NINJA_BOY 0x2a
+#define TRAINER_CLASS_BATTLE_GIRL 0x2b
+#define TRAINER_CLASS_PARASOL_LADY 0x2c
+#define TRAINER_CLASS_SWIMMER_F 0x2d
+#define TRAINER_CLASS_TWINS 0x2e
+#define TRAINER_CLASS_SAILOR 0x2f
+#define TRAINER_CLASS_COOLTRAINER_2 0x30
+#define TRAINER_CLASS_MAGMA_ADMIN 0x31
+#define TRAINER_CLASS_PKMN_TRAINER_3 0x32
+#define TRAINER_CLASS_BUG_CATCHER 0x33
+#define TRAINER_CLASS_PKMN_RANGER 0x34
+#define TRAINER_CLASS_MAGMA_LEADER 0x35
+#define TRAINER_CLASS_LASS 0x36
+#define TRAINER_CLASS_YOUNG_COUPLE 0x37
+#define TRAINER_CLASS_OLD_COUPLE 0x38
+#define TRAINER_CLASS_SIS_AND_BRO 0x39
+#define TRAINER_CLASS_SALON_MAIDEN 0x3a
+#define TRAINER_CLASS_DOME_ACE 0x3b
+#define TRAINER_CLASS_PALACE_MAVEN 0x3c
+#define TRAINER_CLASS_ARENA_TYCOON 0x3d
+#define TRAINER_CLASS_FACTORY_HEAD 0x3e
+#define TRAINER_CLASS_PIKE_QUEEN 0x3f
+#define TRAINER_CLASS_PYRAMID_KING 0x40
+#define TRAINER_CLASS_PKMN_TRAINER_4 0x41
+
+#define TRAINER_ENCOUNTER_MUSIC_MALE 0 // standard male encounter music
+#define TRAINER_ENCOUNTER_MUSIC_FEMALE 1 // standard female encounter music
+#define TRAINER_ENCOUNTER_MUSIC_GIRL 2 // used for male Tubers and Young Couples too
+#define TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS 3
+#define TRAINER_ENCOUNTER_MUSIC_INTENSE 4
+#define TRAINER_ENCOUNTER_MUSIC_COOL 5
+#define TRAINER_ENCOUNTER_MUSIC_AQUA 6
+#define TRAINER_ENCOUNTER_MUSIC_MAGMA 7
+#define TRAINER_ENCOUNTER_MUSIC_SWIMMER 8
+#define TRAINER_ENCOUNTER_MUSIC_TWINS 9 // used for other trainer classes too
+#define TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR 10
+#define TRAINER_ENCOUNTER_MUSIC_HIKER 11 // used for other trainer classes too
+#define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12
+#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen
+
+#define F_TRAINER_FEMALE (1 << 7)
+
+// All trainer parties specify the IV, level, and species for each Pokémon in the
+// party. Some trainer parties also specify held items and custom moves for each
+// Pokémon.
+#define F_TRAINER_PARTY_CUSTOM_MOVESET (1 << 0)
+#define F_TRAINER_PARTY_HELD_ITEM (1 << 1)
+
+#endif // GUARD_TRAINERS_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
new file mode 100644
index 000000000..c0e3313b6
--- /dev/null
+++ b/include/constants/vars.h
@@ -0,0 +1,287 @@
+#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_0x400B 0x400B
+#define VAR_0x400C 0x400C
+#define VAR_0x400D 0x400D
+#define VAR_0x400E 0x400E
+#define VAR_0x400F 0x400F
+#define VAR_0x4010 0x4010
+#define VAR_0x4011 0x4011
+#define VAR_0x4012 0x4012
+#define VAR_0x4013 0x4013
+#define VAR_0x4014 0x4014
+#define VAR_0x4015 0x4015
+#define VAR_0x4016 0x4016
+#define VAR_0x4017 0x4017
+#define VAR_0x4018 0x4018
+#define VAR_0x4019 0x4019
+#define VAR_0x401A 0x401A
+#define VAR_0x401B 0x401B
+#define VAR_0x401C 0x401C
+#define VAR_0x401D 0x401D
+#define VAR_0x401E 0x401E
+#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_0x4027 0x4027
+#define VAR_0x4028 0x4028
+#define VAR_0x4029 0x4029
+#define VAR_HAPPINESS_STEP_COUNTER 0x402A
+#define VAR_POISON_STEP_COUNTER 0x402B
+#define VAR_RESET_RTC_ENABLE 0x402C
+#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D
+#define VAR_0x402E 0x402E
+
+#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
+#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030
+#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031
+#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
+#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033
+
+#define VAR_0x4034 0x4034
+#define VAR_0x4035 0x4035
+#define VAR_STORAGE_UNKNOWN 0x4036
+#define VAR_0x4037 0x4037
+#define VAR_0x4038 0x4038
+#define VAR_0x4039 0x4039
+#define VAR_0x403A 0x403A
+#define VAR_0x403B 0x403B
+#define VAR_0x403C 0x403C
+#define VAR_0x403D 0x403D
+#define VAR_ALTERING_CAVE_WILD_SET 0x403E
+#define VAR_0x403F 0x403F
+#define VAR_DAYS 0x4040
+#define VAR_0x4041 0x4041
+#define VAR_0x4042 0x4042
+#define VAR_DEPT_STORE_FLOOR 0x4043
+#define VAR_0x4044 0x4044
+#define VAR_POKELOT_PRIZE 0x4045
+#define VAR_NATIONAL_DEX 0x4046
+#define VAR_SEEDOT_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_0x404D 0x404D
+#define VAR_0x404E 0x404E
+#define VAR_LOTAD_SIZE_RECORD 0x404F
+#define VAR_0x4050 0x4050
+#define VAR_0x4051 0x4051
+#define VAR_0x4052 0x4052
+#define VAR_0x4053 0x4053
+#define VAR_0x4054 0x4054
+#define VAR_0x4055 0x4055
+#define VAR_0x4056 0x4056
+#define VAR_0x4057 0x4057
+#define VAR_0x4058 0x4058
+#define VAR_0x4059 0x4059
+#define VAR_0x405A 0x405A
+#define VAR_0x405B 0x405B
+#define VAR_0x405C 0x405C
+#define VAR_0x405D 0x405D
+#define VAR_0x405E 0x405E
+#define VAR_0x405F 0x405F
+#define VAR_0x4060 0x4060
+#define VAR_0x4061 0x4061
+#define VAR_0x4062 0x4062
+#define VAR_0x4063 0x4063
+#define VAR_0x4064 0x4064
+#define VAR_0x4065 0x4065
+#define VAR_0x4066 0x4066
+#define VAR_0x4067 0x4067
+#define VAR_0x4068 0x4068
+#define VAR_0x4069 0x4069
+#define VAR_0x406A 0x406A
+#define VAR_0x406B 0x406B
+#define VAR_0x406C 0x406C
+#define VAR_0x406D 0x406D
+#define VAR_0x406E 0x406E
+#define VAR_0x406F 0x406F
+#define VAR_0x4070 0x4070
+#define VAR_0x4071 0x4071
+#define VAR_0x4072 0x4072
+#define VAR_0x4073 0x4073
+#define VAR_0x4074 0x4074
+#define VAR_0x4075 0x4075
+#define VAR_0x4076 0x4076
+#define VAR_0x4077 0x4077
+#define VAR_0x4078 0x4078
+#define VAR_0x4079 0x4079
+#define VAR_0x407A 0x407A
+#define VAR_0x407B 0x407B
+#define VAR_0x407C 0x407C
+#define VAR_0x407D 0x407D
+#define VAR_0x407E 0x407E
+#define VAR_0x407F 0x407F
+#define VAR_0x4080 0x4080
+#define VAR_0x4081 0x4081
+#define VAR_0x4082 0x4082
+#define VAR_0x4083 0x4083
+#define VAR_0x4084 0x4084
+#define VAR_0x4085 0x4085
+#define VAR_0x4086 0x4086
+#define VAR_0x4087 0x4087
+#define VAR_0x4088 0x4088
+#define VAR_0x4089 0x4089
+#define VAR_0x408A 0x408A
+#define VAR_0x408B 0x408B
+#define VAR_0x408C 0x408C
+#define VAR_0x408D 0x408D
+#define VAR_0x408E 0x408E
+#define VAR_0x408F 0x408F
+#define VAR_0x4090 0x4090
+#define VAR_0x4091 0x4091
+#define VAR_0x4092 0x4092
+#define VAR_0x4093 0x4093
+#define VAR_0x4094 0x4094
+#define VAR_0x4095 0x4095
+#define VAR_0x4096 0x4096
+#define VAR_0x4097 0x4097
+#define VAR_0x4098 0x4098
+#define VAR_0x4099 0x4099
+#define VAR_0x409A 0x409A
+#define VAR_0x409B 0x409B
+#define VAR_0x409C 0x409C
+#define VAR_0x409D 0x409D
+#define VAR_0x409E 0x409E
+#define VAR_0x409F 0x409F
+#define VAR_0x40A0 0x40A0
+#define VAR_0x40A1 0x40A1
+#define VAR_0x40A2 0x40A2
+#define VAR_0x40A3 0x40A3
+#define VAR_0x40A4 0x40A4
+#define VAR_0x40A5 0x40A5
+#define VAR_0x40A6 0x40A6
+#define VAR_0x40A7 0x40A7
+#define VAR_0x40A8 0x40A8
+#define VAR_0x40A9 0x40A9
+#define VAR_0x40AA 0x40AA
+#define VAR_0x40AB 0x40AB
+#define VAR_0x40AC 0x40AC
+#define VAR_0x40AD 0x40AD
+#define VAR_0x40AE 0x40AE
+#define VAR_0x40AF 0x40AF
+#define VAR_0x40B0 0x40B0
+#define VAR_0x40B1 0x40B1
+#define VAR_0x40B2 0x40B2
+#define VAR_0x40B3 0x40B3
+#define VAR_PORTHOLE 0x40B4
+#define VAR_0x40B5 0x40B5
+#define VAR_0x40B6 0x40B6
+#define VAR_0x40B7 0x40B7
+#define VAR_0x40B8 0x40B8
+#define VAR_0x40B9 0x40B9
+#define VAR_0x40BA 0x40BA
+#define VAR_0x40BB 0x40BB
+#define VAR_0x40BC 0x40BC
+#define VAR_0x40BD 0x40BD
+#define VAR_0x40BE 0x40BE
+#define VAR_0x40BF 0x40BF
+#define VAR_0x40C0 0x40C0
+#define VAR_0x40C1 0x40C1
+#define VAR_0x40C2 0x40C2
+#define VAR_0x40C3 0x40C3
+#define VAR_0x40C4 0x40C4
+#define VAR_0x40C5 0x40C5
+#define VAR_0x40C6 0x40C6
+#define VAR_0x40C7 0x40C7
+#define VAR_0x40C8 0x40C8
+#define VAR_0x40C9 0x40C9
+#define VAR_0x40CA 0x40CA
+#define VAR_0x40CB 0x40CB
+#define VAR_0x40CC 0x40CC
+#define VAR_0x40CD 0x40CD
+#define VAR_0x40CE 0x40CE
+#define VAR_FRONTIER_FACILITY 0x40CF
+#define VAR_0x40D0 0x40D0
+#define VAR_0x40D1 0x40D1
+#define VAR_0x40D2 0x40D2
+#define VAR_0x40D3 0x40D3
+#define VAR_0x40D4 0x40D4
+#define VAR_0x40D5 0x40D5
+#define VAR_0x40D6 0x40D6
+#define VAR_0x40D7 0x40D7
+#define VAR_0x40D8 0x40D8
+#define VAR_0x40D9 0x40D9
+#define VAR_0x40DA 0x40DA
+#define VAR_0x40DB 0x40DB
+#define VAR_0x40DC 0x40DC
+#define VAR_EVENT_PICHU_SLOT 0x40DD
+#define VAR_0x40DE 0x40DE
+#define VAR_0x40DF 0x40DF
+#define VAR_0x40E0 0x40E0
+#define VAR_0x40E1 0x40E1
+#define VAR_0x40E2 0x40E2
+#define VAR_0x40E3 0x40E3
+#define VAR_0x40E4 0x40E4
+#define VAR_0x40E5 0x40E5
+#define VAR_DAILY_SLOTS 0x40E6
+#define VAR_DAILY_WILDS 0x40E7
+#define VAR_DAILY_BLENDER 0x40E8
+#define VAR_DAILY_PLANTED_BERRIES 0x40E9
+#define VAR_DAILY_PICKED_BERRIES 0x40EA
+#define VAR_DAILY_ROULETTE 0x40EB
+#define VAR_0x40EC 0x40EC
+#define VAR_0x40ED 0x40ED
+#define VAR_0x40EE 0x40EE
+#define VAR_0x40EF 0x40EF
+#define VAR_0x40F0 0x40F0
+#define VAR_DAILY_BP 0x40F1
+#define VAR_0x40F2 0x40F2
+#define VAR_0x40F3 0x40F3
+#define VAR_0x40F4 0x40F4
+#define VAR_0x40F5 0x40F5
+#define VAR_0x40F6 0x40F6
+#define VAR_0x40F7 0x40F7
+#define VAR_0x40F8 0x40F8
+#define VAR_0x40F9 0x40F9
+#define VAR_0x40FA 0x40FA
+#define VAR_0x40FB 0x40FB
+#define VAR_0x40FC 0x40FC
+#define VAR_0x40FD 0x40FD
+#define VAR_0x40FE 0x40FE
+#define VAR_0x40FF 0x40FF
+
+#define VAR_0x8000 0x8000
+#define VAR_0x8001 0x8001
+#define VAR_0x8002 0x8002
+#define VAR_0x8003 0x8003
+#define VAR_0x8004 0x8004
+#define VAR_0x8005 0x8005
+#define VAR_0x8006 0x8006
+#define VAR_0x8007 0x8007
+#define VAR_0x8008 0x8008
+#define VAR_0x8009 0x8009
+#define VAR_0x800A 0x800A
+#define VAR_0x800B 0x800B
+#define VAR_FACING 0x800C
+#define VAR_RESULT 0x800D
+#define VAR_ITEM_ID 0x800E
+#define VAR_LAST_TALKED 0x800F
+#define VAR_CONTEST_RANK 0x8010
+#define VAR_CONTEST_CATEGORY 0x8011
+#define VAR_MON_BOX_ID 0x8012
+#define VAR_MON_BOX_POS 0x8013
+#define VAR_0x8014 0x8014
+
+#endif // GUARD_CONSTANTS_VARS_H
diff --git a/include/constants/weather.h b/include/constants/weather.h
new file mode 100644
index 000000000..953cc2753
--- /dev/null
+++ b/include/constants/weather.h
@@ -0,0 +1,39 @@
+#ifndef GUARD_CONSTANTS_WEATHER_H
+#define GUARD_CONSTANTS_WEATHER_H
+
+#define WEATHER_NONE 0
+#define WEATHER_CLOUDS 1
+#define WEATHER_SUNNY 2
+#define WEATHER_RAIN_LIGHT 3
+#define WEATHER_SNOW 4
+#define WEATHER_RAIN_MED 5
+#define WEATHER_FOG_1 6
+#define WEATHER_ASH 7
+#define WEATHER_SANDSTORM 8
+#define WEATHER_FOG_2 9
+#define WEATHER_FOG_3 10
+#define WEATHER_SHADE 11
+#define WEATHER_DROUGHT 12
+#define WEATHER_RAIN_HEAVY 13
+#define WEATHER_BUBBLES 14
+#define WEATHER_ROUTE119_CYCLE 20
+#define WEATHER_ROUTE123_CYCLE 21
+
+// These are used in maps' coord_weather_event entries.
+// They are not a one-to-one mapping with the engine's
+// internal weather constants above.
+#define COORD_EVENT_WEATHER_CLOUDS 1
+#define COORD_EVENT_WEATHER_SUNNY 2
+#define COORD_EVENT_WEATHER_RAIN_LIGHT 3
+#define COORD_EVENT_WEATHER_SNOW 4
+#define COORD_EVENT_WEATHER_RAIN_MED 5
+#define COORD_EVENT_WEATHER_FOG_1 6
+#define COORD_EVENT_WEATHER_FOG_2 7
+#define COORD_EVENT_WEATHER_ASH 8
+#define COORD_EVENT_WEATHER_SANDSTORM 9
+#define COORD_EVENT_WEATHER_SHADE 10
+#define COORD_EVENT_WEATHER_DROUGHT 11
+#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20
+#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21
+
+#endif // GUARD_CONSTANTS_WEATHER_H
diff --git a/include/contest.h b/include/contest.h
index 7dcde7da2..d920117f3 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -12,14 +12,20 @@ struct ContestStruct_02039E00
extern struct ContestStruct_02039E00 gUnknown_02039E00[4];
extern u8 gUnknown_02039F24;
-extern u16 gScriptContestCategory;
-extern u8 gUnknown_02039F2E;
+extern u16 gSpecialVar_ContestCategory;
+extern u8 gSpecialVar_ContestRank;
extern u8 gUnknown_02039F30;
struct ContestStruct_field_18
{
// unknown size
u16 field_0;
+ u16 field_2;
+ u16 field_4;
+ u16 field_6;
+ u32 field_8;
+ u32 field_C;
+ u32 field_10;
};
struct ContestResources
diff --git a/include/coord_event_weather.h b/include/coord_event_weather.h
new file mode 100644
index 000000000..86fb48793
--- /dev/null
+++ b/include/coord_event_weather.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_COORD_EVENT_WEATHER_H
+#define GUARD_COORD_EVENT_WEATHER_H
+
+void DoCoordEventWeather(u8);
+
+#endif // GUARD_COORD_EVENT_WEATHER_H
diff --git a/include/data/bard_music/pokemon.h b/include/data/bard_music/pokemon.h
index 7b4081a3c..693005360 100644
--- a/include/data/bard_music/pokemon.h
+++ b/include/data/bard_music/pokemon.h
@@ -1,6 +1,6 @@
#ifndef GUARD_DATA_BARD_MUSIC_POKEMON_H
#define GUARD_DATA_BARD_MUSIC_POKEMON_H
-#include "species.h"
+#include "constants/species.h"
const u16 gUnknown_085F5490 = NUM_SPECIES;
diff --git a/include/data/pokedex_orders.h b/include/data/pokedex_orders.h
new file mode 100644
index 000000000..61fbd289c
--- /dev/null
+++ b/include/data/pokedex_orders.h
@@ -0,0 +1,1199 @@
+#ifndef GUARD_DATA_POKEDEX_ORDERS
+#define GUARD_DATA_POKEDEX_ORDERS
+
+const u16 gPokedexOrder_Alphabetical[] =
+{
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 63, // Abra
+ 359, // Absol
+ 142, // Aerodactyl
+ 306, // Aggron
+ 190, // Aipom
+ 65, // Alakazam
+ 334, // Altaria
+ 181, // Ampharos
+ 347, // Anorith
+ 24, // Arbok
+ 59, // Arcanine
+ 168, // Ariados
+ 348, // Armaldo
+ 304, // Aron
+ 144, // Articuno
+ 184, // Azumarill
+ 298, // Azurill
+ 371, // Bagon
+ 343, // Baltoy
+ 354, // Banette
+ 339, // Barboach
+ 153, // Bayleef
+ 267, // Beautifly
+ 15, // Beedrill
+ 374, // Beldum
+ 182, // Bellossom
+ 69, // Bellsprout
+ 9, // Blastoise
+ 257, // Blaziken
+ 242, // Blissey
+ 286, // Breloom
+ 1, // Bulbasaur
+ 12, // Butterfree
+ 331, // Cacnea
+ 332, // Cacturne
+ 323, // Camerupt
+ 318, // Carvanha
+ 268, // Cascoon
+ 351, // Castform
+ 10, // Caterpie
+ 251, // Celebi
+ 113, // Chansey
+ 6, // Charizard
+ 4, // Charmander
+ 5, // Charmeleon
+ 152, // Chikorita
+ 358, // Chimecho
+ 170, // Chinchou
+ 366, // Clamperl
+ 344, // Claydol
+ 36, // Clefable
+ 35, // Clefairy
+ 173, // Cleffa
+ 91, // Cloyster
+ 256, // Combusken
+ 341, // Corphish
+ 222, // Corsola
+ 346, // Cradily
+ 342, // Crawdaunt
+ 169, // Crobat
+ 159, // Croconaw
+ 104, // Cubone
+ 155, // Cyndaquil
+ 301, // Delcatty
+ 225, // Delibird
+ 386, // Deoxys
+ 87, // Dewgong
+ 50, // Diglett
+ 132, // Ditto
+ 85, // Dodrio
+ 84, // Doduo
+ 232, // Donphan
+ 148, // Dragonair
+ 149, // Dragonite
+ 147, // Dratini
+ 96, // Drowzee
+ 51, // Dugtrio
+ 206, // Dunsparce
+ 356, // Dusclops
+ 355, // Duskull
+ 269, // Dustox
+ 133, // Eevee
+ 23, // Ekans
+ 125, // Electabuzz
+ 309, // Electrike
+ 101, // Electrode
+ 239, // Elekid
+ 244, // Entei
+ 196, // Espeon
+ 102, // Exeggcute
+ 103, // Exeggutor
+ 295, // Exploud
+ 83, // Farfetch'd
+ 22, // Fearow
+ 349, // Feebas
+ 160, // Feraligatr
+ 180, // Flaaffy
+ 136, // Flareon
+ 330, // Flygon
+ 205, // Forretress
+ 162, // Furret
+ 282, // Gardevoir
+ 92, // Gastly
+ 94, // Gengar
+ 74, // Geodude
+ 203, // Girafarig
+ 362, // Glalie
+ 207, // Gligar
+ 44, // Gloom
+ 42, // Golbat
+ 118, // Goldeen
+ 55, // Golduck
+ 76, // Golem
+ 368, // Gorebyss
+ 210, // Granbull
+ 75, // Graveler
+ 88, // Grimer
+ 383, // Groudon
+ 253, // Grovyle
+ 58, // Growlithe
+ 326, // Grumpig
+ 316, // Gulpin
+ 130, // Gyarados
+ 297, // Hariyama
+ 93, // Haunter
+ 214, // Heracross
+ 107, // Hitmonchan
+ 106, // Hitmonlee
+ 237, // Hitmontop
+ 250, // Ho-Oh
+ 163, // Hoothoot
+ 187, // Hoppip
+ 116, // Horsea
+ 229, // Houndoom
+ 228, // Houndour
+ 367, // Huntail
+ 97, // Hypno
+ 174, // Igglybuff
+ 314, // Illumise
+ 2, // Ivysaur
+ 39, // Jigglypuff
+ 385, // Jirachi
+ 135, // Jolteon
+ 189, // Jumpluff
+ 124, // Jynx
+ 140, // Kabuto
+ 141, // Kabutops
+ 64, // Kadabra
+ 14, // Kakuna
+ 115, // Kangaskhan
+ 352, // Kecleon
+ 230, // Kingdra
+ 99, // Kingler
+ 281, // Kirlia
+ 109, // Koffing
+ 98, // Krabby
+ 382, // Kyogre
+ 305, // Lairon
+ 171, // Lanturn
+ 131, // Lapras
+ 246, // Larvitar
+ 380, // Latias
+ 381, // Latios
+ 166, // Ledian
+ 165, // Ledyba
+ 108, // Lickitung
+ 345, // Lileep
+ 264, // Linoone
+ 271, // Lombre
+ 270, // Lotad
+ 294, // Loudred
+ 272, // Ludicolo
+ 249, // Lugia
+ 337, // Lunatone
+ 370, // Luvdisc
+ 68, // Machamp
+ 67, // Machoke
+ 66, // Machop
+ 240, // Magby
+ 219, // Magcargo
+ 129, // Magikarp
+ 126, // Magmar
+ 81, // Magnemite
+ 82, // Magneton
+ 296, // Makuhita
+ 310, // Manectric
+ 56, // Mankey
+ 226, // Mantine
+ 179, // Mareep
+ 183, // Marill
+ 105, // Marowak
+ 259, // Marshtomp
+ 284, // Masquerain
+ 303, // Mawile
+ 308, // Medicham
+ 307, // Meditite
+ 154, // Meganium
+ 52, // Meowth
+ 376, // Metagross
+ 375, // Metang
+ 11, // Metapod
+ 151, // Mew
+ 150, // Mewtwo
+ 262, // Mightyena
+ 350, // Milotic
+ 241, // Miltank
+ 312, // Minun
+ 200, // Misdreavus
+ 146, // Moltres
+ 122, // Mr. mime
+ 258, // Mudkip
+ 89, // Muk
+ 198, // Murkrow
+ 177, // Natu
+ 34, // Nidoking
+ 31, // Nidoqueen
+ 29, // Nidoran?
+ 32, // Nidoran?
+ 30, // Nidorina
+ 33, // Nidorino
+ 290, // Nincada
+ 38, // Ninetales
+ 291, // Ninjask
+ 164, // Noctowl
+ 299, // Nosepass
+ 322, // Numel
+ 274, // Nuzleaf
+ 224, // Octillery
+ 43, // Oddish
+ 138, // Omanyte
+ 139, // Omastar
+ 95, // Onix
+ 46, // Paras
+ 47, // Parasect
+ 279, // Pelipper
+ 53, // Persian
+ 231, // Phanpy
+ 172, // Pichu
+ 18, // Pidgeot
+ 17, // Pidgeotto
+ 16, // Pidgey
+ 25, // Pikachu
+ 221, // Piloswine
+ 204, // Pineco
+ 127, // Pinsir
+ 311, // Plusle
+ 186, // Politoed
+ 60, // Poliwag
+ 61, // Poliwhirl
+ 62, // Poliwrath
+ 77, // Ponyta
+ 261, // Poochyena
+ 137, // Porygon
+ 233, // Porygon2
+ 57, // Primeape
+ 54, // Psyduck
+ 247, // Pupitar
+ 195, // Quagsire
+ 156, // Quilava
+ 211, // Qwilfish
+ 26, // Raichu
+ 243, // Raikou
+ 280, // Ralts
+ 78, // Rapidash
+ 20, // Raticate
+ 19, // Rattata
+ 384, // Rayquaza
+ 378, // Regice
+ 377, // Regirock
+ 379, // Registeel
+ 369, // Relicanth
+ 223, // Remoraid
+ 112, // Rhydon
+ 111, // Rhyhorn
+ 315, // Roselia
+ 302, // Sableye
+ 373, // Salamence
+ 27, // Sandshrew
+ 28, // Sandslash
+ 254, // Sceptile
+ 212, // Scizor
+ 123, // Scyther
+ 117, // Seadra
+ 119, // Seaking
+ 364, // Sealeo
+ 273, // Seedot
+ 86, // Seel
+ 161, // Sentret
+ 336, // Seviper
+ 319, // Sharpedo
+ 292, // Shedinja
+ 372, // Shelgon
+ 90, // Shellder
+ 275, // Shiftry
+ 285, // Shroomish
+ 213, // Shuckle
+ 353, // Shuppet
+ 266, // Silcoon
+ 227, // Skarmory
+ 188, // Skiploom
+ 300, // Skitty
+ 289, // Slaking
+ 287, // Slakoth
+ 80, // Slowbro
+ 199, // Slowking
+ 79, // Slowpoke
+ 218, // Slugma
+ 235, // Smeargle
+ 238, // Smoochum
+ 215, // Sneasel
+ 143, // Snorlax
+ 361, // Snorunt
+ 209, // Snubbull
+ 338, // Solrock
+ 21, // Spearow
+ 363, // Spheal
+ 167, // Spinarak
+ 327, // Spinda
+ 325, // Spoink
+ 7, // Squirtle
+ 234, // Stantler
+ 121, // Starmie
+ 120, // Staryu
+ 208, // Steelix
+ 185, // Sudowoodo
+ 245, // Suicune
+ 192, // Sunflora
+ 191, // Sunkern
+ 283, // Surskit
+ 333, // Swablu
+ 317, // Swalot
+ 260, // Swampert
+ 277, // Swellow
+ 220, // Swinub
+ 276, // Taillow
+ 114, // Tangela
+ 128, // Tauros
+ 216, // Teddiursa
+ 72, // Tentacool
+ 73, // Tentacruel
+ 175, // Togepi
+ 176, // Togetic
+ 255, // Torchic
+ 324, // Torkoal
+ 158, // Totodile
+ 328, // Trapinch
+ 252, // Treecko
+ 357, // Tropius
+ 157, // Typhlosion
+ 248, // Tyranitar
+ 236, // Tyrogue
+ 197, // Umbreon
+ 201, // Unown
+ 217, // Ursaring
+ 134, // Vaporeon
+ 49, // Venomoth
+ 48, // Venonat
+ 3, // Venusaur
+ 329, // Vibrava
+ 71, // Victreebel
+ 288, // Vigoroth
+ 45, // Vileplume
+ 313, // Volbeat
+ 100, // Voltorb
+ 37, // Vulpix
+ 320, // Wailmer
+ 321, // Wailord
+ 365, // Walrein
+ 8, // Wartortle
+ 13, // Weedle
+ 70, // Weepinbell
+ 110, // Weezing
+ 340, // Whiscash
+ 293, // Whismur
+ 40, // Wigglytuff
+ 278, // Wingull
+ 202, // Wobbuffet
+ 194, // Wooper
+ 265, // Wurmple
+ 360, // Wynaut
+ 178, // Xatu
+ 193, // Yanma
+ 335, // Zangoose
+ 145, // Zapdos
+ 263, // Zigzagoon
+ 41, // Zubat
+};
+
+const u16 gPokedexOrder_Weight[] =
+{
+ 92, // Gastly
+ 93, // Haunter
+ 187, // Hoppip
+ 50, // Diglett
+ 351, // Castform
+ 109, // Koffing
+ 174, // Igglybuff
+ 200, // Misdreavus
+ 358, // Chimecho
+ 188, // Skiploom
+ 385, // Jirachi
+ 333, // Swablu
+ 292, // Shedinja
+ 175, // Togepi
+ 283, // Surskit
+ 16, // Pidgey
+ 191, // Sunkern
+ 339, // Barboach
+ 172, // Pichu
+ 298, // Azurill
+ 315, // Roselia
+ 177, // Natu
+ 21, // Spearow
+ 198, // Murkrow
+ 353, // Shuppet
+ 276, // Taillow
+ 102, // Exeggcute
+ 255, // Torchic
+ 270, // Lotad
+ 10, // Caterpie
+ 189, // Jumpluff
+ 173, // Cleffa
+ 13, // Weedle
+ 176, // Togetic
+ 147, // Dratini
+ 19, // Rattata
+ 284, // Masquerain
+ 265, // Wurmple
+ 211, // Qwilfish
+ 151, // Mew
+ 90, // Shellder
+ 273, // Seedot
+ 132, // Ditto
+ 69, // Bellsprout
+ 311, // Plusle
+ 52, // Meowth
+ 312, // Minun
+ 285, // Shroomish
+ 251, // Celebi
+ 222, // Corsola
+ 252, // Treecko
+ 327, // Spinda
+ 201, // Unown
+ 46, // Paras
+ 43, // Oddish
+ 39, // Jigglypuff
+ 290, // Nincada
+ 182, // Bellossom
+ 81, // Magnemite
+ 25, // Pikachu
+ 238, // Smoochum
+ 161, // Sentret
+ 70, // Weepinbell
+ 152, // Chikorita
+ 220, // Swinub
+ 133, // Eevee
+ 98, // Krabby
+ 104, // Cubone
+ 280, // Ralts
+ 1, // Bulbasaur
+ 23, // Ekans
+ 29, // Nidoran?
+ 204, // Pineco
+ 349, // Feebas
+ 138, // Omanyte
+ 41, // Zubat
+ 35, // Clefairy
+ 258, // Mudkip
+ 209, // Snubbull
+ 179, // Mareep
+ 155, // Cyndaquil
+ 116, // Horsea
+ 4, // Charmander
+ 192, // Sunflora
+ 183, // Marill
+ 194, // Wooper
+ 167, // Spinarak
+ 44, // Gloom
+ 370, // Luvdisc
+ 216, // Teddiursa
+ 32, // Nidoran?
+ 7, // Squirtle
+ 278, // Wingull
+ 158, // Totodile
+ 110, // Weezing
+ 37, // Vulpix
+ 11, // Metapod
+ 266, // Silcoon
+ 129, // Magikarp
+ 14, // Kakuna
+ 316, // Gulpin
+ 100, // Voltorb
+ 165, // Ledyba
+ 228, // Houndour
+ 300, // Skitty
+ 302, // Sableye
+ 307, // Meditite
+ 341, // Corphish
+ 190, // Aipom
+ 268, // Cascoon
+ 303, // Mawile
+ 140, // Kabuto
+ 40, // Wigglytuff
+ 27, // Sandshrew
+ 223, // Remoraid
+ 291, // Ninjask
+ 170, // Chinchou
+ 60, // Poliwag
+ 347, // Anorith
+ 49, // Venomoth
+ 354, // Banette
+ 2, // Ivysaur
+ 180, // Flaaffy
+ 261, // Poochyena
+ 360, // Wynaut
+ 206, // Dunsparce
+ 178, // Xatu
+ 355, // Duskull
+ 83, // Farfetch'd
+ 328, // Trapinch
+ 118, // Goldeen
+ 309, // Electrike
+ 329, // Vibrava
+ 71, // Victreebel
+ 153, // Bayleef
+ 225, // Delibird
+ 293, // Whismur
+ 148, // Dragonair
+ 361, // Snorunt
+ 263, // Zigzagoon
+ 314, // Illumise
+ 313, // Volbeat
+ 20, // Raticate
+ 45, // Vileplume
+ 156, // Quilava
+ 5, // Charmeleon
+ 58, // Growlithe
+ 256, // Combusken
+ 66, // Machop
+ 63, // Abra
+ 33, // Nidorino
+ 54, // Psyduck
+ 277, // Swellow
+ 38, // Ninetales
+ 30, // Nidorina
+ 61, // Poliwhirl
+ 74, // Geodude
+ 281, // Kirlia
+ 213, // Shuckle
+ 334, // Altaria
+ 318, // Carvanha
+ 236, // Tyrogue
+ 163, // Hoothoot
+ 240, // Magby
+ 343, // Baltoy
+ 253, // Grovyle
+ 352, // Kecleon
+ 171, // Lanturn
+ 8, // Wartortle
+ 368, // Gorebyss
+ 369, // Relicanth
+ 239, // Elekid
+ 340, // Whiscash
+ 345, // Lileep
+ 322, // Numel
+ 287, // Slakoth
+ 135, // Jolteon
+ 159, // Croconaw
+ 136, // Flareon
+ 117, // Seadra
+ 196, // Espeon
+ 367, // Huntail
+ 197, // Umbreon
+ 259, // Marshtomp
+ 274, // Nuzleaf
+ 215, // Sneasel
+ 56, // Mankey
+ 279, // Pelipper
+ 267, // Beautifly
+ 224, // Octillery
+ 184, // Azumarill
+ 202, // Wobbuffet
+ 134, // Vaporeon
+ 28, // Sandslash
+ 47, // Parasect
+ 15, // Beedrill
+ 89, // Muk
+ 17, // Pidgeotto
+ 88, // Grimer
+ 26, // Raichu
+ 77, // Ponyta
+ 125, // Electabuzz
+ 48, // Venonat
+ 325, // Spoink
+ 356, // Dusclops
+ 308, // Medicham
+ 269, // Dustox
+ 53, // Persian
+ 12, // Butterfree
+ 57, // Primeape
+ 96, // Drowzee
+ 162, // Furret
+ 233, // Porygon2
+ 271, // Lombre
+ 264, // Linoone
+ 301, // Delcatty
+ 342, // Crawdaunt
+ 51, // Dugtrio
+ 168, // Ariados
+ 231, // Phanpy
+ 186, // Politoed
+ 120, // Staryu
+ 113, // Chansey
+ 139, // Omastar
+ 114, // Tangela
+ 218, // Slugma
+ 229, // Houndoom
+ 166, // Ledian
+ 79, // Slowpoke
+ 137, // Porygon
+ 262, // Mightyena
+ 193, // Yanma
+ 22, // Fearow
+ 185, // Sudowoodo
+ 119, // Seaking
+ 286, // Breloom
+ 84, // Doduo
+ 18, // Pidgeot
+ 363, // Spheal
+ 36, // Clefable
+ 380, // Latias
+ 310, // Manectric
+ 335, // Zangoose
+ 141, // Kabutops
+ 94, // Gengar
+ 294, // Loudred
+ 124, // Jynx
+ 164, // Noctowl
+ 203, // Girafarig
+ 371, // Bagon
+ 126, // Magmar
+ 105, // Marowak
+ 72, // Tentacool
+ 288, // Vigoroth
+ 242, // Blissey
+ 359, // Absol
+ 65, // Alakazam
+ 237, // Hitmontop
+ 282, // Gardevoir
+ 210, // Granbull
+ 106, // Hitmonlee
+ 107, // Hitmonchan
+ 227, // Skarmory
+ 331, // Cacnea
+ 257, // Blaziken
+ 254, // Sceptile
+ 336, // Seviper
+ 366, // Clamperl
+ 145, // Zapdos
+ 214, // Heracross
+ 62, // Poliwrath
+ 122, // Mr. mime
+ 127, // Pinsir
+ 272, // Ludicolo
+ 73, // Tentacruel
+ 42, // Golbat
+ 219, // Magcargo
+ 144, // Articuno
+ 221, // Piloswine
+ 123, // Scyther
+ 64, // Kadabra
+ 235, // Smeargle
+ 142, // Aerodactyl
+ 275, // Shiftry
+ 99, // Kingler
+ 31, // Nidoqueen
+ 82, // Magneton
+ 304, // Aron
+ 381, // Latios
+ 146, // Moltres
+ 346, // Cradily
+ 386, // Deoxys
+ 181, // Ampharos
+ 34, // Nidoking
+ 207, // Gligar
+ 24, // Arbok
+ 108, // Lickitung
+ 101, // Electrode
+ 348, // Armaldo
+ 67, // Machoke
+ 234, // Stantler
+ 326, // Grumpig
+ 246, // Larvitar
+ 169, // Crobat
+ 195, // Quagsire
+ 241, // Miltank
+ 97, // Hypno
+ 55, // Golduck
+ 332, // Cacturne
+ 80, // Slowbro
+ 157, // Typhlosion
+ 199, // Slowking
+ 115, // Kangaskhan
+ 121, // Starmie
+ 317, // Swalot
+ 324, // Torkoal
+ 260, // Swampert
+ 330, // Flygon
+ 295, // Exploud
+ 85, // Dodrio
+ 9, // Blastoise
+ 296, // Makuhita
+ 364, // Sealeo
+ 128, // Tauros
+ 319, // Sharpedo
+ 160, // Feraligatr
+ 86, // Seel
+ 6, // Charizard
+ 78, // Rapidash
+ 374, // Beldum
+ 299, // Nosepass
+ 3, // Venusaur
+ 357, // Tropius
+ 154, // Meganium
+ 373, // Salamence
+ 75, // Graveler
+ 344, // Claydol
+ 372, // Shelgon
+ 111, // Rhyhorn
+ 212, // Scizor
+ 87, // Dewgong
+ 112, // Rhydon
+ 232, // Donphan
+ 103, // Exeggutor
+ 305, // Lairon
+ 150, // Mewtwo
+ 217, // Ursaring
+ 205, // Forretress
+ 68, // Machamp
+ 320, // Wailmer
+ 289, // Slaking
+ 91, // Cloyster
+ 365, // Walrein
+ 247, // Pupitar
+ 230, // Kingdra
+ 338, // Solrock
+ 59, // Arcanine
+ 350, // Milotic
+ 337, // Lunatone
+ 378, // Regice
+ 243, // Raikou
+ 245, // Suicune
+ 244, // Entei
+ 250, // Ho-Oh
+ 248, // Tyranitar
+ 375, // Metang
+ 379, // Registeel
+ 384, // Rayquaza
+ 95, // Onix
+ 149, // Dragonite
+ 249, // Lugia
+ 131, // Lapras
+ 323, // Camerupt
+ 226, // Mantine
+ 377, // Regirock
+ 130, // Gyarados
+ 297, // Hariyama
+ 362, // Glalie
+ 76, // Golem
+ 382, // Kyogre
+ 306, // Aggron
+ 321, // Wailord
+ 208, // Steelix
+ 143, // Snorlax
+ 376, // Metagross
+ 383, // Groudon
+};
+
+const u16 gPokedexOrder_Height[] =
+{
+ 50, // Diglett
+ 298, // Azurill
+ 177, // Natu
+ 13, // Weedle
+ 172, // Pichu
+ 173, // Cleffa
+ 175, // Togepi
+ 351, // Castform
+ 174, // Igglybuff
+ 10, // Caterpie
+ 276, // Taillow
+ 132, // Ditto
+ 133, // Eevee
+ 315, // Roselia
+ 21, // Spearow
+ 16, // Pidgey
+ 191, // Sunkern
+ 90, // Shellder
+ 19, // Rattata
+ 81, // Magnemite
+ 46, // Paras
+ 265, // Wurmple
+ 385, // Jirachi
+ 104, // Cubone
+ 258, // Mudkip
+ 194, // Wooper
+ 116, // Horsea
+ 52, // Meowth
+ 29, // Nidoran?
+ 220, // Swinub
+ 151, // Mew
+ 333, // Swablu
+ 304, // Aron
+ 311, // Plusle
+ 312, // Minun
+ 102, // Exeggcute
+ 25, // Pikachu
+ 182, // Bellossom
+ 316, // Gulpin
+ 263, // Zigzagoon
+ 285, // Shroomish
+ 138, // Omanyte
+ 331, // Cacnea
+ 98, // Krabby
+ 280, // Ralts
+ 187, // Hoppip
+ 255, // Torchic
+ 366, // Clamperl
+ 74, // Geodude
+ 183, // Marill
+ 339, // Barboach
+ 238, // Smoochum
+ 100, // Voltorb
+ 290, // Nincada
+ 302, // Sableye
+ 198, // Murkrow
+ 211, // Qwilfish
+ 7, // Squirtle
+ 252, // Treecko
+ 343, // Baltoy
+ 43, // Oddish
+ 270, // Lotad
+ 39, // Jigglypuff
+ 283, // Surskit
+ 155, // Cyndaquil
+ 140, // Kabuto
+ 264, // Linoone
+ 324, // Torkoal
+ 32, // Nidoran?
+ 167, // Spinarak
+ 56, // Mankey
+ 273, // Seedot
+ 261, // Poochyena
+ 231, // Phanpy
+ 201, // Unown
+ 170, // Chinchou
+ 233, // Porygon2
+ 60, // Poliwag
+ 371, // Bagon
+ 349, // Feebas
+ 353, // Shuppet
+ 158, // Totodile
+ 251, // Celebi
+ 360, // Wynaut
+ 27, // Sandshrew
+ 358, // Chimecho
+ 370, // Luvdisc
+ 228, // Houndour
+ 266, // Silcoon
+ 309, // Electrike
+ 4, // Charmander
+ 307, // Meditite
+ 278, // Wingull
+ 223, // Remoraid
+ 341, // Corphish
+ 222, // Corsola
+ 314, // Illumise
+ 209, // Snubbull
+ 37, // Vulpix
+ 246, // Larvitar
+ 374, // Beldum
+ 293, // Whismur
+ 204, // Pineco
+ 239, // Elekid
+ 35, // Clefairy
+ 213, // Shuckle
+ 216, // Teddiursa
+ 14, // Kakuna
+ 300, // Skitty
+ 176, // Togetic
+ 118, // Goldeen
+ 303, // Mawile
+ 179, // Mareep
+ 188, // Skiploom
+ 109, // Koffing
+ 51, // Dugtrio
+ 268, // Cascoon
+ 322, // Numel
+ 347, // Anorith
+ 313, // Volbeat
+ 163, // Hoothoot
+ 328, // Trapinch
+ 325, // Spoink
+ 11, // Metapod
+ 69, // Bellsprout
+ 361, // Snorunt
+ 20, // Raticate
+ 259, // Marshtomp
+ 277, // Swellow
+ 240, // Magby
+ 58, // Growlithe
+ 200, // Misdreavus
+ 1, // Bulbasaur
+ 236, // Tyrogue
+ 218, // Slugma
+ 287, // Slakoth
+ 281, // Kirlia
+ 190, // Aipom
+ 135, // Jolteon
+ 30, // Nidorina
+ 184, // Azumarill
+ 292, // Shedinja
+ 66, // Machop
+ 291, // Ninjask
+ 284, // Masquerain
+ 355, // Duskull
+ 192, // Sunflora
+ 189, // Jumpluff
+ 120, // Staryu
+ 180, // Flaaffy
+ 363, // Spheal
+ 54, // Psyduck
+ 219, // Magcargo
+ 83, // Farfetch'd
+ 41, // Zubat
+ 137, // Porygon
+ 161, // Sentret
+ 318, // Carvanha
+ 44, // Gloom
+ 26, // Raichu
+ 129, // Magikarp
+ 215, // Sneasel
+ 305, // Lairon
+ 256, // Combusken
+ 224, // Octillery
+ 33, // Nidorino
+ 136, // Flareon
+ 225, // Delibird
+ 72, // Tentacool
+ 63, // Abra
+ 253, // Grovyle
+ 340, // Whiscash
+ 156, // Quilava
+ 196, // Espeon
+ 88, // Grimer
+ 152, // Chikorita
+ 326, // Grumpig
+ 299, // Nosepass
+ 53, // Persian
+ 262, // Mightyena
+ 48, // Venonat
+ 82, // Magneton
+ 77, // Ponyta
+ 296, // Makuhita
+ 337, // Lunatone
+ 28, // Sandslash
+ 96, // Drowzee
+ 114, // Tangela
+ 57, // Primeape
+ 165, // Ledyba
+ 40, // Wigglytuff
+ 47, // Parasect
+ 139, // Omastar
+ 294, // Loudred
+ 8, // Wartortle
+ 75, // Graveler
+ 197, // Umbreon
+ 345, // Lileep
+ 61, // Poliwhirl
+ 134, // Vaporeon
+ 15, // Beedrill
+ 105, // Marowak
+ 70, // Weepinbell
+ 369, // Relicanth
+ 111, // Rhyhorn
+ 2, // Ivysaur
+ 352, // Kecleon
+ 274, // Nuzleaf
+ 267, // Beautifly
+ 17, // Pidgeotto
+ 168, // Ariados
+ 86, // Seel
+ 186, // Politoed
+ 159, // Croconaw
+ 113, // Chansey
+ 354, // Banette
+ 232, // Donphan
+ 121, // Starmie
+ 5, // Charmeleon
+ 221, // Piloswine
+ 12, // Butterfree
+ 329, // Vibrava
+ 125, // Electabuzz
+ 342, // Crawdaunt
+ 301, // Delcatty
+ 334, // Altaria
+ 372, // Shelgon
+ 38, // Ninetales
+ 207, // Gligar
+ 364, // Sealeo
+ 327, // Spinda
+ 247, // Pupitar
+ 79, // Slowpoke
+ 338, // Solrock
+ 241, // Miltank
+ 22, // Fearow
+ 45, // Vileplume
+ 89, // Muk
+ 205, // Forretress
+ 185, // Sudowoodo
+ 359, // Absol
+ 193, // Yanma
+ 269, // Dustox
+ 108, // Lickitung
+ 235, // Smeargle
+ 171, // Lanturn
+ 101, // Electrode
+ 271, // Lombre
+ 286, // Breloom
+ 153, // Bayleef
+ 117, // Seadra
+ 110, // Weezing
+ 279, // Pelipper
+ 375, // Metang
+ 31, // Nidoqueen
+ 332, // Cacturne
+ 275, // Shiftry
+ 308, // Medicham
+ 335, // Zangoose
+ 141, // Kabutops
+ 99, // Kingler
+ 64, // Kadabra
+ 119, // Seaking
+ 36, // Clefable
+ 126, // Magmar
+ 202, // Wobbuffet
+ 92, // Gastly
+ 122, // Mr. mime
+ 62, // Poliwrath
+ 128, // Tauros
+ 380, // Latias
+ 181, // Ampharos
+ 288, // Vigoroth
+ 166, // Ledian
+ 76, // Golem
+ 365, // Walrein
+ 84, // Doduo
+ 229, // Houndoom
+ 34, // Nidoking
+ 124, // Jynx
+ 107, // Hitmonchan
+ 234, // Stantler
+ 210, // Granbull
+ 237, // Hitmontop
+ 195, // Quagsire
+ 344, // Claydol
+ 260, // Swampert
+ 242, // Blissey
+ 272, // Ludicolo
+ 295, // Exploud
+ 206, // Dunsparce
+ 127, // Pinsir
+ 91, // Cloyster
+ 67, // Machoke
+ 203, // Girafarig
+ 18, // Pidgeot
+ 178, // Xatu
+ 346, // Cradily
+ 106, // Hitmonlee
+ 49, // Venomoth
+ 94, // Gengar
+ 214, // Heracross
+ 362, // Glalie
+ 123, // Scyther
+ 373, // Salamence
+ 310, // Manectric
+ 348, // Armaldo
+ 65, // Alakazam
+ 97, // Hypno
+ 164, // Noctowl
+ 73, // Tentacruel
+ 356, // Dusclops
+ 145, // Zapdos
+ 42, // Golbat
+ 376, // Metagross
+ 282, // Gardevoir
+ 9, // Blastoise
+ 80, // Slowbro
+ 93, // Haunter
+ 68, // Machamp
+ 377, // Regirock
+ 317, // Swalot
+ 254, // Sceptile
+ 227, // Skarmory
+ 55, // Golduck
+ 386, // Deoxys
+ 71, // Victreebel
+ 78, // Rapidash
+ 6, // Charizard
+ 367, // Huntail
+ 87, // Dewgong
+ 144, // Articuno
+ 157, // Typhlosion
+ 142, // Aerodactyl
+ 368, // Gorebyss
+ 217, // Ursaring
+ 154, // Meganium
+ 378, // Regice
+ 212, // Scizor
+ 230, // Kingdra
+ 147, // Dratini
+ 85, // Dodrio
+ 319, // Sharpedo
+ 169, // Crobat
+ 162, // Furret
+ 59, // Arcanine
+ 243, // Raikou
+ 257, // Blaziken
+ 323, // Camerupt
+ 112, // Rhydon
+ 379, // Registeel
+ 23, // Ekans
+ 330, // Flygon
+ 357, // Tropius
+ 381, // Latios
+ 245, // Suicune
+ 146, // Moltres
+ 3, // Venusaur
+ 103, // Exeggutor
+ 199, // Slowking
+ 248, // Tyranitar
+ 289, // Slaking
+ 320, // Wailmer
+ 150, // Mewtwo
+ 306, // Aggron
+ 143, // Snorlax
+ 226, // Mantine
+ 244, // Entei
+ 149, // Dragonite
+ 115, // Kangaskhan
+ 297, // Hariyama
+ 160, // Feraligatr
+ 131, // Lapras
+ 336, // Seviper
+ 24, // Arbok
+ 383, // Groudon
+ 250, // Ho-Oh
+ 148, // Dragonair
+ 382, // Kyogre
+ 249, // Lugia
+ 350, // Milotic
+ 130, // Gyarados
+ 384, // Rayquaza
+ 95, // Onix
+ 208, // Steelix
+ 321, // Wailord
+};
+
+#endif // GUARD_DATA_POKEDEX_ORDERS
diff --git a/include/data/pokemon/base_stats.h b/include/data/pokemon/base_stats.h
new file mode 100644
index 000000000..bc6572b46
--- /dev/null
+++ b/include/data/pokemon/base_stats.h
@@ -0,0 +1,13576 @@
+#ifndef GUARD_BASE_STATS_H
+#define GUARD_BASE_STATS_H
+
+// Maximum value for a female pokemon is 254 (MON_FEMALE) which is 100% female.
+// 255 (MON_GENDERLESS) is reserved for genderless pokemon.
+#define PERCENT_FEMALE(percent) min(254, ((percent * 255) / 100))
+
+const struct BaseStats gBaseStats[] =
+{
+ [SPECIES_NONE] = {0},
+
+ [SPECIES_BULBASAUR] =
+ {
+ .baseHP = 45,
+ .baseAttack = 49,
+ .baseDefense = 49,
+ .baseSpeed = 45,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 64,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_IVYSAUR] =
+ {
+ .baseHP = 60,
+ .baseAttack = 62,
+ .baseDefense = 63,
+ .baseSpeed = 60,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 141,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VENUSAUR] =
+ {
+ .baseHP = 80,
+ .baseAttack = 82,
+ .baseDefense = 83,
+ .baseSpeed = 80,
+ .baseSpAttack = 100,
+ .baseSpDefense = 100,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 208,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHARMANDER] =
+ {
+ .baseHP = 39,
+ .baseAttack = 52,
+ .baseDefense = 43,
+ .baseSpeed = 65,
+ .baseSpAttack = 60,
+ .baseSpDefense = 50,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHARMELEON] =
+ {
+ .baseHP = 58,
+ .baseAttack = 64,
+ .baseDefense = 58,
+ .baseSpeed = 80,
+ .baseSpAttack = 80,
+ .baseSpDefense = 65,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 142,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHARIZARD] =
+ {
+ .baseHP = 78,
+ .baseAttack = 84,
+ .baseDefense = 78,
+ .baseSpeed = 100,
+ .baseSpAttack = 109,
+ .baseSpDefense = 85,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 209,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SQUIRTLE] =
+ {
+ .baseHP = 44,
+ .baseAttack = 48,
+ .baseDefense = 65,
+ .baseSpeed = 43,
+ .baseSpAttack = 50,
+ .baseSpDefense = 64,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 66,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WARTORTLE] =
+ {
+ .baseHP = 59,
+ .baseAttack = 63,
+ .baseDefense = 80,
+ .baseSpeed = 58,
+ .baseSpAttack = 65,
+ .baseSpDefense = 80,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 143,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BLASTOISE] =
+ {
+ .baseHP = 79,
+ .baseAttack = 83,
+ .baseDefense = 100,
+ .baseSpeed = 78,
+ .baseSpAttack = 85,
+ .baseSpDefense = 105,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 210,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CATERPIE] =
+ {
+ .baseHP = 45,
+ .baseAttack = 30,
+ .baseDefense = 35,
+ .baseSpeed = 45,
+ .baseSpAttack = 20,
+ .baseSpDefense = 20,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 255,
+ .expYield = 53,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHIELD_DUST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_METAPOD] =
+ {
+ .baseHP = 50,
+ .baseAttack = 20,
+ .baseDefense = 55,
+ .baseSpeed = 30,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 120,
+ .expYield = 72,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BUTTERFREE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 45,
+ .baseDefense = 50,
+ .baseSpeed = 70,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 160,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SILVER_POWDER,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_COMPOUND_EYES,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WEEDLE] =
+ {
+ .baseHP = 40,
+ .baseAttack = 35,
+ .baseDefense = 30,
+ .baseSpeed = 50,
+ .baseSpAttack = 20,
+ .baseSpDefense = 20,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 255,
+ .expYield = 52,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHIELD_DUST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KAKUNA] =
+ {
+ .baseHP = 45,
+ .baseAttack = 25,
+ .baseDefense = 50,
+ .baseSpeed = 35,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 120,
+ .expYield = 71,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BEEDRILL] =
+ {
+ .baseHP = 65,
+ .baseAttack = 80,
+ .baseDefense = 40,
+ .baseSpeed = 75,
+ .baseSpAttack = 45,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 159,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_POISON_BARB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PIDGEY] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 40,
+ .baseSpeed = 56,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 55,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PIDGEOTTO] =
+ {
+ .baseHP = 63,
+ .baseAttack = 60,
+ .baseDefense = 55,
+ .baseSpeed = 71,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 120,
+ .expYield = 113,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PIDGEOT] =
+ {
+ .baseHP = 83,
+ .baseAttack = 80,
+ .baseDefense = 75,
+ .baseSpeed = 91,
+ .baseSpAttack = 70,
+ .baseSpDefense = 70,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 172,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 3,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RATTATA] =
+ {
+ .baseHP = 30,
+ .baseAttack = 56,
+ .baseDefense = 35,
+ .baseSpeed = 72,
+ .baseSpAttack = 25,
+ .baseSpDefense = 35,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 57,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_GUTS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RATICATE] =
+ {
+ .baseHP = 55,
+ .baseAttack = 81,
+ .baseDefense = 60,
+ .baseSpeed = 97,
+ .baseSpAttack = 50,
+ .baseSpDefense = 70,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 127,
+ .expYield = 116,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_GUTS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SPEAROW] =
+ {
+ .baseHP = 40,
+ .baseAttack = 60,
+ .baseDefense = 30,
+ .baseSpeed = 70,
+ .baseSpAttack = 31,
+ .baseSpDefense = 31,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 58,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FEAROW] =
+ {
+ .baseHP = 65,
+ .baseAttack = 90,
+ .baseDefense = 65,
+ .baseSpeed = 100,
+ .baseSpAttack = 61,
+ .baseSpDefense = 61,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 90,
+ .expYield = 162,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SHARP_BEAK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_EKANS] =
+ {
+ .baseHP = 35,
+ .baseAttack = 60,
+ .baseDefense = 44,
+ .baseSpeed = 55,
+ .baseSpAttack = 40,
+ .baseSpDefense = 54,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 255,
+ .expYield = 62,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_SHED_SKIN,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARBOK] =
+ {
+ .baseHP = 60,
+ .baseAttack = 85,
+ .baseDefense = 69,
+ .baseSpeed = 80,
+ .baseSpAttack = 65,
+ .baseSpDefense = 79,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 90,
+ .expYield = 147,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_SHED_SKIN,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PIKACHU] =
+ {
+ .baseHP = 35,
+ .baseAttack = 55,
+ .baseDefense = 30,
+ .baseSpeed = 90,
+ .baseSpAttack = 50,
+ .baseSpDefense = 40,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 190,
+ .expYield = 82,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_ORAN_BERRY,
+ .item2 = ITEM_LIGHT_BALL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 6,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RAICHU] =
+ {
+ .baseHP = 60,
+ .baseAttack = 90,
+ .baseDefense = 55,
+ .baseSpeed = 100,
+ .baseSpAttack = 90,
+ .baseSpDefense = 80,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 75,
+ .expYield = 122,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 3,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_ORAN_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SANDSHREW] =
+ {
+ .baseHP = 50,
+ .baseAttack = 75,
+ .baseDefense = 85,
+ .baseSpeed = 40,
+ .baseSpAttack = 20,
+ .baseSpDefense = 30,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 93,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_QUICK_CLAW,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SANDSLASH] =
+ {
+ .baseHP = 75,
+ .baseAttack = 100,
+ .baseDefense = 110,
+ .baseSpeed = 65,
+ .baseSpAttack = 45,
+ .baseSpDefense = 55,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 90,
+ .expYield = 163,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_QUICK_CLAW,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDORAN_F] =
+ {
+ .baseHP = 55,
+ .baseAttack = 47,
+ .baseDefense = 52,
+ .baseSpeed = 41,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 235,
+ .expYield = 59,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDORINA] =
+ {
+ .baseHP = 70,
+ .baseAttack = 62,
+ .baseDefense = 67,
+ .baseSpeed = 56,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 120,
+ .expYield = 117,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDOQUEEN] =
+ {
+ .baseHP = 90,
+ .baseAttack = 82,
+ .baseDefense = 87,
+ .baseSpeed = 76,
+ .baseSpAttack = 75,
+ .baseSpDefense = 85,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 194,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDORAN_M] =
+ {
+ .baseHP = 46,
+ .baseAttack = 57,
+ .baseDefense = 40,
+ .baseSpeed = 50,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 235,
+ .expYield = 60,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDORINO] =
+ {
+ .baseHP = 61,
+ .baseAttack = 72,
+ .baseDefense = 57,
+ .baseSpeed = 65,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 120,
+ .expYield = 118,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDOKING] =
+ {
+ .baseHP = 81,
+ .baseAttack = 92,
+ .baseDefense = 77,
+ .baseSpeed = 85,
+ .baseSpAttack = 85,
+ .baseSpDefense = 75,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 195,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLEFAIRY] =
+ {
+ .baseHP = 70,
+ .baseAttack = 45,
+ .baseDefense = 48,
+ .baseSpeed = 35,
+ .baseSpAttack = 60,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 150,
+ .expYield = 68,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_LEPPA_BERRY,
+ .item2 = ITEM_MOON_STONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 140,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLEFABLE] =
+ {
+ .baseHP = 95,
+ .baseAttack = 70,
+ .baseDefense = 73,
+ .baseSpeed = 60,
+ .baseSpAttack = 85,
+ .baseSpDefense = 90,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 25,
+ .expYield = 129,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_LEPPA_BERRY,
+ .item2 = ITEM_MOON_STONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 140,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VULPIX] =
+ {
+ .baseHP = 38,
+ .baseAttack = 41,
+ .baseDefense = 40,
+ .baseSpeed = 65,
+ .baseSpAttack = 50,
+ .baseSpDefense = 65,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 190,
+ .expYield = 63,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_FLASH_FIRE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NINETALES] =
+ {
+ .baseHP = 73,
+ .baseAttack = 76,
+ .baseDefense = 75,
+ .baseSpeed = 100,
+ .baseSpAttack = 81,
+ .baseSpDefense = 100,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 75,
+ .expYield = 178,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_FLASH_FIRE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_JIGGLYPUFF] =
+ {
+ .baseHP = 115,
+ .baseAttack = 45,
+ .baseDefense = 20,
+ .baseSpeed = 20,
+ .baseSpAttack = 45,
+ .baseSpDefense = 25,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 170,
+ .expYield = 76,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WIGGLYTUFF] =
+ {
+ .baseHP = 140,
+ .baseAttack = 70,
+ .baseDefense = 45,
+ .baseSpeed = 45,
+ .baseSpAttack = 75,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 50,
+ .expYield = 109,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ZUBAT] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 35,
+ .baseSpeed = 55,
+ .baseSpAttack = 30,
+ .baseSpDefense = 40,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 54,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GOLBAT] =
+ {
+ .baseHP = 75,
+ .baseAttack = 80,
+ .baseDefense = 70,
+ .baseSpeed = 90,
+ .baseSpAttack = 65,
+ .baseSpDefense = 75,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 90,
+ .expYield = 171,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ODDISH] =
+ {
+ .baseHP = 45,
+ .baseAttack = 50,
+ .baseDefense = 55,
+ .baseSpeed = 30,
+ .baseSpAttack = 75,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 255,
+ .expYield = 78,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GLOOM] =
+ {
+ .baseHP = 60,
+ .baseAttack = 65,
+ .baseDefense = 70,
+ .baseSpeed = 40,
+ .baseSpAttack = 85,
+ .baseSpDefense = 75,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 120,
+ .expYield = 132,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 6,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VILEPLUME] =
+ {
+ .baseHP = 75,
+ .baseAttack = 80,
+ .baseDefense = 85,
+ .baseSpeed = 50,
+ .baseSpAttack = 100,
+ .baseSpDefense = 90,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 184,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PARAS] =
+ {
+ .baseHP = 35,
+ .baseAttack = 70,
+ .baseDefense = 55,
+ .baseSpeed = 25,
+ .baseSpAttack = 45,
+ .baseSpDefense = 55,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_GRASS,
+ .catchRate = 190,
+ .expYield = 70,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_TINY_MUSHROOM,
+ .item2 = ITEM_BIG_MUSHROOM,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_EFFECT_SPORE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PARASECT] =
+ {
+ .baseHP = 60,
+ .baseAttack = 95,
+ .baseDefense = 80,
+ .baseSpeed = 30,
+ .baseSpAttack = 60,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_GRASS,
+ .catchRate = 75,
+ .expYield = 128,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_TINY_MUSHROOM,
+ .item2 = ITEM_BIG_MUSHROOM,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_EFFECT_SPORE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VENONAT] =
+ {
+ .baseHP = 60,
+ .baseAttack = 55,
+ .baseDefense = 50,
+ .baseSpeed = 45,
+ .baseSpAttack = 40,
+ .baseSpDefense = 55,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 190,
+ .expYield = 75,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_COMPOUND_EYES,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VENOMOTH] =
+ {
+ .baseHP = 70,
+ .baseAttack = 65,
+ .baseDefense = 60,
+ .baseSpeed = 90,
+ .baseSpAttack = 90,
+ .baseSpDefense = 75,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 75,
+ .expYield = 138,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHIELD_DUST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DIGLETT] =
+ {
+ .baseHP = 10,
+ .baseAttack = 55,
+ .baseDefense = 25,
+ .baseSpeed = 95,
+ .baseSpAttack = 35,
+ .baseSpDefense = 45,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 81,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_ARENA_TRAP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DUGTRIO] =
+ {
+ .baseHP = 35,
+ .baseAttack = 80,
+ .baseDefense = 50,
+ .baseSpeed = 120,
+ .baseSpAttack = 50,
+ .baseSpDefense = 70,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 50,
+ .expYield = 153,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_ARENA_TRAP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEOWTH] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 35,
+ .baseSpeed = 90,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 69,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PICKUP,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PERSIAN] =
+ {
+ .baseHP = 65,
+ .baseAttack = 70,
+ .baseDefense = 60,
+ .baseSpeed = 115,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 90,
+ .expYield = 148,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_LIMBER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PSYDUCK] =
+ {
+ .baseHP = 50,
+ .baseAttack = 52,
+ .baseDefense = 48,
+ .baseSpeed = 55,
+ .baseSpAttack = 65,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 190,
+ .expYield = 80,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_DAMP,
+ .ability2 = ABILITY_CLOUD_NINE,
+ .safariZoneFleeRate = 6,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GOLDUCK] =
+ {
+ .baseHP = 80,
+ .baseAttack = 82,
+ .baseDefense = 78,
+ .baseSpeed = 85,
+ .baseSpAttack = 95,
+ .baseSpDefense = 80,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 75,
+ .expYield = 174,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_DAMP,
+ .ability2 = ABILITY_CLOUD_NINE,
+ .safariZoneFleeRate = 8,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MANKEY] =
+ {
+ .baseHP = 40,
+ .baseAttack = 80,
+ .baseDefense = 35,
+ .baseSpeed = 70,
+ .baseSpAttack = 35,
+ .baseSpDefense = 45,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 190,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_VITAL_SPIRIT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PRIMEAPE] =
+ {
+ .baseHP = 65,
+ .baseAttack = 105,
+ .baseDefense = 60,
+ .baseSpeed = 95,
+ .baseSpAttack = 60,
+ .baseSpDefense = 70,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 75,
+ .expYield = 149,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_VITAL_SPIRIT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GROWLITHE] =
+ {
+ .baseHP = 55,
+ .baseAttack = 70,
+ .baseDefense = 45,
+ .baseSpeed = 60,
+ .baseSpAttack = 70,
+ .baseSpDefense = 50,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 190,
+ .expYield = 91,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARCANINE] =
+ {
+ .baseHP = 90,
+ .baseAttack = 110,
+ .baseDefense = 80,
+ .baseSpeed = 95,
+ .baseSpAttack = 100,
+ .baseSpDefense = 80,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 75,
+ .expYield = 213,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_POLIWAG] =
+ {
+ .baseHP = 40,
+ .baseAttack = 50,
+ .baseDefense = 40,
+ .baseSpeed = 90,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 255,
+ .expYield = 77,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_DAMP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_POLIWHIRL] =
+ {
+ .baseHP = 65,
+ .baseAttack = 65,
+ .baseDefense = 65,
+ .baseSpeed = 90,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 120,
+ .expYield = 131,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_DAMP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_POLIWRATH] =
+ {
+ .baseHP = 90,
+ .baseAttack = 85,
+ .baseDefense = 95,
+ .baseSpeed = 70,
+ .baseSpAttack = 70,
+ .baseSpDefense = 90,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 185,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 3,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_DAMP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_ABRA] =
+ {
+ .baseHP = 25,
+ .baseAttack = 20,
+ .baseDefense = 15,
+ .baseSpeed = 90,
+ .baseSpAttack = 105,
+ .baseSpDefense = 55,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 200,
+ .expYield = 73,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_TWISTED_SPOON,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_INNER_FOCUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KADABRA] =
+ {
+ .baseHP = 40,
+ .baseAttack = 35,
+ .baseDefense = 30,
+ .baseSpeed = 105,
+ .baseSpAttack = 120,
+ .baseSpDefense = 70,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 100,
+ .expYield = 145,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_TWISTED_SPOON,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_INNER_FOCUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ALAKAZAM] =
+ {
+ .baseHP = 55,
+ .baseAttack = 50,
+ .baseDefense = 45,
+ .baseSpeed = 120,
+ .baseSpAttack = 135,
+ .baseSpDefense = 85,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 50,
+ .expYield = 186,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_TWISTED_SPOON,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_INNER_FOCUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MACHOP] =
+ {
+ .baseHP = 70,
+ .baseAttack = 80,
+ .baseDefense = 50,
+ .baseSpeed = 35,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 180,
+ .expYield = 88,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MACHOKE] =
+ {
+ .baseHP = 80,
+ .baseAttack = 100,
+ .baseDefense = 70,
+ .baseSpeed = 45,
+ .baseSpAttack = 50,
+ .baseSpDefense = 60,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 90,
+ .expYield = 146,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MACHAMP] =
+ {
+ .baseHP = 90,
+ .baseAttack = 130,
+ .baseDefense = 80,
+ .baseSpeed = 55,
+ .baseSpAttack = 65,
+ .baseSpDefense = 85,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 193,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BELLSPROUT] =
+ {
+ .baseHP = 50,
+ .baseAttack = 75,
+ .baseDefense = 35,
+ .baseSpeed = 40,
+ .baseSpAttack = 70,
+ .baseSpDefense = 30,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 255,
+ .expYield = 84,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WEEPINBELL] =
+ {
+ .baseHP = 65,
+ .baseAttack = 90,
+ .baseDefense = 50,
+ .baseSpeed = 55,
+ .baseSpAttack = 85,
+ .baseSpDefense = 45,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 120,
+ .expYield = 151,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VICTREEBEL] =
+ {
+ .baseHP = 80,
+ .baseAttack = 105,
+ .baseDefense = 65,
+ .baseSpeed = 70,
+ .baseSpAttack = 100,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 191,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TENTACOOL] =
+ {
+ .baseHP = 40,
+ .baseAttack = 40,
+ .baseDefense = 35,
+ .baseSpeed = 70,
+ .baseSpAttack = 50,
+ .baseSpDefense = 100,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_POISON,
+ .catchRate = 190,
+ .expYield = 105,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_LIQUID_OOZE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TENTACRUEL] =
+ {
+ .baseHP = 80,
+ .baseAttack = 70,
+ .baseDefense = 65,
+ .baseSpeed = 100,
+ .baseSpAttack = 80,
+ .baseSpDefense = 120,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_POISON,
+ .catchRate = 60,
+ .expYield = 205,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_LIQUID_OOZE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GEODUDE] =
+ {
+ .baseHP = 40,
+ .baseAttack = 80,
+ .baseDefense = 100,
+ .baseSpeed = 20,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 86,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_EVERSTONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GRAVELER] =
+ {
+ .baseHP = 55,
+ .baseAttack = 95,
+ .baseDefense = 115,
+ .baseSpeed = 35,
+ .baseSpAttack = 45,
+ .baseSpDefense = 45,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 120,
+ .expYield = 134,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_EVERSTONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GOLEM] =
+ {
+ .baseHP = 80,
+ .baseAttack = 110,
+ .baseDefense = 130,
+ .baseSpeed = 45,
+ .baseSpAttack = 55,
+ .baseSpDefense = 65,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 177,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 3,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_EVERSTONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PONYTA] =
+ {
+ .baseHP = 50,
+ .baseAttack = 85,
+ .baseDefense = 55,
+ .baseSpeed = 90,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 190,
+ .expYield = 152,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RAPIDASH] =
+ {
+ .baseHP = 65,
+ .baseAttack = 100,
+ .baseDefense = 70,
+ .baseSpeed = 105,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 60,
+ .expYield = 192,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SLOWPOKE] =
+ {
+ .baseHP = 90,
+ .baseAttack = 65,
+ .baseDefense = 65,
+ .baseSpeed = 15,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 190,
+ .expYield = 99,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_OWN_TEMPO,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SLOWBRO] =
+ {
+ .baseHP = 95,
+ .baseAttack = 75,
+ .baseDefense = 110,
+ .baseSpeed = 30,
+ .baseSpAttack = 100,
+ .baseSpDefense = 80,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 75,
+ .expYield = 164,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_OWN_TEMPO,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAGNEMITE] =
+ {
+ .baseHP = 25,
+ .baseAttack = 35,
+ .baseDefense = 70,
+ .baseSpeed = 45,
+ .baseSpAttack = 95,
+ .baseSpDefense = 55,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_STEEL,
+ .catchRate = 190,
+ .expYield = 89,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_MAGNET_PULL,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAGNETON] =
+ {
+ .baseHP = 50,
+ .baseAttack = 60,
+ .baseDefense = 95,
+ .baseSpeed = 70,
+ .baseSpAttack = 120,
+ .baseSpDefense = 70,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_STEEL,
+ .catchRate = 60,
+ .expYield = 161,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_MAGNET_PULL,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FARFETCHD] =
+ {
+ .baseHP = 52,
+ .baseAttack = 65,
+ .baseDefense = 55,
+ .baseSpeed = 60,
+ .baseSpAttack = 58,
+ .baseSpDefense = 62,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 94,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_STICK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_INNER_FOCUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DODUO] =
+ {
+ .baseHP = 35,
+ .baseAttack = 85,
+ .baseDefense = 45,
+ .baseSpeed = 75,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 190,
+ .expYield = 96,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SHARP_BEAK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 8,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DODRIO] =
+ {
+ .baseHP = 60,
+ .baseAttack = 110,
+ .baseDefense = 70,
+ .baseSpeed = 100,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 158,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SHARP_BEAK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 10,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEEL] =
+ {
+ .baseHP = 65,
+ .baseAttack = 45,
+ .baseDefense = 55,
+ .baseSpeed = 45,
+ .baseSpAttack = 45,
+ .baseSpDefense = 70,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 190,
+ .expYield = 100,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DEWGONG] =
+ {
+ .baseHP = 90,
+ .baseAttack = 70,
+ .baseDefense = 80,
+ .baseSpeed = 70,
+ .baseSpAttack = 70,
+ .baseSpDefense = 95,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ICE,
+ .catchRate = 75,
+ .expYield = 176,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GRIMER] =
+ {
+ .baseHP = 80,
+ .baseAttack = 80,
+ .baseDefense = 50,
+ .baseSpeed = 25,
+ .baseSpAttack = 40,
+ .baseSpDefense = 50,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 190,
+ .expYield = 90,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NUGGET,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_STENCH,
+ .ability2 = ABILITY_STICKY_HOLD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MUK] =
+ {
+ .baseHP = 105,
+ .baseAttack = 105,
+ .baseDefense = 75,
+ .baseSpeed = 50,
+ .baseSpAttack = 65,
+ .baseSpDefense = 100,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 75,
+ .expYield = 157,
+ .evYield_HP = 1,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NUGGET,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_STENCH,
+ .ability2 = ABILITY_STICKY_HOLD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHELLDER] =
+ {
+ .baseHP = 30,
+ .baseAttack = 65,
+ .baseDefense = 100,
+ .baseSpeed = 40,
+ .baseSpAttack = 45,
+ .baseSpDefense = 25,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 190,
+ .expYield = 97,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_PEARL,
+ .item2 = ITEM_BIG_PEARL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SHELL_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLOYSTER] =
+ {
+ .baseHP = 50,
+ .baseAttack = 95,
+ .baseDefense = 180,
+ .baseSpeed = 70,
+ .baseSpAttack = 85,
+ .baseSpDefense = 45,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ICE,
+ .catchRate = 60,
+ .expYield = 203,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_PEARL,
+ .item2 = ITEM_BIG_PEARL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SHELL_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GASTLY] =
+ {
+ .baseHP = 30,
+ .baseAttack = 35,
+ .baseDefense = 30,
+ .baseSpeed = 80,
+ .baseSpAttack = 100,
+ .baseSpDefense = 35,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_POISON,
+ .catchRate = 190,
+ .expYield = 95,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HAUNTER] =
+ {
+ .baseHP = 45,
+ .baseAttack = 50,
+ .baseDefense = 45,
+ .baseSpeed = 95,
+ .baseSpAttack = 115,
+ .baseSpDefense = 55,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_POISON,
+ .catchRate = 90,
+ .expYield = 126,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GENGAR] =
+ {
+ .baseHP = 60,
+ .baseAttack = 65,
+ .baseDefense = 60,
+ .baseSpeed = 110,
+ .baseSpAttack = 130,
+ .baseSpDefense = 75,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 190,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ONIX] =
+ {
+ .baseHP = 35,
+ .baseAttack = 45,
+ .baseDefense = 160,
+ .baseSpeed = 70,
+ .baseSpAttack = 30,
+ .baseSpDefense = 45,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 108,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DROWZEE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 48,
+ .baseDefense = 45,
+ .baseSpeed = 42,
+ .baseSpAttack = 43,
+ .baseSpDefense = 90,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 190,
+ .expYield = 102,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HYPNO] =
+ {
+ .baseHP = 85,
+ .baseAttack = 73,
+ .baseDefense = 70,
+ .baseSpeed = 67,
+ .baseSpAttack = 73,
+ .baseSpDefense = 115,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 75,
+ .expYield = 165,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KRABBY] =
+ {
+ .baseHP = 30,
+ .baseAttack = 105,
+ .baseDefense = 90,
+ .baseSpeed = 50,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 225,
+ .expYield = 115,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KINGLER] =
+ {
+ .baseHP = 55,
+ .baseAttack = 130,
+ .baseDefense = 115,
+ .baseSpeed = 75,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 206,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_VOLTORB] =
+ {
+ .baseHP = 40,
+ .baseAttack = 30,
+ .baseDefense = 50,
+ .baseSpeed = 100,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 190,
+ .expYield = 103,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_STATIC,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ELECTRODE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 50,
+ .baseDefense = 70,
+ .baseSpeed = 140,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 60,
+ .expYield = 150,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_STATIC,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_EXEGGCUTE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 40,
+ .baseDefense = 80,
+ .baseSpeed = 40,
+ .baseSpAttack = 60,
+ .baseSpDefense = 45,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 90,
+ .expYield = 98,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_EXEGGUTOR] =
+ {
+ .baseHP = 95,
+ .baseAttack = 95,
+ .baseDefense = 85,
+ .baseSpeed = 55,
+ .baseSpAttack = 125,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 212,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CUBONE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 50,
+ .baseDefense = 95,
+ .baseSpeed = 35,
+ .baseSpAttack = 40,
+ .baseSpDefense = 50,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 190,
+ .expYield = 87,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_THICK_CLUB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_LIGHTNING_ROD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAROWAK] =
+ {
+ .baseHP = 60,
+ .baseAttack = 80,
+ .baseDefense = 110,
+ .baseSpeed = 45,
+ .baseSpAttack = 50,
+ .baseSpDefense = 80,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 75,
+ .expYield = 124,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_THICK_CLUB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_LIGHTNING_ROD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HITMONLEE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 120,
+ .baseDefense = 53,
+ .baseSpeed = 87,
+ .baseSpAttack = 35,
+ .baseSpDefense = 110,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 139,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_LIMBER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HITMONCHAN] =
+ {
+ .baseHP = 50,
+ .baseAttack = 105,
+ .baseDefense = 79,
+ .baseSpeed = 76,
+ .baseSpAttack = 35,
+ .baseSpDefense = 110,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 140,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LICKITUNG] =
+ {
+ .baseHP = 90,
+ .baseAttack = 55,
+ .baseDefense = 75,
+ .baseSpeed = 30,
+ .baseSpAttack = 60,
+ .baseSpDefense = 75,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 127,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_OWN_TEMPO,
+ .ability2 = ABILITY_OBLIVIOUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KOFFING] =
+ {
+ .baseHP = 40,
+ .baseAttack = 65,
+ .baseDefense = 95,
+ .baseSpeed = 35,
+ .baseSpAttack = 60,
+ .baseSpDefense = 45,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 190,
+ .expYield = 114,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SMOKE_BALL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WEEZING] =
+ {
+ .baseHP = 65,
+ .baseAttack = 90,
+ .baseDefense = 120,
+ .baseSpeed = 60,
+ .baseSpAttack = 85,
+ .baseSpDefense = 70,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 60,
+ .expYield = 173,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SMOKE_BALL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RHYHORN] =
+ {
+ .baseHP = 80,
+ .baseAttack = 85,
+ .baseDefense = 95,
+ .baseSpeed = 25,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_ROCK,
+ .catchRate = 120,
+ .expYield = 135,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_LIGHTNING_ROD,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RHYDON] =
+ {
+ .baseHP = 105,
+ .baseAttack = 130,
+ .baseDefense = 120,
+ .baseSpeed = 40,
+ .baseSpAttack = 45,
+ .baseSpDefense = 45,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_ROCK,
+ .catchRate = 60,
+ .expYield = 204,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_LIGHTNING_ROD,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHANSEY] =
+ {
+ .baseHP = 250,
+ .baseAttack = 5,
+ .baseDefense = 5,
+ .baseSpeed = 50,
+ .baseSpAttack = 35,
+ .baseSpDefense = 105,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 30,
+ .expYield = 255,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_LUCKY_EGG,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 40,
+ .friendship = 140,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_SERENE_GRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TANGELA] =
+ {
+ .baseHP = 65,
+ .baseAttack = 55,
+ .baseDefense = 115,
+ .baseSpeed = 60,
+ .baseSpAttack = 100,
+ .baseSpDefense = 40,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 166,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KANGASKHAN] =
+ {
+ .baseHP = 105,
+ .baseAttack = 95,
+ .baseDefense = 80,
+ .baseSpeed = 90,
+ .baseSpAttack = 40,
+ .baseSpDefense = 80,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 175,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_EARLY_BIRD,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HORSEA] =
+ {
+ .baseHP = 30,
+ .baseAttack = 40,
+ .baseDefense = 70,
+ .baseSpeed = 60,
+ .baseSpAttack = 70,
+ .baseSpDefense = 25,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 225,
+ .expYield = 83,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEADRA] =
+ {
+ .baseHP = 55,
+ .baseAttack = 65,
+ .baseDefense = 95,
+ .baseSpeed = 85,
+ .baseSpAttack = 95,
+ .baseSpDefense = 45,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 75,
+ .expYield = 155,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GOLDEEN] =
+ {
+ .baseHP = 45,
+ .baseAttack = 67,
+ .baseDefense = 60,
+ .baseSpeed = 63,
+ .baseSpAttack = 35,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 225,
+ .expYield = 111,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_WATER_VEIL,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEAKING] =
+ {
+ .baseHP = 80,
+ .baseAttack = 92,
+ .baseDefense = 65,
+ .baseSpeed = 68,
+ .baseSpAttack = 65,
+ .baseSpDefense = 80,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 170,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_WATER_VEIL,
+ .safariZoneFleeRate = 6,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_STARYU] =
+ {
+ .baseHP = 30,
+ .baseAttack = 45,
+ .baseDefense = 55,
+ .baseSpeed = 85,
+ .baseSpAttack = 70,
+ .baseSpDefense = 55,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 225,
+ .expYield = 106,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_STARDUST,
+ .item2 = ITEM_STAR_PIECE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_ILLUMINATE,
+ .ability2 = ABILITY_NATURAL_CURE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_STARMIE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 75,
+ .baseDefense = 85,
+ .baseSpeed = 115,
+ .baseSpAttack = 100,
+ .baseSpDefense = 85,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 60,
+ .expYield = 207,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_STARDUST,
+ .item2 = ITEM_STAR_PIECE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_ILLUMINATE,
+ .ability2 = ABILITY_NATURAL_CURE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MR_MIME] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 65,
+ .baseSpeed = 90,
+ .baseSpAttack = 100,
+ .baseSpDefense = 120,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 136,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_LEPPA_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SCYTHER] =
+ {
+ .baseHP = 70,
+ .baseAttack = 110,
+ .baseDefense = 80,
+ .baseSpeed = 105,
+ .baseSpAttack = 55,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 187,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_JYNX] =
+ {
+ .baseHP = 65,
+ .baseAttack = 50,
+ .baseDefense = 35,
+ .baseSpeed = 95,
+ .baseSpAttack = 115,
+ .baseSpDefense = 95,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 137,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_ASPEAR_BERRY,
+ .item2 = ITEM_ASPEAR_BERRY,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ELECTABUZZ] =
+ {
+ .baseHP = 65,
+ .baseAttack = 83,
+ .baseDefense = 57,
+ .baseSpeed = 105,
+ .baseSpAttack = 95,
+ .baseSpDefense = 85,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 45,
+ .expYield = 156,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_MAGMAR] =
+ {
+ .baseHP = 65,
+ .baseAttack = 95,
+ .baseDefense = 57,
+ .baseSpeed = 93,
+ .baseSpAttack = 100,
+ .baseSpDefense = 85,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 167,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_FLAME_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PINSIR] =
+ {
+ .baseHP = 65,
+ .baseAttack = 125,
+ .baseDefense = 100,
+ .baseSpeed = 85,
+ .baseSpAttack = 55,
+ .baseSpDefense = 70,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 45,
+ .expYield = 200,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 8,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TAUROS] =
+ {
+ .baseHP = 75,
+ .baseAttack = 100,
+ .baseDefense = 95,
+ .baseSpeed = 110,
+ .baseSpAttack = 40,
+ .baseSpDefense = 70,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 211,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAGIKARP] =
+ {
+ .baseHP = 20,
+ .baseAttack = 10,
+ .baseDefense = 55,
+ .baseSpeed = 80,
+ .baseSpAttack = 15,
+ .baseSpDefense = 20,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 255,
+ .expYield = 20,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 5,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GYARADOS] =
+ {
+ .baseHP = 95,
+ .baseAttack = 125,
+ .baseDefense = 79,
+ .baseSpeed = 81,
+ .baseSpAttack = 60,
+ .baseSpDefense = 100,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 214,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 5,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LAPRAS] =
+ {
+ .baseHP = 130,
+ .baseAttack = 85,
+ .baseDefense = 80,
+ .baseSpeed = 60,
+ .baseSpAttack = 85,
+ .baseSpDefense = 95,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ICE,
+ .catchRate = 45,
+ .expYield = 219,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DITTO] =
+ {
+ .baseHP = 48,
+ .baseAttack = 48,
+ .baseDefense = 48,
+ .baseSpeed = 48,
+ .baseSpAttack = 48,
+ .baseSpDefense = 48,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 35,
+ .expYield = 61,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_POWDER,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_DITTO,
+ .eggGroup2 = EGG_GROUP_DITTO,
+ .ability1 = ABILITY_LIMBER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_EEVEE] =
+ {
+ .baseHP = 55,
+ .baseAttack = 55,
+ .baseDefense = 50,
+ .baseSpeed = 55,
+ .baseSpAttack = 45,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 92,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VAPOREON] =
+ {
+ .baseHP = 130,
+ .baseAttack = 65,
+ .baseDefense = 60,
+ .baseSpeed = 65,
+ .baseSpAttack = 110,
+ .baseSpDefense = 95,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 196,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_JOLTEON] =
+ {
+ .baseHP = 65,
+ .baseAttack = 65,
+ .baseDefense = 60,
+ .baseSpeed = 130,
+ .baseSpAttack = 110,
+ .baseSpDefense = 95,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 45,
+ .expYield = 197,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_VOLT_ABSORB,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FLAREON] =
+ {
+ .baseHP = 65,
+ .baseAttack = 130,
+ .baseDefense = 60,
+ .baseSpeed = 65,
+ .baseSpAttack = 95,
+ .baseSpDefense = 110,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 198,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_FLASH_FIRE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PORYGON] =
+ {
+ .baseHP = 65,
+ .baseAttack = 60,
+ .baseDefense = 70,
+ .baseSpeed = 40,
+ .baseSpAttack = 85,
+ .baseSpDefense = 75,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 130,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_TRACE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OMANYTE] =
+ {
+ .baseHP = 35,
+ .baseAttack = 40,
+ .baseDefense = 100,
+ .baseSpeed = 35,
+ .baseSpAttack = 90,
+ .baseSpDefense = 55,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 120,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OMASTAR] =
+ {
+ .baseHP = 70,
+ .baseAttack = 60,
+ .baseDefense = 125,
+ .baseSpeed = 55,
+ .baseSpAttack = 115,
+ .baseSpDefense = 70,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 199,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KABUTO] =
+ {
+ .baseHP = 30,
+ .baseAttack = 80,
+ .baseDefense = 90,
+ .baseSpeed = 55,
+ .baseSpAttack = 55,
+ .baseSpDefense = 45,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 119,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_BATTLE_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KABUTOPS] =
+ {
+ .baseHP = 60,
+ .baseAttack = 115,
+ .baseDefense = 105,
+ .baseSpeed = 80,
+ .baseSpAttack = 65,
+ .baseSpDefense = 70,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 201,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_BATTLE_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AERODACTYL] =
+ {
+ .baseHP = 80,
+ .baseAttack = 105,
+ .baseDefense = 65,
+ .baseSpeed = 130,
+ .baseSpAttack = 60,
+ .baseSpDefense = 75,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 202,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_PRESSURE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SNORLAX] =
+ {
+ .baseHP = 160,
+ .baseAttack = 110,
+ .baseDefense = 65,
+ .baseSpeed = 30,
+ .baseSpAttack = 65,
+ .baseSpDefense = 110,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 25,
+ .expYield = 154,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_LEFTOVERS,
+ .item2 = ITEM_LEFTOVERS,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_IMMUNITY,
+ .ability2 = ABILITY_THICK_FAT,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARTICUNO] =
+ {
+ .baseHP = 90,
+ .baseAttack = 85,
+ .baseDefense = 100,
+ .baseSpeed = 85,
+ .baseSpAttack = 95,
+ .baseSpDefense = 125,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 215,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ZAPDOS] =
+ {
+ .baseHP = 90,
+ .baseAttack = 90,
+ .baseDefense = 85,
+ .baseSpeed = 100,
+ .baseSpAttack = 125,
+ .baseSpDefense = 90,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 216,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MOLTRES] =
+ {
+ .baseHP = 90,
+ .baseAttack = 100,
+ .baseDefense = 90,
+ .baseSpeed = 90,
+ .baseSpAttack = 125,
+ .baseSpDefense = 85,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 217,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DRATINI] =
+ {
+ .baseHP = 41,
+ .baseAttack = 64,
+ .baseDefense = 45,
+ .baseSpeed = 50,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 67,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DRAGONAIR] =
+ {
+ .baseHP = 61,
+ .baseAttack = 84,
+ .baseDefense = 65,
+ .baseSpeed = 70,
+ .baseSpAttack = 70,
+ .baseSpDefense = 70,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 144,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DRAGONITE] =
+ {
+ .baseHP = 91,
+ .baseAttack = 134,
+ .baseDefense = 95,
+ .baseSpeed = 80,
+ .baseSpAttack = 100,
+ .baseSpDefense = 100,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 218,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEWTWO] =
+ {
+ .baseHP = 106,
+ .baseAttack = 110,
+ .baseDefense = 90,
+ .baseSpeed = 130,
+ .baseSpAttack = 154,
+ .baseSpDefense = 90,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 220,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEW] =
+ {
+ .baseHP = 100,
+ .baseAttack = 100,
+ .baseDefense = 100,
+ .baseSpeed = 100,
+ .baseSpAttack = 100,
+ .baseSpDefense = 100,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 64,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_LUM_BERRY,
+ .item2 = ITEM_LUM_BERRY,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 100,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHIKORITA] =
+ {
+ .baseHP = 45,
+ .baseAttack = 49,
+ .baseDefense = 65,
+ .baseSpeed = 45,
+ .baseSpAttack = 49,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 64,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BAYLEEF] =
+ {
+ .baseHP = 60,
+ .baseAttack = 62,
+ .baseDefense = 80,
+ .baseSpeed = 60,
+ .baseSpAttack = 63,
+ .baseSpDefense = 80,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 141,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEGANIUM] =
+ {
+ .baseHP = 80,
+ .baseAttack = 82,
+ .baseDefense = 100,
+ .baseSpeed = 80,
+ .baseSpAttack = 83,
+ .baseSpDefense = 100,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 208,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CYNDAQUIL] =
+ {
+ .baseHP = 39,
+ .baseAttack = 52,
+ .baseDefense = 43,
+ .baseSpeed = 65,
+ .baseSpAttack = 60,
+ .baseSpDefense = 50,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_QUILAVA] =
+ {
+ .baseHP = 58,
+ .baseAttack = 64,
+ .baseDefense = 58,
+ .baseSpeed = 80,
+ .baseSpAttack = 80,
+ .baseSpDefense = 65,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 142,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TYPHLOSION] =
+ {
+ .baseHP = 78,
+ .baseAttack = 84,
+ .baseDefense = 78,
+ .baseSpeed = 100,
+ .baseSpAttack = 109,
+ .baseSpDefense = 85,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 209,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TOTODILE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 65,
+ .baseDefense = 64,
+ .baseSpeed = 43,
+ .baseSpAttack = 44,
+ .baseSpDefense = 48,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 66,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CROCONAW] =
+ {
+ .baseHP = 65,
+ .baseAttack = 80,
+ .baseDefense = 80,
+ .baseSpeed = 58,
+ .baseSpAttack = 59,
+ .baseSpDefense = 63,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 143,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_FERALIGATR] =
+ {
+ .baseHP = 85,
+ .baseAttack = 105,
+ .baseDefense = 100,
+ .baseSpeed = 78,
+ .baseSpAttack = 79,
+ .baseSpDefense = 83,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 210,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SENTRET] =
+ {
+ .baseHP = 35,
+ .baseAttack = 46,
+ .baseDefense = 34,
+ .baseSpeed = 20,
+ .baseSpAttack = 35,
+ .baseSpDefense = 45,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 57,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_ORAN_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_KEEN_EYE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FURRET] =
+ {
+ .baseHP = 85,
+ .baseAttack = 76,
+ .baseDefense = 64,
+ .baseSpeed = 90,
+ .baseSpAttack = 45,
+ .baseSpDefense = 55,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 90,
+ .expYield = 116,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_ORAN_BERRY,
+ .item2 = ITEM_SITRUS_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_KEEN_EYE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HOOTHOOT] =
+ {
+ .baseHP = 60,
+ .baseAttack = 30,
+ .baseDefense = 30,
+ .baseSpeed = 50,
+ .baseSpAttack = 36,
+ .baseSpDefense = 56,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 58,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_KEEN_EYE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NOCTOWL] =
+ {
+ .baseHP = 100,
+ .baseAttack = 50,
+ .baseDefense = 50,
+ .baseSpeed = 70,
+ .baseSpAttack = 76,
+ .baseSpDefense = 96,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 90,
+ .expYield = 162,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_KEEN_EYE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LEDYBA] =
+ {
+ .baseHP = 40,
+ .baseAttack = 20,
+ .baseDefense = 30,
+ .baseSpeed = 55,
+ .baseSpAttack = 40,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 54,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LEDIAN] =
+ {
+ .baseHP = 55,
+ .baseAttack = 35,
+ .baseDefense = 50,
+ .baseSpeed = 85,
+ .baseSpAttack = 55,
+ .baseSpDefense = 110,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 90,
+ .expYield = 134,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SPINARAK] =
+ {
+ .baseHP = 40,
+ .baseAttack = 60,
+ .baseDefense = 40,
+ .baseSpeed = 30,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 255,
+ .expYield = 54,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_INSOMNIA,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARIADOS] =
+ {
+ .baseHP = 70,
+ .baseAttack = 90,
+ .baseDefense = 70,
+ .baseSpeed = 40,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 90,
+ .expYield = 134,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_INSOMNIA,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CROBAT] =
+ {
+ .baseHP = 85,
+ .baseAttack = 90,
+ .baseDefense = 80,
+ .baseSpeed = 130,
+ .baseSpAttack = 70,
+ .baseSpDefense = 80,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 90,
+ .expYield = 204,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 3,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHINCHOU] =
+ {
+ .baseHP = 75,
+ .baseAttack = 38,
+ .baseDefense = 38,
+ .baseSpeed = 67,
+ .baseSpAttack = 56,
+ .baseSpDefense = 56,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 190,
+ .expYield = 90,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_YELLOW_SHARD,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_VOLT_ABSORB,
+ .ability2 = ABILITY_ILLUMINATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LANTURN] =
+ {
+ .baseHP = 125,
+ .baseAttack = 58,
+ .baseDefense = 58,
+ .baseSpeed = 67,
+ .baseSpAttack = 76,
+ .baseSpDefense = 76,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 75,
+ .expYield = 156,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_YELLOW_SHARD,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_VOLT_ABSORB,
+ .ability2 = ABILITY_ILLUMINATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PICHU] =
+ {
+ .baseHP = 20,
+ .baseAttack = 40,
+ .baseDefense = 15,
+ .baseSpeed = 60,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 190,
+ .expYield = 42,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_ORAN_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLEFFA] =
+ {
+ .baseHP = 50,
+ .baseAttack = 25,
+ .baseDefense = 28,
+ .baseSpeed = 15,
+ .baseSpAttack = 45,
+ .baseSpDefense = 55,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 150,
+ .expYield = 37,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_LEPPA_BERRY,
+ .item2 = ITEM_MOON_STONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 140,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_IGGLYBUFF] =
+ {
+ .baseHP = 90,
+ .baseAttack = 30,
+ .baseDefense = 15,
+ .baseSpeed = 15,
+ .baseSpAttack = 40,
+ .baseSpDefense = 20,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 170,
+ .expYield = 39,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_TOGEPI] =
+ {
+ .baseHP = 35,
+ .baseAttack = 20,
+ .baseDefense = 65,
+ .baseSpeed = 20,
+ .baseSpAttack = 40,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 190,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_HUSTLE,
+ .ability2 = ABILITY_SERENE_GRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TOGETIC] =
+ {
+ .baseHP = 55,
+ .baseAttack = 40,
+ .baseDefense = 85,
+ .baseSpeed = 40,
+ .baseSpAttack = 80,
+ .baseSpDefense = 105,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 75,
+ .expYield = 114,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_HUSTLE,
+ .ability2 = ABILITY_SERENE_GRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NATU] =
+ {
+ .baseHP = 40,
+ .baseAttack = 50,
+ .baseDefense = 45,
+ .baseSpeed = 70,
+ .baseSpAttack = 70,
+ .baseSpDefense = 45,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_FLYING,
+ .catchRate = 190,
+ .expYield = 73,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 6,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_XATU] =
+ {
+ .baseHP = 65,
+ .baseAttack = 75,
+ .baseDefense = 70,
+ .baseSpeed = 95,
+ .baseSpAttack = 95,
+ .baseSpDefense = 70,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_FLYING,
+ .catchRate = 75,
+ .expYield = 171,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 8,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAREEP] =
+ {
+ .baseHP = 55,
+ .baseAttack = 40,
+ .baseDefense = 40,
+ .baseSpeed = 35,
+ .baseSpAttack = 65,
+ .baseSpDefense = 45,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 235,
+ .expYield = 59,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FLAAFFY] =
+ {
+ .baseHP = 70,
+ .baseAttack = 55,
+ .baseDefense = 55,
+ .baseSpeed = 45,
+ .baseSpAttack = 80,
+ .baseSpDefense = 60,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 120,
+ .expYield = 117,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AMPHAROS] =
+ {
+ .baseHP = 90,
+ .baseAttack = 75,
+ .baseDefense = 75,
+ .baseSpeed = 55,
+ .baseSpAttack = 115,
+ .baseSpDefense = 90,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 45,
+ .expYield = 194,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BELLOSSOM] =
+ {
+ .baseHP = 75,
+ .baseAttack = 80,
+ .baseDefense = 85,
+ .baseSpeed = 50,
+ .baseSpAttack = 90,
+ .baseSpDefense = 100,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 184,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MARILL] =
+ {
+ .baseHP = 70,
+ .baseAttack = 20,
+ .baseDefense = 50,
+ .baseSpeed = 40,
+ .baseSpAttack = 20,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 190,
+ .expYield = 58,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_HUGE_POWER,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AZUMARILL] =
+ {
+ .baseHP = 100,
+ .baseAttack = 50,
+ .baseDefense = 80,
+ .baseSpeed = 50,
+ .baseSpAttack = 50,
+ .baseSpDefense = 80,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 75,
+ .expYield = 153,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_HUGE_POWER,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SUDOWOODO] =
+ {
+ .baseHP = 70,
+ .baseAttack = 100,
+ .baseDefense = 115,
+ .baseSpeed = 30,
+ .baseSpAttack = 30,
+ .baseSpDefense = 65,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_ROCK,
+ .catchRate = 65,
+ .expYield = 135,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_POLITOED] =
+ {
+ .baseHP = 90,
+ .baseAttack = 75,
+ .baseDefense = 75,
+ .baseSpeed = 70,
+ .baseSpAttack = 90,
+ .baseSpDefense = 100,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 185,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_DAMP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_HOPPIP] =
+ {
+ .baseHP = 35,
+ .baseAttack = 35,
+ .baseDefense = 40,
+ .baseSpeed = 50,
+ .baseSpAttack = 35,
+ .baseSpDefense = 55,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SKIPLOOM] =
+ {
+ .baseHP = 55,
+ .baseAttack = 45,
+ .baseDefense = 50,
+ .baseSpeed = 80,
+ .baseSpAttack = 45,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_FLYING,
+ .catchRate = 120,
+ .expYield = 136,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_JUMPLUFF] =
+ {
+ .baseHP = 75,
+ .baseAttack = 55,
+ .baseDefense = 70,
+ .baseSpeed = 110,
+ .baseSpAttack = 55,
+ .baseSpDefense = 85,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 176,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 3,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AIPOM] =
+ {
+ .baseHP = 55,
+ .baseAttack = 70,
+ .baseDefense = 55,
+ .baseSpeed = 85,
+ .baseSpAttack = 40,
+ .baseSpDefense = 55,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 94,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_PICKUP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SUNKERN] =
+ {
+ .baseHP = 30,
+ .baseAttack = 30,
+ .baseDefense = 30,
+ .baseSpeed = 30,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 235,
+ .expYield = 52,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SUNFLORA] =
+ {
+ .baseHP = 75,
+ .baseAttack = 75,
+ .baseDefense = 55,
+ .baseSpeed = 30,
+ .baseSpAttack = 105,
+ .baseSpDefense = 85,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 120,
+ .expYield = 146,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_YANMA] =
+ {
+ .baseHP = 65,
+ .baseAttack = 65,
+ .baseDefense = 45,
+ .baseSpeed = 95,
+ .baseSpAttack = 75,
+ .baseSpDefense = 45,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 75,
+ .expYield = 147,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SPEED_BOOST,
+ .ability2 = ABILITY_COMPOUND_EYES,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WOOPER] =
+ {
+ .baseHP = 55,
+ .baseAttack = 45,
+ .baseDefense = 45,
+ .baseSpeed = 15,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 52,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_DAMP,
+ .ability2 = ABILITY_WATER_ABSORB,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_QUAGSIRE] =
+ {
+ .baseHP = 95,
+ .baseAttack = 85,
+ .baseDefense = 85,
+ .baseSpeed = 35,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 90,
+ .expYield = 137,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_DAMP,
+ .ability2 = ABILITY_WATER_ABSORB,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ESPEON] =
+ {
+ .baseHP = 65,
+ .baseAttack = 65,
+ .baseDefense = 60,
+ .baseSpeed = 110,
+ .baseSpAttack = 130,
+ .baseSpDefense = 95,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 197,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_UMBREON] =
+ {
+ .baseHP = 95,
+ .baseAttack = 65,
+ .baseDefense = 110,
+ .baseSpeed = 65,
+ .baseSpAttack = 60,
+ .baseSpDefense = 130,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_DARK,
+ .catchRate = 45,
+ .expYield = 197,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MURKROW] =
+ {
+ .baseHP = 60,
+ .baseAttack = 85,
+ .baseDefense = 42,
+ .baseSpeed = 91,
+ .baseSpAttack = 85,
+ .baseSpDefense = 42,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_FLYING,
+ .catchRate = 30,
+ .expYield = 107,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SLOWKING] =
+ {
+ .baseHP = 95,
+ .baseAttack = 75,
+ .baseDefense = 80,
+ .baseSpeed = 30,
+ .baseSpAttack = 100,
+ .baseSpDefense = 110,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 70,
+ .expYield = 164,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_OWN_TEMPO,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MISDREAVUS] =
+ {
+ .baseHP = 60,
+ .baseAttack = 60,
+ .baseDefense = 60,
+ .baseSpeed = 85,
+ .baseSpAttack = 85,
+ .baseSpDefense = 85,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_GHOST,
+ .catchRate = 45,
+ .expYield = 147,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SPELL_TAG,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_UNOWN] =
+ {
+ .baseHP = 48,
+ .baseAttack = 72,
+ .baseDefense = 48,
+ .baseSpeed = 48,
+ .baseSpAttack = 72,
+ .baseSpDefense = 48,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 225,
+ .expYield = 61,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_WOBBUFFET] =
+ {
+ .baseHP = 190,
+ .baseAttack = 33,
+ .baseDefense = 58,
+ .baseSpeed = 33,
+ .baseSpAttack = 33,
+ .baseSpDefense = 58,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 177,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_SHADOW_TAG,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GIRAFARIG] =
+ {
+ .baseHP = 70,
+ .baseAttack = 80,
+ .baseDefense = 65,
+ .baseSpeed = 85,
+ .baseSpAttack = 90,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 60,
+ .expYield = 149,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_PERSIM_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PINECO] =
+ {
+ .baseHP = 50,
+ .baseAttack = 65,
+ .baseDefense = 90,
+ .baseSpeed = 15,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 190,
+ .expYield = 60,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FORRETRESS] =
+ {
+ .baseHP = 75,
+ .baseAttack = 90,
+ .baseDefense = 140,
+ .baseSpeed = 40,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_STEEL,
+ .catchRate = 75,
+ .expYield = 118,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DUNSPARCE] =
+ {
+ .baseHP = 100,
+ .baseAttack = 70,
+ .baseDefense = 70,
+ .baseSpeed = 45,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 190,
+ .expYield = 75,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SERENE_GRACE,
+ .ability2 = ABILITY_RUN_AWAY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GLIGAR] =
+ {
+ .baseHP = 65,
+ .baseAttack = 75,
+ .baseDefense = 105,
+ .baseSpeed = 85,
+ .baseSpAttack = 35,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_FLYING,
+ .catchRate = 60,
+ .expYield = 108,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_SAND_VEIL,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_STEELIX] =
+ {
+ .baseHP = 75,
+ .baseAttack = 85,
+ .baseDefense = 200,
+ .baseSpeed = 30,
+ .baseSpAttack = 55,
+ .baseSpDefense = 65,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_GROUND,
+ .catchRate = 25,
+ .expYield = 196,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SNUBBULL] =
+ {
+ .baseHP = 60,
+ .baseAttack = 80,
+ .baseDefense = 50,
+ .baseSpeed = 30,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 190,
+ .expYield = 63,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_RUN_AWAY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GRANBULL] =
+ {
+ .baseHP = 90,
+ .baseAttack = 120,
+ .baseDefense = 75,
+ .baseSpeed = 45,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 75,
+ .expYield = 178,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_INTIMIDATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_QWILFISH] =
+ {
+ .baseHP = 65,
+ .baseAttack = 95,
+ .baseDefense = 75,
+ .baseSpeed = 85,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 100,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_SWIFT_SWIM,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SCIZOR] =
+ {
+ .baseHP = 70,
+ .baseAttack = 130,
+ .baseDefense = 100,
+ .baseSpeed = 65,
+ .baseSpAttack = 55,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_STEEL,
+ .catchRate = 25,
+ .expYield = 200,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHUCKLE] =
+ {
+ .baseHP = 20,
+ .baseAttack = 10,
+ .baseDefense = 230,
+ .baseSpeed = 5,
+ .baseSpAttack = 10,
+ .baseSpDefense = 230,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_ROCK,
+ .catchRate = 190,
+ .expYield = 80,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_ORAN_BERRY,
+ .item2 = ITEM_ORAN_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HERACROSS] =
+ {
+ .baseHP = 80,
+ .baseAttack = 125,
+ .baseDefense = 75,
+ .baseSpeed = 85,
+ .baseSpAttack = 40,
+ .baseSpDefense = 95,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 200,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_GUTS,
+ .safariZoneFleeRate = 8,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SNEASEL] =
+ {
+ .baseHP = 55,
+ .baseAttack = 95,
+ .baseDefense = 55,
+ .baseSpeed = 115,
+ .baseSpAttack = 35,
+ .baseSpDefense = 75,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_ICE,
+ .catchRate = 60,
+ .expYield = 132,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_QUICK_CLAW,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_KEEN_EYE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_TEDDIURSA] =
+ {
+ .baseHP = 60,
+ .baseAttack = 80,
+ .baseDefense = 50,
+ .baseSpeed = 40,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 120,
+ .expYield = 124,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PICKUP,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_URSARING] =
+ {
+ .baseHP = 90,
+ .baseAttack = 130,
+ .baseDefense = 75,
+ .baseSpeed = 55,
+ .baseSpAttack = 75,
+ .baseSpDefense = 75,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 60,
+ .expYield = 189,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SLUGMA] =
+ {
+ .baseHP = 40,
+ .baseAttack = 40,
+ .baseDefense = 40,
+ .baseSpeed = 20,
+ .baseSpAttack = 70,
+ .baseSpDefense = 40,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 190,
+ .expYield = 78,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_MAGMA_ARMOR,
+ .ability2 = ABILITY_FLAME_BODY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAGCARGO] =
+ {
+ .baseHP = 50,
+ .baseAttack = 50,
+ .baseDefense = 120,
+ .baseSpeed = 30,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_ROCK,
+ .catchRate = 75,
+ .expYield = 154,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_MAGMA_ARMOR,
+ .ability2 = ABILITY_FLAME_BODY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SWINUB] =
+ {
+ .baseHP = 50,
+ .baseAttack = 50,
+ .baseDefense = 40,
+ .baseSpeed = 50,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_GROUND,
+ .catchRate = 225,
+ .expYield = 78,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PILOSWINE] =
+ {
+ .baseHP = 100,
+ .baseAttack = 100,
+ .baseDefense = 80,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_GROUND,
+ .catchRate = 75,
+ .expYield = 160,
+ .evYield_HP = 1,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CORSOLA] =
+ {
+ .baseHP = 55,
+ .baseAttack = 55,
+ .baseDefense = 85,
+ .baseSpeed = 35,
+ .baseSpAttack = 65,
+ .baseSpDefense = 85,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ROCK,
+ .catchRate = 60,
+ .expYield = 113,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_RED_SHARD,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_HUSTLE,
+ .ability2 = ABILITY_NATURAL_CURE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_REMORAID] =
+ {
+ .baseHP = 35,
+ .baseAttack = 65,
+ .baseDefense = 35,
+ .baseSpeed = 65,
+ .baseSpAttack = 65,
+ .baseSpDefense = 35,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 190,
+ .expYield = 78,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_HUSTLE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OCTILLERY] =
+ {
+ .baseHP = 75,
+ .baseAttack = 105,
+ .baseDefense = 75,
+ .baseSpeed = 45,
+ .baseSpAttack = 105,
+ .baseSpDefense = 75,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 75,
+ .expYield = 164,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_SUCTION_CUPS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DELIBIRD] =
+ {
+ .baseHP = 45,
+ .baseAttack = 55,
+ .baseDefense = 45,
+ .baseSpeed = 75,
+ .baseSpAttack = 65,
+ .baseSpDefense = 45,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 183,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_VITAL_SPIRIT,
+ .ability2 = ABILITY_HUSTLE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MANTINE] =
+ {
+ .baseHP = 65,
+ .baseAttack = 40,
+ .baseDefense = 70,
+ .baseSpeed = 70,
+ .baseSpAttack = 80,
+ .baseSpDefense = 140,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_FLYING,
+ .catchRate = 25,
+ .expYield = 168,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_WATER_ABSORB,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SKARMORY] =
+ {
+ .baseHP = 65,
+ .baseAttack = 80,
+ .baseDefense = 140,
+ .baseSpeed = 70,
+ .baseSpAttack = 40,
+ .baseSpDefense = 70,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 25,
+ .expYield = 168,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HOUNDOUR] =
+ {
+ .baseHP = 45,
+ .baseAttack = 60,
+ .baseDefense = 30,
+ .baseSpeed = 65,
+ .baseSpAttack = 80,
+ .baseSpDefense = 50,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_FIRE,
+ .catchRate = 120,
+ .expYield = 114,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_EARLY_BIRD,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HOUNDOOM] =
+ {
+ .baseHP = 75,
+ .baseAttack = 90,
+ .baseDefense = 50,
+ .baseSpeed = 95,
+ .baseSpAttack = 110,
+ .baseSpDefense = 80,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 204,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_EARLY_BIRD,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KINGDRA] =
+ {
+ .baseHP = 75,
+ .baseAttack = 95,
+ .baseDefense = 95,
+ .baseSpeed = 85,
+ .baseSpAttack = 95,
+ .baseSpDefense = 95,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 207,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PHANPY] =
+ {
+ .baseHP = 90,
+ .baseAttack = 60,
+ .baseDefense = 60,
+ .baseSpeed = 40,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 120,
+ .expYield = 124,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PICKUP,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 10,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DONPHAN] =
+ {
+ .baseHP = 90,
+ .baseAttack = 120,
+ .baseDefense = 120,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 60,
+ .expYield = 189,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PORYGON2] =
+ {
+ .baseHP = 85,
+ .baseAttack = 80,
+ .baseDefense = 90,
+ .baseSpeed = 60,
+ .baseSpAttack = 105,
+ .baseSpDefense = 95,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 180,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_TRACE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_STANTLER] =
+ {
+ .baseHP = 73,
+ .baseAttack = 95,
+ .baseDefense = 62,
+ .baseSpeed = 85,
+ .baseSpAttack = 85,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 165,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SMEARGLE] =
+ {
+ .baseHP = 55,
+ .baseAttack = 20,
+ .baseDefense = 35,
+ .baseSpeed = 75,
+ .baseSpAttack = 20,
+ .baseSpDefense = 45,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 106,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_OWN_TEMPO,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TYROGUE] =
+ {
+ .baseHP = 35,
+ .baseAttack = 35,
+ .baseDefense = 35,
+ .baseSpeed = 35,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 75,
+ .expYield = 91,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HITMONTOP] =
+ {
+ .baseHP = 50,
+ .baseAttack = 95,
+ .baseDefense = 95,
+ .baseSpeed = 70,
+ .baseSpAttack = 35,
+ .baseSpDefense = 110,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 138,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SMOOCHUM] =
+ {
+ .baseHP = 45,
+ .baseAttack = 30,
+ .baseDefense = 15,
+ .baseSpeed = 65,
+ .baseSpAttack = 85,
+ .baseSpDefense = 65,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 87,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_ASPEAR_BERRY,
+ .item2 = ITEM_ASPEAR_BERRY,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ELEKID] =
+ {
+ .baseHP = 45,
+ .baseAttack = 63,
+ .baseDefense = 37,
+ .baseSpeed = 95,
+ .baseSpAttack = 65,
+ .baseSpDefense = 55,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 45,
+ .expYield = 106,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_MAGBY] =
+ {
+ .baseHP = 45,
+ .baseAttack = 75,
+ .baseDefense = 37,
+ .baseSpeed = 83,
+ .baseSpAttack = 70,
+ .baseSpDefense = 55,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 117,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_FLAME_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MILTANK] =
+ {
+ .baseHP = 95,
+ .baseAttack = 80,
+ .baseDefense = 105,
+ .baseSpeed = 100,
+ .baseSpAttack = 40,
+ .baseSpDefense = 70,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 200,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_MOOMOO_MILK,
+ .item2 = ITEM_MOOMOO_MILK,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BLISSEY] =
+ {
+ .baseHP = 255,
+ .baseAttack = 10,
+ .baseDefense = 10,
+ .baseSpeed = 55,
+ .baseSpAttack = 75,
+ .baseSpDefense = 135,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 30,
+ .expYield = 255,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_LUCKY_EGG,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 40,
+ .friendship = 140,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_SERENE_GRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RAIKOU] =
+ {
+ .baseHP = 90,
+ .baseAttack = 85,
+ .baseDefense = 75,
+ .baseSpeed = 115,
+ .baseSpAttack = 115,
+ .baseSpDefense = 100,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 3,
+ .expYield = 216,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ENTEI] =
+ {
+ .baseHP = 115,
+ .baseAttack = 115,
+ .baseDefense = 85,
+ .baseSpeed = 100,
+ .baseSpAttack = 90,
+ .baseSpDefense = 75,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 3,
+ .expYield = 217,
+ .evYield_HP = 1,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SUICUNE] =
+ {
+ .baseHP = 100,
+ .baseAttack = 75,
+ .baseDefense = 115,
+ .baseSpeed = 85,
+ .baseSpAttack = 90,
+ .baseSpDefense = 115,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 3,
+ .expYield = 215,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LARVITAR] =
+ {
+ .baseHP = 50,
+ .baseAttack = 64,
+ .baseDefense = 50,
+ .baseSpeed = 41,
+ .baseSpAttack = 45,
+ .baseSpDefense = 50,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 67,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PUPITAR] =
+ {
+ .baseHP = 70,
+ .baseAttack = 84,
+ .baseDefense = 70,
+ .baseSpeed = 51,
+ .baseSpAttack = 65,
+ .baseSpDefense = 70,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 144,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TYRANITAR] =
+ {
+ .baseHP = 100,
+ .baseAttack = 134,
+ .baseDefense = 110,
+ .baseSpeed = 61,
+ .baseSpAttack = 95,
+ .baseSpDefense = 100,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_DARK,
+ .catchRate = 45,
+ .expYield = 218,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_SAND_STREAM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LUGIA] =
+ {
+ .baseHP = 106,
+ .baseAttack = 90,
+ .baseDefense = 130,
+ .baseSpeed = 110,
+ .baseSpAttack = 90,
+ .baseSpDefense = 154,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 220,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HO_OH] =
+ {
+ .baseHP = 106,
+ .baseAttack = 130,
+ .baseDefense = 90,
+ .baseSpeed = 90,
+ .baseSpAttack = 110,
+ .baseSpDefense = 154,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 220,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_SACRED_ASH,
+ .item2 = ITEM_SACRED_ASH,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CELEBI] =
+ {
+ .baseHP = 100,
+ .baseAttack = 100,
+ .baseDefense = 100,
+ .baseSpeed = 100,
+ .baseSpAttack = 100,
+ .baseSpDefense = 100,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 64,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_LUM_BERRY,
+ .item2 = ITEM_LUM_BERRY,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 100,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_B] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_C] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_D] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_E] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_F] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_G] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_H] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_I] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_J] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_K] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_L] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_M] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_N] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_O] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_P] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_Q] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_R] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_S] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_T] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_U] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_V] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_W] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_X] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_Y] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_Z] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TREECKO] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 35,
+ .baseSpeed = 70,
+ .baseSpAttack = 65,
+ .baseSpDefense = 55,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GROVYLE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 65,
+ .baseDefense = 45,
+ .baseSpeed = 95,
+ .baseSpAttack = 85,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 141,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SCEPTILE] =
+ {
+ .baseHP = 70,
+ .baseAttack = 85,
+ .baseDefense = 65,
+ .baseSpeed = 120,
+ .baseSpAttack = 105,
+ .baseSpDefense = 85,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 208,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 3,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TORCHIC] =
+ {
+ .baseHP = 45,
+ .baseAttack = 60,
+ .baseDefense = 40,
+ .baseSpeed = 45,
+ .baseSpAttack = 70,
+ .baseSpDefense = 50,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_COMBUSKEN] =
+ {
+ .baseHP = 60,
+ .baseAttack = 85,
+ .baseDefense = 60,
+ .baseSpeed = 55,
+ .baseSpAttack = 85,
+ .baseSpDefense = 60,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 142,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BLAZIKEN] =
+ {
+ .baseHP = 80,
+ .baseAttack = 120,
+ .baseDefense = 70,
+ .baseSpeed = 80,
+ .baseSpAttack = 110,
+ .baseSpDefense = 70,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 209,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MUDKIP] =
+ {
+ .baseHP = 50,
+ .baseAttack = 70,
+ .baseDefense = 50,
+ .baseSpeed = 40,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MARSHTOMP] =
+ {
+ .baseHP = 70,
+ .baseAttack = 85,
+ .baseDefense = 70,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 70,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 143,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SWAMPERT] =
+ {
+ .baseHP = 100,
+ .baseAttack = 110,
+ .baseDefense = 90,
+ .baseSpeed = 60,
+ .baseSpAttack = 85,
+ .baseSpDefense = 90,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 210,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_POOCHYENA] =
+ {
+ .baseHP = 35,
+ .baseAttack = 55,
+ .baseDefense = 35,
+ .baseSpeed = 35,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_DARK,
+ .catchRate = 255,
+ .expYield = 55,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_PECHA_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MIGHTYENA] =
+ {
+ .baseHP = 70,
+ .baseAttack = 90,
+ .baseDefense = 70,
+ .baseSpeed = 70,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_DARK,
+ .catchRate = 127,
+ .expYield = 128,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_PECHA_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ZIGZAGOON] =
+ {
+ .baseHP = 38,
+ .baseAttack = 30,
+ .baseDefense = 41,
+ .baseSpeed = 60,
+ .baseSpAttack = 30,
+ .baseSpDefense = 41,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 60,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_ORAN_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PICKUP,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LINOONE] =
+ {
+ .baseHP = 78,
+ .baseAttack = 70,
+ .baseDefense = 61,
+ .baseSpeed = 100,
+ .baseSpAttack = 50,
+ .baseSpDefense = 61,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 90,
+ .expYield = 128,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_ORAN_BERRY,
+ .item2 = ITEM_SITRUS_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PICKUP,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WURMPLE] =
+ {
+ .baseHP = 45,
+ .baseAttack = 45,
+ .baseDefense = 35,
+ .baseSpeed = 20,
+ .baseSpAttack = 20,
+ .baseSpDefense = 30,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 255,
+ .expYield = 54,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHIELD_DUST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SILCOON] =
+ {
+ .baseHP = 50,
+ .baseAttack = 35,
+ .baseDefense = 55,
+ .baseSpeed = 15,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 120,
+ .expYield = 71,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BEAUTIFLY] =
+ {
+ .baseHP = 60,
+ .baseAttack = 70,
+ .baseDefense = 50,
+ .baseSpeed = 65,
+ .baseSpAttack = 90,
+ .baseSpDefense = 50,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 161,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SILVER_POWDER,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CASCOON] =
+ {
+ .baseHP = 50,
+ .baseAttack = 35,
+ .baseDefense = 55,
+ .baseSpeed = 15,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 120,
+ .expYield = 72,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DUSTOX] =
+ {
+ .baseHP = 60,
+ .baseAttack = 50,
+ .baseDefense = 70,
+ .baseSpeed = 65,
+ .baseSpAttack = 50,
+ .baseSpDefense = 90,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 160,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SILVER_POWDER,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHIELD_DUST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LOTAD] =
+ {
+ .baseHP = 40,
+ .baseAttack = 30,
+ .baseDefense = 30,
+ .baseSpeed = 30,
+ .baseSpAttack = 40,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GRASS,
+ .catchRate = 255,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_RAIN_DISH,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LOMBRE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 50,
+ .baseDefense = 50,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 70,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GRASS,
+ .catchRate = 120,
+ .expYield = 141,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_RAIN_DISH,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LUDICOLO] =
+ {
+ .baseHP = 80,
+ .baseAttack = 70,
+ .baseDefense = 70,
+ .baseSpeed = 70,
+ .baseSpAttack = 90,
+ .baseSpDefense = 100,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 181,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_RAIN_DISH,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEEDOT] =
+ {
+ .baseHP = 40,
+ .baseAttack = 40,
+ .baseDefense = 50,
+ .baseSpeed = 30,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 255,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NUZLEAF] =
+ {
+ .baseHP = 70,
+ .baseAttack = 70,
+ .baseDefense = 40,
+ .baseSpeed = 60,
+ .baseSpAttack = 60,
+ .baseSpDefense = 40,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_DARK,
+ .catchRate = 120,
+ .expYield = 141,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHIFTRY] =
+ {
+ .baseHP = 90,
+ .baseAttack = 100,
+ .baseDefense = 60,
+ .baseSpeed = 80,
+ .baseSpAttack = 90,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_DARK,
+ .catchRate = 45,
+ .expYield = 181,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NINCADA] =
+ {
+ .baseHP = 31,
+ .baseAttack = 45,
+ .baseDefense = 90,
+ .baseSpeed = 40,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_COMPOUND_EYES,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NINJASK] =
+ {
+ .baseHP = 61,
+ .baseAttack = 90,
+ .baseDefense = 45,
+ .baseSpeed = 160,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 120,
+ .expYield = 155,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SPEED_BOOST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHEDINJA] =
+ {
+ .baseHP = 1,
+ .baseAttack = 90,
+ .baseDefense = 45,
+ .baseSpeed = 40,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_GHOST,
+ .catchRate = 45,
+ .expYield = 95,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_WONDER_GUARD,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TAILLOW] =
+ {
+ .baseHP = 40,
+ .baseAttack = 55,
+ .baseDefense = 30,
+ .baseSpeed = 85,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 200,
+ .expYield = 59,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SWELLOW] =
+ {
+ .baseHP = 60,
+ .baseAttack = 85,
+ .baseDefense = 60,
+ .baseSpeed = 125,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 162,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHROOMISH] =
+ {
+ .baseHP = 60,
+ .baseAttack = 40,
+ .baseDefense = 60,
+ .baseSpeed = 35,
+ .baseSpAttack = 40,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 255,
+ .expYield = 65,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_EFFECT_SPORE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BRELOOM] =
+ {
+ .baseHP = 60,
+ .baseAttack = 130,
+ .baseDefense = 80,
+ .baseSpeed = 70,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 90,
+ .expYield = 165,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_EFFECT_SPORE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SPINDA] =
+ {
+ .baseHP = 60,
+ .baseAttack = 60,
+ .baseDefense = 60,
+ .baseSpeed = 60,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 85,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_CHESTO_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_OWN_TEMPO,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_WINGULL] =
+ {
+ .baseHP = 40,
+ .baseAttack = 30,
+ .baseDefense = 30,
+ .baseSpeed = 85,
+ .baseSpAttack = 55,
+ .baseSpDefense = 30,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_FLYING,
+ .catchRate = 190,
+ .expYield = 64,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PELIPPER] =
+ {
+ .baseHP = 60,
+ .baseAttack = 50,
+ .baseDefense = 100,
+ .baseSpeed = 65,
+ .baseSpAttack = 85,
+ .baseSpDefense = 70,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 164,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SURSKIT] =
+ {
+ .baseHP = 40,
+ .baseAttack = 30,
+ .baseDefense = 32,
+ .baseSpeed = 65,
+ .baseSpAttack = 50,
+ .baseSpDefense = 52,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_WATER,
+ .catchRate = 200,
+ .expYield = 63,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MASQUERAIN] =
+ {
+ .baseHP = 70,
+ .baseAttack = 60,
+ .baseDefense = 62,
+ .baseSpeed = 60,
+ .baseSpAttack = 80,
+ .baseSpDefense = 82,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 75,
+ .expYield = 128,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SILVER_POWDER,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WAILMER] =
+ {
+ .baseHP = 130,
+ .baseAttack = 70,
+ .baseDefense = 35,
+ .baseSpeed = 60,
+ .baseSpAttack = 70,
+ .baseSpDefense = 35,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 125,
+ .expYield = 137,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_WATER_VEIL,
+ .ability2 = ABILITY_OBLIVIOUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WAILORD] =
+ {
+ .baseHP = 170,
+ .baseAttack = 90,
+ .baseDefense = 45,
+ .baseSpeed = 60,
+ .baseSpAttack = 90,
+ .baseSpDefense = 45,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 206,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_WATER_VEIL,
+ .ability2 = ABILITY_OBLIVIOUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SKITTY] =
+ {
+ .baseHP = 50,
+ .baseAttack = 45,
+ .baseDefense = 45,
+ .baseSpeed = 50,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_LEPPA_BERRY,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DELCATTY] =
+ {
+ .baseHP = 70,
+ .baseAttack = 65,
+ .baseDefense = 65,
+ .baseSpeed = 70,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 60,
+ .expYield = 138,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_LEPPA_BERRY,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KECLEON] =
+ {
+ .baseHP = 60,
+ .baseAttack = 90,
+ .baseDefense = 70,
+ .baseSpeed = 40,
+ .baseSpAttack = 60,
+ .baseSpDefense = 120,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 200,
+ .expYield = 132,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_PERSIM_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_COLOR_CHANGE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BALTOY] =
+ {
+ .baseHP = 40,
+ .baseAttack = 40,
+ .baseDefense = 55,
+ .baseSpeed = 55,
+ .baseSpAttack = 40,
+ .baseSpDefense = 70,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 255,
+ .expYield = 58,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLAYDOL] =
+ {
+ .baseHP = 60,
+ .baseAttack = 70,
+ .baseDefense = 105,
+ .baseSpeed = 75,
+ .baseSpAttack = 70,
+ .baseSpDefense = 120,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 90,
+ .expYield = 189,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NOSEPASS] =
+ {
+ .baseHP = 30,
+ .baseAttack = 45,
+ .baseDefense = 135,
+ .baseSpeed = 30,
+ .baseSpAttack = 45,
+ .baseSpDefense = 90,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_ROCK,
+ .catchRate = 255,
+ .expYield = 108,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_MAGNET_PULL,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TORKOAL] =
+ {
+ .baseHP = 70,
+ .baseAttack = 85,
+ .baseDefense = 140,
+ .baseSpeed = 20,
+ .baseSpAttack = 85,
+ .baseSpDefense = 70,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 90,
+ .expYield = 161,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_WHITE_SMOKE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SABLEYE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 75,
+ .baseDefense = 75,
+ .baseSpeed = 50,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_GHOST,
+ .catchRate = 45,
+ .expYield = 98,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BARBOACH] =
+ {
+ .baseHP = 50,
+ .baseAttack = 48,
+ .baseDefense = 43,
+ .baseSpeed = 60,
+ .baseSpAttack = 46,
+ .baseSpDefense = 41,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 190,
+ .expYield = 92,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WHISCASH] =
+ {
+ .baseHP = 110,
+ .baseAttack = 78,
+ .baseDefense = 73,
+ .baseSpeed = 60,
+ .baseSpAttack = 76,
+ .baseSpDefense = 71,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 75,
+ .expYield = 158,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LUVDISC] =
+ {
+ .baseHP = 43,
+ .baseAttack = 30,
+ .baseDefense = 55,
+ .baseSpeed = 97,
+ .baseSpAttack = 40,
+ .baseSpDefense = 65,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 225,
+ .expYield = 110,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_HEART_SCALE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CORPHISH] =
+ {
+ .baseHP = 43,
+ .baseAttack = 80,
+ .baseDefense = 65,
+ .baseSpeed = 35,
+ .baseSpAttack = 50,
+ .baseSpDefense = 35,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 205,
+ .expYield = 111,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CRAWDAUNT] =
+ {
+ .baseHP = 63,
+ .baseAttack = 120,
+ .baseDefense = 85,
+ .baseSpeed = 55,
+ .baseSpAttack = 90,
+ .baseSpDefense = 55,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_DARK,
+ .catchRate = 155,
+ .expYield = 161,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FEEBAS] =
+ {
+ .baseHP = 20,
+ .baseAttack = 15,
+ .baseDefense = 20,
+ .baseSpeed = 80,
+ .baseSpAttack = 10,
+ .baseSpDefense = 55,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 255,
+ .expYield = 61,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MILOTIC] =
+ {
+ .baseHP = 95,
+ .baseAttack = 60,
+ .baseDefense = 79,
+ .baseSpeed = 81,
+ .baseSpAttack = 100,
+ .baseSpDefense = 125,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 213,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_MARVEL_SCALE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CARVANHA] =
+ {
+ .baseHP = 45,
+ .baseAttack = 90,
+ .baseDefense = 20,
+ .baseSpeed = 65,
+ .baseSpAttack = 65,
+ .baseSpDefense = 20,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_DARK,
+ .catchRate = 225,
+ .expYield = 88,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_ROUGH_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHARPEDO] =
+ {
+ .baseHP = 70,
+ .baseAttack = 120,
+ .baseDefense = 40,
+ .baseSpeed = 95,
+ .baseSpAttack = 95,
+ .baseSpDefense = 40,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_DARK,
+ .catchRate = 60,
+ .expYield = 175,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_ROUGH_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TRAPINCH] =
+ {
+ .baseHP = 45,
+ .baseAttack = 100,
+ .baseDefense = 45,
+ .baseSpeed = 10,
+ .baseSpAttack = 45,
+ .baseSpDefense = 45,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 73,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SOFT_SAND,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_ARENA_TRAP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VIBRAVA] =
+ {
+ .baseHP = 50,
+ .baseAttack = 70,
+ .baseDefense = 50,
+ .baseSpeed = 70,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 120,
+ .expYield = 126,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_LEVITATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FLYGON] =
+ {
+ .baseHP = 80,
+ .baseAttack = 100,
+ .baseDefense = 80,
+ .baseSpeed = 100,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 197,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_LEVITATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAKUHITA] =
+ {
+ .baseHP = 72,
+ .baseAttack = 60,
+ .baseDefense = 30,
+ .baseSpeed = 25,
+ .baseSpAttack = 20,
+ .baseSpDefense = 30,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 180,
+ .expYield = 87,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_GUTS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HARIYAMA] =
+ {
+ .baseHP = 144,
+ .baseAttack = 120,
+ .baseDefense = 60,
+ .baseSpeed = 50,
+ .baseSpAttack = 40,
+ .baseSpDefense = 60,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 200,
+ .expYield = 184,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_GUTS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ELECTRIKE] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 40,
+ .baseSpeed = 65,
+ .baseSpAttack = 65,
+ .baseSpDefense = 40,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 120,
+ .expYield = 104,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_LIGHTNING_ROD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MANECTRIC] =
+ {
+ .baseHP = 70,
+ .baseAttack = 75,
+ .baseDefense = 60,
+ .baseSpeed = 105,
+ .baseSpAttack = 105,
+ .baseSpDefense = 60,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 45,
+ .expYield = 168,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_LIGHTNING_ROD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NUMEL] =
+ {
+ .baseHP = 60,
+ .baseAttack = 60,
+ .baseDefense = 40,
+ .baseSpeed = 35,
+ .baseSpAttack = 65,
+ .baseSpDefense = 45,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 88,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CAMERUPT] =
+ {
+ .baseHP = 70,
+ .baseAttack = 100,
+ .baseDefense = 70,
+ .baseSpeed = 40,
+ .baseSpAttack = 105,
+ .baseSpDefense = 75,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_GROUND,
+ .catchRate = 150,
+ .expYield = 175,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_MAGMA_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SPHEAL] =
+ {
+ .baseHP = 70,
+ .baseAttack = 40,
+ .baseDefense = 50,
+ .baseSpeed = 25,
+ .baseSpAttack = 55,
+ .baseSpDefense = 50,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_WATER,
+ .catchRate = 255,
+ .expYield = 75,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEALEO] =
+ {
+ .baseHP = 90,
+ .baseAttack = 60,
+ .baseDefense = 70,
+ .baseSpeed = 45,
+ .baseSpAttack = 75,
+ .baseSpDefense = 70,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_WATER,
+ .catchRate = 120,
+ .expYield = 128,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WALREIN] =
+ {
+ .baseHP = 110,
+ .baseAttack = 80,
+ .baseDefense = 90,
+ .baseSpeed = 65,
+ .baseSpAttack = 95,
+ .baseSpDefense = 90,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 192,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CACNEA] =
+ {
+ .baseHP = 50,
+ .baseAttack = 85,
+ .baseDefense = 40,
+ .baseSpeed = 35,
+ .baseSpAttack = 85,
+ .baseSpDefense = 40,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 190,
+ .expYield = 97,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_POISON_BARB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CACTURNE] =
+ {
+ .baseHP = 70,
+ .baseAttack = 115,
+ .baseDefense = 60,
+ .baseSpeed = 55,
+ .baseSpAttack = 115,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_DARK,
+ .catchRate = 60,
+ .expYield = 177,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_POISON_BARB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SNORUNT] =
+ {
+ .baseHP = 50,
+ .baseAttack = 50,
+ .baseDefense = 50,
+ .baseSpeed = 50,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_ICE,
+ .catchRate = 190,
+ .expYield = 74,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GLALIE] =
+ {
+ .baseHP = 80,
+ .baseAttack = 80,
+ .baseDefense = 80,
+ .baseSpeed = 80,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_ICE,
+ .catchRate = 75,
+ .expYield = 187,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NEVER_MELT_ICE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LUNATONE] =
+ {
+ .baseHP = 70,
+ .baseAttack = 55,
+ .baseDefense = 65,
+ .baseSpeed = 70,
+ .baseSpAttack = 95,
+ .baseSpDefense = 85,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 150,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_MOON_STONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SOLROCK] =
+ {
+ .baseHP = 70,
+ .baseAttack = 95,
+ .baseDefense = 85,
+ .baseSpeed = 70,
+ .baseSpAttack = 55,
+ .baseSpDefense = 65,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 150,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SUN_STONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AZURILL] =
+ {
+ .baseHP = 50,
+ .baseAttack = 20,
+ .baseDefense = 40,
+ .baseSpeed = 20,
+ .baseSpAttack = 20,
+ .baseSpDefense = 40,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 150,
+ .expYield = 33,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_HUGE_POWER,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SPOINK] =
+ {
+ .baseHP = 60,
+ .baseAttack = 25,
+ .baseDefense = 35,
+ .baseSpeed = 60,
+ .baseSpAttack = 70,
+ .baseSpDefense = 80,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 255,
+ .expYield = 89,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_OWN_TEMPO,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GRUMPIG] =
+ {
+ .baseHP = 80,
+ .baseAttack = 45,
+ .baseDefense = 65,
+ .baseSpeed = 80,
+ .baseSpAttack = 90,
+ .baseSpDefense = 110,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 60,
+ .expYield = 164,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_OWN_TEMPO,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PLUSLE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 50,
+ .baseDefense = 40,
+ .baseSpeed = 95,
+ .baseSpAttack = 85,
+ .baseSpDefense = 75,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 200,
+ .expYield = 120,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_PLUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MINUN] =
+ {
+ .baseHP = 60,
+ .baseAttack = 40,
+ .baseDefense = 50,
+ .baseSpeed = 95,
+ .baseSpAttack = 75,
+ .baseSpDefense = 85,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 200,
+ .expYield = 120,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_MINUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAWILE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 85,
+ .baseDefense = 85,
+ .baseSpeed = 50,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_STEEL,
+ .catchRate = 45,
+ .expYield = 98,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_INTIMIDATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEDITITE] =
+ {
+ .baseHP = 30,
+ .baseAttack = 40,
+ .baseDefense = 55,
+ .baseSpeed = 60,
+ .baseSpAttack = 40,
+ .baseSpDefense = 55,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 180,
+ .expYield = 91,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_PURE_POWER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEDICHAM] =
+ {
+ .baseHP = 60,
+ .baseAttack = 60,
+ .baseDefense = 75,
+ .baseSpeed = 80,
+ .baseSpAttack = 60,
+ .baseSpDefense = 75,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 90,
+ .expYield = 153,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_PURE_POWER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SWABLU] =
+ {
+ .baseHP = 45,
+ .baseAttack = 40,
+ .baseDefense = 60,
+ .baseSpeed = 50,
+ .baseSpAttack = 40,
+ .baseSpDefense = 75,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ALTARIA] =
+ {
+ .baseHP = 75,
+ .baseAttack = 70,
+ .baseDefense = 90,
+ .baseSpeed = 80,
+ .baseSpAttack = 70,
+ .baseSpDefense = 105,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 188,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WYNAUT] =
+ {
+ .baseHP = 95,
+ .baseAttack = 23,
+ .baseDefense = 48,
+ .baseSpeed = 23,
+ .baseSpAttack = 23,
+ .baseSpDefense = 48,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 125,
+ .expYield = 44,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_SHADOW_TAG,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DUSKULL] =
+ {
+ .baseHP = 20,
+ .baseAttack = 40,
+ .baseDefense = 90,
+ .baseSpeed = 25,
+ .baseSpAttack = 30,
+ .baseSpDefense = 90,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_GHOST,
+ .catchRate = 190,
+ .expYield = 97,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SPELL_TAG,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DUSCLOPS] =
+ {
+ .baseHP = 40,
+ .baseAttack = 70,
+ .baseDefense = 130,
+ .baseSpeed = 25,
+ .baseSpAttack = 60,
+ .baseSpDefense = 130,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_GHOST,
+ .catchRate = 90,
+ .expYield = 179,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SPELL_TAG,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ROSELIA] =
+ {
+ .baseHP = 50,
+ .baseAttack = 60,
+ .baseDefense = 45,
+ .baseSpeed = 65,
+ .baseSpAttack = 100,
+ .baseSpDefense = 80,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 150,
+ .expYield = 152,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_POISON_BARB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_POISON_POINT,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_SLAKOTH] =
+ {
+ .baseHP = 60,
+ .baseAttack = 60,
+ .baseDefense = 60,
+ .baseSpeed = 30,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 83,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_TRUANT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VIGOROTH] =
+ {
+ .baseHP = 80,
+ .baseAttack = 80,
+ .baseDefense = 80,
+ .baseSpeed = 90,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 120,
+ .expYield = 126,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_VITAL_SPIRIT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SLAKING] =
+ {
+ .baseHP = 150,
+ .baseAttack = 160,
+ .baseDefense = 100,
+ .baseSpeed = 100,
+ .baseSpAttack = 95,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 210,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_TRUANT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GULPIN] =
+ {
+ .baseHP = 70,
+ .baseAttack = 43,
+ .baseDefense = 53,
+ .baseSpeed = 40,
+ .baseSpAttack = 43,
+ .baseSpDefense = 53,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 225,
+ .expYield = 75,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_BIG_PEARL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LIQUID_OOZE,
+ .ability2 = ABILITY_STICKY_HOLD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SWALOT] =
+ {
+ .baseHP = 100,
+ .baseAttack = 73,
+ .baseDefense = 83,
+ .baseSpeed = 55,
+ .baseSpAttack = 73,
+ .baseSpDefense = 83,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 75,
+ .expYield = 168,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_BIG_PEARL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LIQUID_OOZE,
+ .ability2 = ABILITY_STICKY_HOLD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TROPIUS] =
+ {
+ .baseHP = 99,
+ .baseAttack = 68,
+ .baseDefense = 83,
+ .baseSpeed = 51,
+ .baseSpAttack = 72,
+ .baseSpDefense = 87,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_FLYING,
+ .catchRate = 200,
+ .expYield = 169,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WHISMUR] =
+ {
+ .baseHP = 64,
+ .baseAttack = 51,
+ .baseDefense = 23,
+ .baseSpeed = 28,
+ .baseSpAttack = 51,
+ .baseSpDefense = 23,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 190,
+ .expYield = 68,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_CHESTO_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LOUDRED] =
+ {
+ .baseHP = 84,
+ .baseAttack = 71,
+ .baseDefense = 43,
+ .baseSpeed = 48,
+ .baseSpAttack = 71,
+ .baseSpDefense = 43,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 120,
+ .expYield = 126,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_CHESTO_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_EXPLOUD] =
+ {
+ .baseHP = 104,
+ .baseAttack = 91,
+ .baseDefense = 63,
+ .baseSpeed = 68,
+ .baseSpAttack = 91,
+ .baseSpDefense = 63,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 184,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_CHESTO_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLAMPERL] =
+ {
+ .baseHP = 35,
+ .baseAttack = 64,
+ .baseDefense = 85,
+ .baseSpeed = 32,
+ .baseSpAttack = 74,
+ .baseSpDefense = 55,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 255,
+ .expYield = 142,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_BLUE_SHARD,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_SHELL_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HUNTAIL] =
+ {
+ .baseHP = 55,
+ .baseAttack = 104,
+ .baseDefense = 105,
+ .baseSpeed = 52,
+ .baseSpAttack = 94,
+ .baseSpDefense = 75,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 178,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GOREBYSS] =
+ {
+ .baseHP = 55,
+ .baseAttack = 84,
+ .baseDefense = 105,
+ .baseSpeed = 52,
+ .baseSpAttack = 114,
+ .baseSpDefense = 75,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 178,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ABSOL] =
+ {
+ .baseHP = 65,
+ .baseAttack = 130,
+ .baseDefense = 60,
+ .baseSpeed = 75,
+ .baseSpAttack = 75,
+ .baseSpDefense = 60,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_DARK,
+ .catchRate = 30,
+ .expYield = 174,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_SHUPPET] =
+ {
+ .baseHP = 44,
+ .baseAttack = 75,
+ .baseDefense = 35,
+ .baseSpeed = 45,
+ .baseSpAttack = 63,
+ .baseSpDefense = 33,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_GHOST,
+ .catchRate = 225,
+ .expYield = 97,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SPELL_TAG,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BANETTE] =
+ {
+ .baseHP = 64,
+ .baseAttack = 115,
+ .baseDefense = 65,
+ .baseSpeed = 65,
+ .baseSpAttack = 83,
+ .baseSpDefense = 63,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_GHOST,
+ .catchRate = 45,
+ .expYield = 179,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SPELL_TAG,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEVIPER] =
+ {
+ .baseHP = 73,
+ .baseAttack = 100,
+ .baseDefense = 60,
+ .baseSpeed = 65,
+ .baseSpAttack = 100,
+ .baseSpDefense = 60,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 90,
+ .expYield = 165,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_ZANGOOSE] =
+ {
+ .baseHP = 73,
+ .baseAttack = 115,
+ .baseDefense = 60,
+ .baseSpeed = 90,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 90,
+ .expYield = 165,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_IMMUNITY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_RELICANTH] =
+ {
+ .baseHP = 100,
+ .baseAttack = 90,
+ .baseDefense = 130,
+ .baseSpeed = 55,
+ .baseSpAttack = 45,
+ .baseSpDefense = 65,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ROCK,
+ .catchRate = 25,
+ .expYield = 198,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_GREEN_SHARD,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARON] =
+ {
+ .baseHP = 50,
+ .baseAttack = 70,
+ .baseDefense = 100,
+ .baseSpeed = 30,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_ROCK,
+ .catchRate = 180,
+ .expYield = 96,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_HARD_STONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 35,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LAIRON] =
+ {
+ .baseHP = 60,
+ .baseAttack = 90,
+ .baseDefense = 140,
+ .baseSpeed = 40,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_ROCK,
+ .catchRate = 90,
+ .expYield = 152,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_HARD_STONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 35,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AGGRON] =
+ {
+ .baseHP = 70,
+ .baseAttack = 110,
+ .baseDefense = 180,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_ROCK,
+ .catchRate = 45,
+ .expYield = 205,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 3,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_HARD_STONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 35,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CASTFORM] =
+ {
+ .baseHP = 70,
+ .baseAttack = 70,
+ .baseDefense = 70,
+ .baseSpeed = 70,
+ .baseSpAttack = 70,
+ .baseSpDefense = 70,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 145,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_MYSTIC_WATER,
+ .item2 = ITEM_MYSTIC_WATER,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_FORECAST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VOLBEAT] =
+ {
+ .baseHP = 65,
+ .baseAttack = 73,
+ .baseDefense = 55,
+ .baseSpeed = 85,
+ .baseSpAttack = 47,
+ .baseSpDefense = 75,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 150,
+ .expYield = 146,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_ILLUMINATE,
+ .ability2 = ABILITY_SWARM,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ILLUMISE] =
+ {
+ .baseHP = 65,
+ .baseAttack = 47,
+ .baseDefense = 55,
+ .baseSpeed = 85,
+ .baseSpAttack = 73,
+ .baseSpDefense = 75,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 150,
+ .expYield = 146,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LILEEP] =
+ {
+ .baseHP = 66,
+ .baseAttack = 41,
+ .baseDefense = 77,
+ .baseSpeed = 23,
+ .baseSpAttack = 61,
+ .baseSpDefense = 87,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 121,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SUCTION_CUPS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CRADILY] =
+ {
+ .baseHP = 86,
+ .baseAttack = 81,
+ .baseDefense = 97,
+ .baseSpeed = 43,
+ .baseSpAttack = 81,
+ .baseSpDefense = 107,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 201,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SUCTION_CUPS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ANORITH] =
+ {
+ .baseHP = 45,
+ .baseAttack = 95,
+ .baseDefense = 50,
+ .baseSpeed = 75,
+ .baseSpAttack = 40,
+ .baseSpDefense = 50,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_BUG,
+ .catchRate = 45,
+ .expYield = 119,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_BATTLE_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARMALDO] =
+ {
+ .baseHP = 75,
+ .baseAttack = 125,
+ .baseDefense = 100,
+ .baseSpeed = 45,
+ .baseSpAttack = 70,
+ .baseSpDefense = 80,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_BUG,
+ .catchRate = 45,
+ .expYield = 200,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_BATTLE_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RALTS] =
+ {
+ .baseHP = 28,
+ .baseAttack = 25,
+ .baseDefense = 25,
+ .baseSpeed = 40,
+ .baseSpAttack = 45,
+ .baseSpDefense = 35,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 235,
+ .expYield = 70,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_TRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KIRLIA] =
+ {
+ .baseHP = 38,
+ .baseAttack = 35,
+ .baseDefense = 35,
+ .baseSpeed = 50,
+ .baseSpAttack = 65,
+ .baseSpDefense = 55,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 120,
+ .expYield = 140,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_TRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GARDEVOIR] =
+ {
+ .baseHP = 68,
+ .baseAttack = 65,
+ .baseDefense = 65,
+ .baseSpeed = 80,
+ .baseSpAttack = 125,
+ .baseSpDefense = 115,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 208,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_TRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BAGON] =
+ {
+ .baseHP = 45,
+ .baseAttack = 75,
+ .baseDefense = 60,
+ .baseSpeed = 50,
+ .baseSpAttack = 40,
+ .baseSpDefense = 30,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 89,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_DRAGON,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHELGON] =
+ {
+ .baseHP = 65,
+ .baseAttack = 95,
+ .baseDefense = 100,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 50,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 144,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_DRAGON,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SALAMENCE] =
+ {
+ .baseHP = 95,
+ .baseAttack = 135,
+ .baseDefense = 80,
+ .baseSpeed = 100,
+ .baseSpAttack = 110,
+ .baseSpDefense = 80,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 218,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_DRAGON,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BELDUM] =
+ {
+ .baseHP = 40,
+ .baseAttack = 55,
+ .baseDefense = 80,
+ .baseSpeed = 30,
+ .baseSpAttack = 35,
+ .baseSpDefense = 60,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 103,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_METANG] =
+ {
+ .baseHP = 60,
+ .baseAttack = 75,
+ .baseDefense = 100,
+ .baseSpeed = 50,
+ .baseSpAttack = 55,
+ .baseSpDefense = 80,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 153,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_METAGROSS] =
+ {
+ .baseHP = 80,
+ .baseAttack = 135,
+ .baseDefense = 130,
+ .baseSpeed = 70,
+ .baseSpAttack = 95,
+ .baseSpDefense = 90,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 210,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 3,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_REGIROCK] =
+ {
+ .baseHP = 80,
+ .baseAttack = 100,
+ .baseDefense = 200,
+ .baseSpeed = 50,
+ .baseSpAttack = 50,
+ .baseSpDefense = 100,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_ROCK,
+ .catchRate = 3,
+ .expYield = 217,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 3,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_REGICE] =
+ {
+ .baseHP = 80,
+ .baseAttack = 50,
+ .baseDefense = 100,
+ .baseSpeed = 50,
+ .baseSpAttack = 100,
+ .baseSpDefense = 200,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_ICE,
+ .catchRate = 3,
+ .expYield = 216,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_REGISTEEL] =
+ {
+ .baseHP = 80,
+ .baseAttack = 75,
+ .baseDefense = 150,
+ .baseSpeed = 50,
+ .baseSpAttack = 75,
+ .baseSpDefense = 150,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_STEEL,
+ .catchRate = 3,
+ .expYield = 215,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KYOGRE] =
+ {
+ .baseHP = 100,
+ .baseAttack = 100,
+ .baseDefense = 90,
+ .baseSpeed = 90,
+ .baseSpAttack = 150,
+ .baseSpDefense = 140,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 5,
+ .expYield = 218,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_DRIZZLE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GROUDON] =
+ {
+ .baseHP = 100,
+ .baseAttack = 150,
+ .baseDefense = 140,
+ .baseSpeed = 90,
+ .baseSpAttack = 100,
+ .baseSpDefense = 90,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 5,
+ .expYield = 218,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_DROUGHT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RAYQUAZA] =
+ {
+ .baseHP = 105,
+ .baseAttack = 150,
+ .baseDefense = 90,
+ .baseSpeed = 95,
+ .baseSpAttack = 150,
+ .baseSpDefense = 90,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 220,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_AIR_LOCK,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LATIAS] =
+ {
+ .baseHP = 80,
+ .baseAttack = 80,
+ .baseDefense = 90,
+ .baseSpeed = 110,
+ .baseSpAttack = 110,
+ .baseSpDefense = 130,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 211,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 120,
+ .friendship = 90,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LATIOS] =
+ {
+ .baseHP = 80,
+ .baseAttack = 90,
+ .baseDefense = 80,
+ .baseSpeed = 110,
+ .baseSpAttack = 130,
+ .baseSpDefense = 110,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 211,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 120,
+ .friendship = 90,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_JIRACHI] =
+ {
+ .baseHP = 100,
+ .baseAttack = 100,
+ .baseDefense = 100,
+ .baseSpeed = 100,
+ .baseSpAttack = 100,
+ .baseSpDefense = 100,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 215,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_STAR_PIECE,
+ .item2 = ITEM_STAR_PIECE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 100,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_SERENE_GRACE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DEOXYS] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 215,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_CHIMECHO] =
+ {
+ .baseHP = 65,
+ .baseAttack = 50,
+ .baseDefense = 70,
+ .baseSpeed = 65,
+ .baseSpAttack = 95,
+ .baseSpDefense = 80,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 147,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ }
+};
+
+#endif //GUARD_BASE_STATS_H
diff --git a/include/data/pokemon/cry_ids.h b/include/data/pokemon/cry_ids.h
new file mode 100644
index 000000000..1c1c32dde
--- /dev/null
+++ b/include/data/pokemon/cry_ids.h
@@ -0,0 +1,143 @@
+#ifndef POKEEMERALD_CRY_IDS_H
+#define POKEEMERALD_CRY_IDS_H
+
+const u16 gSpeciesIdToCryId[] =
+{
+ 273, // TREECKO
+ 274, // GROVYLE
+ 275, // SCEPTILE
+ 270, // TORCHIC
+ 271, // COMBUSKEN
+ 272, // BLAZIKEN
+ 276, // MUDKIP
+ 277, // MARSHTOMP
+ 278, // SWAMPERT
+ 359, // POOCHYENA
+ 360, // MIGHTYENA
+ 378, // ZIGZAGOON
+ 375, // LINOONE
+ 290, // WURMPLE
+ 291, // SILCOON
+ 292, // BEAUTIFLY
+ 293, // CASCOON
+ 294, // DUSTOX
+ 283, // LOTAD
+ 284, // LOMBRE
+ 285, // LUDICOLO
+ 286, // SEEDOT
+ 287, // NUZLEAF
+ 288, // SHIFTRY
+ 301, // NINCADA
+ 302, // NINJASK
+ 303, // SHEDINJA
+ 266, // TAILLOW
+ 267, // SWELLOW
+ 374, // SHROOMISH
+ 373, // BRELOOM
+ 269, // SPINDA
+ 280, // WINGULL
+ 279, // PELIPPER
+ 310, // SURSKIT
+ 311, // MASQUERAIN
+ 377, // WAILMER
+ 381, // WAILORD
+ 312, // SKITTY
+ 313, // DELCATTY
+ 251, // KECLEON
+ 329, // BALTOY
+ 330, // CLAYDOL
+ 306, // NOSEPASS
+ 253, // TORKOAL
+ 362, // SABLEYE
+ 318, // BARBOACH
+ 319, // WHISCASH
+ 368, // LUVDISC
+ 320, // CORPHISH
+ 321, // CRAWDAUNT
+ 333, // FEEBAS
+ 334, // MILOTIC
+ 289, // CARVANHA
+ 260, // SHARPEDO
+ 324, // TRAPINCH
+ 325, // VIBRAVA
+ 326, // FLYGON
+ 304, // MAKUHITA
+ 305, // HARIYAMA
+ 254, // ELECTRIKE
+ 255, // MANECTRIC
+ 316, // NUMEL
+ 317, // CAMERUPT
+ 338, // SPHEAL
+ 339, // SEALEO
+ 340, // WALREIN
+ 327, // CACNEA
+ 328, // CACTURNE
+ 383, // SNORUNT
+ 307, // GLALIE
+ 331, // LUNATONE
+ 332, // SOLROCK
+ 262, // AZURILL
+ 322, // SPOINK
+ 323, // GRUMPIG
+ 308, // PLUSLE
+ 309, // MINUN
+ 363, // MAWILE
+ 336, // MEDITITE
+ 337, // MEDICHAM
+ 263, // SWABLU
+ 264, // ALTARIA
+ 258, // WYNAUT
+ 256, // DUSKULL
+ 361, // DUSCLOPS
+ 252, // ROSELIA
+ 298, // SLAKOTH
+ 299, // VIGOROTH
+ 300, // SLAKING
+ 314, // GULPIN
+ 315, // SWALOT
+ 376, // TROPIUS
+ 382, // WHISMUR
+ 380, // LOUDRED
+ 379, // EXPLOUD
+ 341, // CLAMPERL
+ 342, // HUNTAIL
+ 343, // GOREBYSS
+ 335, // ABSOL
+ 282, // SHUPPET
+ 281, // BANETTE
+ 259, // SEVIPER
+ 261, // ZANGOOSE
+ 367, // RELICANTH
+ 364, // ARON
+ 365, // LAIRON
+ 366, // AGGRON
+ 356, // CASTFORM
+ 357, // VOLBEAT
+ 358, // ILLUMISE
+ 344, // LILEEP
+ 345, // CRADILY
+ 346, // ANORITH
+ 347, // ARMALDO
+ 295, // RALTS
+ 296, // KIRLIA
+ 297, // GARDEVOIR
+ 351, // BAGON
+ 352, // SHELGON
+ 372, // SALAMENCE
+ 348, // BELDUM
+ 349, // METANG
+ 350, // METAGROSS
+ 353, // REGIROCK
+ 354, // REGICE
+ 355, // REGISTEEL
+ 370, // KYOGRE
+ 369, // GROUDON
+ 371, // RAYQUAZA
+ 257, // LATIAS
+ 384, // LATIOS
+ 385, // JIRACHI
+ 386, // DEOXYS
+ 387 // CHIMECHO
+};
+
+#endif //POKEEMERALD_CRY_IDS_H
diff --git a/include/data/pokemon/egg_moves.h b/include/data/pokemon/egg_moves.h
new file mode 100644
index 000000000..3d74868b4
--- /dev/null
+++ b/include/data/pokemon/egg_moves.h
@@ -0,0 +1,1315 @@
+#ifndef POKEEMERALD_DAYCARE_H
+#define POKEEMERALD_DAYCARE_H
+
+#define EGG_MOVES_SPECIES_OFFSET 20000
+#define EGG_MOVES_TERMINATOR 0xFFFF
+#define egg_moves(species, moves...) (SPECIES_##species + EGG_MOVES_SPECIES_OFFSET), moves
+
+#endif // POKEEMERALD_DAYCARE_H
+
+const u16 gEggMoves[] = {
+ egg_moves(BULBASAUR,
+ MOVE_LIGHT_SCREEN,
+ MOVE_SKULL_BASH,
+ MOVE_SAFEGUARD,
+ MOVE_CHARM,
+ MOVE_PETAL_DANCE,
+ MOVE_MAGICAL_LEAF,
+ MOVE_GRASS_WHISTLE,
+ MOVE_CURSE),
+
+ egg_moves(CHARMANDER,
+ MOVE_BELLY_DRUM,
+ MOVE_ANCIENT_POWER,
+ MOVE_ROCK_SLIDE,
+ MOVE_BITE,
+ MOVE_OUTRAGE,
+ MOVE_BEAT_UP,
+ MOVE_SWORDS_DANCE,
+ MOVE_DRAGON_DANCE),
+
+ egg_moves(SQUIRTLE,
+ MOVE_MIRROR_COAT,
+ MOVE_HAZE,
+ MOVE_MIST,
+ MOVE_FORESIGHT,
+ MOVE_FLAIL,
+ MOVE_REFRESH,
+ MOVE_MUD_SPORT,
+ MOVE_YAWN),
+
+ egg_moves(PIDGEY,
+ MOVE_PURSUIT,
+ MOVE_FAINT_ATTACK,
+ MOVE_FORESIGHT,
+ MOVE_STEEL_WING,
+ MOVE_AIR_CUTTER),
+
+ egg_moves(RATTATA,
+ MOVE_SCREECH,
+ MOVE_FLAME_WHEEL,
+ MOVE_FURY_SWIPES,
+ MOVE_BITE,
+ MOVE_COUNTER,
+ MOVE_REVERSAL,
+ MOVE_UPROAR,
+ MOVE_SWAGGER),
+
+ egg_moves(SPEAROW,
+ MOVE_FAINT_ATTACK,
+ MOVE_FALSE_SWIPE,
+ MOVE_SCARY_FACE,
+ MOVE_QUICK_ATTACK,
+ MOVE_TRI_ATTACK,
+ MOVE_ASTONISH,
+ MOVE_SKY_ATTACK),
+
+ egg_moves(EKANS,
+ MOVE_PURSUIT,
+ MOVE_SLAM,
+ MOVE_SPITE,
+ MOVE_BEAT_UP,
+ MOVE_POISON_FANG),
+
+ egg_moves(SANDSHREW,
+ MOVE_FLAIL,
+ MOVE_SAFEGUARD,
+ MOVE_COUNTER,
+ MOVE_RAPID_SPIN,
+ MOVE_ROCK_SLIDE,
+ MOVE_METAL_CLAW,
+ MOVE_SWORDS_DANCE,
+ MOVE_CRUSH_CLAW),
+
+ egg_moves(NIDORAN_F,
+ MOVE_SUPERSONIC,
+ MOVE_DISABLE,
+ MOVE_TAKE_DOWN,
+ MOVE_FOCUS_ENERGY,
+ MOVE_CHARM,
+ MOVE_COUNTER,
+ MOVE_BEAT_UP),
+
+ egg_moves(NIDORAN_M,
+ MOVE_COUNTER,
+ MOVE_DISABLE,
+ MOVE_SUPERSONIC,
+ MOVE_TAKE_DOWN,
+ MOVE_AMNESIA,
+ MOVE_CONFUSION,
+ MOVE_BEAT_UP),
+
+ egg_moves(VULPIX,
+ MOVE_FAINT_ATTACK,
+ MOVE_HYPNOSIS,
+ MOVE_FLAIL,
+ MOVE_SPITE,
+ MOVE_DISABLE,
+ MOVE_HOWL,
+ MOVE_PSYCH_UP,
+ MOVE_HEAT_WAVE),
+
+ egg_moves(ZUBAT,
+ MOVE_QUICK_ATTACK,
+ MOVE_PURSUIT,
+ MOVE_FAINT_ATTACK,
+ MOVE_GUST,
+ MOVE_WHIRLWIND,
+ MOVE_CURSE),
+
+ egg_moves(ODDISH,
+ MOVE_SWORDS_DANCE,
+ MOVE_RAZOR_LEAF,
+ MOVE_FLAIL,
+ MOVE_SYNTHESIS,
+ MOVE_CHARM,
+ MOVE_INGRAIN),
+
+ egg_moves(PARAS,
+ MOVE_FALSE_SWIPE,
+ MOVE_SCREECH,
+ MOVE_COUNTER,
+ MOVE_PSYBEAM,
+ MOVE_FLAIL,
+ MOVE_SWEET_SCENT,
+ MOVE_LIGHT_SCREEN,
+ MOVE_PURSUIT),
+
+ egg_moves(VENONAT,
+ MOVE_BATON_PASS,
+ MOVE_SCREECH,
+ MOVE_GIGA_DRAIN,
+ MOVE_SIGNAL_BEAM),
+
+ egg_moves(DIGLETT,
+ MOVE_FAINT_ATTACK,
+ MOVE_SCREECH,
+ MOVE_ANCIENT_POWER,
+ MOVE_PURSUIT,
+ MOVE_BEAT_UP,
+ MOVE_UPROAR,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(MEOWTH,
+ MOVE_SPITE,
+ MOVE_CHARM,
+ MOVE_HYPNOSIS,
+ MOVE_AMNESIA,
+ MOVE_PSYCH_UP,
+ MOVE_ASSIST),
+
+ egg_moves(PSYDUCK,
+ MOVE_HYPNOSIS,
+ MOVE_PSYBEAM,
+ MOVE_FORESIGHT,
+ MOVE_LIGHT_SCREEN,
+ MOVE_FUTURE_SIGHT,
+ MOVE_PSYCHIC,
+ MOVE_CROSS_CHOP,
+ MOVE_REFRESH),
+
+ egg_moves(MANKEY,
+ MOVE_ROCK_SLIDE,
+ MOVE_FORESIGHT,
+ MOVE_MEDITATE,
+ MOVE_COUNTER,
+ MOVE_REVERSAL,
+ MOVE_BEAT_UP,
+ MOVE_REVENGE,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(GROWLITHE,
+ MOVE_BODY_SLAM,
+ MOVE_SAFEGUARD,
+ MOVE_CRUNCH,
+ MOVE_THRASH,
+ MOVE_FIRE_SPIN,
+ MOVE_HOWL,
+ MOVE_HEAT_WAVE),
+
+ egg_moves(POLIWAG,
+ MOVE_MIST,
+ MOVE_SPLASH,
+ MOVE_BUBBLE_BEAM,
+ MOVE_HAZE,
+ MOVE_MIND_READER,
+ MOVE_WATER_SPORT,
+ MOVE_ICE_BALL),
+
+ egg_moves(ABRA,
+ MOVE_ENCORE,
+ MOVE_BARRIER,
+ MOVE_KNOCK_OFF,
+ MOVE_FIRE_PUNCH,
+ MOVE_THUNDER_PUNCH,
+ MOVE_ICE_PUNCH),
+
+ egg_moves(MACHOP,
+ MOVE_LIGHT_SCREEN,
+ MOVE_MEDITATE,
+ MOVE_ROLLING_KICK,
+ MOVE_ENCORE,
+ MOVE_SMELLING_SALT,
+ MOVE_COUNTER,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(BELLSPROUT,
+ MOVE_SWORDS_DANCE,
+ MOVE_ENCORE,
+ MOVE_REFLECT,
+ MOVE_SYNTHESIS,
+ MOVE_LEECH_LIFE,
+ MOVE_INGRAIN,
+ MOVE_MAGICAL_LEAF),
+
+ egg_moves(TENTACOOL,
+ MOVE_AURORA_BEAM,
+ MOVE_MIRROR_COAT,
+ MOVE_RAPID_SPIN,
+ MOVE_HAZE,
+ MOVE_SAFEGUARD,
+ MOVE_CONFUSE_RAY),
+
+ egg_moves(GEODUDE,
+ MOVE_MEGA_PUNCH,
+ MOVE_ROCK_SLIDE,
+ MOVE_BLOCK),
+
+ egg_moves(PONYTA,
+ MOVE_FLAME_WHEEL,
+ MOVE_THRASH,
+ MOVE_DOUBLE_KICK,
+ MOVE_HYPNOSIS,
+ MOVE_CHARM,
+ MOVE_DOUBLE_EDGE),
+
+ egg_moves(SLOWPOKE,
+ MOVE_SAFEGUARD,
+ MOVE_BELLY_DRUM,
+ MOVE_FUTURE_SIGHT,
+ MOVE_STOMP,
+ MOVE_MUD_SPORT,
+ MOVE_SLEEP_TALK,
+ MOVE_SNORE),
+
+ egg_moves(FARFETCHD,
+ MOVE_STEEL_WING,
+ MOVE_FORESIGHT,
+ MOVE_MIRROR_MOVE,
+ MOVE_GUST,
+ MOVE_QUICK_ATTACK,
+ MOVE_FLAIL,
+ MOVE_FEATHER_DANCE,
+ MOVE_CURSE),
+
+ egg_moves(DODUO,
+ MOVE_QUICK_ATTACK,
+ MOVE_SUPERSONIC,
+ MOVE_HAZE,
+ MOVE_FAINT_ATTACK,
+ MOVE_FLAIL,
+ MOVE_ENDEAVOR),
+
+ egg_moves(SEEL,
+ MOVE_LICK,
+ MOVE_PERISH_SONG,
+ MOVE_DISABLE,
+ MOVE_HORN_DRILL,
+ MOVE_SLAM,
+ MOVE_ENCORE,
+ MOVE_FAKE_OUT,
+ MOVE_ICICLE_SPEAR),
+
+ egg_moves(GRIMER,
+ MOVE_HAZE,
+ MOVE_MEAN_LOOK,
+ MOVE_LICK,
+ MOVE_IMPRISON,
+ MOVE_CURSE,
+ MOVE_SHADOW_PUNCH,
+ MOVE_EXPLOSION),
+
+ egg_moves(SHELLDER,
+ MOVE_BUBBLE_BEAM,
+ MOVE_TAKE_DOWN,
+ MOVE_BARRIER,
+ MOVE_RAPID_SPIN,
+ MOVE_SCREECH,
+ MOVE_ICICLE_SPEAR),
+
+ egg_moves(GASTLY,
+ MOVE_PSYWAVE,
+ MOVE_PERISH_SONG,
+ MOVE_HAZE,
+ MOVE_ASTONISH,
+ MOVE_WILL_O_WISP,
+ MOVE_GRUDGE,
+ MOVE_EXPLOSION),
+
+ egg_moves(ONIX,
+ MOVE_ROCK_SLIDE,
+ MOVE_FLAIL,
+ MOVE_EXPLOSION,
+ MOVE_BLOCK),
+
+ egg_moves(DROWZEE,
+ MOVE_BARRIER,
+ MOVE_ASSIST,
+ MOVE_ROLE_PLAY,
+ MOVE_FIRE_PUNCH,
+ MOVE_THUNDER_PUNCH,
+ MOVE_ICE_PUNCH),
+
+ egg_moves(KRABBY,
+ MOVE_DIG,
+ MOVE_HAZE,
+ MOVE_AMNESIA,
+ MOVE_FLAIL,
+ MOVE_SLAM,
+ MOVE_KNOCK_OFF,
+ MOVE_SWORDS_DANCE),
+
+ egg_moves(EXEGGCUTE,
+ MOVE_SYNTHESIS,
+ MOVE_MOONLIGHT,
+ MOVE_REFLECT,
+ MOVE_ANCIENT_POWER,
+ MOVE_PSYCH_UP,
+ MOVE_INGRAIN,
+ MOVE_CURSE),
+
+ egg_moves(CUBONE,
+ MOVE_ROCK_SLIDE,
+ MOVE_ANCIENT_POWER,
+ MOVE_BELLY_DRUM,
+ MOVE_SCREECH,
+ MOVE_SKULL_BASH,
+ MOVE_PERISH_SONG,
+ MOVE_SWORDS_DANCE),
+
+ egg_moves(LICKITUNG,
+ MOVE_BELLY_DRUM,
+ MOVE_MAGNITUDE,
+ MOVE_BODY_SLAM,
+ MOVE_CURSE,
+ MOVE_SMELLING_SALT,
+ MOVE_SLEEP_TALK,
+ MOVE_SNORE,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(KOFFING,
+ MOVE_SCREECH,
+ MOVE_PSYWAVE,
+ MOVE_PSYBEAM,
+ MOVE_DESTINY_BOND,
+ MOVE_PAIN_SPLIT,
+ MOVE_WILL_O_WISP),
+
+ egg_moves(RHYHORN,
+ MOVE_CRUNCH,
+ MOVE_REVERSAL,
+ MOVE_ROCK_SLIDE,
+ MOVE_COUNTER,
+ MOVE_MAGNITUDE,
+ MOVE_SWORDS_DANCE,
+ MOVE_CURSE,
+ MOVE_CRUSH_CLAW),
+
+ egg_moves(CHANSEY,
+ MOVE_PRESENT,
+ MOVE_METRONOME,
+ MOVE_HEAL_BELL,
+ MOVE_AROMATHERAPY,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(TANGELA,
+ MOVE_FLAIL,
+ MOVE_CONFUSION,
+ MOVE_MEGA_DRAIN,
+ MOVE_REFLECT,
+ MOVE_AMNESIA,
+ MOVE_LEECH_SEED,
+ MOVE_NATURE_POWER),
+
+ egg_moves(KANGASKHAN,
+ MOVE_STOMP,
+ MOVE_FORESIGHT,
+ MOVE_FOCUS_ENERGY,
+ MOVE_SAFEGUARD,
+ MOVE_DISABLE,
+ MOVE_COUNTER,
+ MOVE_CRUSH_CLAW,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(HORSEA,
+ MOVE_FLAIL,
+ MOVE_AURORA_BEAM,
+ MOVE_OCTAZOOKA,
+ MOVE_DISABLE,
+ MOVE_SPLASH,
+ MOVE_DRAGON_RAGE,
+ MOVE_DRAGON_BREATH),
+
+ egg_moves(GOLDEEN,
+ MOVE_PSYBEAM,
+ MOVE_HAZE,
+ MOVE_HYDRO_PUMP,
+ MOVE_SLEEP_TALK,
+ MOVE_MUD_SPORT),
+
+ egg_moves(MR_MIME,
+ MOVE_FUTURE_SIGHT,
+ MOVE_HYPNOSIS,
+ MOVE_MIMIC,
+ MOVE_PSYCH_UP,
+ MOVE_FAKE_OUT,
+ MOVE_TRICK),
+
+ egg_moves(SCYTHER,
+ MOVE_COUNTER,
+ MOVE_SAFEGUARD,
+ MOVE_BATON_PASS,
+ MOVE_RAZOR_WIND,
+ MOVE_REVERSAL,
+ MOVE_LIGHT_SCREEN,
+ MOVE_ENDURE,
+ MOVE_SILVER_WIND),
+
+ egg_moves(PINSIR,
+ MOVE_FURY_ATTACK,
+ MOVE_FLAIL,
+ MOVE_FALSE_SWIPE,
+ MOVE_FAINT_ATTACK),
+
+ egg_moves(LAPRAS,
+ MOVE_FORESIGHT,
+ MOVE_SUBSTITUTE,
+ MOVE_TICKLE,
+ MOVE_REFRESH,
+ MOVE_DRAGON_DANCE,
+ MOVE_CURSE,
+ MOVE_SLEEP_TALK,
+ MOVE_HORN_DRILL),
+
+ egg_moves(EEVEE,
+ MOVE_CHARM,
+ MOVE_FLAIL,
+ MOVE_ENDURE,
+ MOVE_CURSE,
+ MOVE_TICKLE,
+ MOVE_WISH),
+
+ egg_moves(OMANYTE,
+ MOVE_BUBBLE_BEAM,
+ MOVE_AURORA_BEAM,
+ MOVE_SLAM,
+ MOVE_SUPERSONIC,
+ MOVE_HAZE,
+ MOVE_ROCK_SLIDE,
+ MOVE_SPIKES),
+
+ egg_moves(KABUTO,
+ MOVE_BUBBLE_BEAM,
+ MOVE_AURORA_BEAM,
+ MOVE_RAPID_SPIN,
+ MOVE_DIG,
+ MOVE_FLAIL,
+ MOVE_KNOCK_OFF,
+ MOVE_CONFUSE_RAY),
+
+ egg_moves(AERODACTYL,
+ MOVE_WHIRLWIND,
+ MOVE_PURSUIT,
+ MOVE_FORESIGHT,
+ MOVE_STEEL_WING,
+ MOVE_DRAGON_BREATH,
+ MOVE_CURSE),
+
+ egg_moves(SNORLAX,
+ MOVE_LICK,
+ MOVE_CHARM,
+ MOVE_DOUBLE_EDGE,
+ MOVE_CURSE,
+ MOVE_FISSURE,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(DRATINI,
+ MOVE_LIGHT_SCREEN,
+ MOVE_MIST,
+ MOVE_HAZE,
+ MOVE_SUPERSONIC,
+ MOVE_DRAGON_BREATH,
+ MOVE_DRAGON_DANCE),
+
+ egg_moves(CHIKORITA,
+ MOVE_VINE_WHIP,
+ MOVE_LEECH_SEED,
+ MOVE_COUNTER,
+ MOVE_ANCIENT_POWER,
+ MOVE_FLAIL,
+ MOVE_NATURE_POWER,
+ MOVE_INGRAIN,
+ MOVE_GRASS_WHISTLE),
+
+ egg_moves(CYNDAQUIL,
+ MOVE_FURY_SWIPES,
+ MOVE_QUICK_ATTACK,
+ MOVE_REVERSAL,
+ MOVE_THRASH,
+ MOVE_FORESIGHT,
+ MOVE_COVET,
+ MOVE_HOWL,
+ MOVE_CRUSH_CLAW),
+
+ egg_moves(TOTODILE,
+ MOVE_CRUNCH,
+ MOVE_THRASH,
+ MOVE_HYDRO_PUMP,
+ MOVE_ANCIENT_POWER,
+ MOVE_ROCK_SLIDE,
+ MOVE_MUD_SPORT,
+ MOVE_WATER_SPORT,
+ MOVE_DRAGON_CLAW),
+
+ egg_moves(SENTRET,
+ MOVE_DOUBLE_EDGE,
+ MOVE_PURSUIT,
+ MOVE_SLASH,
+ MOVE_FOCUS_ENERGY,
+ MOVE_REVERSAL,
+ MOVE_SUBSTITUTE,
+ MOVE_TRICK,
+ MOVE_ASSIST),
+
+ egg_moves(HOOTHOOT,
+ MOVE_MIRROR_MOVE,
+ MOVE_SUPERSONIC,
+ MOVE_FAINT_ATTACK,
+ MOVE_WING_ATTACK,
+ MOVE_WHIRLWIND,
+ MOVE_SKY_ATTACK,
+ MOVE_FEATHER_DANCE),
+
+ egg_moves(LEDYBA,
+ MOVE_PSYBEAM,
+ MOVE_BIDE,
+ MOVE_SILVER_WIND),
+
+ egg_moves(SPINARAK,
+ MOVE_PSYBEAM,
+ MOVE_DISABLE,
+ MOVE_SONIC_BOOM,
+ MOVE_BATON_PASS,
+ MOVE_PURSUIT,
+ MOVE_SIGNAL_BEAM),
+
+ egg_moves(CHINCHOU,
+ MOVE_FLAIL,
+ MOVE_SCREECH,
+ MOVE_AMNESIA),
+
+ egg_moves(PICHU,
+ MOVE_REVERSAL,
+ MOVE_BIDE,
+ MOVE_PRESENT,
+ MOVE_ENCORE,
+ MOVE_DOUBLE_SLAP,
+ MOVE_WISH,
+ MOVE_CHARGE),
+
+ egg_moves(CLEFFA,
+ MOVE_PRESENT,
+ MOVE_METRONOME,
+ MOVE_AMNESIA,
+ MOVE_BELLY_DRUM,
+ MOVE_SPLASH,
+ MOVE_MIMIC,
+ MOVE_WISH,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(IGGLYBUFF,
+ MOVE_PERISH_SONG,
+ MOVE_PRESENT,
+ MOVE_FAINT_ATTACK,
+ MOVE_WISH,
+ MOVE_FAKE_TEARS),
+
+ egg_moves(TOGEPI,
+ MOVE_PRESENT,
+ MOVE_MIRROR_MOVE,
+ MOVE_PECK,
+ MOVE_FORESIGHT,
+ MOVE_FUTURE_SIGHT,
+ MOVE_SUBSTITUTE,
+ MOVE_PSYCH_UP),
+
+ egg_moves(NATU,
+ MOVE_HAZE,
+ MOVE_DRILL_PECK,
+ MOVE_QUICK_ATTACK,
+ MOVE_FAINT_ATTACK,
+ MOVE_STEEL_WING,
+ MOVE_PSYCH_UP,
+ MOVE_FEATHER_DANCE,
+ MOVE_REFRESH),
+
+ egg_moves(MAREEP,
+ MOVE_TAKE_DOWN,
+ MOVE_BODY_SLAM,
+ MOVE_SAFEGUARD,
+ MOVE_SCREECH,
+ MOVE_REFLECT,
+ MOVE_ODOR_SLEUTH,
+ MOVE_CHARGE),
+
+ egg_moves(MARILL,
+ MOVE_LIGHT_SCREEN,
+ MOVE_PRESENT,
+ MOVE_AMNESIA,
+ MOVE_FUTURE_SIGHT,
+ MOVE_BELLY_DRUM,
+ MOVE_PERISH_SONG,
+ MOVE_SUPERSONIC,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(SUDOWOODO,
+ MOVE_SELF_DESTRUCT),
+
+ egg_moves(HOPPIP,
+ MOVE_CONFUSION,
+ MOVE_ENCORE,
+ MOVE_DOUBLE_EDGE,
+ MOVE_REFLECT,
+ MOVE_AMNESIA,
+ MOVE_HELPING_HAND,
+ MOVE_PSYCH_UP),
+
+ egg_moves(AIPOM,
+ MOVE_COUNTER,
+ MOVE_SCREECH,
+ MOVE_PURSUIT,
+ MOVE_AGILITY,
+ MOVE_SPITE,
+ MOVE_SLAM,
+ MOVE_DOUBLE_SLAP,
+ MOVE_BEAT_UP),
+
+ egg_moves(SUNKERN,
+ MOVE_GRASS_WHISTLE,
+ MOVE_ENCORE,
+ MOVE_LEECH_SEED,
+ MOVE_NATURE_POWER,
+ MOVE_CURSE,
+ MOVE_HELPING_HAND),
+
+ egg_moves(YANMA,
+ MOVE_WHIRLWIND,
+ MOVE_REVERSAL,
+ MOVE_LEECH_LIFE,
+ MOVE_SIGNAL_BEAM,
+ MOVE_SILVER_WIND),
+
+ egg_moves(WOOPER,
+ MOVE_BODY_SLAM,
+ MOVE_ANCIENT_POWER,
+ MOVE_SAFEGUARD,
+ MOVE_CURSE,
+ MOVE_MUD_SPORT,
+ MOVE_STOCKPILE,
+ MOVE_SWALLOW,
+ MOVE_SPIT_UP),
+
+ egg_moves(MURKROW,
+ MOVE_WHIRLWIND,
+ MOVE_DRILL_PECK,
+ MOVE_MIRROR_MOVE,
+ MOVE_WING_ATTACK,
+ MOVE_SKY_ATTACK,
+ MOVE_CONFUSE_RAY,
+ MOVE_FEATHER_DANCE,
+ MOVE_PERISH_SONG),
+
+ egg_moves(MISDREAVUS,
+ MOVE_SCREECH,
+ MOVE_DESTINY_BOND,
+ MOVE_PSYCH_UP,
+ MOVE_IMPRISON),
+
+ egg_moves(GIRAFARIG,
+ MOVE_TAKE_DOWN,
+ MOVE_AMNESIA,
+ MOVE_FORESIGHT,
+ MOVE_FUTURE_SIGHT,
+ MOVE_BEAT_UP,
+ MOVE_PSYCH_UP,
+ MOVE_WISH,
+ MOVE_MAGIC_COAT),
+
+ egg_moves(PINECO,
+ MOVE_REFLECT,
+ MOVE_PIN_MISSILE,
+ MOVE_FLAIL,
+ MOVE_SWIFT,
+ MOVE_COUNTER,
+ MOVE_SAND_TOMB),
+
+ egg_moves(DUNSPARCE,
+ MOVE_BIDE,
+ MOVE_ANCIENT_POWER,
+ MOVE_ROCK_SLIDE,
+ MOVE_BITE,
+ MOVE_HEADBUTT,
+ MOVE_ASTONISH,
+ MOVE_CURSE),
+
+ egg_moves(GLIGAR,
+ MOVE_METAL_CLAW,
+ MOVE_WING_ATTACK,
+ MOVE_RAZOR_WIND,
+ MOVE_COUNTER,
+ MOVE_SAND_TOMB),
+
+ egg_moves(SNUBBULL,
+ MOVE_METRONOME,
+ MOVE_FAINT_ATTACK,
+ MOVE_REFLECT,
+ MOVE_PRESENT,
+ MOVE_CRUNCH,
+ MOVE_HEAL_BELL,
+ MOVE_SNORE,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(QWILFISH,
+ MOVE_FLAIL,
+ MOVE_HAZE,
+ MOVE_BUBBLE_BEAM,
+ MOVE_SUPERSONIC,
+ MOVE_ASTONISH),
+
+ egg_moves(SHUCKLE,
+ MOVE_SWEET_SCENT),
+
+ egg_moves(HERACROSS,
+ MOVE_HARDEN,
+ MOVE_BIDE,
+ MOVE_FLAIL,
+ MOVE_FALSE_SWIPE),
+
+ egg_moves(SNEASEL,
+ MOVE_COUNTER,
+ MOVE_SPITE,
+ MOVE_FORESIGHT,
+ MOVE_REFLECT,
+ MOVE_BITE,
+ MOVE_CRUSH_CLAW,
+ MOVE_FAKE_OUT),
+
+ egg_moves(TEDDIURSA,
+ MOVE_CRUNCH,
+ MOVE_TAKE_DOWN,
+ MOVE_SEISMIC_TOSS,
+ MOVE_COUNTER,
+ MOVE_METAL_CLAW,
+ MOVE_FAKE_TEARS,
+ MOVE_YAWN,
+ MOVE_SLEEP_TALK),
+
+ egg_moves(SLUGMA,
+ MOVE_ACID_ARMOR,
+ MOVE_HEAT_WAVE),
+
+ egg_moves(SWINUB,
+ MOVE_TAKE_DOWN,
+ MOVE_BITE,
+ MOVE_BODY_SLAM,
+ MOVE_ROCK_SLIDE,
+ MOVE_ANCIENT_POWER,
+ MOVE_MUD_SHOT,
+ MOVE_ICICLE_SPEAR,
+ MOVE_DOUBLE_EDGE),
+
+ egg_moves(CORSOLA,
+ MOVE_ROCK_SLIDE,
+ MOVE_SCREECH,
+ MOVE_MIST,
+ MOVE_AMNESIA,
+ MOVE_BARRIER,
+ MOVE_INGRAIN,
+ MOVE_CONFUSE_RAY,
+ MOVE_ICICLE_SPEAR),
+
+ egg_moves(REMORAID,
+ MOVE_AURORA_BEAM,
+ MOVE_OCTAZOOKA,
+ MOVE_SUPERSONIC,
+ MOVE_HAZE,
+ MOVE_SCREECH,
+ MOVE_THUNDER_WAVE,
+ MOVE_ROCK_BLAST),
+
+ egg_moves(DELIBIRD,
+ MOVE_AURORA_BEAM,
+ MOVE_QUICK_ATTACK,
+ MOVE_FUTURE_SIGHT,
+ MOVE_SPLASH,
+ MOVE_RAPID_SPIN,
+ MOVE_ICE_BALL),
+
+ egg_moves(MANTINE,
+ MOVE_TWISTER,
+ MOVE_HYDRO_PUMP,
+ MOVE_HAZE,
+ MOVE_SLAM,
+ MOVE_MUD_SPORT,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(SKARMORY,
+ MOVE_DRILL_PECK,
+ MOVE_PURSUIT,
+ MOVE_WHIRLWIND,
+ MOVE_SKY_ATTACK,
+ MOVE_CURSE),
+
+ egg_moves(HOUNDOUR,
+ MOVE_FIRE_SPIN,
+ MOVE_RAGE,
+ MOVE_PURSUIT,
+ MOVE_COUNTER,
+ MOVE_SPITE,
+ MOVE_REVERSAL,
+ MOVE_BEAT_UP,
+ MOVE_WILL_O_WISP),
+
+ egg_moves(PHANPY,
+ MOVE_FOCUS_ENERGY,
+ MOVE_BODY_SLAM,
+ MOVE_ANCIENT_POWER,
+ MOVE_SNORE,
+ MOVE_COUNTER,
+ MOVE_FISSURE),
+
+ egg_moves(STANTLER,
+ MOVE_SPITE,
+ MOVE_DISABLE,
+ MOVE_BITE,
+ MOVE_SWAGGER,
+ MOVE_PSYCH_UP,
+ MOVE_EXTRASENSORY),
+
+ egg_moves(TYROGUE,
+ MOVE_RAPID_SPIN,
+ MOVE_HI_JUMP_KICK,
+ MOVE_MACH_PUNCH,
+ MOVE_MIND_READER,
+ MOVE_HELPING_HAND),
+
+ egg_moves(SMOOCHUM,
+ MOVE_MEDITATE,
+ MOVE_PSYCH_UP,
+ MOVE_FAKE_OUT,
+ MOVE_WISH,
+ MOVE_ICE_PUNCH),
+
+ egg_moves(ELEKID,
+ MOVE_KARATE_CHOP,
+ MOVE_BARRIER,
+ MOVE_ROLLING_KICK,
+ MOVE_MEDITATE,
+ MOVE_CROSS_CHOP,
+ MOVE_FIRE_PUNCH,
+ MOVE_ICE_PUNCH),
+
+ egg_moves(MAGBY,
+ MOVE_KARATE_CHOP,
+ MOVE_MEGA_PUNCH,
+ MOVE_BARRIER,
+ MOVE_SCREECH,
+ MOVE_CROSS_CHOP,
+ MOVE_THUNDER_PUNCH),
+
+ egg_moves(MILTANK,
+ MOVE_PRESENT,
+ MOVE_REVERSAL,
+ MOVE_SEISMIC_TOSS,
+ MOVE_ENDURE,
+ MOVE_PSYCH_UP,
+ MOVE_CURSE,
+ MOVE_HELPING_HAND,
+ MOVE_SLEEP_TALK),
+
+ egg_moves(LARVITAR,
+ MOVE_PURSUIT,
+ MOVE_STOMP,
+ MOVE_OUTRAGE,
+ MOVE_FOCUS_ENERGY,
+ MOVE_ANCIENT_POWER,
+ MOVE_DRAGON_DANCE,
+ MOVE_CURSE),
+
+ egg_moves(TREECKO,
+ MOVE_CRUNCH,
+ MOVE_MUD_SPORT,
+ MOVE_ENDEAVOR,
+ MOVE_LEECH_SEED,
+ MOVE_DRAGON_BREATH,
+ MOVE_CRUSH_CLAW),
+
+ egg_moves(TORCHIC,
+ MOVE_COUNTER,
+ MOVE_REVERSAL,
+ MOVE_ENDURE,
+ MOVE_SWAGGER,
+ MOVE_ROCK_SLIDE,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(MUDKIP,
+ MOVE_REFRESH,
+ MOVE_UPROAR,
+ MOVE_CURSE,
+ MOVE_STOMP,
+ MOVE_ICE_BALL,
+ MOVE_MIRROR_COAT),
+
+ egg_moves(POOCHYENA,
+ MOVE_ASTONISH,
+ MOVE_POISON_FANG,
+ MOVE_COVET,
+ MOVE_LEER,
+ MOVE_YAWN),
+
+ egg_moves(ZIGZAGOON,
+ MOVE_CHARM,
+ MOVE_PURSUIT,
+ MOVE_SUBSTITUTE,
+ MOVE_TICKLE,
+ MOVE_TRICK),
+
+ egg_moves(LOTAD,
+ MOVE_SYNTHESIS,
+ MOVE_RAZOR_LEAF,
+ MOVE_SWEET_SCENT,
+ MOVE_LEECH_SEED,
+ MOVE_FLAIL,
+ MOVE_WATER_GUN),
+
+ egg_moves(SEEDOT,
+ MOVE_LEECH_SEED,
+ MOVE_AMNESIA,
+ MOVE_QUICK_ATTACK,
+ MOVE_RAZOR_WIND,
+ MOVE_TAKE_DOWN,
+ MOVE_FALSE_SWIPE),
+
+ egg_moves(NINCADA,
+ MOVE_ENDURE,
+ MOVE_FAINT_ATTACK,
+ MOVE_GUST,
+ MOVE_SILVER_WIND),
+
+ egg_moves(TAILLOW,
+ MOVE_PURSUIT,
+ MOVE_SUPERSONIC,
+ MOVE_REFRESH,
+ MOVE_MIRROR_MOVE,
+ MOVE_RAGE,
+ MOVE_SKY_ATTACK),
+
+ egg_moves(SHROOMISH,
+ MOVE_FAKE_TEARS,
+ MOVE_SWAGGER,
+ MOVE_CHARM,
+ MOVE_FALSE_SWIPE,
+ MOVE_HELPING_HAND),
+
+ egg_moves(SPINDA,
+ MOVE_ENCORE,
+ MOVE_ROCK_SLIDE,
+ MOVE_ASSIST,
+ MOVE_DISABLE,
+ MOVE_BATON_PASS,
+ MOVE_WISH,
+ MOVE_TRICK,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(WINGULL,
+ MOVE_MIST,
+ MOVE_TWISTER,
+ MOVE_AGILITY,
+ MOVE_GUST,
+ MOVE_WATER_SPORT),
+
+ egg_moves(SURSKIT,
+ MOVE_FORESIGHT,
+ MOVE_MUD_SHOT,
+ MOVE_PSYBEAM,
+ MOVE_HYDRO_PUMP,
+ MOVE_MIND_READER),
+
+ egg_moves(WAILMER,
+ MOVE_DOUBLE_EDGE,
+ MOVE_THRASH,
+ MOVE_SWAGGER,
+ MOVE_SNORE,
+ MOVE_SLEEP_TALK,
+ MOVE_CURSE,
+ MOVE_FISSURE,
+ MOVE_TICKLE),
+
+ egg_moves(SKITTY,
+ MOVE_HELPING_HAND,
+ MOVE_PSYCH_UP,
+ MOVE_UPROAR,
+ MOVE_FAKE_TEARS,
+ MOVE_WISH,
+ MOVE_BATON_PASS,
+ MOVE_SUBSTITUTE,
+ MOVE_TICKLE),
+
+ egg_moves(KECLEON,
+ MOVE_DISABLE,
+ MOVE_MAGIC_COAT,
+ MOVE_TRICK),
+
+ egg_moves(NOSEPASS,
+ MOVE_MAGNITUDE,
+ MOVE_ROLLOUT,
+ MOVE_EXPLOSION),
+
+ egg_moves(TORKOAL,
+ MOVE_ERUPTION,
+ MOVE_ENDURE,
+ MOVE_SLEEP_TALK,
+ MOVE_YAWN),
+
+ egg_moves(SABLEYE,
+ MOVE_PSYCH_UP,
+ MOVE_RECOVER,
+ MOVE_MOONLIGHT),
+
+ egg_moves(BARBOACH,
+ MOVE_THRASH,
+ MOVE_WHIRLPOOL,
+ MOVE_SPARK),
+
+ egg_moves(LUVDISC,
+ MOVE_SPLASH,
+ MOVE_SUPERSONIC,
+ MOVE_WATER_SPORT,
+ MOVE_MUD_SPORT),
+
+ egg_moves(CORPHISH,
+ MOVE_MUD_SPORT,
+ MOVE_ENDEAVOR,
+ MOVE_BODY_SLAM,
+ MOVE_ANCIENT_POWER),
+
+ egg_moves(FEEBAS,
+ MOVE_MIRROR_COAT,
+ MOVE_DRAGON_BREATH,
+ MOVE_MUD_SPORT,
+ MOVE_HYPNOSIS,
+ MOVE_LIGHT_SCREEN,
+ MOVE_CONFUSE_RAY),
+
+ egg_moves(CARVANHA,
+ MOVE_HYDRO_PUMP,
+ MOVE_DOUBLE_EDGE,
+ MOVE_THRASH),
+
+ egg_moves(TRAPINCH,
+ MOVE_FOCUS_ENERGY,
+ MOVE_QUICK_ATTACK,
+ MOVE_GUST),
+
+ egg_moves(MAKUHITA,
+ MOVE_FAINT_ATTACK,
+ MOVE_DETECT,
+ MOVE_FORESIGHT,
+ MOVE_HELPING_HAND,
+ MOVE_CROSS_CHOP,
+ MOVE_REVENGE,
+ MOVE_DYNAMIC_PUNCH,
+ MOVE_COUNTER),
+
+ egg_moves(ELECTRIKE,
+ MOVE_CRUNCH,
+ MOVE_HEADBUTT,
+ MOVE_UPROAR,
+ MOVE_CURSE,
+ MOVE_SWIFT),
+
+ egg_moves(NUMEL,
+ MOVE_HOWL,
+ MOVE_SCARY_FACE,
+ MOVE_BODY_SLAM,
+ MOVE_ROLLOUT,
+ MOVE_DEFENSE_CURL,
+ MOVE_STOMP),
+
+ egg_moves(SPHEAL,
+ MOVE_WATER_SPORT,
+ MOVE_STOCKPILE,
+ MOVE_SWALLOW,
+ MOVE_SPIT_UP,
+ MOVE_YAWN,
+ MOVE_ROCK_SLIDE,
+ MOVE_CURSE,
+ MOVE_FISSURE),
+
+ egg_moves(CACNEA,
+ MOVE_GRASS_WHISTLE,
+ MOVE_ACID,
+ MOVE_TEETER_DANCE,
+ MOVE_DYNAMIC_PUNCH,
+ MOVE_COUNTER),
+
+ egg_moves(SNORUNT,
+ MOVE_BLOCK,
+ MOVE_SPIKES),
+
+ egg_moves(AZURILL,
+ MOVE_ENCORE,
+ MOVE_SING,
+ MOVE_REFRESH,
+ MOVE_SLAM,
+ MOVE_TICKLE),
+
+ egg_moves(SPOINK,
+ MOVE_FUTURE_SIGHT,
+ MOVE_EXTRASENSORY,
+ MOVE_SUBSTITUTE,
+ MOVE_TRICK),
+
+ egg_moves(PLUSLE,
+ MOVE_SUBSTITUTE,
+ MOVE_WISH),
+
+ egg_moves(MINUN,
+ MOVE_SUBSTITUTE,
+ MOVE_WISH),
+
+ egg_moves(MAWILE,
+ MOVE_SWORDS_DANCE,
+ MOVE_FALSE_SWIPE,
+ MOVE_POISON_FANG,
+ MOVE_PSYCH_UP,
+ MOVE_ANCIENT_POWER,
+ MOVE_TICKLE),
+
+ egg_moves(MEDITITE,
+ MOVE_FIRE_PUNCH,
+ MOVE_THUNDER_PUNCH,
+ MOVE_ICE_PUNCH,
+ MOVE_FORESIGHT,
+ MOVE_FAKE_OUT,
+ MOVE_BATON_PASS,
+ MOVE_DYNAMIC_PUNCH),
+
+ egg_moves(SWABLU,
+ MOVE_AGILITY,
+ MOVE_HAZE,
+ MOVE_PURSUIT,
+ MOVE_RAGE),
+
+ egg_moves(DUSKULL,
+ MOVE_IMPRISON,
+ MOVE_DESTINY_BOND,
+ MOVE_PAIN_SPLIT,
+ MOVE_GRUDGE,
+ MOVE_MEMENTO,
+ MOVE_FAINT_ATTACK),
+
+ egg_moves(ROSELIA,
+ MOVE_SPIKES,
+ MOVE_SYNTHESIS,
+ MOVE_PIN_MISSILE,
+ MOVE_COTTON_SPORE),
+
+ egg_moves(SLAKOTH,
+ MOVE_PURSUIT,
+ MOVE_SLASH,
+ MOVE_BODY_SLAM,
+ MOVE_SNORE,
+ MOVE_CRUSH_CLAW,
+ MOVE_CURSE,
+ MOVE_SLEEP_TALK),
+
+ egg_moves(GULPIN,
+ MOVE_DREAM_EATER,
+ MOVE_ACID_ARMOR,
+ MOVE_SMOG,
+ MOVE_PAIN_SPLIT),
+
+ egg_moves(TROPIUS,
+ MOVE_HEADBUTT,
+ MOVE_SLAM,
+ MOVE_RAZOR_WIND,
+ MOVE_LEECH_SEED,
+ MOVE_NATURE_POWER),
+
+ egg_moves(WHISMUR,
+ MOVE_TAKE_DOWN,
+ MOVE_SNORE,
+ MOVE_SWAGGER,
+ MOVE_EXTRASENSORY,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(CLAMPERL,
+ MOVE_REFRESH,
+ MOVE_MUD_SPORT,
+ MOVE_BODY_SLAM,
+ MOVE_SUPERSONIC,
+ MOVE_BARRIER,
+ MOVE_CONFUSE_RAY),
+
+ egg_moves(ABSOL,
+ MOVE_BATON_PASS,
+ MOVE_FAINT_ATTACK,
+ MOVE_DOUBLE_EDGE,
+ MOVE_MAGIC_COAT,
+ MOVE_CURSE,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(SHUPPET,
+ MOVE_DISABLE,
+ MOVE_DESTINY_BOND,
+ MOVE_FORESIGHT,
+ MOVE_ASTONISH,
+ MOVE_IMPRISON),
+
+ egg_moves(SEVIPER,
+ MOVE_STOCKPILE,
+ MOVE_SWALLOW,
+ MOVE_SPIT_UP,
+ MOVE_BODY_SLAM),
+
+ egg_moves(ZANGOOSE,
+ MOVE_FLAIL,
+ MOVE_DOUBLE_KICK,
+ MOVE_RAZOR_WIND,
+ MOVE_COUNTER,
+ MOVE_ROAR,
+ MOVE_CURSE),
+
+ egg_moves(RELICANTH,
+ MOVE_MAGNITUDE,
+ MOVE_SKULL_BASH,
+ MOVE_WATER_SPORT,
+ MOVE_AMNESIA,
+ MOVE_SLEEP_TALK,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(ARON,
+ MOVE_ENDEAVOR,
+ MOVE_BODY_SLAM,
+ MOVE_STOMP,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(CASTFORM,
+ MOVE_FUTURE_SIGHT,
+ MOVE_PSYCH_UP),
+
+ egg_moves(VOLBEAT,
+ MOVE_BATON_PASS,
+ MOVE_SILVER_WIND,
+ MOVE_TRICK),
+
+ egg_moves(ILLUMISE,
+ MOVE_BATON_PASS,
+ MOVE_SILVER_WIND,
+ MOVE_GROWTH),
+
+ egg_moves(LILEEP,
+ MOVE_BARRIER,
+ MOVE_RECOVER,
+ MOVE_MIRROR_COAT,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(ANORITH,
+ MOVE_RAPID_SPIN,
+ MOVE_KNOCK_OFF,
+ MOVE_SWORDS_DANCE,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(RALTS,
+ MOVE_DISABLE,
+ MOVE_WILL_O_WISP,
+ MOVE_MEAN_LOOK,
+ MOVE_MEMENTO,
+ MOVE_DESTINY_BOND),
+
+ egg_moves(BAGON,
+ MOVE_HYDRO_PUMP,
+ MOVE_THRASH,
+ MOVE_DRAGON_RAGE,
+ MOVE_TWISTER,
+ MOVE_DRAGON_DANCE),
+
+ egg_moves(CHIMECHO,
+ MOVE_DISABLE,
+ MOVE_CURSE,
+ MOVE_HYPNOSIS,
+ MOVE_DREAM_EATER),
+
+ EGG_MOVES_TERMINATOR
+};
diff --git a/include/data/pokemon/evolution.h b/include/data/pokemon/evolution.h
new file mode 100644
index 000000000..8629ac9b1
--- /dev/null
+++ b/include/data/pokemon/evolution.h
@@ -0,0 +1,192 @@
+#ifndef POKEEMERALD_EVOLUTION_H
+#define POKEEMERALD_EVOLUTION_H
+
+const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
+{
+ [SPECIES_BULBASAUR] = {{EVO_LEVEL, 16, SPECIES_IVYSAUR}},
+ [SPECIES_IVYSAUR] = {{EVO_LEVEL, 32, SPECIES_VENUSAUR}},
+ [SPECIES_CHARMANDER] = {{EVO_LEVEL, 16, SPECIES_CHARMELEON}},
+ [SPECIES_CHARMELEON] = {{EVO_LEVEL, 36, SPECIES_CHARIZARD}},
+ [SPECIES_SQUIRTLE] = {{EVO_LEVEL, 16, SPECIES_WARTORTLE}},
+ [SPECIES_WARTORTLE] = {{EVO_LEVEL, 36, SPECIES_BLASTOISE}},
+ [SPECIES_CATERPIE] = {{EVO_LEVEL, 7, SPECIES_METAPOD}},
+ [SPECIES_METAPOD] = {{EVO_LEVEL, 10, SPECIES_BUTTERFREE}},
+ [SPECIES_WEEDLE] = {{EVO_LEVEL, 7, SPECIES_KAKUNA}},
+ [SPECIES_KAKUNA] = {{EVO_LEVEL, 10, SPECIES_BEEDRILL}},
+ [SPECIES_PIDGEY] = {{EVO_LEVEL, 18, SPECIES_PIDGEOTTO}},
+ [SPECIES_PIDGEOTTO] = {{EVO_LEVEL, 36, SPECIES_PIDGEOT}},
+ [SPECIES_RATTATA] = {{EVO_LEVEL, 20, SPECIES_RATICATE}},
+ [SPECIES_SPEAROW] = {{EVO_LEVEL, 20, SPECIES_FEAROW}},
+ [SPECIES_EKANS] = {{EVO_LEVEL, 22, SPECIES_ARBOK}},
+ [SPECIES_PIKACHU] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU}},
+ [SPECIES_SANDSHREW] = {{EVO_LEVEL, 22, SPECIES_SANDSLASH}},
+ [SPECIES_NIDORAN_F] = {{EVO_LEVEL, 16, SPECIES_NIDORINA}},
+ [SPECIES_NIDORINA] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN}},
+ [SPECIES_NIDORAN_M] = {{EVO_LEVEL, 16, SPECIES_NIDORINO}},
+ [SPECIES_NIDORINO] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING}},
+ [SPECIES_CLEFAIRY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE}},
+ [SPECIES_VULPIX] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES}},
+ [SPECIES_JIGGLYPUFF] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF}},
+ [SPECIES_ZUBAT] = {{EVO_LEVEL, 22, SPECIES_GOLBAT}},
+ [SPECIES_GOLBAT] = {{EVO_FRIENDSHIP, 0, SPECIES_CROBAT}},
+ [SPECIES_ODDISH] = {{EVO_LEVEL, 21, SPECIES_GLOOM}},
+ [SPECIES_GLOOM] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME},
+ {EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM}},
+ [SPECIES_PARAS] = {{EVO_LEVEL, 24, SPECIES_PARASECT}},
+ [SPECIES_VENONAT] = {{EVO_LEVEL, 31, SPECIES_VENOMOTH}},
+ [SPECIES_DIGLETT] = {{EVO_LEVEL, 26, SPECIES_DUGTRIO}},
+ [SPECIES_MEOWTH] = {{EVO_LEVEL, 28, SPECIES_PERSIAN}},
+ [SPECIES_PSYDUCK] = {{EVO_LEVEL, 33, SPECIES_GOLDUCK}},
+ [SPECIES_MANKEY] = {{EVO_LEVEL, 28, SPECIES_PRIMEAPE}},
+ [SPECIES_GROWLITHE] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}},
+ [SPECIES_POLIWAG] = {{EVO_LEVEL, 25, SPECIES_POLIWHIRL}},
+ [SPECIES_POLIWHIRL] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH},
+ {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}},
+ [SPECIES_ABRA] = {{EVO_LEVEL, 16, SPECIES_KADABRA}},
+ [SPECIES_KADABRA] = {{EVO_TRADE, 0, SPECIES_ALAKAZAM}},
+ [SPECIES_MACHOP] = {{EVO_LEVEL, 28, SPECIES_MACHOKE}},
+ [SPECIES_MACHOKE] = {{EVO_TRADE, 0, SPECIES_MACHAMP}},
+ [SPECIES_BELLSPROUT] = {{EVO_LEVEL, 21, SPECIES_WEEPINBELL}},
+ [SPECIES_WEEPINBELL] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}},
+ [SPECIES_TENTACOOL] = {{EVO_LEVEL, 30, SPECIES_TENTACRUEL}},
+ [SPECIES_GEODUDE] = {{EVO_LEVEL, 25, SPECIES_GRAVELER}},
+ [SPECIES_GRAVELER] = {{EVO_TRADE, 0, SPECIES_GOLEM}},
+ [SPECIES_PONYTA] = {{EVO_LEVEL, 40, SPECIES_RAPIDASH}},
+ [SPECIES_SLOWPOKE] = {{EVO_LEVEL, 37, SPECIES_SLOWBRO},
+ {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}},
+ [SPECIES_MAGNEMITE] = {{EVO_LEVEL, 30, SPECIES_MAGNETON}},
+ [SPECIES_DODUO] = {{EVO_LEVEL, 31, SPECIES_DODRIO}},
+ [SPECIES_SEEL] = {{EVO_LEVEL, 34, SPECIES_DEWGONG}},
+ [SPECIES_GRIMER] = {{EVO_LEVEL, 38, SPECIES_MUK}},
+ [SPECIES_SHELLDER] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}},
+ [SPECIES_GASTLY] = {{EVO_LEVEL, 25, SPECIES_HAUNTER}},
+ [SPECIES_HAUNTER] = {{EVO_TRADE, 0, SPECIES_GENGAR}},
+ [SPECIES_ONIX] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}},
+ [SPECIES_DROWZEE] = {{EVO_LEVEL, 26, SPECIES_HYPNO}},
+ [SPECIES_KRABBY] = {{EVO_LEVEL, 28, SPECIES_KINGLER}},
+ [SPECIES_VOLTORB] = {{EVO_LEVEL, 30, SPECIES_ELECTRODE}},
+ [SPECIES_EXEGGCUTE] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR}},
+ [SPECIES_CUBONE] = {{EVO_LEVEL, 28, SPECIES_MAROWAK}},
+ [SPECIES_KOFFING] = {{EVO_LEVEL, 35, SPECIES_WEEZING}},
+ [SPECIES_RHYHORN] = {{EVO_LEVEL, 42, SPECIES_RHYDON}},
+ [SPECIES_CHANSEY] = {{EVO_FRIENDSHIP, 0, SPECIES_BLISSEY}},
+ [SPECIES_HORSEA] = {{EVO_LEVEL, 32, SPECIES_SEADRA}},
+ [SPECIES_SEADRA] = {{EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}},
+ [SPECIES_GOLDEEN] = {{EVO_LEVEL, 33, SPECIES_SEAKING}},
+ [SPECIES_STARYU] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}},
+ [SPECIES_SCYTHER] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}},
+ [SPECIES_MAGIKARP] = {{EVO_LEVEL, 20, SPECIES_GYARADOS}},
+ [SPECIES_EEVEE] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON},
+ {EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON},
+ {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON},
+ {EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON},
+ {EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON}},
+ [SPECIES_PORYGON] = {{EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2}},
+ [SPECIES_OMANYTE] = {{EVO_LEVEL, 40, SPECIES_OMASTAR}},
+ [SPECIES_KABUTO] = {{EVO_LEVEL, 40, SPECIES_KABUTOPS}},
+ [SPECIES_DRATINI] = {{EVO_LEVEL, 30, SPECIES_DRAGONAIR}},
+ [SPECIES_DRAGONAIR] = {{EVO_LEVEL, 55, SPECIES_DRAGONITE}},
+ [SPECIES_CHIKORITA] = {{EVO_LEVEL, 16, SPECIES_BAYLEEF}},
+ [SPECIES_BAYLEEF] = {{EVO_LEVEL, 32, SPECIES_MEGANIUM}},
+ [SPECIES_CYNDAQUIL] = {{EVO_LEVEL, 14, SPECIES_QUILAVA}},
+ [SPECIES_QUILAVA] = {{EVO_LEVEL, 36, SPECIES_TYPHLOSION}},
+ [SPECIES_TOTODILE] = {{EVO_LEVEL, 18, SPECIES_CROCONAW}},
+ [SPECIES_CROCONAW] = {{EVO_LEVEL, 30, SPECIES_FERALIGATR}},
+ [SPECIES_SENTRET] = {{EVO_LEVEL, 15, SPECIES_FURRET}},
+ [SPECIES_HOOTHOOT] = {{EVO_LEVEL, 20, SPECIES_NOCTOWL}},
+ [SPECIES_LEDYBA] = {{EVO_LEVEL, 18, SPECIES_LEDIAN}},
+ [SPECIES_SPINARAK] = {{EVO_LEVEL, 22, SPECIES_ARIADOS}},
+ [SPECIES_CHINCHOU] = {{EVO_LEVEL, 27, SPECIES_LANTURN}},
+ [SPECIES_PICHU] = {{EVO_FRIENDSHIP, 0, SPECIES_PIKACHU}},
+ [SPECIES_CLEFFA] = {{EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY}},
+ [SPECIES_IGGLYBUFF] = {{EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF}},
+ [SPECIES_TOGEPI] = {{EVO_FRIENDSHIP, 0, SPECIES_TOGETIC}},
+ [SPECIES_NATU] = {{EVO_LEVEL, 25, SPECIES_XATU}},
+ [SPECIES_MAREEP] = {{EVO_LEVEL, 15, SPECIES_FLAAFFY}},
+ [SPECIES_FLAAFFY] = {{EVO_LEVEL, 30, SPECIES_AMPHAROS}},
+ [SPECIES_MARILL] = {{EVO_LEVEL, 18, SPECIES_AZUMARILL}},
+ [SPECIES_HOPPIP] = {{EVO_LEVEL, 18, SPECIES_SKIPLOOM}},
+ [SPECIES_SKIPLOOM] = {{EVO_LEVEL, 27, SPECIES_JUMPLUFF}},
+ [SPECIES_SUNKERN] = {{EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA}},
+ [SPECIES_WOOPER] = {{EVO_LEVEL, 20, SPECIES_QUAGSIRE}},
+ [SPECIES_PINECO] = {{EVO_LEVEL, 31, SPECIES_FORRETRESS}},
+ [SPECIES_SNUBBULL] = {{EVO_LEVEL, 23, SPECIES_GRANBULL}},
+ [SPECIES_TEDDIURSA] = {{EVO_LEVEL, 30, SPECIES_URSARING}},
+ [SPECIES_SLUGMA] = {{EVO_LEVEL, 38, SPECIES_MAGCARGO}},
+ [SPECIES_SWINUB] = {{EVO_LEVEL, 33, SPECIES_PILOSWINE}},
+ [SPECIES_REMORAID] = {{EVO_LEVEL, 25, SPECIES_OCTILLERY}},
+ [SPECIES_HOUNDOUR] = {{EVO_LEVEL, 24, SPECIES_HOUNDOOM}},
+ [SPECIES_PHANPY] = {{EVO_LEVEL, 25, SPECIES_DONPHAN}},
+ [SPECIES_TYROGUE] = {{EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN},
+ {EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE},
+ {EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP}},
+ [SPECIES_SMOOCHUM] = {{EVO_LEVEL, 30, SPECIES_JYNX}},
+ [SPECIES_ELEKID] = {{EVO_LEVEL, 30, SPECIES_ELECTABUZZ}},
+ [SPECIES_MAGBY] = {{EVO_LEVEL, 30, SPECIES_MAGMAR}},
+ [SPECIES_LARVITAR] = {{EVO_LEVEL, 30, SPECIES_PUPITAR}},
+ [SPECIES_PUPITAR] = {{EVO_LEVEL, 55, SPECIES_TYRANITAR}},
+ [SPECIES_TREECKO] = {{EVO_LEVEL, 16, SPECIES_GROVYLE}},
+ [SPECIES_GROVYLE] = {{EVO_LEVEL, 36, SPECIES_SCEPTILE}},
+ [SPECIES_TORCHIC] = {{EVO_LEVEL, 16, SPECIES_COMBUSKEN}},
+ [SPECIES_COMBUSKEN] = {{EVO_LEVEL, 36, SPECIES_BLAZIKEN}},
+ [SPECIES_MUDKIP] = {{EVO_LEVEL, 16, SPECIES_MARSHTOMP}},
+ [SPECIES_MARSHTOMP] = {{EVO_LEVEL, 36, SPECIES_SWAMPERT}},
+ [SPECIES_POOCHYENA] = {{EVO_LEVEL, 18, SPECIES_MIGHTYENA}},
+ [SPECIES_ZIGZAGOON] = {{EVO_LEVEL, 20, SPECIES_LINOONE}},
+ [SPECIES_WURMPLE] = {{EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON},
+ {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON}},
+ [SPECIES_SILCOON] = {{EVO_LEVEL, 10, SPECIES_BEAUTIFLY}},
+ [SPECIES_CASCOON] = {{EVO_LEVEL, 10, SPECIES_DUSTOX}},
+ [SPECIES_LOTAD] = {{EVO_LEVEL, 14, SPECIES_LOMBRE}},
+ [SPECIES_LOMBRE] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO}},
+ [SPECIES_SEEDOT] = {{EVO_LEVEL, 14, SPECIES_NUZLEAF}},
+ [SPECIES_NUZLEAF] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY}},
+ [SPECIES_NINCADA] = {{EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK},
+ {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA}},
+ [SPECIES_TAILLOW] = {{EVO_LEVEL, 22, SPECIES_SWELLOW}},
+ [SPECIES_SHROOMISH] = {{EVO_LEVEL, 23, SPECIES_BRELOOM}},
+ [SPECIES_WINGULL] = {{EVO_LEVEL, 25, SPECIES_PELIPPER}},
+ [SPECIES_SURSKIT] = {{EVO_LEVEL, 22, SPECIES_MASQUERAIN}},
+ [SPECIES_WAILMER] = {{EVO_LEVEL, 40, SPECIES_WAILORD}},
+ [SPECIES_SKITTY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY}},
+ [SPECIES_BALTOY] = {{EVO_LEVEL, 36, SPECIES_CLAYDOL}},
+ [SPECIES_BARBOACH] = {{EVO_LEVEL, 30, SPECIES_WHISCASH}},
+ [SPECIES_CORPHISH] = {{EVO_LEVEL, 30, SPECIES_CRAWDAUNT}},
+ [SPECIES_FEEBAS] = {{EVO_BEAUTY, 170, SPECIES_MILOTIC}},
+ [SPECIES_CARVANHA] = {{EVO_LEVEL, 30, SPECIES_SHARPEDO}},
+ [SPECIES_TRAPINCH] = {{EVO_LEVEL, 35, SPECIES_VIBRAVA}},
+ [SPECIES_VIBRAVA] = {{EVO_LEVEL, 45, SPECIES_FLYGON}},
+ [SPECIES_MAKUHITA] = {{EVO_LEVEL, 24, SPECIES_HARIYAMA}},
+ [SPECIES_ELECTRIKE] = {{EVO_LEVEL, 26, SPECIES_MANECTRIC}},
+ [SPECIES_NUMEL] = {{EVO_LEVEL, 33, SPECIES_CAMERUPT}},
+ [SPECIES_SPHEAL] = {{EVO_LEVEL, 32, SPECIES_SEALEO}},
+ [SPECIES_SEALEO] = {{EVO_LEVEL, 44, SPECIES_WALREIN}},
+ [SPECIES_CACNEA] = {{EVO_LEVEL, 32, SPECIES_CACTURNE}},
+ [SPECIES_SNORUNT] = {{EVO_LEVEL, 42, SPECIES_GLALIE}},
+ [SPECIES_AZURILL] = {{EVO_FRIENDSHIP, 0, SPECIES_MARILL}},
+ [SPECIES_SPOINK] = {{EVO_LEVEL, 32, SPECIES_GRUMPIG}},
+ [SPECIES_MEDITITE] = {{EVO_LEVEL, 37, SPECIES_MEDICHAM}},
+ [SPECIES_SWABLU] = {{EVO_LEVEL, 35, SPECIES_ALTARIA}},
+ [SPECIES_WYNAUT] = {{EVO_LEVEL, 15, SPECIES_WOBBUFFET}},
+ [SPECIES_DUSKULL] = {{EVO_LEVEL, 37, SPECIES_DUSCLOPS}},
+ [SPECIES_SLAKOTH] = {{EVO_LEVEL, 18, SPECIES_VIGOROTH}},
+ [SPECIES_VIGOROTH] = {{EVO_LEVEL, 36, SPECIES_SLAKING}},
+ [SPECIES_GULPIN] = {{EVO_LEVEL, 26, SPECIES_SWALOT}},
+ [SPECIES_WHISMUR] = {{EVO_LEVEL, 20, SPECIES_LOUDRED}},
+ [SPECIES_LOUDRED] = {{EVO_LEVEL, 40, SPECIES_EXPLOUD}},
+ [SPECIES_CLAMPERL] = {{EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL},
+ {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}},
+ [SPECIES_SHUPPET] = {{EVO_LEVEL, 37, SPECIES_BANETTE}},
+ [SPECIES_ARON] = {{EVO_LEVEL, 32, SPECIES_LAIRON}},
+ [SPECIES_LAIRON] = {{EVO_LEVEL, 42, SPECIES_AGGRON}},
+ [SPECIES_LILEEP] = {{EVO_LEVEL, 40, SPECIES_CRADILY}},
+ [SPECIES_ANORITH] = {{EVO_LEVEL, 40, SPECIES_ARMALDO}},
+ [SPECIES_RALTS] = {{EVO_LEVEL, 20, SPECIES_KIRLIA}},
+ [SPECIES_KIRLIA] = {{EVO_LEVEL, 30, SPECIES_GARDEVOIR}},
+ [SPECIES_BAGON] = {{EVO_LEVEL, 30, SPECIES_SHELGON}},
+ [SPECIES_SHELGON] = {{EVO_LEVEL, 50, SPECIES_SALAMENCE}},
+ [SPECIES_BELDUM] = {{EVO_LEVEL, 20, SPECIES_METANG}},
+ [SPECIES_METANG] = {{EVO_LEVEL, 45, SPECIES_METAGROSS}},
+};
+
+#endif //POKEEMERALD_EVOLUTION_H
diff --git a/include/data/pokemon/experience_tables.h b/include/data/pokemon/experience_tables.h
new file mode 100644
index 000000000..58474b6f1
--- /dev/null
+++ b/include/data/pokemon/experience_tables.h
@@ -0,0 +1,849 @@
+#ifndef POKEEMERALD_EXPERIENCE_TABLES_H
+#define POKEEMERALD_EXPERIENCE_TABLES_H
+
+#define SQUARE(n)(n * n)
+#define CUBE(n)(n * n * n)
+
+#define EXP_SLOW(n)((5 * CUBE(n)) / 4) // (5 * (n)^3) / 4
+#define EXP_FAST(n)((4 * CUBE(n)) / 5) // (4 * (n)^3) / 5
+#define EXP_MEDIUM_FAST(n)(CUBE(n)) // (n)^3
+#define EXP_MEDIUM_SLOW(n)((6 * CUBE(n)) / 5 - (15 * SQUARE(n)) + (100 * n) - 140) // (6 * (n)^3) / 5 - (15 * (n)^2) + (100 * n) - 140
+#define EXP_ERRATIC(n) \
+ (n <= 50) ? ((100 - n) * CUBE(n) / 50) \
+ :(n <= 68) ? ((150 - n) * CUBE(n) / 100) \
+ :(n <= 98) ? (((1911 - 10 * n) / 3) * CUBE(n) / 500) \
+ : ((160 - n) * CUBE(n) / 100)
+#define EXP_FLUCTUATING(n) \
+ (n <= 15) ? (((n + 1) / 3 + 24) * CUBE(n) / 50) \
+ :(n <= 36) ? ((n + 14) * CUBE(n) / 50) \
+ : (((n / 2) + 32) * CUBE(n) / 50)
+
+const u32 gExperienceTables[][MAX_MON_LEVEL + 1] =
+{
+ { // Medium Fast
+ 0, // 0
+ 1, // 1
+ EXP_MEDIUM_FAST(2),
+ EXP_MEDIUM_FAST(3),
+ EXP_MEDIUM_FAST(4),
+ EXP_MEDIUM_FAST(5),
+ EXP_MEDIUM_FAST(6),
+ EXP_MEDIUM_FAST(7),
+ EXP_MEDIUM_FAST(8),
+ EXP_MEDIUM_FAST(9),
+ EXP_MEDIUM_FAST(10),
+ EXP_MEDIUM_FAST(11),
+ EXP_MEDIUM_FAST(12),
+ EXP_MEDIUM_FAST(13),
+ EXP_MEDIUM_FAST(14),
+ EXP_MEDIUM_FAST(15),
+ EXP_MEDIUM_FAST(16),
+ EXP_MEDIUM_FAST(17),
+ EXP_MEDIUM_FAST(18),
+ EXP_MEDIUM_FAST(19),
+ EXP_MEDIUM_FAST(20),
+ EXP_MEDIUM_FAST(21),
+ EXP_MEDIUM_FAST(22),
+ EXP_MEDIUM_FAST(23),
+ EXP_MEDIUM_FAST(24),
+ EXP_MEDIUM_FAST(25),
+ EXP_MEDIUM_FAST(26),
+ EXP_MEDIUM_FAST(27),
+ EXP_MEDIUM_FAST(28),
+ EXP_MEDIUM_FAST(29),
+ EXP_MEDIUM_FAST(30),
+ EXP_MEDIUM_FAST(31),
+ EXP_MEDIUM_FAST(32),
+ EXP_MEDIUM_FAST(33),
+ EXP_MEDIUM_FAST(34),
+ EXP_MEDIUM_FAST(35),
+ EXP_MEDIUM_FAST(36),
+ EXP_MEDIUM_FAST(37),
+ EXP_MEDIUM_FAST(38),
+ EXP_MEDIUM_FAST(39),
+ EXP_MEDIUM_FAST(40),
+ EXP_MEDIUM_FAST(41),
+ EXP_MEDIUM_FAST(42),
+ EXP_MEDIUM_FAST(43),
+ EXP_MEDIUM_FAST(44),
+ EXP_MEDIUM_FAST(45),
+ EXP_MEDIUM_FAST(46),
+ EXP_MEDIUM_FAST(47),
+ EXP_MEDIUM_FAST(48),
+ EXP_MEDIUM_FAST(49),
+ EXP_MEDIUM_FAST(50),
+ EXP_MEDIUM_FAST(51),
+ EXP_MEDIUM_FAST(52),
+ EXP_MEDIUM_FAST(53),
+ EXP_MEDIUM_FAST(54),
+ EXP_MEDIUM_FAST(55),
+ EXP_MEDIUM_FAST(56),
+ EXP_MEDIUM_FAST(57),
+ EXP_MEDIUM_FAST(58),
+ EXP_MEDIUM_FAST(59),
+ EXP_MEDIUM_FAST(60),
+ EXP_MEDIUM_FAST(61),
+ EXP_MEDIUM_FAST(62),
+ EXP_MEDIUM_FAST(63),
+ EXP_MEDIUM_FAST(64),
+ EXP_MEDIUM_FAST(65),
+ EXP_MEDIUM_FAST(66),
+ EXP_MEDIUM_FAST(67),
+ EXP_MEDIUM_FAST(68),
+ EXP_MEDIUM_FAST(69),
+ EXP_MEDIUM_FAST(70),
+ EXP_MEDIUM_FAST(71),
+ EXP_MEDIUM_FAST(72),
+ EXP_MEDIUM_FAST(73),
+ EXP_MEDIUM_FAST(74),
+ EXP_MEDIUM_FAST(75),
+ EXP_MEDIUM_FAST(76),
+ EXP_MEDIUM_FAST(77),
+ EXP_MEDIUM_FAST(78),
+ EXP_MEDIUM_FAST(79),
+ EXP_MEDIUM_FAST(80),
+ EXP_MEDIUM_FAST(81),
+ EXP_MEDIUM_FAST(82),
+ EXP_MEDIUM_FAST(83),
+ EXP_MEDIUM_FAST(84),
+ EXP_MEDIUM_FAST(85),
+ EXP_MEDIUM_FAST(86),
+ EXP_MEDIUM_FAST(87),
+ EXP_MEDIUM_FAST(88),
+ EXP_MEDIUM_FAST(89),
+ EXP_MEDIUM_FAST(90),
+ EXP_MEDIUM_FAST(91),
+ EXP_MEDIUM_FAST(92),
+ EXP_MEDIUM_FAST(93),
+ EXP_MEDIUM_FAST(94),
+ EXP_MEDIUM_FAST(95),
+ EXP_MEDIUM_FAST(96),
+ EXP_MEDIUM_FAST(97),
+ EXP_MEDIUM_FAST(98),
+ EXP_MEDIUM_FAST(99),
+ EXP_MEDIUM_FAST(100),
+ },
+ { // Erratic
+ 0, // 0
+ 1, // 1
+ EXP_ERRATIC(2),
+ EXP_ERRATIC(3),
+ EXP_ERRATIC(4),
+ EXP_ERRATIC(5),
+ EXP_ERRATIC(6),
+ EXP_ERRATIC(7),
+ EXP_ERRATIC(8),
+ EXP_ERRATIC(9),
+ EXP_ERRATIC(10),
+ EXP_ERRATIC(11),
+ EXP_ERRATIC(12),
+ EXP_ERRATIC(13),
+ EXP_ERRATIC(14),
+ EXP_ERRATIC(15),
+ EXP_ERRATIC(16),
+ EXP_ERRATIC(17),
+ EXP_ERRATIC(18),
+ EXP_ERRATIC(19),
+ EXP_ERRATIC(20),
+ EXP_ERRATIC(21),
+ EXP_ERRATIC(22),
+ EXP_ERRATIC(23),
+ EXP_ERRATIC(24),
+ EXP_ERRATIC(25),
+ EXP_ERRATIC(26),
+ EXP_ERRATIC(27),
+ EXP_ERRATIC(28),
+ EXP_ERRATIC(29),
+ EXP_ERRATIC(30),
+ EXP_ERRATIC(31),
+ EXP_ERRATIC(32),
+ EXP_ERRATIC(33),
+ EXP_ERRATIC(34),
+ EXP_ERRATIC(35),
+ EXP_ERRATIC(36),
+ EXP_ERRATIC(37),
+ EXP_ERRATIC(38),
+ EXP_ERRATIC(39),
+ EXP_ERRATIC(40),
+ EXP_ERRATIC(41),
+ EXP_ERRATIC(42),
+ EXP_ERRATIC(43),
+ EXP_ERRATIC(44),
+ EXP_ERRATIC(45),
+ EXP_ERRATIC(46),
+ EXP_ERRATIC(47),
+ EXP_ERRATIC(48),
+ EXP_ERRATIC(49),
+ EXP_ERRATIC(50),
+ EXP_ERRATIC(51),
+ EXP_ERRATIC(52),
+ EXP_ERRATIC(53),
+ EXP_ERRATIC(54),
+ EXP_ERRATIC(55),
+ EXP_ERRATIC(56),
+ EXP_ERRATIC(57),
+ EXP_ERRATIC(58),
+ EXP_ERRATIC(59),
+ EXP_ERRATIC(60),
+ EXP_ERRATIC(61),
+ EXP_ERRATIC(62),
+ EXP_ERRATIC(63),
+ EXP_ERRATIC(64),
+ EXP_ERRATIC(65),
+ EXP_ERRATIC(66),
+ EXP_ERRATIC(67),
+ EXP_ERRATIC(68),
+ EXP_ERRATIC(69),
+ EXP_ERRATIC(70),
+ EXP_ERRATIC(71),
+ EXP_ERRATIC(72),
+ EXP_ERRATIC(73),
+ EXP_ERRATIC(74),
+ EXP_ERRATIC(75),
+ EXP_ERRATIC(76),
+ EXP_ERRATIC(77),
+ EXP_ERRATIC(78),
+ EXP_ERRATIC(79),
+ EXP_ERRATIC(80),
+ EXP_ERRATIC(81),
+ EXP_ERRATIC(82),
+ EXP_ERRATIC(83),
+ EXP_ERRATIC(84),
+ EXP_ERRATIC(85),
+ EXP_ERRATIC(86),
+ EXP_ERRATIC(87),
+ EXP_ERRATIC(88),
+ EXP_ERRATIC(89),
+ EXP_ERRATIC(90),
+ EXP_ERRATIC(91),
+ EXP_ERRATIC(92),
+ EXP_ERRATIC(93),
+ EXP_ERRATIC(94),
+ EXP_ERRATIC(95),
+ EXP_ERRATIC(96),
+ EXP_ERRATIC(97),
+ EXP_ERRATIC(98),
+ EXP_ERRATIC(99),
+ EXP_ERRATIC(100),
+ },
+ { // Fluctuating
+ 0, // 0
+ 1, // 1
+ EXP_FLUCTUATING(2),
+ EXP_FLUCTUATING(3),
+ EXP_FLUCTUATING(4),
+ EXP_FLUCTUATING(5),
+ EXP_FLUCTUATING(6),
+ EXP_FLUCTUATING(7),
+ EXP_FLUCTUATING(8),
+ EXP_FLUCTUATING(9),
+ EXP_FLUCTUATING(10),
+ EXP_FLUCTUATING(11),
+ EXP_FLUCTUATING(12),
+ EXP_FLUCTUATING(13),
+ EXP_FLUCTUATING(14),
+ EXP_FLUCTUATING(15),
+ EXP_FLUCTUATING(16),
+ EXP_FLUCTUATING(17),
+ EXP_FLUCTUATING(18),
+ EXP_FLUCTUATING(19),
+ EXP_FLUCTUATING(20),
+ EXP_FLUCTUATING(21),
+ EXP_FLUCTUATING(22),
+ EXP_FLUCTUATING(23),
+ EXP_FLUCTUATING(24),
+ EXP_FLUCTUATING(25),
+ EXP_FLUCTUATING(26),
+ EXP_FLUCTUATING(27),
+ EXP_FLUCTUATING(28),
+ EXP_FLUCTUATING(29),
+ EXP_FLUCTUATING(30),
+ EXP_FLUCTUATING(31),
+ EXP_FLUCTUATING(32),
+ EXP_FLUCTUATING(33),
+ EXP_FLUCTUATING(34),
+ EXP_FLUCTUATING(35),
+ EXP_FLUCTUATING(36),
+ EXP_FLUCTUATING(37),
+ EXP_FLUCTUATING(38),
+ EXP_FLUCTUATING(39),
+ EXP_FLUCTUATING(40),
+ EXP_FLUCTUATING(41),
+ EXP_FLUCTUATING(42),
+ EXP_FLUCTUATING(43),
+ EXP_FLUCTUATING(44),
+ EXP_FLUCTUATING(45),
+ EXP_FLUCTUATING(46),
+ EXP_FLUCTUATING(47),
+ EXP_FLUCTUATING(48),
+ EXP_FLUCTUATING(49),
+ EXP_FLUCTUATING(50),
+ EXP_FLUCTUATING(51),
+ EXP_FLUCTUATING(52),
+ EXP_FLUCTUATING(53),
+ EXP_FLUCTUATING(54),
+ EXP_FLUCTUATING(55),
+ EXP_FLUCTUATING(56),
+ EXP_FLUCTUATING(57),
+ EXP_FLUCTUATING(58),
+ EXP_FLUCTUATING(59),
+ EXP_FLUCTUATING(60),
+ EXP_FLUCTUATING(61),
+ EXP_FLUCTUATING(62),
+ EXP_FLUCTUATING(63),
+ EXP_FLUCTUATING(64),
+ EXP_FLUCTUATING(65),
+ EXP_FLUCTUATING(66),
+ EXP_FLUCTUATING(67),
+ EXP_FLUCTUATING(68),
+ EXP_FLUCTUATING(69),
+ EXP_FLUCTUATING(70),
+ EXP_FLUCTUATING(71),
+ EXP_FLUCTUATING(72),
+ EXP_FLUCTUATING(73),
+ EXP_FLUCTUATING(74),
+ EXP_FLUCTUATING(75),
+ EXP_FLUCTUATING(76),
+ EXP_FLUCTUATING(77),
+ EXP_FLUCTUATING(78),
+ EXP_FLUCTUATING(79),
+ EXP_FLUCTUATING(80),
+ EXP_FLUCTUATING(81),
+ EXP_FLUCTUATING(82),
+ EXP_FLUCTUATING(83),
+ EXP_FLUCTUATING(84),
+ EXP_FLUCTUATING(85),
+ EXP_FLUCTUATING(86),
+ EXP_FLUCTUATING(87),
+ EXP_FLUCTUATING(88),
+ EXP_FLUCTUATING(89),
+ EXP_FLUCTUATING(90),
+ EXP_FLUCTUATING(91),
+ EXP_FLUCTUATING(92),
+ EXP_FLUCTUATING(93),
+ EXP_FLUCTUATING(94),
+ EXP_FLUCTUATING(95),
+ EXP_FLUCTUATING(96),
+ EXP_FLUCTUATING(97),
+ EXP_FLUCTUATING(98),
+ EXP_FLUCTUATING(99),
+ EXP_FLUCTUATING(100),
+ },
+ { // Medium Slow
+ 0, // 0
+ 1, // 1
+ EXP_MEDIUM_SLOW(2),
+ EXP_MEDIUM_SLOW(3),
+ EXP_MEDIUM_SLOW(4),
+ EXP_MEDIUM_SLOW(5),
+ EXP_MEDIUM_SLOW(6),
+ EXP_MEDIUM_SLOW(7),
+ EXP_MEDIUM_SLOW(8),
+ EXP_MEDIUM_SLOW(9),
+ EXP_MEDIUM_SLOW(10),
+ EXP_MEDIUM_SLOW(11),
+ EXP_MEDIUM_SLOW(12),
+ EXP_MEDIUM_SLOW(13),
+ EXP_MEDIUM_SLOW(14),
+ EXP_MEDIUM_SLOW(15),
+ EXP_MEDIUM_SLOW(16),
+ EXP_MEDIUM_SLOW(17),
+ EXP_MEDIUM_SLOW(18),
+ EXP_MEDIUM_SLOW(19),
+ EXP_MEDIUM_SLOW(20),
+ EXP_MEDIUM_SLOW(21),
+ EXP_MEDIUM_SLOW(22),
+ EXP_MEDIUM_SLOW(23),
+ EXP_MEDIUM_SLOW(24),
+ EXP_MEDIUM_SLOW(25),
+ EXP_MEDIUM_SLOW(26),
+ EXP_MEDIUM_SLOW(27),
+ EXP_MEDIUM_SLOW(28),
+ EXP_MEDIUM_SLOW(29),
+ EXP_MEDIUM_SLOW(30),
+ EXP_MEDIUM_SLOW(31),
+ EXP_MEDIUM_SLOW(32),
+ EXP_MEDIUM_SLOW(33),
+ EXP_MEDIUM_SLOW(34),
+ EXP_MEDIUM_SLOW(35),
+ EXP_MEDIUM_SLOW(36),
+ EXP_MEDIUM_SLOW(37),
+ EXP_MEDIUM_SLOW(38),
+ EXP_MEDIUM_SLOW(39),
+ EXP_MEDIUM_SLOW(40),
+ EXP_MEDIUM_SLOW(41),
+ EXP_MEDIUM_SLOW(42),
+ EXP_MEDIUM_SLOW(43),
+ EXP_MEDIUM_SLOW(44),
+ EXP_MEDIUM_SLOW(45),
+ EXP_MEDIUM_SLOW(46),
+ EXP_MEDIUM_SLOW(47),
+ EXP_MEDIUM_SLOW(48),
+ EXP_MEDIUM_SLOW(49),
+ EXP_MEDIUM_SLOW(50),
+ EXP_MEDIUM_SLOW(51),
+ EXP_MEDIUM_SLOW(52),
+ EXP_MEDIUM_SLOW(53),
+ EXP_MEDIUM_SLOW(54),
+ EXP_MEDIUM_SLOW(55),
+ EXP_MEDIUM_SLOW(56),
+ EXP_MEDIUM_SLOW(57),
+ EXP_MEDIUM_SLOW(58),
+ EXP_MEDIUM_SLOW(59),
+ EXP_MEDIUM_SLOW(60),
+ EXP_MEDIUM_SLOW(61),
+ EXP_MEDIUM_SLOW(62),
+ EXP_MEDIUM_SLOW(63),
+ EXP_MEDIUM_SLOW(64),
+ EXP_MEDIUM_SLOW(65),
+ EXP_MEDIUM_SLOW(66),
+ EXP_MEDIUM_SLOW(67),
+ EXP_MEDIUM_SLOW(68),
+ EXP_MEDIUM_SLOW(69),
+ EXP_MEDIUM_SLOW(70),
+ EXP_MEDIUM_SLOW(71),
+ EXP_MEDIUM_SLOW(72),
+ EXP_MEDIUM_SLOW(73),
+ EXP_MEDIUM_SLOW(74),
+ EXP_MEDIUM_SLOW(75),
+ EXP_MEDIUM_SLOW(76),
+ EXP_MEDIUM_SLOW(77),
+ EXP_MEDIUM_SLOW(78),
+ EXP_MEDIUM_SLOW(79),
+ EXP_MEDIUM_SLOW(80),
+ EXP_MEDIUM_SLOW(81),
+ EXP_MEDIUM_SLOW(82),
+ EXP_MEDIUM_SLOW(83),
+ EXP_MEDIUM_SLOW(84),
+ EXP_MEDIUM_SLOW(85),
+ EXP_MEDIUM_SLOW(86),
+ EXP_MEDIUM_SLOW(87),
+ EXP_MEDIUM_SLOW(88),
+ EXP_MEDIUM_SLOW(89),
+ EXP_MEDIUM_SLOW(90),
+ EXP_MEDIUM_SLOW(91),
+ EXP_MEDIUM_SLOW(92),
+ EXP_MEDIUM_SLOW(93),
+ EXP_MEDIUM_SLOW(94),
+ EXP_MEDIUM_SLOW(95),
+ EXP_MEDIUM_SLOW(96),
+ EXP_MEDIUM_SLOW(97),
+ EXP_MEDIUM_SLOW(98),
+ EXP_MEDIUM_SLOW(99),
+ EXP_MEDIUM_SLOW(100),
+ },
+ { // Fast
+ 0, // 0
+ 1, // 1
+ EXP_FAST(2),
+ EXP_FAST(3),
+ EXP_FAST(4),
+ EXP_FAST(5),
+ EXP_FAST(6),
+ EXP_FAST(7),
+ EXP_FAST(8),
+ EXP_FAST(9),
+ EXP_FAST(10),
+ EXP_FAST(11),
+ EXP_FAST(12),
+ EXP_FAST(13),
+ EXP_FAST(14),
+ EXP_FAST(15),
+ EXP_FAST(16),
+ EXP_FAST(17),
+ EXP_FAST(18),
+ EXP_FAST(19),
+ EXP_FAST(20),
+ EXP_FAST(21),
+ EXP_FAST(22),
+ EXP_FAST(23),
+ EXP_FAST(24),
+ EXP_FAST(25),
+ EXP_FAST(26),
+ EXP_FAST(27),
+ EXP_FAST(28),
+ EXP_FAST(29),
+ EXP_FAST(30),
+ EXP_FAST(31),
+ EXP_FAST(32),
+ EXP_FAST(33),
+ EXP_FAST(34),
+ EXP_FAST(35),
+ EXP_FAST(36),
+ EXP_FAST(37),
+ EXP_FAST(38),
+ EXP_FAST(39),
+ EXP_FAST(40),
+ EXP_FAST(41),
+ EXP_FAST(42),
+ EXP_FAST(43),
+ EXP_FAST(44),
+ EXP_FAST(45),
+ EXP_FAST(46),
+ EXP_FAST(47),
+ EXP_FAST(48),
+ EXP_FAST(49),
+ EXP_FAST(50),
+ EXP_FAST(51),
+ EXP_FAST(52),
+ EXP_FAST(53),
+ EXP_FAST(54),
+ EXP_FAST(55),
+ EXP_FAST(56),
+ EXP_FAST(57),
+ EXP_FAST(58),
+ EXP_FAST(59),
+ EXP_FAST(60),
+ EXP_FAST(61),
+ EXP_FAST(62),
+ EXP_FAST(63),
+ EXP_FAST(64),
+ EXP_FAST(65),
+ EXP_FAST(66),
+ EXP_FAST(67),
+ EXP_FAST(68),
+ EXP_FAST(69),
+ EXP_FAST(70),
+ EXP_FAST(71),
+ EXP_FAST(72),
+ EXP_FAST(73),
+ EXP_FAST(74),
+ EXP_FAST(75),
+ EXP_FAST(76),
+ EXP_FAST(77),
+ EXP_FAST(78),
+ EXP_FAST(79),
+ EXP_FAST(80),
+ EXP_FAST(81),
+ EXP_FAST(82),
+ EXP_FAST(83),
+ EXP_FAST(84),
+ EXP_FAST(85),
+ EXP_FAST(86),
+ EXP_FAST(87),
+ EXP_FAST(88),
+ EXP_FAST(89),
+ EXP_FAST(90),
+ EXP_FAST(91),
+ EXP_FAST(92),
+ EXP_FAST(93),
+ EXP_FAST(94),
+ EXP_FAST(95),
+ EXP_FAST(96),
+ EXP_FAST(97),
+ EXP_FAST(98),
+ EXP_FAST(99),
+ EXP_FAST(100),
+ },
+ { // Slow
+ 0, // 0
+ 1, // 1
+ EXP_SLOW(2),
+ EXP_SLOW(3),
+ EXP_SLOW(4),
+ EXP_SLOW(5),
+ EXP_SLOW(6),
+ EXP_SLOW(7),
+ EXP_SLOW(8),
+ EXP_SLOW(9),
+ EXP_SLOW(10),
+ EXP_SLOW(11),
+ EXP_SLOW(12),
+ EXP_SLOW(13),
+ EXP_SLOW(14),
+ EXP_SLOW(15),
+ EXP_SLOW(16),
+ EXP_SLOW(17),
+ EXP_SLOW(18),
+ EXP_SLOW(19),
+ EXP_SLOW(20),
+ EXP_SLOW(21),
+ EXP_SLOW(22),
+ EXP_SLOW(23),
+ EXP_SLOW(24),
+ EXP_SLOW(25),
+ EXP_SLOW(26),
+ EXP_SLOW(27),
+ EXP_SLOW(28),
+ EXP_SLOW(29),
+ EXP_SLOW(30),
+ EXP_SLOW(31),
+ EXP_SLOW(32),
+ EXP_SLOW(33),
+ EXP_SLOW(34),
+ EXP_SLOW(35),
+ EXP_SLOW(36),
+ EXP_SLOW(37),
+ EXP_SLOW(38),
+ EXP_SLOW(39),
+ EXP_SLOW(40),
+ EXP_SLOW(41),
+ EXP_SLOW(42),
+ EXP_SLOW(43),
+ EXP_SLOW(44),
+ EXP_SLOW(45),
+ EXP_SLOW(46),
+ EXP_SLOW(47),
+ EXP_SLOW(48),
+ EXP_SLOW(49),
+ EXP_SLOW(50),
+ EXP_SLOW(51),
+ EXP_SLOW(52),
+ EXP_SLOW(53),
+ EXP_SLOW(54),
+ EXP_SLOW(55),
+ EXP_SLOW(56),
+ EXP_SLOW(57),
+ EXP_SLOW(58),
+ EXP_SLOW(59),
+ EXP_SLOW(60),
+ EXP_SLOW(61),
+ EXP_SLOW(62),
+ EXP_SLOW(63),
+ EXP_SLOW(64),
+ EXP_SLOW(65),
+ EXP_SLOW(66),
+ EXP_SLOW(67),
+ EXP_SLOW(68),
+ EXP_SLOW(69),
+ EXP_SLOW(70),
+ EXP_SLOW(71),
+ EXP_SLOW(72),
+ EXP_SLOW(73),
+ EXP_SLOW(74),
+ EXP_SLOW(75),
+ EXP_SLOW(76),
+ EXP_SLOW(77),
+ EXP_SLOW(78),
+ EXP_SLOW(79),
+ EXP_SLOW(80),
+ EXP_SLOW(81),
+ EXP_SLOW(82),
+ EXP_SLOW(83),
+ EXP_SLOW(84),
+ EXP_SLOW(85),
+ EXP_SLOW(86),
+ EXP_SLOW(87),
+ EXP_SLOW(88),
+ EXP_SLOW(89),
+ EXP_SLOW(90),
+ EXP_SLOW(91),
+ EXP_SLOW(92),
+ EXP_SLOW(93),
+ EXP_SLOW(94),
+ EXP_SLOW(95),
+ EXP_SLOW(96),
+ EXP_SLOW(97),
+ EXP_SLOW(98),
+ EXP_SLOW(99),
+ EXP_SLOW(100),
+ },
+ { // Medium Fast copy 2 (unused? to-do: investigate)
+ 0, // 0
+ 1, // 1
+ EXP_MEDIUM_FAST(2),
+ EXP_MEDIUM_FAST(3),
+ EXP_MEDIUM_FAST(4),
+ EXP_MEDIUM_FAST(5),
+ EXP_MEDIUM_FAST(6),
+ EXP_MEDIUM_FAST(7),
+ EXP_MEDIUM_FAST(8),
+ EXP_MEDIUM_FAST(9),
+ EXP_MEDIUM_FAST(10),
+ EXP_MEDIUM_FAST(11),
+ EXP_MEDIUM_FAST(12),
+ EXP_MEDIUM_FAST(13),
+ EXP_MEDIUM_FAST(14),
+ EXP_MEDIUM_FAST(15),
+ EXP_MEDIUM_FAST(16),
+ EXP_MEDIUM_FAST(17),
+ EXP_MEDIUM_FAST(18),
+ EXP_MEDIUM_FAST(19),
+ EXP_MEDIUM_FAST(20),
+ EXP_MEDIUM_FAST(21),
+ EXP_MEDIUM_FAST(22),
+ EXP_MEDIUM_FAST(23),
+ EXP_MEDIUM_FAST(24),
+ EXP_MEDIUM_FAST(25),
+ EXP_MEDIUM_FAST(26),
+ EXP_MEDIUM_FAST(27),
+ EXP_MEDIUM_FAST(28),
+ EXP_MEDIUM_FAST(29),
+ EXP_MEDIUM_FAST(30),
+ EXP_MEDIUM_FAST(31),
+ EXP_MEDIUM_FAST(32),
+ EXP_MEDIUM_FAST(33),
+ EXP_MEDIUM_FAST(34),
+ EXP_MEDIUM_FAST(35),
+ EXP_MEDIUM_FAST(36),
+ EXP_MEDIUM_FAST(37),
+ EXP_MEDIUM_FAST(38),
+ EXP_MEDIUM_FAST(39),
+ EXP_MEDIUM_FAST(40),
+ EXP_MEDIUM_FAST(41),
+ EXP_MEDIUM_FAST(42),
+ EXP_MEDIUM_FAST(43),
+ EXP_MEDIUM_FAST(44),
+ EXP_MEDIUM_FAST(45),
+ EXP_MEDIUM_FAST(46),
+ EXP_MEDIUM_FAST(47),
+ EXP_MEDIUM_FAST(48),
+ EXP_MEDIUM_FAST(49),
+ EXP_MEDIUM_FAST(50),
+ EXP_MEDIUM_FAST(51),
+ EXP_MEDIUM_FAST(52),
+ EXP_MEDIUM_FAST(53),
+ EXP_MEDIUM_FAST(54),
+ EXP_MEDIUM_FAST(55),
+ EXP_MEDIUM_FAST(56),
+ EXP_MEDIUM_FAST(57),
+ EXP_MEDIUM_FAST(58),
+ EXP_MEDIUM_FAST(59),
+ EXP_MEDIUM_FAST(60),
+ EXP_MEDIUM_FAST(61),
+ EXP_MEDIUM_FAST(62),
+ EXP_MEDIUM_FAST(63),
+ EXP_MEDIUM_FAST(64),
+ EXP_MEDIUM_FAST(65),
+ EXP_MEDIUM_FAST(66),
+ EXP_MEDIUM_FAST(67),
+ EXP_MEDIUM_FAST(68),
+ EXP_MEDIUM_FAST(69),
+ EXP_MEDIUM_FAST(70),
+ EXP_MEDIUM_FAST(71),
+ EXP_MEDIUM_FAST(72),
+ EXP_MEDIUM_FAST(73),
+ EXP_MEDIUM_FAST(74),
+ EXP_MEDIUM_FAST(75),
+ EXP_MEDIUM_FAST(76),
+ EXP_MEDIUM_FAST(77),
+ EXP_MEDIUM_FAST(78),
+ EXP_MEDIUM_FAST(79),
+ EXP_MEDIUM_FAST(80),
+ EXP_MEDIUM_FAST(81),
+ EXP_MEDIUM_FAST(82),
+ EXP_MEDIUM_FAST(83),
+ EXP_MEDIUM_FAST(84),
+ EXP_MEDIUM_FAST(85),
+ EXP_MEDIUM_FAST(86),
+ EXP_MEDIUM_FAST(87),
+ EXP_MEDIUM_FAST(88),
+ EXP_MEDIUM_FAST(89),
+ EXP_MEDIUM_FAST(90),
+ EXP_MEDIUM_FAST(91),
+ EXP_MEDIUM_FAST(92),
+ EXP_MEDIUM_FAST(93),
+ EXP_MEDIUM_FAST(94),
+ EXP_MEDIUM_FAST(95),
+ EXP_MEDIUM_FAST(96),
+ EXP_MEDIUM_FAST(97),
+ EXP_MEDIUM_FAST(98),
+ EXP_MEDIUM_FAST(99),
+ EXP_MEDIUM_FAST(100),
+ },
+ { // Medium Fast copy 3 (unused? to-do: investigate)
+ 0, // 0
+ 1, // 1
+ EXP_MEDIUM_FAST(2),
+ EXP_MEDIUM_FAST(3),
+ EXP_MEDIUM_FAST(4),
+ EXP_MEDIUM_FAST(5),
+ EXP_MEDIUM_FAST(6),
+ EXP_MEDIUM_FAST(7),
+ EXP_MEDIUM_FAST(8),
+ EXP_MEDIUM_FAST(9),
+ EXP_MEDIUM_FAST(10),
+ EXP_MEDIUM_FAST(11),
+ EXP_MEDIUM_FAST(12),
+ EXP_MEDIUM_FAST(13),
+ EXP_MEDIUM_FAST(14),
+ EXP_MEDIUM_FAST(15),
+ EXP_MEDIUM_FAST(16),
+ EXP_MEDIUM_FAST(17),
+ EXP_MEDIUM_FAST(18),
+ EXP_MEDIUM_FAST(19),
+ EXP_MEDIUM_FAST(20),
+ EXP_MEDIUM_FAST(21),
+ EXP_MEDIUM_FAST(22),
+ EXP_MEDIUM_FAST(23),
+ EXP_MEDIUM_FAST(24),
+ EXP_MEDIUM_FAST(25),
+ EXP_MEDIUM_FAST(26),
+ EXP_MEDIUM_FAST(27),
+ EXP_MEDIUM_FAST(28),
+ EXP_MEDIUM_FAST(29),
+ EXP_MEDIUM_FAST(30),
+ EXP_MEDIUM_FAST(31),
+ EXP_MEDIUM_FAST(32),
+ EXP_MEDIUM_FAST(33),
+ EXP_MEDIUM_FAST(34),
+ EXP_MEDIUM_FAST(35),
+ EXP_MEDIUM_FAST(36),
+ EXP_MEDIUM_FAST(37),
+ EXP_MEDIUM_FAST(38),
+ EXP_MEDIUM_FAST(39),
+ EXP_MEDIUM_FAST(40),
+ EXP_MEDIUM_FAST(41),
+ EXP_MEDIUM_FAST(42),
+ EXP_MEDIUM_FAST(43),
+ EXP_MEDIUM_FAST(44),
+ EXP_MEDIUM_FAST(45),
+ EXP_MEDIUM_FAST(46),
+ EXP_MEDIUM_FAST(47),
+ EXP_MEDIUM_FAST(48),
+ EXP_MEDIUM_FAST(49),
+ EXP_MEDIUM_FAST(50),
+ EXP_MEDIUM_FAST(51),
+ EXP_MEDIUM_FAST(52),
+ EXP_MEDIUM_FAST(53),
+ EXP_MEDIUM_FAST(54),
+ EXP_MEDIUM_FAST(55),
+ EXP_MEDIUM_FAST(56),
+ EXP_MEDIUM_FAST(57),
+ EXP_MEDIUM_FAST(58),
+ EXP_MEDIUM_FAST(59),
+ EXP_MEDIUM_FAST(60),
+ EXP_MEDIUM_FAST(61),
+ EXP_MEDIUM_FAST(62),
+ EXP_MEDIUM_FAST(63),
+ EXP_MEDIUM_FAST(64),
+ EXP_MEDIUM_FAST(65),
+ EXP_MEDIUM_FAST(66),
+ EXP_MEDIUM_FAST(67),
+ EXP_MEDIUM_FAST(68),
+ EXP_MEDIUM_FAST(69),
+ EXP_MEDIUM_FAST(70),
+ EXP_MEDIUM_FAST(71),
+ EXP_MEDIUM_FAST(72),
+ EXP_MEDIUM_FAST(73),
+ EXP_MEDIUM_FAST(74),
+ EXP_MEDIUM_FAST(75),
+ EXP_MEDIUM_FAST(76),
+ EXP_MEDIUM_FAST(77),
+ EXP_MEDIUM_FAST(78),
+ EXP_MEDIUM_FAST(79),
+ EXP_MEDIUM_FAST(80),
+ EXP_MEDIUM_FAST(81),
+ EXP_MEDIUM_FAST(82),
+ EXP_MEDIUM_FAST(83),
+ EXP_MEDIUM_FAST(84),
+ EXP_MEDIUM_FAST(85),
+ EXP_MEDIUM_FAST(86),
+ EXP_MEDIUM_FAST(87),
+ EXP_MEDIUM_FAST(88),
+ EXP_MEDIUM_FAST(89),
+ EXP_MEDIUM_FAST(90),
+ EXP_MEDIUM_FAST(91),
+ EXP_MEDIUM_FAST(92),
+ EXP_MEDIUM_FAST(93),
+ EXP_MEDIUM_FAST(94),
+ EXP_MEDIUM_FAST(95),
+ EXP_MEDIUM_FAST(96),
+ EXP_MEDIUM_FAST(97),
+ EXP_MEDIUM_FAST(98),
+ EXP_MEDIUM_FAST(99),
+ EXP_MEDIUM_FAST(100),
+ }
+};
+
+#endif //POKEEMERALD_EXPERIENCE_TABLES_H
diff --git a/include/data/pokemon/item_effects.h b/include/data/pokemon/item_effects.h
new file mode 100644
index 000000000..6ba0d694e
--- /dev/null
+++ b/include/data/pokemon/item_effects.h
@@ -0,0 +1,241 @@
+#ifndef GUARD_ITEM_EFFECTS_H
+#define GUARD_ITEM_EFFECTS_H
+
+const u8 gItemEffect_Potion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 20};
+const u8 gItemEffect_Antidote[] = {0x00, 0x00, 0x00, 0x10, 0x00, 0x00};
+const u8 gItemEffect_BurnHeal[] = {0x00, 0x00, 0x00, 0x08, 0x00, 0x00};
+const u8 gItemEffect_IceHeal[] = {0x00, 0x00, 0x00, 0x04, 0x00, 0x00};
+const u8 gItemEffect_Awakening[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00};
+const u8 gItemEffect_ParalyzeHeal[] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00};
+const u8 gItemEffect_FullRestore[] = {0x00, 0x00, 0x00, 0x3f, 0x04, 0x00, 0xff};
+const u8 gItemEffect_MaxPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xff};
+const u8 gItemEffect_HyperPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 200};
+const u8 gItemEffect_SuperPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 50};
+const u8 gItemEffect_FullHeal[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00};
+const u8 gItemEffect_Revive[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0xfe};
+const u8 gItemEffect_MaxRevive[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0xff};
+const u8 gItemEffect_FreshWater[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 50};
+const u8 gItemEffect_SodaPop[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 60};
+const u8 gItemEffect_Lemonade[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 80};
+const u8 gItemEffect_MoomooMilk[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 100};
+const u8 gItemEffect_EnergyPowder[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0xe0, 50, 0xfb, 0xfb, 0xf6};
+const u8 gItemEffect_EnergyRoot[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0xe0, 200, 0xf6, 0xf6, 0xf1};
+const u8 gItemEffect_HealPowder[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0xe0, 0xfb, 0xfb, 0xf6};
+const u8 gItemEffect_RevivalHerb[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0xe0, 0xff, 0xf1, 0xf1, 0xec};
+const u8 gItemEffect_Ether[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0a};
+const u8 gItemEffect_MaxEther[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x7f};
+const u8 gItemEffect_Elixir[] = {0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a};
+const u8 gItemEffect_MaxElixir[] = {0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x7f};
+const u8 gItemEffect_LavaCookie[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00};
+const u8 gItemEffect_BlueFlute[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00};
+const u8 gItemEffect_YellowFlute[] = {0x00, 0x00, 0x00, 0x01, 0x00, 0x00};
+const u8 gItemEffect_RedFlute[] = {0x80, 0x00, 0x00, 0x00, 0x00, 0x00};
+const u8 gItemEffect_BerryJuice[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 20};
+const u8 gItemEffect_SacredAsh[] = {0x40, 0x00, 0x00, 0x00, 0x44, 0x00, 0xff};
+const u8 gItemEffect_HPUp[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_Protein[] = {0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_Iron[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_Carbos[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_Calcium[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_RareCandy[] = {0x00, 0x00, 0x00, 0x40, 0x44, 0xe0, 253, 0x05, 0x03, 0x02};
+const u8 gItemEffect_PPUp[] = {0x00, 0x00, 0x00, 0x00, 0x20, 0xe0, 0x05, 0x03, 0x02};
+const u8 gItemEffect_Zinc[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_PPMax[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x05, 0x03, 0x02};
+const u8 gItemEffect_GuardSpec[] = {0x00, 0x00, 0x00, 0x80, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_DireHit[] = {0x20, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_XAttack[] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_XDefend[] = {0x00, 0x10, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_XSpeed[] = {0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_XAccuracy[] = {0x00, 0x00, 0x10, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_XSpecial[] = {0x00, 0x00, 0x01, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_SunStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_MoonStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_FireStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_ThunderStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_WaterStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_LeafStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_CheriBerry[] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00};
+const u8 gItemEffect_ChestoBerry[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00};
+const u8 gItemEffect_PechaBerry[] = {0x00, 0x00, 0x00, 0x10, 0x00, 0x00};
+const u8 gItemEffect_RawstBerry[] = {0x00, 0x00, 0x00, 0x08, 0x00, 0x00};
+const u8 gItemEffect_AspearBerry[] = {0x00, 0x00, 0x00, 0x04, 0x00, 0x00};
+const u8 gItemEffect_LeppaBerry[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0a};
+const u8 gItemEffect_OranBerry[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 10};
+const u8 gItemEffect_PersimBerry[] = {0x00, 0x00, 0x00, 0x01, 0x00, 0x00};
+const u8 gItemEffect_LumBerry[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00};
+const u8 gItemEffect_SitrusBerry[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 30};
+const u8 gItemEffect_PomegBerry[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0xf6, 0x0a, 0x05, 0x02};
+const u8 gItemEffect_KelpsyBerry[] = {0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xf6, 0x0a, 0x05, 0x02};
+const u8 gItemEffect_QualotBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xf6, 0x0a, 0x05, 0x02};
+const u8 gItemEffect_HondrewBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xf6, 0x0a, 0x05, 0x02};
+const u8 gItemEffect_GrepaBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0xf6, 0x0a, 0x05, 0x02};
+const u8 gItemEffect_TamatoBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0xf6, 0x0a, 0x05, 0x02};
+
+const u8 *const gItemEffectTable[] =
+{
+ gItemEffect_Potion,
+ gItemEffect_Antidote,
+ gItemEffect_BurnHeal,
+ gItemEffect_IceHeal,
+ gItemEffect_Awakening,
+ gItemEffect_ParalyzeHeal,
+ gItemEffect_FullRestore,
+ gItemEffect_MaxPotion,
+ gItemEffect_HyperPotion,
+ gItemEffect_SuperPotion,
+ gItemEffect_FullHeal,
+ gItemEffect_Revive,
+ gItemEffect_MaxRevive,
+ gItemEffect_FreshWater,
+ gItemEffect_SodaPop,
+ gItemEffect_Lemonade,
+ gItemEffect_MoomooMilk,
+ gItemEffect_EnergyPowder,
+ gItemEffect_EnergyRoot,
+ gItemEffect_HealPowder,
+ gItemEffect_RevivalHerb,
+ gItemEffect_Ether,
+ gItemEffect_MaxEther,
+ gItemEffect_Elixir,
+ gItemEffect_MaxElixir,
+ gItemEffect_LavaCookie,
+ gItemEffect_BlueFlute,
+ gItemEffect_YellowFlute,
+ gItemEffect_RedFlute,
+ NULL,
+ NULL,
+ gItemEffect_BerryJuice,
+ gItemEffect_SacredAsh,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ gItemEffect_HPUp,
+ gItemEffect_Protein,
+ gItemEffect_Iron,
+ gItemEffect_Carbos,
+ gItemEffect_Calcium,
+ gItemEffect_RareCandy,
+ gItemEffect_PPUp,
+ gItemEffect_Zinc,
+ gItemEffect_PPMax,
+ NULL,
+ gItemEffect_GuardSpec,
+ gItemEffect_DireHit,
+ gItemEffect_XAttack,
+ gItemEffect_XDefend,
+ gItemEffect_XSpeed,
+ gItemEffect_XAccuracy,
+ gItemEffect_XSpecial,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ gItemEffect_SunStone,
+ gItemEffect_MoonStone,
+ gItemEffect_FireStone,
+ gItemEffect_ThunderStone,
+ gItemEffect_WaterStone,
+ gItemEffect_LeafStone,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ gItemEffect_CheriBerry,
+ gItemEffect_ChestoBerry,
+ gItemEffect_PechaBerry,
+ gItemEffect_RawstBerry,
+ gItemEffect_AspearBerry,
+ gItemEffect_LeppaBerry,
+ gItemEffect_OranBerry,
+ gItemEffect_PersimBerry,
+ gItemEffect_LumBerry,
+ gItemEffect_SitrusBerry,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ gItemEffect_PomegBerry,
+ gItemEffect_KelpsyBerry,
+ gItemEffect_QualotBerry,
+ gItemEffect_HondrewBerry,
+ gItemEffect_GrepaBerry,
+ gItemEffect_TamatoBerry,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
+#endif //GUARD_ITEM_EFFECTS_H
diff --git a/include/data/pokemon/level_up_learnset_pointers.h b/include/data/pokemon/level_up_learnset_pointers.h
new file mode 100644
index 000000000..a56b1c09f
--- /dev/null
+++ b/include/data/pokemon/level_up_learnset_pointers.h
@@ -0,0 +1,420 @@
+#ifndef POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
+#define POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
+
+const u16 *const gLevelUpLearnsets[] =
+{
+ gBulbasaurLevelUpLearnset,
+ gBulbasaurLevelUpLearnset,
+ gIvysaurLevelUpLearnset,
+ gVenusaurLevelUpLearnset,
+ gCharmanderLevelUpLearnset,
+ gCharmeleonLevelUpLearnset,
+ gCharizardLevelUpLearnset,
+ gSquirtleLevelUpLearnset,
+ gWartortleLevelUpLearnset,
+ gBlastoiseLevelUpLearnset,
+ gCaterpieLevelUpLearnset,
+ gMetapodLevelUpLearnset,
+ gButterfreeLevelUpLearnset,
+ gWeedleLevelUpLearnset,
+ gKakunaLevelUpLearnset,
+ gBeedrillLevelUpLearnset,
+ gPidgeyLevelUpLearnset,
+ gPidgeottoLevelUpLearnset,
+ gPidgeotLevelUpLearnset,
+ gRattataLevelUpLearnset,
+ gRaticateLevelUpLearnset,
+ gSpearowLevelUpLearnset,
+ gFearowLevelUpLearnset,
+ gEkansLevelUpLearnset,
+ gArbokLevelUpLearnset,
+ gPikachuLevelUpLearnset,
+ gRaichuLevelUpLearnset,
+ gSandshrewLevelUpLearnset,
+ gSandslashLevelUpLearnset,
+ gNidoranFLevelUpLearnset,
+ gNidorinaLevelUpLearnset,
+ gNidoqueenLevelUpLearnset,
+ gNidoranMLevelUpLearnset,
+ gNidorinoLevelUpLearnset,
+ gNidokingLevelUpLearnset,
+ gClefairyLevelUpLearnset,
+ gClefableLevelUpLearnset,
+ gVulpixLevelUpLearnset,
+ gNinetalesLevelUpLearnset,
+ gJigglypuffLevelUpLearnset,
+ gWigglytuffLevelUpLearnset,
+ gZubatLevelUpLearnset,
+ gGolbatLevelUpLearnset,
+ gOddishLevelUpLearnset,
+ gGloomLevelUpLearnset,
+ gVileplumeLevelUpLearnset,
+ gParasLevelUpLearnset,
+ gParasectLevelUpLearnset,
+ gVenonatLevelUpLearnset,
+ gVenomothLevelUpLearnset,
+ gDiglettLevelUpLearnset,
+ gDugtrioLevelUpLearnset,
+ gMeowthLevelUpLearnset,
+ gPersianLevelUpLearnset,
+ gPsyduckLevelUpLearnset,
+ gGolduckLevelUpLearnset,
+ gMankeyLevelUpLearnset,
+ gPrimeapeLevelUpLearnset,
+ gGrowlitheLevelUpLearnset,
+ gArcanineLevelUpLearnset,
+ gPoliwagLevelUpLearnset,
+ gPoliwhirlLevelUpLearnset,
+ gPoliwrathLevelUpLearnset,
+ gAbraLevelUpLearnset,
+ gKadabraLevelUpLearnset,
+ gAlakazamLevelUpLearnset,
+ gMachopLevelUpLearnset,
+ gMachokeLevelUpLearnset,
+ gMachampLevelUpLearnset,
+ gBellsproutLevelUpLearnset,
+ gWeepinbellLevelUpLearnset,
+ gVictreebelLevelUpLearnset,
+ gTentacoolLevelUpLearnset,
+ gTentacruelLevelUpLearnset,
+ gGeodudeLevelUpLearnset,
+ gGravelerLevelUpLearnset,
+ gGolemLevelUpLearnset,
+ gPonytaLevelUpLearnset,
+ gRapidashLevelUpLearnset,
+ gSlowpokeLevelUpLearnset,
+ gSlowbroLevelUpLearnset,
+ gMagnemiteLevelUpLearnset,
+ gMagnetonLevelUpLearnset,
+ gFarfetchdLevelUpLearnset,
+ gDoduoLevelUpLearnset,
+ gDodrioLevelUpLearnset,
+ gSeelLevelUpLearnset,
+ gDewgongLevelUpLearnset,
+ gGrimerLevelUpLearnset,
+ gMukLevelUpLearnset,
+ gShellderLevelUpLearnset,
+ gCloysterLevelUpLearnset,
+ gGastlyLevelUpLearnset,
+ gHaunterLevelUpLearnset,
+ gGengarLevelUpLearnset,
+ gOnixLevelUpLearnset,
+ gDrowzeeLevelUpLearnset,
+ gHypnoLevelUpLearnset,
+ gKrabbyLevelUpLearnset,
+ gKinglerLevelUpLearnset,
+ gVoltorbLevelUpLearnset,
+ gElectrodeLevelUpLearnset,
+ gExeggcuteLevelUpLearnset,
+ gExeggutorLevelUpLearnset,
+ gCuboneLevelUpLearnset,
+ gMarowakLevelUpLearnset,
+ gHitmonleeLevelUpLearnset,
+ gHitmonchanLevelUpLearnset,
+ gLickitungLevelUpLearnset,
+ gKoffingLevelUpLearnset,
+ gWeezingLevelUpLearnset,
+ gRhyhornLevelUpLearnset,
+ gRhydonLevelUpLearnset,
+ gChanseyLevelUpLearnset,
+ gTangelaLevelUpLearnset,
+ gKangaskhanLevelUpLearnset,
+ gHorseaLevelUpLearnset,
+ gSeadraLevelUpLearnset,
+ gGoldeenLevelUpLearnset,
+ gSeakingLevelUpLearnset,
+ gStaryuLevelUpLearnset,
+ gStarmieLevelUpLearnset,
+ gMrmimeLevelUpLearnset,
+ gScytherLevelUpLearnset,
+ gJynxLevelUpLearnset,
+ gElectabuzzLevelUpLearnset,
+ gMagmarLevelUpLearnset,
+ gPinsirLevelUpLearnset,
+ gTaurosLevelUpLearnset,
+ gMagikarpLevelUpLearnset,
+ gGyaradosLevelUpLearnset,
+ gLaprasLevelUpLearnset,
+ gDittoLevelUpLearnset,
+ gEeveeLevelUpLearnset,
+ gVaporeonLevelUpLearnset,
+ gJolteonLevelUpLearnset,
+ gFlareonLevelUpLearnset,
+ gPorygonLevelUpLearnset,
+ gOmanyteLevelUpLearnset,
+ gOmastarLevelUpLearnset,
+ gKabutoLevelUpLearnset,
+ gKabutopsLevelUpLearnset,
+ gAerodactylLevelUpLearnset,
+ gSnorlaxLevelUpLearnset,
+ gArticunoLevelUpLearnset,
+ gZapdosLevelUpLearnset,
+ gMoltresLevelUpLearnset,
+ gDratiniLevelUpLearnset,
+ gDragonairLevelUpLearnset,
+ gDragoniteLevelUpLearnset,
+ gMewtwoLevelUpLearnset,
+ gMewLevelUpLearnset,
+ gChikoritaLevelUpLearnset,
+ gBayleefLevelUpLearnset,
+ gMeganiumLevelUpLearnset,
+ gCyndaquilLevelUpLearnset,
+ gQuilavaLevelUpLearnset,
+ gTyphlosionLevelUpLearnset,
+ gTotodileLevelUpLearnset,
+ gCroconawLevelUpLearnset,
+ gFeraligatrLevelUpLearnset,
+ gSentretLevelUpLearnset,
+ gFurretLevelUpLearnset,
+ gHoothootLevelUpLearnset,
+ gNoctowlLevelUpLearnset,
+ gLedybaLevelUpLearnset,
+ gLedianLevelUpLearnset,
+ gSpinarakLevelUpLearnset,
+ gAriadosLevelUpLearnset,
+ gCrobatLevelUpLearnset,
+ gChinchouLevelUpLearnset,
+ gLanturnLevelUpLearnset,
+ gPichuLevelUpLearnset,
+ gCleffaLevelUpLearnset,
+ gIgglybuffLevelUpLearnset,
+ gTogepiLevelUpLearnset,
+ gTogeticLevelUpLearnset,
+ gNatuLevelUpLearnset,
+ gXatuLevelUpLearnset,
+ gMareepLevelUpLearnset,
+ gFlaaffyLevelUpLearnset,
+ gAmpharosLevelUpLearnset,
+ gBellossomLevelUpLearnset,
+ gMarillLevelUpLearnset,
+ gAzumarillLevelUpLearnset,
+ gSudowoodoLevelUpLearnset,
+ gPolitoedLevelUpLearnset,
+ gHoppipLevelUpLearnset,
+ gSkiploomLevelUpLearnset,
+ gJumpluffLevelUpLearnset,
+ gAipomLevelUpLearnset,
+ gSunkernLevelUpLearnset,
+ gSunfloraLevelUpLearnset,
+ gYanmaLevelUpLearnset,
+ gWooperLevelUpLearnset,
+ gQuagsireLevelUpLearnset,
+ gEspeonLevelUpLearnset,
+ gUmbreonLevelUpLearnset,
+ gMurkrowLevelUpLearnset,
+ gSlowkingLevelUpLearnset,
+ gMisdreavusLevelUpLearnset,
+ gUnownLevelUpLearnset,
+ gWobbuffetLevelUpLearnset,
+ gGirafarigLevelUpLearnset,
+ gPinecoLevelUpLearnset,
+ gForretressLevelUpLearnset,
+ gDunsparceLevelUpLearnset,
+ gGligarLevelUpLearnset,
+ gSteelixLevelUpLearnset,
+ gSnubbullLevelUpLearnset,
+ gGranbullLevelUpLearnset,
+ gQwilfishLevelUpLearnset,
+ gScizorLevelUpLearnset,
+ gShuckleLevelUpLearnset,
+ gHeracrossLevelUpLearnset,
+ gSneaselLevelUpLearnset,
+ gTeddiursaLevelUpLearnset,
+ gUrsaringLevelUpLearnset,
+ gSlugmaLevelUpLearnset,
+ gMagcargoLevelUpLearnset,
+ gSwinubLevelUpLearnset,
+ gPiloswineLevelUpLearnset,
+ gCorsolaLevelUpLearnset,
+ gRemoraidLevelUpLearnset,
+ gOctilleryLevelUpLearnset,
+ gDelibirdLevelUpLearnset,
+ gMantineLevelUpLearnset,
+ gSkarmoryLevelUpLearnset,
+ gHoundourLevelUpLearnset,
+ gHoundoomLevelUpLearnset,
+ gKingdraLevelUpLearnset,
+ gPhanpyLevelUpLearnset,
+ gDonphanLevelUpLearnset,
+ gPorygon2LevelUpLearnset,
+ gStantlerLevelUpLearnset,
+ gSmeargleLevelUpLearnset,
+ gTyrogueLevelUpLearnset,
+ gHitmontopLevelUpLearnset,
+ gSmoochumLevelUpLearnset,
+ gElekidLevelUpLearnset,
+ gMagbyLevelUpLearnset,
+ gMiltankLevelUpLearnset,
+ gBlisseyLevelUpLearnset,
+ gRaikouLevelUpLearnset,
+ gEnteiLevelUpLearnset,
+ gSuicuneLevelUpLearnset,
+ gLarvitarLevelUpLearnset,
+ gPupitarLevelUpLearnset,
+ gTyranitarLevelUpLearnset,
+ gLugiaLevelUpLearnset,
+ gHoOhLevelUpLearnset,
+ gCelebiLevelUpLearnset,
+ gSpecies252LevelUpLearnset,
+ gSpecies253LevelUpLearnset,
+ gSpecies254LevelUpLearnset,
+ gSpecies255LevelUpLearnset,
+ gSpecies256LevelUpLearnset,
+ gSpecies257LevelUpLearnset,
+ gSpecies258LevelUpLearnset,
+ gSpecies259LevelUpLearnset,
+ gSpecies260LevelUpLearnset,
+ gSpecies261LevelUpLearnset,
+ gSpecies262LevelUpLearnset,
+ gSpecies263LevelUpLearnset,
+ gSpecies264LevelUpLearnset,
+ gSpecies265LevelUpLearnset,
+ gSpecies266LevelUpLearnset,
+ gSpecies267LevelUpLearnset,
+ gSpecies268LevelUpLearnset,
+ gSpecies269LevelUpLearnset,
+ gSpecies270LevelUpLearnset,
+ gSpecies271LevelUpLearnset,
+ gSpecies272LevelUpLearnset,
+ gSpecies273LevelUpLearnset,
+ gSpecies274LevelUpLearnset,
+ gSpecies275LevelUpLearnset,
+ gSpecies276LevelUpLearnset,
+ gTreeckoLevelUpLearnset,
+ gGrovyleLevelUpLearnset,
+ gSceptileLevelUpLearnset,
+ gTorchicLevelUpLearnset,
+ gCombuskenLevelUpLearnset,
+ gBlazikenLevelUpLearnset,
+ gMudkipLevelUpLearnset,
+ gMarshtompLevelUpLearnset,
+ gSwampertLevelUpLearnset,
+ gPoochyenaLevelUpLearnset,
+ gMightyenaLevelUpLearnset,
+ gZigzagoonLevelUpLearnset,
+ gLinooneLevelUpLearnset,
+ gWurmpleLevelUpLearnset,
+ gSilcoonLevelUpLearnset,
+ gBeautiflyLevelUpLearnset,
+ gCascoonLevelUpLearnset,
+ gDustoxLevelUpLearnset,
+ gLotadLevelUpLearnset,
+ gLombreLevelUpLearnset,
+ gLudicoloLevelUpLearnset,
+ gSeedotLevelUpLearnset,
+ gNuzleafLevelUpLearnset,
+ gShiftryLevelUpLearnset,
+ gNincadaLevelUpLearnset,
+ gNinjaskLevelUpLearnset,
+ gShedinjaLevelUpLearnset,
+ gTaillowLevelUpLearnset,
+ gSwellowLevelUpLearnset,
+ gShroomishLevelUpLearnset,
+ gBreloomLevelUpLearnset,
+ gSpindaLevelUpLearnset,
+ gWingullLevelUpLearnset,
+ gPelipperLevelUpLearnset,
+ gSurskitLevelUpLearnset,
+ gMasquerainLevelUpLearnset,
+ gWailmerLevelUpLearnset,
+ gWailordLevelUpLearnset,
+ gSkittyLevelUpLearnset,
+ gDelcattyLevelUpLearnset,
+ gKecleonLevelUpLearnset,
+ gBaltoyLevelUpLearnset,
+ gClaydolLevelUpLearnset,
+ gNosepassLevelUpLearnset,
+ gTorkoalLevelUpLearnset,
+ gSableyeLevelUpLearnset,
+ gBarboachLevelUpLearnset,
+ gWhiscashLevelUpLearnset,
+ gLuvdiscLevelUpLearnset,
+ gCorphishLevelUpLearnset,
+ gCrawdauntLevelUpLearnset,
+ gFeebasLevelUpLearnset,
+ gMiloticLevelUpLearnset,
+ gCarvanhaLevelUpLearnset,
+ gSharpedoLevelUpLearnset,
+ gTrapinchLevelUpLearnset,
+ gVibravaLevelUpLearnset,
+ gFlygonLevelUpLearnset,
+ gMakuhitaLevelUpLearnset,
+ gHariyamaLevelUpLearnset,
+ gElectrikeLevelUpLearnset,
+ gManectricLevelUpLearnset,
+ gNumelLevelUpLearnset,
+ gCameruptLevelUpLearnset,
+ gSphealLevelUpLearnset,
+ gSealeoLevelUpLearnset,
+ gWalreinLevelUpLearnset,
+ gCacneaLevelUpLearnset,
+ gCacturneLevelUpLearnset,
+ gSnoruntLevelUpLearnset,
+ gGlalieLevelUpLearnset,
+ gLunatoneLevelUpLearnset,
+ gSolrockLevelUpLearnset,
+ gAzurillLevelUpLearnset,
+ gSpoinkLevelUpLearnset,
+ gGrumpigLevelUpLearnset,
+ gPlusleLevelUpLearnset,
+ gMinunLevelUpLearnset,
+ gMawileLevelUpLearnset,
+ gMedititeLevelUpLearnset,
+ gMedichamLevelUpLearnset,
+ gSwabluLevelUpLearnset,
+ gAltariaLevelUpLearnset,
+ gWynautLevelUpLearnset,
+ gDuskullLevelUpLearnset,
+ gDusclopsLevelUpLearnset,
+ gRoseliaLevelUpLearnset,
+ gSlakothLevelUpLearnset,
+ gVigorothLevelUpLearnset,
+ gSlakingLevelUpLearnset,
+ gGulpinLevelUpLearnset,
+ gSwalotLevelUpLearnset,
+ gTropiusLevelUpLearnset,
+ gWhismurLevelUpLearnset,
+ gLoudredLevelUpLearnset,
+ gExploudLevelUpLearnset,
+ gClamperlLevelUpLearnset,
+ gHuntailLevelUpLearnset,
+ gGorebyssLevelUpLearnset,
+ gAbsolLevelUpLearnset,
+ gShuppetLevelUpLearnset,
+ gBanetteLevelUpLearnset,
+ gSeviperLevelUpLearnset,
+ gZangooseLevelUpLearnset,
+ gRelicanthLevelUpLearnset,
+ gAronLevelUpLearnset,
+ gLaironLevelUpLearnset,
+ gAggronLevelUpLearnset,
+ gCastformLevelUpLearnset,
+ gVolbeatLevelUpLearnset,
+ gIllumiseLevelUpLearnset,
+ gLileepLevelUpLearnset,
+ gCradilyLevelUpLearnset,
+ gAnorithLevelUpLearnset,
+ gArmaldoLevelUpLearnset,
+ gRaltsLevelUpLearnset,
+ gKirliaLevelUpLearnset,
+ gGardevoirLevelUpLearnset,
+ gBagonLevelUpLearnset,
+ gShelgonLevelUpLearnset,
+ gSalamenceLevelUpLearnset,
+ gBeldumLevelUpLearnset,
+ gMetangLevelUpLearnset,
+ gMetagrossLevelUpLearnset,
+ gRegirockLevelUpLearnset,
+ gRegiceLevelUpLearnset,
+ gRegisteelLevelUpLearnset,
+ gKyogreLevelUpLearnset,
+ gGroudonLevelUpLearnset,
+ gRayquazaLevelUpLearnset,
+ gLatiasLevelUpLearnset,
+ gLatiosLevelUpLearnset,
+ gJirachiLevelUpLearnset,
+ gDeoxysLevelUpLearnset,
+ gChimechoLevelUpLearnset
+};
+
+#endif //POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
diff --git a/include/data/pokemon/level_up_learnsets.h b/include/data/pokemon/level_up_learnsets.h
new file mode 100644
index 000000000..4035dc66a
--- /dev/null
+++ b/include/data/pokemon/level_up_learnsets.h
@@ -0,0 +1,5623 @@
+#ifndef POKEEMERALD_LEVEL_UP_LEARNSETS_H
+#define POKEEMERALD_LEVEL_UP_LEARNSETS_H
+
+#define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move)
+#define LEVEL_UP_END 0xffff
+
+const u16 gBulbasaurLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(10, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(25, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(32, MOVE_GROWTH),
+ LEVEL_UP_MOVE(39, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gIvysaurLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE( 4, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(10, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(38, MOVE_GROWTH),
+ LEVEL_UP_MOVE(47, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gVenusaurLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE( 4, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(10, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(41, MOVE_GROWTH),
+ LEVEL_UP_MOVE(53, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gCharmanderLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_EMBER),
+ LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(19, MOVE_RAGE),
+ LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(31, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(37, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(49, MOVE_FIRE_SPIN),
+ LEVEL_UP_END
+};
+
+const u16 gCharmeleonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 7, MOVE_EMBER),
+ LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(20, MOVE_RAGE),
+ LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(41, MOVE_SLASH),
+ LEVEL_UP_MOVE(48, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(55, MOVE_FIRE_SPIN),
+ LEVEL_UP_END
+};
+
+const u16 gCharizardLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE( 7, MOVE_EMBER),
+ LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(20, MOVE_RAGE),
+ LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(36, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(44, MOVE_SLASH),
+ LEVEL_UP_MOVE(54, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(64, MOVE_FIRE_SPIN),
+ LEVEL_UP_END
+};
+
+const u16 gSquirtleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
+ LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(18, MOVE_BITE),
+ LEVEL_UP_MOVE(23, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(28, MOVE_PROTECT),
+ LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(40, MOVE_SKULL_BASH),
+ LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gWartortleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
+ LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(19, MOVE_BITE),
+ LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(31, MOVE_PROTECT),
+ LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(45, MOVE_SKULL_BASH),
+ LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gBlastoiseLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
+ LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(19, MOVE_BITE),
+ LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(31, MOVE_PROTECT),
+ LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(55, MOVE_SKULL_BASH),
+ LEVEL_UP_MOVE(68, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gCaterpieLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
+ LEVEL_UP_END
+};
+
+const u16 gMetapodLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_END
+};
+
+const u16 gButterfreeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(10, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(14, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(18, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(23, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(28, MOVE_GUST),
+ LEVEL_UP_MOVE(34, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(40, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(47, MOVE_SILVER_WIND),
+ LEVEL_UP_END
+};
+
+const u16 gWeedleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
+ LEVEL_UP_END
+};
+
+const u16 gKakunaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_END
+};
+
+const u16 gBeedrillLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(20, MOVE_TWINEEDLE),
+ LEVEL_UP_MOVE(25, MOVE_RAGE),
+ LEVEL_UP_MOVE(30, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(35, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(40, MOVE_AGILITY),
+ LEVEL_UP_MOVE(45, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gPidgeyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 9, MOVE_GUST),
+ LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(19, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(25, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_FEATHER_DANCE),
+ LEVEL_UP_MOVE(39, MOVE_AGILITY),
+ LEVEL_UP_MOVE(47, MOVE_MIRROR_MOVE),
+ LEVEL_UP_END
+};
+
+const u16 gPidgeottoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_GUST),
+ LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 9, MOVE_GUST),
+ LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(20, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(27, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(34, MOVE_FEATHER_DANCE),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_MOVE(52, MOVE_MIRROR_MOVE),
+ LEVEL_UP_END
+};
+
+const u16 gPidgeotLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_GUST),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 9, MOVE_GUST),
+ LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(20, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(27, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(34, MOVE_FEATHER_DANCE),
+ LEVEL_UP_MOVE(48, MOVE_AGILITY),
+ LEVEL_UP_MOVE(62, MOVE_MIRROR_MOVE),
+ LEVEL_UP_END
+};
+
+const u16 gRattataLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_HYPER_FANG),
+ LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(27, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(34, MOVE_SUPER_FANG),
+ LEVEL_UP_MOVE(41, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gRaticateLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_HYPER_FANG),
+ LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(30, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(40, MOVE_SUPER_FANG),
+ LEVEL_UP_MOVE(50, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gSpearowLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_LEER),
+ LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(19, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE),
+ LEVEL_UP_MOVE(31, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(37, MOVE_DRILL_PECK),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gFearowLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE( 7, MOVE_LEER),
+ LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(26, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(32, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(40, MOVE_DRILL_PECK),
+ LEVEL_UP_MOVE(47, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gEkansLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 8, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(20, MOVE_GLARE),
+ LEVEL_UP_MOVE(25, MOVE_SCREECH),
+ LEVEL_UP_MOVE(32, MOVE_ACID),
+ LEVEL_UP_MOVE(37, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(37, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(37, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(44, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gArbokLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 8, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(20, MOVE_GLARE),
+ LEVEL_UP_MOVE(28, MOVE_SCREECH),
+ LEVEL_UP_MOVE(38, MOVE_ACID),
+ LEVEL_UP_MOVE(46, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(46, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(46, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(56, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gPikachuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(20, MOVE_SLAM),
+ LEVEL_UP_MOVE(26, MOVE_THUNDERBOLT),
+ LEVEL_UP_MOVE(33, MOVE_AGILITY),
+ LEVEL_UP_MOVE(41, MOVE_THUNDER),
+ LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_END
+};
+
+const u16 gRaichuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT),
+ LEVEL_UP_END
+};
+
+const u16 gSandshrewLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(23, MOVE_SLASH),
+ LEVEL_UP_MOVE(30, MOVE_SWIFT),
+ LEVEL_UP_MOVE(37, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(45, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(53, MOVE_SANDSTORM),
+ LEVEL_UP_END
+};
+
+const u16 gSandslashLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(24, MOVE_SLASH),
+ LEVEL_UP_MOVE(33, MOVE_SWIFT),
+ LEVEL_UP_MOVE(42, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(52, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(62, MOVE_SANDSTORM),
+ LEVEL_UP_END
+};
+
+const u16 gNidoranFLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(17, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(20, MOVE_BITE),
+ LEVEL_UP_MOVE(23, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(38, MOVE_FLATTER),
+ LEVEL_UP_MOVE(47, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gNidorinaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(18, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(22, MOVE_BITE),
+ LEVEL_UP_MOVE(26, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(43, MOVE_FLATTER),
+ LEVEL_UP_MOVE(53, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gNidoqueenLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(23, MOVE_BODY_SLAM),
+ LEVEL_UP_END
+};
+
+const u16 gNidoranMLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(17, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(23, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(30, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(38, MOVE_FLATTER),
+ LEVEL_UP_MOVE(47, MOVE_HORN_DRILL),
+ LEVEL_UP_END
+};
+
+const u16 gNidorinoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(18, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(22, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(26, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(34, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(43, MOVE_FLATTER),
+ LEVEL_UP_MOVE(53, MOVE_HORN_DRILL),
+ LEVEL_UP_END
+};
+
+const u16 gNidokingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(23, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gClefairyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 5, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 9, MOVE_SING),
+ LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(17, MOVE_FOLLOW_ME),
+ LEVEL_UP_MOVE(21, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(25, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(29, MOVE_METRONOME),
+ LEVEL_UP_MOVE(33, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(37, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(45, MOVE_METEOR_MASH),
+ LEVEL_UP_END
+};
+
+const u16 gClefableLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE( 1, MOVE_METRONOME),
+ LEVEL_UP_END
+};
+
+const u16 gVulpixLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_ROAR),
+ LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_WILL_O_WISP),
+ LEVEL_UP_MOVE(21, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(25, MOVE_IMPRISON),
+ LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(33, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(37, MOVE_GRUDGE),
+ LEVEL_UP_MOVE(41, MOVE_FIRE_SPIN),
+ LEVEL_UP_END
+};
+
+const u16 gNinetalesLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(45, MOVE_FIRE_SPIN),
+ LEVEL_UP_END
+};
+
+const u16 gJigglypuffLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 9, MOVE_POUND),
+ LEVEL_UP_MOVE(14, MOVE_DISABLE),
+ LEVEL_UP_MOVE(19, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(24, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(29, MOVE_REST),
+ LEVEL_UP_MOVE(34, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(39, MOVE_MIMIC),
+ LEVEL_UP_MOVE(44, MOVE_HYPER_VOICE),
+ LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gWigglytuffLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_END
+};
+
+const u16 gZubatLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(16, MOVE_BITE),
+ LEVEL_UP_MOVE(21, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(31, MOVE_AIR_CUTTER),
+ LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(41, MOVE_POISON_FANG),
+ LEVEL_UP_MOVE(46, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gGolbatLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(16, MOVE_BITE),
+ LEVEL_UP_MOVE(21, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER),
+ LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(49, MOVE_POISON_FANG),
+ LEVEL_UP_MOVE(56, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gOddishLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(14, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(16, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(23, MOVE_ACID),
+ LEVEL_UP_MOVE(32, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(39, MOVE_PETAL_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gGloomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(14, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(16, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(24, MOVE_ACID),
+ LEVEL_UP_MOVE(35, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gVileplumeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
+ LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gParasLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(25, MOVE_SPORE),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(37, MOVE_GROWTH),
+ LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN),
+ LEVEL_UP_MOVE(49, MOVE_AROMATHERAPY),
+ LEVEL_UP_END
+};
+
+const u16 gParasectLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(27, MOVE_SPORE),
+ LEVEL_UP_MOVE(35, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_GROWTH),
+ LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN),
+ LEVEL_UP_MOVE(59, MOVE_AROMATHERAPY),
+ LEVEL_UP_END
+};
+
+const u16 gVenonatLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(17, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(20, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(28, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(33, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(36, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gVenomothLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(17, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(20, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(28, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(31, MOVE_GUST),
+ LEVEL_UP_MOVE(36, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(42, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(52, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gDiglettLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(17, MOVE_DIG),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(33, MOVE_SLASH),
+ LEVEL_UP_MOVE(41, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(49, MOVE_FISSURE),
+ LEVEL_UP_END
+};
+
+const u16 gDugtrioLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(17, MOVE_DIG),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(26, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(38, MOVE_SLASH),
+ LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(64, MOVE_FISSURE),
+ LEVEL_UP_END
+};
+
+const u16 gMeowthLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE(11, MOVE_BITE),
+ LEVEL_UP_MOVE(20, MOVE_PAY_DAY),
+ LEVEL_UP_MOVE(28, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(35, MOVE_SCREECH),
+ LEVEL_UP_MOVE(41, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(46, MOVE_SLASH),
+ LEVEL_UP_MOVE(50, MOVE_FAKE_OUT),
+ LEVEL_UP_END
+};
+
+const u16 gPersianLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE(11, MOVE_BITE),
+ LEVEL_UP_MOVE(20, MOVE_PAY_DAY),
+ LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(38, MOVE_SCREECH),
+ LEVEL_UP_MOVE(46, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(53, MOVE_SLASH),
+ LEVEL_UP_MOVE(59, MOVE_FAKE_OUT),
+ LEVEL_UP_END
+};
+
+const u16 gPsyduckLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_DISABLE),
+ LEVEL_UP_MOVE(16, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(23, MOVE_SCREECH),
+ LEVEL_UP_MOVE(31, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(40, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gGolduckLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_DISABLE),
+ LEVEL_UP_MOVE(16, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(23, MOVE_SCREECH),
+ LEVEL_UP_MOVE(31, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(44, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gMankeyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 9, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP),
+ LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(33, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(39, MOVE_CROSS_CHOP),
+ LEVEL_UP_MOVE(45, MOVE_SCREECH),
+ LEVEL_UP_MOVE(51, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gPrimeapeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 9, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP),
+ LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(28, MOVE_RAGE),
+ LEVEL_UP_MOVE(36, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(45, MOVE_CROSS_CHOP),
+ LEVEL_UP_MOVE(54, MOVE_SCREECH),
+ LEVEL_UP_MOVE(63, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gGrowlitheLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_ROAR),
+ LEVEL_UP_MOVE( 7, MOVE_EMBER),
+ LEVEL_UP_MOVE(13, MOVE_LEER),
+ LEVEL_UP_MOVE(19, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL),
+ LEVEL_UP_MOVE(37, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gArcanineLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_ROAR),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(49, MOVE_EXTREME_SPEED),
+ LEVEL_UP_END
+};
+
+const u16 gPoliwagLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(31, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM),
+ LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gPoliwhirlLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(35, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM),
+ LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gPoliwrathLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(35, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(51, MOVE_MIND_READER),
+ LEVEL_UP_END
+};
+
+const u16 gAbraLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_END
+};
+
+const u16 gKadabraLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_MOVE( 1, MOVE_KINESIS),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(16, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(18, MOVE_DISABLE),
+ LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(23, MOVE_REFLECT),
+ LEVEL_UP_MOVE(25, MOVE_RECOVER),
+ LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(33, MOVE_ROLE_PLAY),
+ LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_TRICK),
+ LEVEL_UP_END
+};
+
+const u16 gAlakazamLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_MOVE( 1, MOVE_KINESIS),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(16, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(18, MOVE_DISABLE),
+ LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(23, MOVE_REFLECT),
+ LEVEL_UP_MOVE(25, MOVE_RECOVER),
+ LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(33, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_TRICK),
+ LEVEL_UP_END
+};
+
+const u16 gMachopLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP),
+ LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(22, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(25, MOVE_REVENGE),
+ LEVEL_UP_MOVE(31, MOVE_VITAL_THROW),
+ LEVEL_UP_MOVE(37, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(40, MOVE_CROSS_CHOP),
+ LEVEL_UP_MOVE(43, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(49, MOVE_DYNAMIC_PUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gMachokeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP),
+ LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(22, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(25, MOVE_REVENGE),
+ LEVEL_UP_MOVE(33, MOVE_VITAL_THROW),
+ LEVEL_UP_MOVE(41, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP),
+ LEVEL_UP_MOVE(51, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gMachampLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP),
+ LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(22, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(25, MOVE_REVENGE),
+ LEVEL_UP_MOVE(33, MOVE_VITAL_THROW),
+ LEVEL_UP_MOVE(41, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP),
+ LEVEL_UP_MOVE(51, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gBellsproutLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE( 6, MOVE_GROWTH),
+ LEVEL_UP_MOVE(11, MOVE_WRAP),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(17, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(19, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(23, MOVE_ACID),
+ LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(37, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(45, MOVE_SLAM),
+ LEVEL_UP_END
+};
+
+const u16 gWeepinbellLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_GROWTH),
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 6, MOVE_GROWTH),
+ LEVEL_UP_MOVE(11, MOVE_WRAP),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(17, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(19, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(24, MOVE_ACID),
+ LEVEL_UP_MOVE(33, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(42, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(54, MOVE_SLAM),
+ LEVEL_UP_END
+};
+
+const u16 gVictreebelLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
+ LEVEL_UP_END
+};
+
+const u16 gTentacoolLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(12, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(19, MOVE_ACID),
+ LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(30, MOVE_WRAP),
+ LEVEL_UP_MOVE(36, MOVE_BARRIER),
+ LEVEL_UP_MOVE(43, MOVE_SCREECH),
+ LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gTentacruelLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(12, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(19, MOVE_ACID),
+ LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(30, MOVE_WRAP),
+ LEVEL_UP_MOVE(38, MOVE_BARRIER),
+ LEVEL_UP_MOVE(47, MOVE_SCREECH),
+ LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gGeodudeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(26, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(31, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(41, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gGravelerLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(29, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(53, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gGolemLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(29, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(53, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gPonytaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(14, MOVE_EMBER),
+ LEVEL_UP_MOVE(19, MOVE_STOMP),
+ LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(38, MOVE_AGILITY),
+ LEVEL_UP_MOVE(45, MOVE_BOUNCE),
+ LEVEL_UP_MOVE(53, MOVE_FIRE_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gRapidashLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(14, MOVE_EMBER),
+ LEVEL_UP_MOVE(19, MOVE_STOMP),
+ LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(38, MOVE_AGILITY),
+ LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(50, MOVE_BOUNCE),
+ LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gSlowpokeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CURSE),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 6, MOVE_GROWL),
+ LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(20, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(29, MOVE_DISABLE),
+ LEVEL_UP_MOVE(34, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(43, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gSlowbroLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CURSE),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 6, MOVE_GROWL),
+ LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(20, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(29, MOVE_DISABLE),
+ LEVEL_UP_MOVE(34, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(37, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE(46, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(54, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gMagnemiteLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(11, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(26, MOVE_SPARK),
+ LEVEL_UP_MOVE(32, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(38, MOVE_SWIFT),
+ LEVEL_UP_MOVE(44, MOVE_SCREECH),
+ LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON),
+ LEVEL_UP_END
+};
+
+const u16 gMagnetonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(11, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(26, MOVE_SPARK),
+ LEVEL_UP_MOVE(35, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE(53, MOVE_SCREECH),
+ LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON),
+ LEVEL_UP_END
+};
+
+const u16 gFarfetchdLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(11, MOVE_LEER),
+ LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(26, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(31, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(36, MOVE_AGILITY),
+ LEVEL_UP_MOVE(41, MOVE_SLASH),
+ LEVEL_UP_MOVE(46, MOVE_FALSE_SWIPE),
+ LEVEL_UP_END
+};
+
+const u16 gDoduoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_RAGE),
+ LEVEL_UP_MOVE(33, MOVE_UPROAR),
+ LEVEL_UP_MOVE(37, MOVE_DRILL_PECK),
+ LEVEL_UP_MOVE(45, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gDodrioLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
+ LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE( 9, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_RAGE),
+ LEVEL_UP_MOVE(38, MOVE_UPROAR),
+ LEVEL_UP_MOVE(47, MOVE_DRILL_PECK),
+ LEVEL_UP_MOVE(60, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gSeelLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 9, MOVE_GROWL),
+ LEVEL_UP_MOVE(17, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(29, MOVE_REST),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(41, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(49, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gDewgongLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE( 9, MOVE_GROWL),
+ LEVEL_UP_MOVE(17, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(29, MOVE_REST),
+ LEVEL_UP_MOVE(34, MOVE_SHEER_COLD),
+ LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(51, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(64, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gGrimerLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 4, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 8, MOVE_DISABLE),
+ LEVEL_UP_MOVE(13, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(19, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(26, MOVE_SCREECH),
+ LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR),
+ LEVEL_UP_MOVE(43, MOVE_SLUDGE_BOMB),
+ LEVEL_UP_MOVE(53, MOVE_MEMENTO),
+ LEVEL_UP_END
+};
+
+const u16 gMukLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 4, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 8, MOVE_DISABLE),
+ LEVEL_UP_MOVE(13, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(19, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(26, MOVE_SCREECH),
+ LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR),
+ LEVEL_UP_MOVE(47, MOVE_SLUDGE_BOMB),
+ LEVEL_UP_MOVE(61, MOVE_MEMENTO),
+ LEVEL_UP_END
+};
+
+const u16 gShellderLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(25, MOVE_PROTECT),
+ LEVEL_UP_MOVE(33, MOVE_LEER),
+ LEVEL_UP_MOVE(41, MOVE_CLAMP),
+ LEVEL_UP_MOVE(49, MOVE_ICE_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gCloysterLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE( 1, MOVE_PROTECT),
+ LEVEL_UP_MOVE(33, MOVE_SPIKES),
+ LEVEL_UP_MOVE(41, MOVE_SPIKE_CANNON),
+ LEVEL_UP_END
+};
+
+const u16 gGastlyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 8, MOVE_SPITE),
+ LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(16, MOVE_CURSE),
+ LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(33, MOVE_DREAM_EATER),
+ LEVEL_UP_MOVE(36, MOVE_DESTINY_BOND),
+ LEVEL_UP_END
+};
+
+const u16 gHaunterLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 1, MOVE_SPITE),
+ LEVEL_UP_MOVE( 8, MOVE_SPITE),
+ LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(16, MOVE_CURSE),
+ LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH),
+ LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(39, MOVE_DREAM_EATER),
+ LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND),
+ LEVEL_UP_END
+};
+
+const u16 gGengarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 1, MOVE_SPITE),
+ LEVEL_UP_MOVE( 8, MOVE_SPITE),
+ LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(16, MOVE_CURSE),
+ LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH),
+ LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(39, MOVE_DREAM_EATER),
+ LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND),
+ LEVEL_UP_END
+};
+
+const u16 gOnixLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 9, MOVE_BIND),
+ LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(21, MOVE_HARDEN),
+ LEVEL_UP_MOVE(25, MOVE_RAGE),
+ LEVEL_UP_MOVE(33, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(37, MOVE_SLAM),
+ LEVEL_UP_MOVE(45, MOVE_IRON_TAIL),
+ LEVEL_UP_MOVE(49, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gDrowzeeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(10, MOVE_DISABLE),
+ LEVEL_UP_MOVE(18, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(31, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE(36, MOVE_MEDITATE),
+ LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gHypnoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(10, MOVE_DISABLE),
+ LEVEL_UP_MOVE(18, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(33, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE(40, MOVE_MEDITATE),
+ LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(55, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gKrabbyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 5, MOVE_LEER),
+ LEVEL_UP_MOVE(12, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE(16, MOVE_HARDEN),
+ LEVEL_UP_MOVE(23, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(27, MOVE_STOMP),
+ LEVEL_UP_MOVE(34, MOVE_GUILLOTINE),
+ LEVEL_UP_MOVE(41, MOVE_PROTECT),
+ LEVEL_UP_MOVE(45, MOVE_CRABHAMMER),
+ LEVEL_UP_END
+};
+
+const u16 gKinglerLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE( 5, MOVE_LEER),
+ LEVEL_UP_MOVE(12, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE(16, MOVE_HARDEN),
+ LEVEL_UP_MOVE(23, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(27, MOVE_STOMP),
+ LEVEL_UP_MOVE(38, MOVE_GUILLOTINE),
+ LEVEL_UP_MOVE(49, MOVE_PROTECT),
+ LEVEL_UP_MOVE(57, MOVE_CRABHAMMER),
+ LEVEL_UP_END
+};
+
+const u16 gVoltorbLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CHARGE),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 8, MOVE_SCREECH),
+ LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE(21, MOVE_SPARK),
+ LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(32, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(42, MOVE_SWIFT),
+ LEVEL_UP_MOVE(46, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(49, MOVE_MIRROR_COAT),
+ LEVEL_UP_END
+};
+
+const u16 gElectrodeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CHARGE),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE( 8, MOVE_SCREECH),
+ LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE(21, MOVE_SPARK),
+ LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(34, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(48, MOVE_SWIFT),
+ LEVEL_UP_MOVE(54, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(59, MOVE_MIRROR_COAT),
+ LEVEL_UP_END
+};
+
+const u16 gExeggcuteLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
+ LEVEL_UP_MOVE( 1, MOVE_UPROAR),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 7, MOVE_REFLECT),
+ LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(19, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(25, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(31, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(37, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gExeggutorLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(19, MOVE_STOMP),
+ LEVEL_UP_MOVE(31, MOVE_EGG_BOMB),
+ LEVEL_UP_END
+};
+
+const u16 gCuboneLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB),
+ LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(17, MOVE_LEER),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(25, MOVE_BONEMERANG),
+ LEVEL_UP_MOVE(29, MOVE_RAGE),
+ LEVEL_UP_MOVE(33, MOVE_FALSE_SWIPE),
+ LEVEL_UP_MOVE(37, MOVE_THRASH),
+ LEVEL_UP_MOVE(41, MOVE_BONE_RUSH),
+ LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gMarowakLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB),
+ LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(17, MOVE_LEER),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(25, MOVE_BONEMERANG),
+ LEVEL_UP_MOVE(32, MOVE_RAGE),
+ LEVEL_UP_MOVE(39, MOVE_FALSE_SWIPE),
+ LEVEL_UP_MOVE(46, MOVE_THRASH),
+ LEVEL_UP_MOVE(53, MOVE_BONE_RUSH),
+ LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gHitmonleeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_REVENGE),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE( 6, MOVE_MEDITATE),
+ LEVEL_UP_MOVE(11, MOVE_ROLLING_KICK),
+ LEVEL_UP_MOVE(16, MOVE_JUMP_KICK),
+ LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(26, MOVE_HI_JUMP_KICK),
+ LEVEL_UP_MOVE(31, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(36, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(41, MOVE_ENDURE),
+ LEVEL_UP_MOVE(46, MOVE_MEGA_KICK),
+ LEVEL_UP_MOVE(51, MOVE_REVERSAL),
+ LEVEL_UP_END
+};
+
+const u16 gHitmonchanLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_REVENGE),
+ LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
+ LEVEL_UP_MOVE( 7, MOVE_AGILITY),
+ LEVEL_UP_MOVE(13, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(20, MOVE_MACH_PUNCH),
+ LEVEL_UP_MOVE(26, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE(26, MOVE_ICE_PUNCH),
+ LEVEL_UP_MOVE(26, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE(32, MOVE_SKY_UPPERCUT),
+ LEVEL_UP_MOVE(38, MOVE_MEGA_PUNCH),
+ LEVEL_UP_MOVE(44, MOVE_DETECT),
+ LEVEL_UP_MOVE(50, MOVE_COUNTER),
+ LEVEL_UP_END
+};
+
+const u16 gLickitungLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(12, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(18, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(23, MOVE_STOMP),
+ LEVEL_UP_MOVE(29, MOVE_WRAP),
+ LEVEL_UP_MOVE(34, MOVE_DISABLE),
+ LEVEL_UP_MOVE(40, MOVE_SLAM),
+ LEVEL_UP_MOVE(45, MOVE_SCREECH),
+ LEVEL_UP_MOVE(51, MOVE_REFRESH),
+ LEVEL_UP_END
+};
+
+const u16 gKoffingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 9, MOVE_SMOG),
+ LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(21, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(33, MOVE_HAZE),
+ LEVEL_UP_MOVE(41, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(45, MOVE_DESTINY_BOND),
+ LEVEL_UP_MOVE(49, MOVE_MEMENTO),
+ LEVEL_UP_END
+};
+
+const u16 gWeezingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SMOG),
+ LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE( 9, MOVE_SMOG),
+ LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(21, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(33, MOVE_HAZE),
+ LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(51, MOVE_DESTINY_BOND),
+ LEVEL_UP_MOVE(58, MOVE_MEMENTO),
+ LEVEL_UP_END
+};
+
+const u16 gRhyhornLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_STOMP),
+ LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(38, MOVE_HORN_DRILL),
+ LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(57, MOVE_MEGAHORN),
+ LEVEL_UP_END
+};
+
+const u16 gRhydonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_STOMP),
+ LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(10, MOVE_STOMP),
+ LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(38, MOVE_HORN_DRILL),
+ LEVEL_UP_MOVE(46, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(58, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(66, MOVE_MEGAHORN),
+ LEVEL_UP_END
+};
+
+const u16 gChanseyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_REFRESH),
+ LEVEL_UP_MOVE(13, MOVE_SOFT_BOILED),
+ LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(23, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(29, MOVE_SING),
+ LEVEL_UP_MOVE(35, MOVE_EGG_BOMB),
+ LEVEL_UP_MOVE(41, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(49, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gTangelaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(10, MOVE_ABSORB),
+ LEVEL_UP_MOVE(13, MOVE_GROWTH),
+ LEVEL_UP_MOVE(19, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE(28, MOVE_BIND),
+ LEVEL_UP_MOVE(31, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(37, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(40, MOVE_SLAM),
+ LEVEL_UP_MOVE(46, MOVE_TICKLE),
+ LEVEL_UP_END
+};
+
+const u16 gKangaskhanLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_BITE),
+ LEVEL_UP_MOVE(13, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(25, MOVE_MEGA_PUNCH),
+ LEVEL_UP_MOVE(31, MOVE_RAGE),
+ LEVEL_UP_MOVE(37, MOVE_ENDURE),
+ LEVEL_UP_MOVE(43, MOVE_DIZZY_PUNCH),
+ LEVEL_UP_MOVE(49, MOVE_REVERSAL),
+ LEVEL_UP_END
+};
+
+const u16 gHorseaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(15, MOVE_LEER),
+ LEVEL_UP_MOVE(22, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(29, MOVE_TWISTER),
+ LEVEL_UP_MOVE(36, MOVE_AGILITY),
+ LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gSeadraLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(15, MOVE_LEER),
+ LEVEL_UP_MOVE(22, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(29, MOVE_TWISTER),
+ LEVEL_UP_MOVE(40, MOVE_AGILITY),
+ LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gGoldeenLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(10, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(24, MOVE_FLAIL),
+ LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(38, MOVE_WATERFALL),
+ LEVEL_UP_MOVE(43, MOVE_HORN_DRILL),
+ LEVEL_UP_MOVE(52, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gSeakingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(10, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(24, MOVE_FLAIL),
+ LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(41, MOVE_WATERFALL),
+ LEVEL_UP_MOVE(49, MOVE_HORN_DRILL),
+ LEVEL_UP_MOVE(61, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gStaryuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(10, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(15, MOVE_RECOVER),
+ LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE),
+ LEVEL_UP_MOVE(24, MOVE_SWIFT),
+ LEVEL_UP_MOVE(28, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(33, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gStarmieLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE( 1, MOVE_RECOVER),
+ LEVEL_UP_MOVE( 1, MOVE_SWIFT),
+ LEVEL_UP_MOVE(33, MOVE_CONFUSE_RAY),
+ LEVEL_UP_END
+};
+
+const u16 gMrmimeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BARRIER),
+ LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 9, MOVE_SUBSTITUTE),
+ LEVEL_UP_MOVE(13, MOVE_MEDITATE),
+ LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(21, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(21, MOVE_REFLECT),
+ LEVEL_UP_MOVE(25, MOVE_ENCORE),
+ LEVEL_UP_MOVE(29, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(33, MOVE_RECYCLE),
+ LEVEL_UP_MOVE(37, MOVE_TRICK),
+ LEVEL_UP_MOVE(41, MOVE_ROLE_PLAY),
+ LEVEL_UP_MOVE(45, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(49, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(53, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gScytherLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(11, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(16, MOVE_FALSE_SWIPE),
+ LEVEL_UP_MOVE(21, MOVE_AGILITY),
+ LEVEL_UP_MOVE(26, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(41, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER),
+ LEVEL_UP_END
+};
+
+const u16 gJynxLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS),
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 9, MOVE_LOVELY_KISS),
+ LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(25, MOVE_ICE_PUNCH),
+ LEVEL_UP_MOVE(35, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(41, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(51, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(57, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(67, MOVE_BLIZZARD),
+ LEVEL_UP_END
+};
+
+const u16 gElectabuzzLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(25, MOVE_SWIFT),
+ LEVEL_UP_MOVE(36, MOVE_SCREECH),
+ LEVEL_UP_MOVE(47, MOVE_THUNDERBOLT),
+ LEVEL_UP_MOVE(58, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gMagmarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SMOG),
+ LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE( 7, MOVE_LEER),
+ LEVEL_UP_MOVE(13, MOVE_SMOG),
+ LEVEL_UP_MOVE(19, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(33, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(49, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(57, MOVE_FIRE_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gPinsirLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 7, MOVE_BIND),
+ LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(19, MOVE_HARDEN),
+ LEVEL_UP_MOVE(25, MOVE_REVENGE),
+ LEVEL_UP_MOVE(31, MOVE_BRICK_BREAK),
+ LEVEL_UP_MOVE(37, MOVE_GUILLOTINE),
+ LEVEL_UP_MOVE(43, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gTaurosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 8, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(26, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(34, MOVE_REST),
+ LEVEL_UP_MOVE(43, MOVE_THRASH),
+ LEVEL_UP_MOVE(53, MOVE_TAKE_DOWN),
+ LEVEL_UP_END
+};
+
+const u16 gMagikarpLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE(15, MOVE_TACKLE),
+ LEVEL_UP_MOVE(30, MOVE_FLAIL),
+ LEVEL_UP_END
+};
+
+const u16 gGyaradosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_THRASH),
+ LEVEL_UP_MOVE(20, MOVE_BITE),
+ LEVEL_UP_MOVE(25, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(30, MOVE_LEER),
+ LEVEL_UP_MOVE(35, MOVE_TWISTER),
+ LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE),
+ LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gLaprasLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 7, MOVE_MIST),
+ LEVEL_UP_MOVE(13, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(25, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(31, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(43, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(55, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gDittoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TRANSFORM),
+ LEVEL_UP_END
+};
+
+const u16 gEeveeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_GROWL),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_BITE),
+ LEVEL_UP_MOVE(36, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
+ LEVEL_UP_END
+};
+
+const u16 gVaporeonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_BITE),
+ LEVEL_UP_MOVE(36, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(42, MOVE_HAZE),
+ LEVEL_UP_MOVE(47, MOVE_ACID_ARMOR),
+ LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gJolteonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(42, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(47, MOVE_AGILITY),
+ LEVEL_UP_MOVE(52, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gFlareonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_EMBER),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_BITE),
+ LEVEL_UP_MOVE(36, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(42, MOVE_SMOG),
+ LEVEL_UP_MOVE(47, MOVE_LEER),
+ LEVEL_UP_MOVE(52, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gPorygonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
+ LEVEL_UP_MOVE( 9, MOVE_AGILITY),
+ LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(20, MOVE_RECOVER),
+ LEVEL_UP_MOVE(24, MOVE_SHARPEN),
+ LEVEL_UP_MOVE(32, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE(44, MOVE_RECYCLE),
+ LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON),
+ LEVEL_UP_END
+};
+
+const u16 gOmanyteLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(31, MOVE_LEER),
+ LEVEL_UP_MOVE(37, MOVE_PROTECT),
+ LEVEL_UP_MOVE(43, MOVE_TICKLE),
+ LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gOmastarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(31, MOVE_LEER),
+ LEVEL_UP_MOVE(37, MOVE_PROTECT),
+ LEVEL_UP_MOVE(40, MOVE_SPIKE_CANNON),
+ LEVEL_UP_MOVE(46, MOVE_TICKLE),
+ LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gKabutoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE(13, MOVE_ABSORB),
+ LEVEL_UP_MOVE(19, MOVE_LEER),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(37, MOVE_ENDURE),
+ LEVEL_UP_MOVE(43, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE(49, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gKabutopsLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE(13, MOVE_ABSORB),
+ LEVEL_UP_MOVE(19, MOVE_LEER),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(37, MOVE_ENDURE),
+ LEVEL_UP_MOVE(40, MOVE_SLASH),
+ LEVEL_UP_MOVE(46, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE(55, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(65, MOVE_ANCIENT_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gAerodactylLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE( 8, MOVE_AGILITY),
+ LEVEL_UP_MOVE(15, MOVE_BITE),
+ LEVEL_UP_MOVE(22, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gSnorlaxLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 6, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(15, MOVE_BELLY_DRUM),
+ LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(24, MOVE_YAWN),
+ LEVEL_UP_MOVE(28, MOVE_REST),
+ LEVEL_UP_MOVE(28, MOVE_SNORE),
+ LEVEL_UP_MOVE(33, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(37, MOVE_BLOCK),
+ LEVEL_UP_MOVE(42, MOVE_COVET),
+ LEVEL_UP_MOVE(46, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(51, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gArticunoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GUST),
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(13, MOVE_MIST),
+ LEVEL_UP_MOVE(25, MOVE_AGILITY),
+ LEVEL_UP_MOVE(37, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(49, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(61, MOVE_REFLECT),
+ LEVEL_UP_MOVE(73, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(85, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gZapdosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(25, MOVE_AGILITY),
+ LEVEL_UP_MOVE(37, MOVE_DETECT),
+ LEVEL_UP_MOVE(49, MOVE_DRILL_PECK),
+ LEVEL_UP_MOVE(61, MOVE_CHARGE),
+ LEVEL_UP_MOVE(73, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(85, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gMoltresLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(25, MOVE_AGILITY),
+ LEVEL_UP_MOVE(37, MOVE_ENDURE),
+ LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(61, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(73, MOVE_HEAT_WAVE),
+ LEVEL_UP_MOVE(85, MOVE_SKY_ATTACK),
+ LEVEL_UP_END
+};
+
+const u16 gDratiniLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(15, MOVE_TWISTER),
+ LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(29, MOVE_SLAM),
+ LEVEL_UP_MOVE(36, MOVE_AGILITY),
+ LEVEL_UP_MOVE(43, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(50, MOVE_OUTRAGE),
+ LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gDragonairLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 1, MOVE_TWISTER),
+ LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(15, MOVE_TWISTER),
+ LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(29, MOVE_SLAM),
+ LEVEL_UP_MOVE(38, MOVE_AGILITY),
+ LEVEL_UP_MOVE(47, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(56, MOVE_OUTRAGE),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gDragoniteLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 1, MOVE_TWISTER),
+ LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(15, MOVE_TWISTER),
+ LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(29, MOVE_SLAM),
+ LEVEL_UP_MOVE(38, MOVE_AGILITY),
+ LEVEL_UP_MOVE(47, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(55, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(61, MOVE_OUTRAGE),
+ LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gMewtwoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE(11, MOVE_BARRIER),
+ LEVEL_UP_MOVE(22, MOVE_SWIFT),
+ LEVEL_UP_MOVE(33, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(55, MOVE_MIST),
+ LEVEL_UP_MOVE(66, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(77, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(88, MOVE_RECOVER),
+ LEVEL_UP_MOVE(99, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gMewLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE(10, MOVE_TRANSFORM),
+ LEVEL_UP_MOVE(20, MOVE_MEGA_PUNCH),
+ LEVEL_UP_MOVE(30, MOVE_METRONOME),
+ LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(50, MOVE_ANCIENT_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gChikoritaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(12, MOVE_REFLECT),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(29, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(43, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gBayleefLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE( 1, MOVE_REFLECT),
+ LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(12, MOVE_REFLECT),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(23, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(31, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(39, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(47, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gMeganiumLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE( 1, MOVE_REFLECT),
+ LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(12, MOVE_REFLECT),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(23, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(31, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(51, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(61, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gCyndaquilLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(12, MOVE_EMBER),
+ LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(27, MOVE_FLAME_WHEEL),
+ LEVEL_UP_MOVE(36, MOVE_SWIFT),
+ LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gQuilavaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(12, MOVE_EMBER),
+ LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL),
+ LEVEL_UP_MOVE(42, MOVE_SWIFT),
+ LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gTyphlosionLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(12, MOVE_EMBER),
+ LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL),
+ LEVEL_UP_MOVE(45, MOVE_SWIFT),
+ LEVEL_UP_MOVE(60, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gTotodileLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(20, MOVE_BITE),
+ LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(35, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_SCREECH),
+ LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gCroconawLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 7, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(21, MOVE_BITE),
+ LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(37, MOVE_SLASH),
+ LEVEL_UP_MOVE(45, MOVE_SCREECH),
+ LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gFeraligatrLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(21, MOVE_BITE),
+ LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(38, MOVE_SLASH),
+ LEVEL_UP_MOVE(47, MOVE_SCREECH),
+ LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gSentretLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(17, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(24, MOVE_SLAM),
+ LEVEL_UP_MOVE(31, MOVE_FOLLOW_ME),
+ LEVEL_UP_MOVE(40, MOVE_REST),
+ LEVEL_UP_MOVE(49, MOVE_AMNESIA),
+ LEVEL_UP_END
+};
+
+const u16 gFurretLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(28, MOVE_SLAM),
+ LEVEL_UP_MOVE(37, MOVE_FOLLOW_ME),
+ LEVEL_UP_MOVE(48, MOVE_REST),
+ LEVEL_UP_MOVE(59, MOVE_AMNESIA),
+ LEVEL_UP_END
+};
+
+const u16 gHoothootLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 6, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(11, MOVE_PECK),
+ LEVEL_UP_MOVE(16, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(22, MOVE_REFLECT),
+ LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(34, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(48, MOVE_DREAM_EATER),
+ LEVEL_UP_END
+};
+
+const u16 gNoctowlLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 6, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(11, MOVE_PECK),
+ LEVEL_UP_MOVE(16, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(25, MOVE_REFLECT),
+ LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(41, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(57, MOVE_DREAM_EATER),
+ LEVEL_UP_END
+};
+
+const u16 gLedybaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH),
+ LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(22, MOVE_REFLECT),
+ LEVEL_UP_MOVE(22, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(29, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(36, MOVE_SWIFT),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gLedianLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH),
+ LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(24, MOVE_REFLECT),
+ LEVEL_UP_MOVE(24, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(33, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(42, MOVE_SWIFT),
+ LEVEL_UP_MOVE(51, MOVE_AGILITY),
+ LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gSpinarakLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
+ LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(11, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(23, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(37, MOVE_SPIDER_WEB),
+ LEVEL_UP_MOVE(45, MOVE_AGILITY),
+ LEVEL_UP_MOVE(53, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gAriadosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
+ LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(11, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(43, MOVE_SPIDER_WEB),
+ LEVEL_UP_MOVE(53, MOVE_AGILITY),
+ LEVEL_UP_MOVE(63, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gCrobatLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(16, MOVE_BITE),
+ LEVEL_UP_MOVE(21, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER),
+ LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(49, MOVE_POISON_FANG),
+ LEVEL_UP_MOVE(56, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gChinchouLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(13, MOVE_FLAIL),
+ LEVEL_UP_MOVE(17, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_SPARK),
+ LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(49, MOVE_CHARGE),
+ LEVEL_UP_END
+};
+
+const u16 gLanturnLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(13, MOVE_FLAIL),
+ LEVEL_UP_MOVE(17, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_SPARK),
+ LEVEL_UP_MOVE(32, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(61, MOVE_CHARGE),
+ LEVEL_UP_END
+};
+
+const u16 gPichuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(11, MOVE_SWEET_KISS),
+ LEVEL_UP_END
+};
+
+const u16 gCleffaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 4, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 8, MOVE_SING),
+ LEVEL_UP_MOVE(13, MOVE_SWEET_KISS),
+ LEVEL_UP_END
+};
+
+const u16 gIgglybuffLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 9, MOVE_POUND),
+ LEVEL_UP_MOVE(14, MOVE_SWEET_KISS),
+ LEVEL_UP_END
+};
+
+const u16 gTogepiLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 6, MOVE_METRONOME),
+ LEVEL_UP_MOVE(11, MOVE_SWEET_KISS),
+ LEVEL_UP_MOVE(16, MOVE_YAWN),
+ LEVEL_UP_MOVE(21, MOVE_ENCORE),
+ LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME),
+ LEVEL_UP_MOVE(31, MOVE_WISH),
+ LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gTogeticLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 6, MOVE_METRONOME),
+ LEVEL_UP_MOVE(11, MOVE_SWEET_KISS),
+ LEVEL_UP_MOVE(16, MOVE_YAWN),
+ LEVEL_UP_MOVE(21, MOVE_ENCORE),
+ LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME),
+ LEVEL_UP_MOVE(31, MOVE_WISH),
+ LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gNatuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(20, MOVE_TELEPORT),
+ LEVEL_UP_MOVE(30, MOVE_WISH),
+ LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(50, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gXatuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(20, MOVE_TELEPORT),
+ LEVEL_UP_MOVE(35, MOVE_WISH),
+ LEVEL_UP_MOVE(35, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(65, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gMareepLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(23, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(37, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gFlaaffyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(45, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gAmpharosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(30, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(57, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gBellossomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
+ LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE),
+ LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gMarillLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(28, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gAzumarillLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gSudowoodoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE( 1, MOVE_MIMIC),
+ LEVEL_UP_MOVE( 9, MOVE_FLAIL),
+ LEVEL_UP_MOVE(17, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(33, MOVE_BLOCK),
+ LEVEL_UP_MOVE(41, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(49, MOVE_SLAM),
+ LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gPolitoedLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(35, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(51, MOVE_SWAGGER),
+ LEVEL_UP_END
+};
+
+const u16 gHoppipLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_TACKLE),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(20, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(25, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(30, MOVE_MEGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gSkiploomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_TACKLE),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(29, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gJumpluffLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_TACKLE),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(33, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(44, MOVE_MEGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gAipomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(18, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(25, MOVE_TICKLE),
+ LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(38, MOVE_SWIFT),
+ LEVEL_UP_MOVE(43, MOVE_SCREECH),
+ LEVEL_UP_MOVE(50, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gSunkernLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 6, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(18, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(25, MOVE_ENDEAVOR),
+ LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(37, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gSunfloraLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 6, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(18, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(25, MOVE_BULLET_SEED),
+ LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(37, MOVE_PETAL_DANCE),
+ LEVEL_UP_MOVE(42, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gYanmaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(19, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE(25, MOVE_DETECT),
+ LEVEL_UP_MOVE(31, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(37, MOVE_UPROAR),
+ LEVEL_UP_MOVE(43, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(49, MOVE_SCREECH),
+ LEVEL_UP_END
+};
+
+const u16 gWooperLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(11, MOVE_SLAM),
+ LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(21, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(31, MOVE_YAWN),
+ LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(51, MOVE_MIST),
+ LEVEL_UP_MOVE(51, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gQuagsireLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(11, MOVE_SLAM),
+ LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(23, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(35, MOVE_YAWN),
+ LEVEL_UP_MOVE(42, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(49, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(61, MOVE_MIST),
+ LEVEL_UP_MOVE(61, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gEspeonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_SWIFT),
+ LEVEL_UP_MOVE(36, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(42, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(47, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(52, MOVE_MORNING_SUN),
+ LEVEL_UP_END
+};
+
+const u16 gUmbreonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(36, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(47, MOVE_SCREECH),
+ LEVEL_UP_MOVE(52, MOVE_MOONLIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gMurkrowLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(14, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(22, MOVE_HAZE),
+ LEVEL_UP_MOVE(27, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(35, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(40, MOVE_TAUNT),
+ LEVEL_UP_MOVE(48, MOVE_MEAN_LOOK),
+ LEVEL_UP_END
+};
+
+const u16 gSlowkingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CURSE),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 6, MOVE_GROWL),
+ LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(20, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(29, MOVE_DISABLE),
+ LEVEL_UP_MOVE(34, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(43, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gMisdreavusLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE( 6, MOVE_SPITE),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(23, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(30, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(37, MOVE_PAIN_SPLIT),
+ LEVEL_UP_MOVE(45, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(53, MOVE_GRUDGE),
+ LEVEL_UP_END
+};
+
+const u16 gUnownLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gWobbuffetLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_COUNTER),
+ LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
+ LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
+ LEVEL_UP_END
+};
+
+const u16 gGirafarigLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(13, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(19, MOVE_STOMP),
+ LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(31, MOVE_AGILITY),
+ LEVEL_UP_MOVE(37, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(43, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(49, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gPinecoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_PROTECT),
+ LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(29, MOVE_BIDE),
+ LEVEL_UP_MOVE(36, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(43, MOVE_SPIKES),
+ LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gForretressLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_PROTECT),
+ LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(29, MOVE_BIDE),
+ LEVEL_UP_MOVE(39, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(49, MOVE_SPIKES),
+ LEVEL_UP_MOVE(59, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gDunsparceLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(11, MOVE_YAWN),
+ LEVEL_UP_MOVE(14, MOVE_GLARE),
+ LEVEL_UP_MOVE(21, MOVE_SPITE),
+ LEVEL_UP_MOVE(24, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(31, MOVE_SCREECH),
+ LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(41, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gGligarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_HARDEN),
+ LEVEL_UP_MOVE(20, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(28, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(36, MOVE_SLASH),
+ LEVEL_UP_MOVE(44, MOVE_SCREECH),
+ LEVEL_UP_MOVE(52, MOVE_GUILLOTINE),
+ LEVEL_UP_END
+};
+
+const u16 gSteelixLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 9, MOVE_BIND),
+ LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(21, MOVE_HARDEN),
+ LEVEL_UP_MOVE(25, MOVE_RAGE),
+ LEVEL_UP_MOVE(33, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(37, MOVE_SLAM),
+ LEVEL_UP_MOVE(45, MOVE_IRON_TAIL),
+ LEVEL_UP_MOVE(49, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gSnubbullLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 8, MOVE_CHARM),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(19, MOVE_LICK),
+ LEVEL_UP_MOVE(26, MOVE_ROAR),
+ LEVEL_UP_MOVE(34, MOVE_RAGE),
+ LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(53, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gGranbullLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 8, MOVE_CHARM),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(19, MOVE_LICK),
+ LEVEL_UP_MOVE(28, MOVE_ROAR),
+ LEVEL_UP_MOVE(38, MOVE_RAGE),
+ LEVEL_UP_MOVE(49, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(61, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gQwilfishLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPIKES),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(10, MOVE_HARDEN),
+ LEVEL_UP_MOVE(10, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gScizorLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(11, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(16, MOVE_FALSE_SWIPE),
+ LEVEL_UP_MOVE(21, MOVE_AGILITY),
+ LEVEL_UP_MOVE(26, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(41, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER),
+ LEVEL_UP_END
+};
+
+const u16 gShuckleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE( 9, MOVE_WRAP),
+ LEVEL_UP_MOVE(14, MOVE_ENCORE),
+ LEVEL_UP_MOVE(23, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(28, MOVE_BIDE),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_END
+};
+
+const u16 gHeracrossLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 6, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(11, MOVE_ENDURE),
+ LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(23, MOVE_BRICK_BREAK),
+ LEVEL_UP_MOVE(30, MOVE_COUNTER),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(45, MOVE_REVERSAL),
+ LEVEL_UP_MOVE(53, MOVE_MEGAHORN),
+ LEVEL_UP_END
+};
+
+const u16 gSneaselLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_TAUNT),
+ LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(15, MOVE_SCREECH),
+ LEVEL_UP_MOVE(22, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(36, MOVE_AGILITY),
+ LEVEL_UP_MOVE(43, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(50, MOVE_SLASH),
+ LEVEL_UP_MOVE(57, MOVE_BEAT_UP),
+ LEVEL_UP_MOVE(64, MOVE_METAL_CLAW),
+ LEVEL_UP_END
+};
+
+const u16 gTeddiursaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_LICK),
+ LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(25, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_REST),
+ LEVEL_UP_MOVE(37, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_SNORE),
+ LEVEL_UP_MOVE(49, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gUrsaringLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE( 7, MOVE_LICK),
+ LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(25, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_REST),
+ LEVEL_UP_MOVE(37, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_SNORE),
+ LEVEL_UP_MOVE(49, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gSlugmaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_SMOG),
+ LEVEL_UP_MOVE( 8, MOVE_EMBER),
+ LEVEL_UP_MOVE(15, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(22, MOVE_HARDEN),
+ LEVEL_UP_MOVE(29, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(43, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(50, MOVE_BODY_SLAM),
+ LEVEL_UP_END
+};
+
+const u16 gMagcargoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_SMOG),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE( 8, MOVE_EMBER),
+ LEVEL_UP_MOVE(15, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(22, MOVE_HARDEN),
+ LEVEL_UP_MOVE(29, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(48, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(60, MOVE_BODY_SLAM),
+ LEVEL_UP_END
+};
+
+const u16 gSwinubLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(19, MOVE_ENDURE),
+ LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(37, MOVE_MIST),
+ LEVEL_UP_MOVE(46, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(55, MOVE_AMNESIA),
+ LEVEL_UP_END
+};
+
+const u16 gPiloswineLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_ENDURE),
+ LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(19, MOVE_ENDURE),
+ LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(42, MOVE_MIST),
+ LEVEL_UP_MOVE(56, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(70, MOVE_AMNESIA),
+ LEVEL_UP_END
+};
+
+const u16 gCorsolaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 6, MOVE_HARDEN),
+ LEVEL_UP_MOVE(12, MOVE_BUBBLE),
+ LEVEL_UP_MOVE(17, MOVE_RECOVER),
+ LEVEL_UP_MOVE(17, MOVE_REFRESH),
+ LEVEL_UP_MOVE(23, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(28, MOVE_SPIKE_CANNON),
+ LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(39, MOVE_MIRROR_COAT),
+ LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gRemoraidLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(11, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(44, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gOctilleryLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(11, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(25, MOVE_OCTAZOOKA),
+ LEVEL_UP_MOVE(38, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(54, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(70, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gDelibirdLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PRESENT),
+ LEVEL_UP_END
+};
+
+const u16 gMantineLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(29, MOVE_AGILITY),
+ LEVEL_UP_MOVE(36, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(43, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY),
+ LEVEL_UP_END
+};
+
+const u16 gSkarmoryLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_SWIFT),
+ LEVEL_UP_MOVE(16, MOVE_AGILITY),
+ LEVEL_UP_MOVE(26, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(29, MOVE_AIR_CUTTER),
+ LEVEL_UP_MOVE(32, MOVE_STEEL_WING),
+ LEVEL_UP_MOVE(42, MOVE_SPIKES),
+ LEVEL_UP_MOVE(45, MOVE_METAL_SOUND),
+ LEVEL_UP_END
+};
+
+const u16 gHoundourLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 7, MOVE_HOWL),
+ LEVEL_UP_MOVE(13, MOVE_SMOG),
+ LEVEL_UP_MOVE(19, MOVE_ROAR),
+ LEVEL_UP_MOVE(25, MOVE_BITE),
+ LEVEL_UP_MOVE(31, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(37, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(49, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gHoundoomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_HOWL),
+ LEVEL_UP_MOVE( 7, MOVE_HOWL),
+ LEVEL_UP_MOVE(13, MOVE_SMOG),
+ LEVEL_UP_MOVE(19, MOVE_ROAR),
+ LEVEL_UP_MOVE(27, MOVE_BITE),
+ LEVEL_UP_MOVE(35, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(43, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(59, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gKingdraLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(15, MOVE_LEER),
+ LEVEL_UP_MOVE(22, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(29, MOVE_TWISTER),
+ LEVEL_UP_MOVE(40, MOVE_AGILITY),
+ LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gPhanpyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(17, MOVE_FLAIL),
+ LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(33, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(41, MOVE_ENDURE),
+ LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gDonphanLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(17, MOVE_FLAIL),
+ LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(33, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(41, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE),
+ LEVEL_UP_END
+};
+
+const u16 gPorygon2LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
+ LEVEL_UP_MOVE( 9, MOVE_AGILITY),
+ LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(20, MOVE_RECOVER),
+ LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(32, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE(44, MOVE_RECYCLE),
+ LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON),
+ LEVEL_UP_END
+};
+
+const u16 gStantlerLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 7, MOVE_LEER),
+ LEVEL_UP_MOVE(13, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(19, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(25, MOVE_STOMP),
+ LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(49, MOVE_CALM_MIND),
+ LEVEL_UP_END
+};
+
+const u16 gSmeargleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SKETCH),
+ LEVEL_UP_MOVE(11, MOVE_SKETCH),
+ LEVEL_UP_MOVE(21, MOVE_SKETCH),
+ LEVEL_UP_MOVE(31, MOVE_SKETCH),
+ LEVEL_UP_MOVE(41, MOVE_SKETCH),
+ LEVEL_UP_MOVE(51, MOVE_SKETCH),
+ LEVEL_UP_MOVE(61, MOVE_SKETCH),
+ LEVEL_UP_MOVE(71, MOVE_SKETCH),
+ LEVEL_UP_MOVE(81, MOVE_SKETCH),
+ LEVEL_UP_MOVE(91, MOVE_SKETCH),
+ LEVEL_UP_END
+};
+
+const u16 gTyrogueLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gHitmontopLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_REVENGE),
+ LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(20, MOVE_TRIPLE_KICK),
+ LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(31, MOVE_COUNTER),
+ LEVEL_UP_MOVE(37, MOVE_AGILITY),
+ LEVEL_UP_MOVE(43, MOVE_DETECT),
+ LEVEL_UP_MOVE(49, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gSmoochumLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS),
+ LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(21, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(25, MOVE_SING),
+ LEVEL_UP_MOVE(33, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(37, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(45, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(49, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(57, MOVE_BLIZZARD),
+ LEVEL_UP_END
+};
+
+const u16 gElekidLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(25, MOVE_SWIFT),
+ LEVEL_UP_MOVE(33, MOVE_SCREECH),
+ LEVEL_UP_MOVE(41, MOVE_THUNDERBOLT),
+ LEVEL_UP_MOVE(49, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gMagbyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 7, MOVE_LEER),
+ LEVEL_UP_MOVE(13, MOVE_SMOG),
+ LEVEL_UP_MOVE(19, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(49, MOVE_FIRE_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gMiltankLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_GROWL),
+ LEVEL_UP_MOVE( 8, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(13, MOVE_STOMP),
+ LEVEL_UP_MOVE(19, MOVE_MILK_DRINK),
+ LEVEL_UP_MOVE(26, MOVE_BIDE),
+ LEVEL_UP_MOVE(34, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(43, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(53, MOVE_HEAL_BELL),
+ LEVEL_UP_END
+};
+
+const u16 gBlisseyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_REFRESH),
+ LEVEL_UP_MOVE(10, MOVE_SOFT_BOILED),
+ LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(18, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(23, MOVE_SING),
+ LEVEL_UP_MOVE(28, MOVE_EGG_BOMB),
+ LEVEL_UP_MOVE(33, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gRaikouLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(41, MOVE_SPARK),
+ LEVEL_UP_MOVE(51, MOVE_REFLECT),
+ LEVEL_UP_MOVE(61, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(71, MOVE_THUNDER),
+ LEVEL_UP_MOVE(81, MOVE_CALM_MIND),
+ LEVEL_UP_END
+};
+
+const u16 gEnteiLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE(11, MOVE_EMBER),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(31, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(41, MOVE_STOMP),
+ LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(61, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST),
+ LEVEL_UP_MOVE(81, MOVE_CALM_MIND),
+ LEVEL_UP_END
+};
+
+const u16 gSuicuneLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE(11, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(21, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(31, MOVE_GUST),
+ LEVEL_UP_MOVE(41, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(51, MOVE_MIST),
+ LEVEL_UP_MOVE(61, MOVE_MIRROR_COAT),
+ LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(81, MOVE_CALM_MIND),
+ LEVEL_UP_END
+};
+
+const u16 gLarvitarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 8, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(15, MOVE_SCREECH),
+ LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(29, MOVE_THRASH),
+ LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(43, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gPupitarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 8, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(15, MOVE_SCREECH),
+ LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(29, MOVE_THRASH),
+ LEVEL_UP_MOVE(38, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(47, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(56, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gTyranitarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 8, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(15, MOVE_SCREECH),
+ LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(29, MOVE_THRASH),
+ LEVEL_UP_MOVE(38, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(47, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(61, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gLugiaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(11, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(22, MOVE_GUST),
+ LEVEL_UP_MOVE(33, MOVE_RECOVER),
+ LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(66, MOVE_SWIFT),
+ LEVEL_UP_MOVE(77, MOVE_AEROBLAST),
+ LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gHoOhLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(11, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(22, MOVE_GUST),
+ LEVEL_UP_MOVE(33, MOVE_RECOVER),
+ LEVEL_UP_MOVE(44, MOVE_FIRE_BLAST),
+ LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(66, MOVE_SWIFT),
+ LEVEL_UP_MOVE(77, MOVE_SACRED_FIRE),
+ LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gCelebiLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_RECOVER),
+ LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL),
+ LEVEL_UP_MOVE(10, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(40, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(50, MOVE_PERISH_SONG),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies252LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies253LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies254LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies255LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies256LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies257LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies258LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies259LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies260LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies261LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies262LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies263LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies264LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies265LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies266LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies267LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies268LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies269LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies270LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies271LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies272LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies273LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies274LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies275LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies276LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gTreeckoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 6, MOVE_ABSORB),
+ LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(21, MOVE_SCREECH),
+ LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(31, MOVE_AGILITY),
+ LEVEL_UP_MOVE(36, MOVE_SLAM),
+ LEVEL_UP_MOVE(41, MOVE_DETECT),
+ LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gGrovyleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 6, MOVE_ABSORB),
+ LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(17, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(23, MOVE_SCREECH),
+ LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE),
+ LEVEL_UP_MOVE(35, MOVE_AGILITY),
+ LEVEL_UP_MOVE(41, MOVE_SLAM),
+ LEVEL_UP_MOVE(47, MOVE_DETECT),
+ LEVEL_UP_MOVE(53, MOVE_FALSE_SWIPE),
+ LEVEL_UP_END
+};
+
+const u16 gSceptileLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 6, MOVE_ABSORB),
+ LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(17, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(23, MOVE_SCREECH),
+ LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE),
+ LEVEL_UP_MOVE(35, MOVE_AGILITY),
+ LEVEL_UP_MOVE(43, MOVE_SLAM),
+ LEVEL_UP_MOVE(51, MOVE_DETECT),
+ LEVEL_UP_MOVE(59, MOVE_FALSE_SWIPE),
+ LEVEL_UP_END
+};
+
+const u16 gTorchicLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(10, MOVE_EMBER),
+ LEVEL_UP_MOVE(16, MOVE_PECK),
+ LEVEL_UP_MOVE(19, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(34, MOVE_SLASH),
+ LEVEL_UP_MOVE(37, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gCombuskenLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_EMBER),
+ LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(17, MOVE_PECK),
+ LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(28, MOVE_BULK_UP),
+ LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(39, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(50, MOVE_SKY_UPPERCUT),
+ LEVEL_UP_END
+};
+
+const u16 gBlazikenLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_EMBER),
+ LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(17, MOVE_PECK),
+ LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(28, MOVE_BULK_UP),
+ LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK),
+ LEVEL_UP_MOVE(42, MOVE_SLASH),
+ LEVEL_UP_MOVE(49, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(59, MOVE_SKY_UPPERCUT),
+ LEVEL_UP_END
+};
+
+const u16 gMudkipLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_BIDE),
+ LEVEL_UP_MOVE(19, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(24, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE(37, MOVE_PROTECT),
+ LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(46, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gMarshtompLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_BIDE),
+ LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(20, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER),
+ LEVEL_UP_MOVE(42, MOVE_PROTECT),
+ LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(53, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gSwampertLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_BIDE),
+ LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(20, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER),
+ LEVEL_UP_MOVE(46, MOVE_PROTECT),
+ LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(61, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gPoochyenaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_HOWL),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(25, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(29, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(37, MOVE_TAUNT),
+ LEVEL_UP_MOVE(41, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(45, MOVE_THIEF),
+ LEVEL_UP_END
+};
+
+const u16 gMightyenaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HOWL),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 5, MOVE_HOWL),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(22, MOVE_ROAR),
+ LEVEL_UP_MOVE(27, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(32, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(42, MOVE_TAUNT),
+ LEVEL_UP_MOVE(47, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(52, MOVE_THIEF),
+ LEVEL_UP_END
+};
+
+const u16 gZigzagoonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(21, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(29, MOVE_COVET),
+ LEVEL_UP_MOVE(33, MOVE_FLAIL),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(41, MOVE_BELLY_DRUM),
+ LEVEL_UP_END
+};
+
+const u16 gLinooneLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(23, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(35, MOVE_COVET),
+ LEVEL_UP_MOVE(41, MOVE_SLASH),
+ LEVEL_UP_MOVE(47, MOVE_REST),
+ LEVEL_UP_MOVE(53, MOVE_BELLY_DRUM),
+ LEVEL_UP_END
+};
+
+const u16 gWurmpleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
+ LEVEL_UP_MOVE( 5, MOVE_POISON_STING),
+ LEVEL_UP_END
+};
+
+const u16 gSilcoonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_END
+};
+
+const u16 gBeautiflyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE(10, MOVE_ABSORB),
+ LEVEL_UP_MOVE(13, MOVE_GUST),
+ LEVEL_UP_MOVE(17, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(20, MOVE_MORNING_SUN),
+ LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(31, MOVE_ATTRACT),
+ LEVEL_UP_MOVE(34, MOVE_SILVER_WIND),
+ LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gCascoonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_END
+};
+
+const u16 gDustoxLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(10, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(13, MOVE_GUST),
+ LEVEL_UP_MOVE(17, MOVE_PROTECT),
+ LEVEL_UP_MOVE(20, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(24, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(34, MOVE_SILVER_WIND),
+ LEVEL_UP_MOVE(38, MOVE_TOXIC),
+ LEVEL_UP_END
+};
+
+const u16 gLotadLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 3, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_ABSORB),
+ LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
+ LEVEL_UP_MOVE(21, MOVE_MIST),
+ LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(43, MOVE_MEGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gLombreLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 3, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_ABSORB),
+ LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(25, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(31, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(37, MOVE_THIEF),
+ LEVEL_UP_MOVE(43, MOVE_UPROAR),
+ LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gLudicoloLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gSeedotLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BIDE),
+ LEVEL_UP_MOVE( 3, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
+ LEVEL_UP_MOVE(21, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(43, MOVE_EXPLOSION),
+ LEVEL_UP_END
+};
+
+const u16 gNuzleafLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 3, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(25, MOVE_TORMENT),
+ LEVEL_UP_MOVE(31, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(37, MOVE_RAZOR_WIND),
+ LEVEL_UP_MOVE(43, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY),
+ LEVEL_UP_END
+};
+
+const u16 gShiftryLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_GROWTH),
+ LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gNincadaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE),
+ LEVEL_UP_MOVE(31, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(38, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(45, MOVE_DIG),
+ LEVEL_UP_END
+};
+
+const u16 gNinjaskLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(20, MOVE_SCREECH),
+ LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(38, MOVE_AGILITY),
+ LEVEL_UP_MOVE(45, MOVE_BATON_PASS),
+ LEVEL_UP_END
+};
+
+const u16 gShedinjaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(25, MOVE_SPITE),
+ LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL),
+ LEVEL_UP_MOVE(45, MOVE_GRUDGE),
+ LEVEL_UP_END
+};
+
+const u16 gTaillowLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(26, MOVE_ENDEAVOR),
+ LEVEL_UP_MOVE(34, MOVE_AERIAL_ACE),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gSwellowLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(28, MOVE_ENDEAVOR),
+ LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE),
+ LEVEL_UP_MOVE(49, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gShroomishLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 4, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(22, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(28, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(36, MOVE_GROWTH),
+ LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN),
+ LEVEL_UP_MOVE(54, MOVE_SPORE),
+ LEVEL_UP_END
+};
+
+const u16 gBreloomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE( 4, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(22, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH),
+ LEVEL_UP_MOVE(28, MOVE_COUNTER),
+ LEVEL_UP_MOVE(36, MOVE_SKY_UPPERCUT),
+ LEVEL_UP_MOVE(45, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gSpindaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_UPROAR),
+ LEVEL_UP_MOVE(12, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(23, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(27, MOVE_DIZZY_PUNCH),
+ LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE),
+ LEVEL_UP_MOVE(38, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(49, MOVE_FLAIL),
+ LEVEL_UP_MOVE(56, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gWingullLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_MIST),
+ LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(43, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(55, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gPelipperLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE( 3, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_MIST),
+ LEVEL_UP_MOVE(25, MOVE_PROTECT),
+ LEVEL_UP_MOVE(33, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(33, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(47, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gSurskitLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(19, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(31, MOVE_AGILITY),
+ LEVEL_UP_MOVE(37, MOVE_MIST),
+ LEVEL_UP_MOVE(37, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gMasquerainLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(19, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(26, MOVE_GUST),
+ LEVEL_UP_MOVE(33, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(40, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(47, MOVE_SILVER_WIND),
+ LEVEL_UP_MOVE(53, MOVE_WHIRLWIND),
+ LEVEL_UP_END
+};
+
+const u16 gWailmerLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(14, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE(23, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(28, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(32, MOVE_MIST),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(41, MOVE_WATER_SPOUT),
+ LEVEL_UP_MOVE(46, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gWailordLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(14, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE(23, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(28, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(32, MOVE_MIST),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(44, MOVE_WATER_SPOUT),
+ LEVEL_UP_MOVE(52, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gSkittyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_ATTRACT),
+ LEVEL_UP_MOVE(13, MOVE_SING),
+ LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(19, MOVE_ASSIST),
+ LEVEL_UP_MOVE(25, MOVE_CHARM),
+ LEVEL_UP_MOVE(27, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_COVET),
+ LEVEL_UP_MOVE(37, MOVE_HEAL_BELL),
+ LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gDelcattyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_END
+};
+
+const u16 gKecleonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_THIEF),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 4, MOVE_BIND),
+ LEVEL_UP_MOVE( 7, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(24, MOVE_SCREECH),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE),
+ LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gBaltoyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 3, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(11, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB),
+ LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(31, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(37, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(45, MOVE_EXPLOSION),
+ LEVEL_UP_END
+};
+
+const u16 gClaydolLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE( 3, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(11, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB),
+ LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(31, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM),
+ LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(55, MOVE_EXPLOSION),
+ LEVEL_UP_END
+};
+
+const u16 gNosepassLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(16, MOVE_BLOCK),
+ LEVEL_UP_MOVE(22, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(31, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON),
+ LEVEL_UP_MOVE(46, MOVE_LOCK_ON),
+ LEVEL_UP_END
+};
+
+const u16 gTorkoalLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 4, MOVE_SMOG),
+ LEVEL_UP_MOVE( 7, MOVE_CURSE),
+ LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(17, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(20, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(27, MOVE_PROTECT),
+ LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(40, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(43, MOVE_FLAIL),
+ LEVEL_UP_MOVE(46, MOVE_HEAT_WAVE),
+ LEVEL_UP_END
+};
+
+const u16 gSableyeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 5, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(13, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(21, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(25, MOVE_DETECT),
+ LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(33, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL),
+ LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK),
+ LEVEL_UP_END
+};
+
+const u16 gBarboachLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(21, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(26, MOVE_REST),
+ LEVEL_UP_MOVE(26, MOVE_SNORE),
+ LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(41, MOVE_FISSURE),
+ LEVEL_UP_END
+};
+
+const u16 gWhiscashLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TICKLE),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(21, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(26, MOVE_REST),
+ LEVEL_UP_MOVE(26, MOVE_SNORE),
+ LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(56, MOVE_FISSURE),
+ LEVEL_UP_END
+};
+
+const u16 gLuvdiscLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_CHARM),
+ LEVEL_UP_MOVE(12, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(16, MOVE_AGILITY),
+ LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(28, MOVE_ATTRACT),
+ LEVEL_UP_MOVE(36, MOVE_SWEET_KISS),
+ LEVEL_UP_MOVE(40, MOVE_FLAIL),
+ LEVEL_UP_MOVE(48, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gCorphishLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_MOVE(10, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE(13, MOVE_LEER),
+ LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(23, MOVE_PROTECT),
+ LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(32, MOVE_TAUNT),
+ LEVEL_UP_MOVE(35, MOVE_CRABHAMMER),
+ LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(44, MOVE_GUILLOTINE),
+ LEVEL_UP_END
+};
+
+const u16 gCrawdauntLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_MOVE(10, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE(13, MOVE_LEER),
+ LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(23, MOVE_PROTECT),
+ LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(34, MOVE_TAUNT),
+ LEVEL_UP_MOVE(39, MOVE_CRABHAMMER),
+ LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(52, MOVE_GUILLOTINE),
+ LEVEL_UP_END
+};
+
+const u16 gFeebasLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE(15, MOVE_TACKLE),
+ LEVEL_UP_MOVE(30, MOVE_FLAIL),
+ LEVEL_UP_END
+};
+
+const u16 gMiloticLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 5, MOVE_WRAP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(15, MOVE_REFRESH),
+ LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(25, MOVE_TWISTER),
+ LEVEL_UP_MOVE(30, MOVE_RECOVER),
+ LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(45, MOVE_ATTRACT),
+ LEVEL_UP_MOVE(50, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gCarvanhaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 7, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(22, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(28, MOVE_SCREECH),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(37, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gSharpedoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 7, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(22, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(28, MOVE_SCREECH),
+ LEVEL_UP_MOVE(33, MOVE_SLASH),
+ LEVEL_UP_MOVE(38, MOVE_TAUNT),
+ LEVEL_UP_MOVE(43, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(48, MOVE_SKULL_BASH),
+ LEVEL_UP_MOVE(53, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gTrapinchLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(33, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(41, MOVE_DIG),
+ LEVEL_UP_MOVE(49, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gVibravaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(33, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(41, MOVE_SCREECH),
+ LEVEL_UP_MOVE(49, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gFlygonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(33, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(41, MOVE_SCREECH),
+ LEVEL_UP_MOVE(53, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gMakuhitaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(10, MOVE_ARM_THRUST),
+ LEVEL_UP_MOVE(13, MOVE_VITAL_THROW),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(22, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(31, MOVE_SMELLING_SALT),
+ LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM),
+ LEVEL_UP_MOVE(40, MOVE_ENDURE),
+ LEVEL_UP_MOVE(46, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(49, MOVE_REVERSAL),
+ LEVEL_UP_END
+};
+
+const u16 gHariyamaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST),
+ LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(10, MOVE_ARM_THRUST),
+ LEVEL_UP_MOVE(13, MOVE_VITAL_THROW),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(22, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(33, MOVE_SMELLING_SALT),
+ LEVEL_UP_MOVE(40, MOVE_BELLY_DRUM),
+ LEVEL_UP_MOVE(44, MOVE_ENDURE),
+ LEVEL_UP_MOVE(51, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(55, MOVE_REVERSAL),
+ LEVEL_UP_END
+};
+
+const u16 gElectrikeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 9, MOVE_LEER),
+ LEVEL_UP_MOVE(12, MOVE_HOWL),
+ LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(20, MOVE_SPARK),
+ LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(28, MOVE_ROAR),
+ LEVEL_UP_MOVE(33, MOVE_BITE),
+ LEVEL_UP_MOVE(36, MOVE_THUNDER),
+ LEVEL_UP_MOVE(41, MOVE_CHARGE),
+ LEVEL_UP_END
+};
+
+const u16 gManectricLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_HOWL),
+ LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 9, MOVE_LEER),
+ LEVEL_UP_MOVE(12, MOVE_HOWL),
+ LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(20, MOVE_SPARK),
+ LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(31, MOVE_ROAR),
+ LEVEL_UP_MOVE(39, MOVE_BITE),
+ LEVEL_UP_MOVE(45, MOVE_THUNDER),
+ LEVEL_UP_MOVE(53, MOVE_CHARGE),
+ LEVEL_UP_END
+};
+
+const u16 gNumelLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE(11, MOVE_EMBER),
+ LEVEL_UP_MOVE(19, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(31, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gCameruptLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(11, MOVE_EMBER),
+ LEVEL_UP_MOVE(19, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(31, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(45, MOVE_ERUPTION),
+ LEVEL_UP_MOVE(55, MOVE_FISSURE),
+ LEVEL_UP_END
+};
+
+const u16 gSphealLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
+ LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(31, MOVE_HAIL),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(37, MOVE_SNORE),
+ LEVEL_UP_MOVE(43, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(49, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gSealeoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
+ LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(31, MOVE_HAIL),
+ LEVEL_UP_MOVE(39, MOVE_REST),
+ LEVEL_UP_MOVE(39, MOVE_SNORE),
+ LEVEL_UP_MOVE(47, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(55, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gWalreinLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
+ LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(31, MOVE_HAIL),
+ LEVEL_UP_MOVE(39, MOVE_REST),
+ LEVEL_UP_MOVE(39, MOVE_SNORE),
+ LEVEL_UP_MOVE(50, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(61, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gCacneaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 5, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 9, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(25, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(33, MOVE_SPIKES),
+ LEVEL_UP_MOVE(37, MOVE_NEEDLE_ARM),
+ LEVEL_UP_MOVE(41, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(45, MOVE_SANDSTORM),
+ LEVEL_UP_END
+};
+
+const u16 gCacturneLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_GROWTH),
+ LEVEL_UP_MOVE( 5, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 9, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(25, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(35, MOVE_SPIKES),
+ LEVEL_UP_MOVE(41, MOVE_NEEDLE_ARM),
+ LEVEL_UP_MOVE(47, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(53, MOVE_SANDSTORM),
+ LEVEL_UP_END
+};
+
+const u16 gSnoruntLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(10, MOVE_BITE),
+ LEVEL_UP_MOVE(16, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(25, MOVE_PROTECT),
+ LEVEL_UP_MOVE(28, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(34, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(37, MOVE_HAIL),
+ LEVEL_UP_MOVE(43, MOVE_BLIZZARD),
+ LEVEL_UP_END
+};
+
+const u16 gGlalieLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(10, MOVE_BITE),
+ LEVEL_UP_MOVE(16, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(25, MOVE_PROTECT),
+ LEVEL_UP_MOVE(28, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(34, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(42, MOVE_HAIL),
+ LEVEL_UP_MOVE(53, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(61, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gLunatoneLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(19, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(25, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(37, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(49, MOVE_EXPLOSION),
+ LEVEL_UP_END
+};
+
+const u16 gSolrockLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(25, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM),
+ LEVEL_UP_MOVE(49, MOVE_EXPLOSION),
+ LEVEL_UP_END
+};
+
+const u16 gAzurillLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 3, MOVE_CHARM),
+ LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_BUBBLE),
+ LEVEL_UP_MOVE(15, MOVE_SLAM),
+ LEVEL_UP_MOVE(21, MOVE_WATER_GUN),
+ LEVEL_UP_END
+};
+
+const u16 gSpoinkLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 7, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(19, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT),
+ LEVEL_UP_MOVE(34, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(37, MOVE_SNORE),
+ LEVEL_UP_MOVE(43, MOVE_BOUNCE),
+ LEVEL_UP_END
+};
+
+const u16 gGrumpigLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE( 7, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(19, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT),
+ LEVEL_UP_MOVE(37, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_REST),
+ LEVEL_UP_MOVE(43, MOVE_SNORE),
+ LEVEL_UP_MOVE(55, MOVE_BOUNCE),
+ LEVEL_UP_END
+};
+
+const u16 gPlusleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(19, MOVE_SPARK),
+ LEVEL_UP_MOVE(22, MOVE_ENCORE),
+ LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(31, MOVE_CHARGE),
+ LEVEL_UP_MOVE(37, MOVE_THUNDER),
+ LEVEL_UP_MOVE(40, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(47, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gMinunLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(19, MOVE_SPARK),
+ LEVEL_UP_MOVE(22, MOVE_ENCORE),
+ LEVEL_UP_MOVE(28, MOVE_CHARM),
+ LEVEL_UP_MOVE(31, MOVE_CHARGE),
+ LEVEL_UP_MOVE(37, MOVE_THUNDER),
+ LEVEL_UP_MOVE(40, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(47, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gMawileLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(11, MOVE_BITE),
+ LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(21, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE(26, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(36, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(46, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(46, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(46, MOVE_SPIT_UP),
+ LEVEL_UP_END
+};
+
+const u16 gMedititeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BIDE),
+ LEVEL_UP_MOVE( 4, MOVE_MEDITATE),
+ LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(12, MOVE_DETECT),
+ LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER),
+ LEVEL_UP_MOVE(22, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(28, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(32, MOVE_HI_JUMP_KICK),
+ LEVEL_UP_MOVE(38, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(42, MOVE_REVERSAL),
+ LEVEL_UP_MOVE(48, MOVE_RECOVER),
+ LEVEL_UP_END
+};
+
+const u16 gMedichamLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
+ LEVEL_UP_MOVE( 1, MOVE_BIDE),
+ LEVEL_UP_MOVE( 1, MOVE_MEDITATE),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_DETECT),
+ LEVEL_UP_MOVE( 4, MOVE_MEDITATE),
+ LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(12, MOVE_DETECT),
+ LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER),
+ LEVEL_UP_MOVE(22, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(28, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(32, MOVE_HI_JUMP_KICK),
+ LEVEL_UP_MOVE(40, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(46, MOVE_REVERSAL),
+ LEVEL_UP_MOVE(54, MOVE_RECOVER),
+ LEVEL_UP_END
+};
+
+const u16 gSwabluLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(11, MOVE_SING),
+ LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(28, MOVE_MIST),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(41, MOVE_REFRESH),
+ LEVEL_UP_MOVE(48, MOVE_PERISH_SONG),
+ LEVEL_UP_END
+};
+
+const u16 gAltariaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(11, MOVE_SING),
+ LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(28, MOVE_MIST),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(40, MOVE_DRAGON_DANCE),
+ LEVEL_UP_MOVE(45, MOVE_REFRESH),
+ LEVEL_UP_MOVE(54, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK),
+ LEVEL_UP_END
+};
+
+const u16 gWynautLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 1, MOVE_ENCORE),
+ LEVEL_UP_MOVE(15, MOVE_COUNTER),
+ LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT),
+ LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND),
+ LEVEL_UP_END
+};
+
+const u16 gDuskullLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE( 5, MOVE_DISABLE),
+ LEVEL_UP_MOVE(12, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(16, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(27, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(34, MOVE_CURSE),
+ LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP),
+ LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gDusclopsLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BIND),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 5, MOVE_DISABLE),
+ LEVEL_UP_MOVE(12, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(16, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(27, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(34, MOVE_CURSE),
+ LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH),
+ LEVEL_UP_MOVE(41, MOVE_WILL_O_WISP),
+ LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(58, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gRoseliaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 5, MOVE_GROWTH),
+ LEVEL_UP_MOVE( 9, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(13, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(21, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF),
+ LEVEL_UP_MOVE(29, MOVE_GRASS_WHISTLE),
+ LEVEL_UP_MOVE(33, MOVE_GIGA_DRAIN),
+ LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(41, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(45, MOVE_TOXIC),
+ LEVEL_UP_MOVE(49, MOVE_PETAL_DANCE),
+ LEVEL_UP_MOVE(53, MOVE_AROMATHERAPY),
+ LEVEL_UP_MOVE(57, MOVE_SYNTHESIS),
+ LEVEL_UP_END
+};
+
+const u16 gSlakothLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_SLACK_OFF),
+ LEVEL_UP_MOVE(19, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(31, MOVE_COVET),
+ LEVEL_UP_MOVE(37, MOVE_COUNTER),
+ LEVEL_UP_MOVE(43, MOVE_FLAIL),
+ LEVEL_UP_END
+};
+
+const u16 gVigorothLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 1, MOVE_UPROAR),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_UPROAR),
+ LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(25, MOVE_ENDURE),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(37, MOVE_COUNTER),
+ LEVEL_UP_MOVE(43, MOVE_FOCUS_PUNCH),
+ LEVEL_UP_MOVE(49, MOVE_REVERSAL),
+ LEVEL_UP_END
+};
+
+const u16 gSlakingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_SLACK_OFF),
+ LEVEL_UP_MOVE(19, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(31, MOVE_COVET),
+ LEVEL_UP_MOVE(36, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(37, MOVE_COUNTER),
+ LEVEL_UP_MOVE(43, MOVE_FLAIL),
+ LEVEL_UP_END
+};
+
+const u16 gGulpinLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 6, MOVE_YAWN),
+ LEVEL_UP_MOVE( 9, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE(14, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(17, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(23, MOVE_ENCORE),
+ LEVEL_UP_MOVE(28, MOVE_TOXIC),
+ LEVEL_UP_MOVE(34, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(34, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(34, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB),
+ LEVEL_UP_END
+};
+
+const u16 gSwalotLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE( 1, MOVE_SLUDGE),
+ LEVEL_UP_MOVE( 6, MOVE_YAWN),
+ LEVEL_UP_MOVE( 9, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE(14, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(17, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(23, MOVE_ENCORE),
+ LEVEL_UP_MOVE(26, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(31, MOVE_TOXIC),
+ LEVEL_UP_MOVE(40, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(40, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(40, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB),
+ LEVEL_UP_END
+};
+
+const u16 gTropiusLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_GUST),
+ LEVEL_UP_MOVE( 7, MOVE_GROWTH),
+ LEVEL_UP_MOVE(11, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(17, MOVE_STOMP),
+ LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(31, MOVE_MAGICAL_LEAF),
+ LEVEL_UP_MOVE(37, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM),
+ LEVEL_UP_MOVE(47, MOVE_SYNTHESIS),
+ LEVEL_UP_END
+};
+
+const u16 gWhismurLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 5, MOVE_UPROAR),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(15, MOVE_HOWL),
+ LEVEL_UP_MOVE(21, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(25, MOVE_STOMP),
+ LEVEL_UP_MOVE(31, MOVE_SCREECH),
+ LEVEL_UP_MOVE(35, MOVE_ROAR),
+ LEVEL_UP_MOVE(41, MOVE_REST),
+ LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK),
+ LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE),
+ LEVEL_UP_END
+};
+
+const u16 gLoudredLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_UPROAR),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_HOWL),
+ LEVEL_UP_MOVE( 5, MOVE_UPROAR),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(15, MOVE_HOWL),
+ LEVEL_UP_MOVE(23, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(29, MOVE_STOMP),
+ LEVEL_UP_MOVE(37, MOVE_SCREECH),
+ LEVEL_UP_MOVE(43, MOVE_ROAR),
+ LEVEL_UP_MOVE(51, MOVE_REST),
+ LEVEL_UP_MOVE(51, MOVE_SLEEP_TALK),
+ LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE),
+ LEVEL_UP_END
+};
+
+const u16 gExploudLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_UPROAR),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_HOWL),
+ LEVEL_UP_MOVE( 5, MOVE_UPROAR),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(15, MOVE_HOWL),
+ LEVEL_UP_MOVE(23, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(29, MOVE_STOMP),
+ LEVEL_UP_MOVE(37, MOVE_SCREECH),
+ LEVEL_UP_MOVE(40, MOVE_HYPER_BEAM),
+ LEVEL_UP_MOVE(45, MOVE_ROAR),
+ LEVEL_UP_MOVE(55, MOVE_REST),
+ LEVEL_UP_MOVE(55, MOVE_SLEEP_TALK),
+ LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE),
+ LEVEL_UP_END
+};
+
+const u16 gClamperlLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CLAMP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
+ LEVEL_UP_END
+};
+
+const u16 gHuntailLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE( 8, MOVE_BITE),
+ LEVEL_UP_MOVE(15, MOVE_SCREECH),
+ LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(29, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(36, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(43, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gGorebyssLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE( 8, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(15, MOVE_AGILITY),
+ LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(29, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gAbsolLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 5, MOVE_LEER),
+ LEVEL_UP_MOVE( 9, MOVE_TAUNT),
+ LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_RAZOR_WIND),
+ LEVEL_UP_MOVE(21, MOVE_BITE),
+ LEVEL_UP_MOVE(26, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(31, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(36, MOVE_SLASH),
+ LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(46, MOVE_PERISH_SONG),
+ LEVEL_UP_END
+};
+
+const u16 gShuppetLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE( 8, MOVE_SCREECH),
+ LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(20, MOVE_CURSE),
+ LEVEL_UP_MOVE(25, MOVE_SPITE),
+ LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP),
+ LEVEL_UP_MOVE(37, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL),
+ LEVEL_UP_MOVE(49, MOVE_SNATCH),
+ LEVEL_UP_MOVE(56, MOVE_GRUDGE),
+ LEVEL_UP_END
+};
+
+const u16 gBanetteLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE( 1, MOVE_CURSE),
+ LEVEL_UP_MOVE( 8, MOVE_SCREECH),
+ LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(20, MOVE_CURSE),
+ LEVEL_UP_MOVE(25, MOVE_SPITE),
+ LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP),
+ LEVEL_UP_MOVE(39, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
+ LEVEL_UP_MOVE(55, MOVE_SNATCH),
+ LEVEL_UP_MOVE(64, MOVE_GRUDGE),
+ LEVEL_UP_END
+};
+
+const u16 gSeviperLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 7, MOVE_LICK),
+ LEVEL_UP_MOVE(10, MOVE_BITE),
+ LEVEL_UP_MOVE(16, MOVE_POISON_TAIL),
+ LEVEL_UP_MOVE(19, MOVE_SCREECH),
+ LEVEL_UP_MOVE(25, MOVE_GLARE),
+ LEVEL_UP_MOVE(28, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(34, MOVE_POISON_FANG),
+ LEVEL_UP_MOVE(37, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(43, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gZangooseLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 4, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(10, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(19, MOVE_SLASH),
+ LEVEL_UP_MOVE(25, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(31, MOVE_CRUSH_CLAW),
+ LEVEL_UP_MOVE(37, MOVE_TAUNT),
+ LEVEL_UP_MOVE(46, MOVE_DETECT),
+ LEVEL_UP_MOVE(55, MOVE_FALSE_SWIPE),
+ LEVEL_UP_END
+};
+
+const u16 gRelicanthLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 8, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB),
+ LEVEL_UP_MOVE(22, MOVE_YAWN),
+ LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(36, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(50, MOVE_REST),
+ LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(64, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gAronLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(13, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(29, MOVE_IRON_TAIL),
+ LEVEL_UP_MOVE(34, MOVE_PROTECT),
+ LEVEL_UP_MOVE(39, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gLaironLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 4, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(13, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(29, MOVE_IRON_TAIL),
+ LEVEL_UP_MOVE(37, MOVE_PROTECT),
+ LEVEL_UP_MOVE(45, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gAggronLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 4, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(13, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(29, MOVE_IRON_TAIL),
+ LEVEL_UP_MOVE(37, MOVE_PROTECT),
+ LEVEL_UP_MOVE(50, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gCastformLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(10, MOVE_EMBER),
+ LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(20, MOVE_HAIL),
+ LEVEL_UP_MOVE(30, MOVE_WEATHER_BALL),
+ LEVEL_UP_END
+};
+
+const u16 gVolbeatLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE( 9, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(13, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_TAIL_GLOW),
+ LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM),
+ LEVEL_UP_MOVE(29, MOVE_PROTECT),
+ LEVEL_UP_MOVE(33, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gIllumiseLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE( 9, MOVE_CHARM),
+ LEVEL_UP_MOVE(13, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_WISH),
+ LEVEL_UP_MOVE(25, MOVE_ENCORE),
+ LEVEL_UP_MOVE(29, MOVE_FLATTER),
+ LEVEL_UP_MOVE(33, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(37, MOVE_COVET),
+ LEVEL_UP_END
+};
+
+const u16 gLileepLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(15, MOVE_ACID),
+ LEVEL_UP_MOVE(22, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(36, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(50, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(50, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(50, MOVE_SWALLOW),
+ LEVEL_UP_END
+};
+
+const u16 gCradilyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 1, MOVE_ACID),
+ LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
+ LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(15, MOVE_ACID),
+ LEVEL_UP_MOVE(22, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(36, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(48, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(60, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(60, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(60, MOVE_SWALLOW),
+ LEVEL_UP_END
+};
+
+const u16 gAnorithLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_MOVE(13, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(31, MOVE_PROTECT),
+ LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(43, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(49, MOVE_SLASH),
+ LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gArmaldoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_MOVE(13, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(31, MOVE_PROTECT),
+ LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(55, MOVE_SLASH),
+ LEVEL_UP_MOVE(64, MOVE_ROCK_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gRaltsLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(16, MOVE_TELEPORT),
+ LEVEL_UP_MOVE(21, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(26, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(31, MOVE_IMPRISON),
+ LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(41, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(46, MOVE_DREAM_EATER),
+ LEVEL_UP_END
+};
+
+const u16 gKirliaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(16, MOVE_TELEPORT),
+ LEVEL_UP_MOVE(21, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(26, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(33, MOVE_IMPRISON),
+ LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(47, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(54, MOVE_DREAM_EATER),
+ LEVEL_UP_END
+};
+
+const u16 gGardevoirLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(16, MOVE_TELEPORT),
+ LEVEL_UP_MOVE(21, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(26, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(33, MOVE_IMPRISON),
+ LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(51, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(60, MOVE_DREAM_EATER),
+ LEVEL_UP_END
+};
+
+const u16 gBagonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 5, MOVE_BITE),
+ LEVEL_UP_MOVE( 9, MOVE_LEER),
+ LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(25, MOVE_EMBER),
+ LEVEL_UP_MOVE(33, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(41, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(49, MOVE_DRAGON_CLAW),
+ LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gShelgonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 5, MOVE_BITE),
+ LEVEL_UP_MOVE( 9, MOVE_LEER),
+ LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(25, MOVE_EMBER),
+ LEVEL_UP_MOVE(30, MOVE_PROTECT),
+ LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(47, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(56, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(69, MOVE_DRAGON_CLAW),
+ LEVEL_UP_MOVE(78, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gSalamenceLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 5, MOVE_BITE),
+ LEVEL_UP_MOVE( 9, MOVE_LEER),
+ LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(25, MOVE_EMBER),
+ LEVEL_UP_MOVE(30, MOVE_PROTECT),
+ LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(47, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(50, MOVE_FLY),
+ LEVEL_UP_MOVE(61, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(79, MOVE_DRAGON_CLAW),
+ LEVEL_UP_MOVE(93, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gBeldumLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
+ LEVEL_UP_END
+};
+
+const u16 gMetangLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(20, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(20, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(26, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(32, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(50, MOVE_METEOR_MASH),
+ LEVEL_UP_MOVE(56, MOVE_AGILITY),
+ LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gMetagrossLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(20, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(20, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(26, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(32, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(55, MOVE_METEOR_MASH),
+ LEVEL_UP_MOVE(66, MOVE_AGILITY),
+ LEVEL_UP_MOVE(77, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gRegirockLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(17, MOVE_CURSE),
+ LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
+ LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON),
+ LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gRegiceLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE( 9, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(17, MOVE_CURSE),
+ LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
+ LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(41, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON),
+ LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gRegisteelLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(17, MOVE_CURSE),
+ LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
+ LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(41, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON),
+ LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gKyogreLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(20, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(30, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(35, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(50, MOVE_REST),
+ LEVEL_UP_MOVE(60, MOVE_SHEER_COLD),
+ LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(75, MOVE_WATER_SPOUT),
+ LEVEL_UP_END
+};
+
+const u16 gGroudonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(20, MOVE_SLASH),
+ LEVEL_UP_MOVE(30, MOVE_BULK_UP),
+ LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(45, MOVE_FIRE_BLAST),
+ LEVEL_UP_MOVE(50, MOVE_REST),
+ LEVEL_UP_MOVE(60, MOVE_FISSURE),
+ LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM),
+ LEVEL_UP_MOVE(75, MOVE_ERUPTION),
+ LEVEL_UP_END
+};
+
+const u16 gRayquazaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TWISTER),
+ LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(20, MOVE_DRAGON_CLAW),
+ LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE),
+ LEVEL_UP_MOVE(35, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(45, MOVE_FLY),
+ LEVEL_UP_MOVE(50, MOVE_REST),
+ LEVEL_UP_MOVE(60, MOVE_EXTREME_SPEED),
+ LEVEL_UP_MOVE(65, MOVE_OUTRAGE),
+ LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gLatiasLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE( 5, MOVE_WISH),
+ LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(25, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(30, MOVE_REFRESH),
+ LEVEL_UP_MOVE(35, MOVE_MIST_BALL),
+ LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(45, MOVE_RECOVER),
+ LEVEL_UP_MOVE(50, MOVE_CHARM),
+ LEVEL_UP_END
+};
+
+const u16 gLatiosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE( 5, MOVE_MEMENTO),
+ LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(25, MOVE_PROTECT),
+ LEVEL_UP_MOVE(30, MOVE_REFRESH),
+ LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE),
+ LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(45, MOVE_RECOVER),
+ LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gJirachiLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WISH),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 5, MOVE_REST),
+ LEVEL_UP_MOVE(10, MOVE_SWIFT),
+ LEVEL_UP_MOVE(15, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(20, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(25, MOVE_REFRESH),
+ LEVEL_UP_MOVE(30, MOVE_REST),
+ LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(45, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(50, MOVE_DOOM_DESIRE),
+ LEVEL_UP_END
+};
+
+const u16 gDeoxysLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(20, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(25, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(30, MOVE_SWIFT),
+ LEVEL_UP_MOVE(35, MOVE_AGILITY),
+ LEVEL_UP_MOVE(40, MOVE_RECOVER),
+ LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST),
+ LEVEL_UP_MOVE(50, MOVE_EXTREME_SPEED),
+ LEVEL_UP_END
+};
+
+const u16 gChimechoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 6, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(14, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(17, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(22, MOVE_UPROAR),
+ LEVEL_UP_MOVE(25, MOVE_YAWN),
+ LEVEL_UP_MOVE(30, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(38, MOVE_HEAL_BELL),
+ LEVEL_UP_MOVE(41, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(46, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+#endif //POKEEMERALD_LEVEL_UP_LEARNSETS_H
diff --git a/include/data/pokemon/tmhm_learnsets.h b/include/data/pokemon/tmhm_learnsets.h
new file mode 100644
index 000000000..f14478863
--- /dev/null
+++ b/include/data/pokemon/tmhm_learnsets.h
@@ -0,0 +1,9393 @@
+#ifndef GUARD_TMHM_LEARNSETS_H
+#define GUARD_TMHM_LEARNSETS_H
+
+#define TMHM_LEARNSET(moves) {(u32)(moves), ((u64)(moves) >> 32)}
+#define TMHM(tmhm) ((u64)1 << (ITEM_##tmhm - ITEM_TM01_FOCUS_PUNCH))
+
+// This table determines which TMs and HMs a species is capable of learning.
+// Each entry is a 64-bit bit array spread across two 32-bit values, with
+// each bit corresponding to a .
+const u32 gTMHMLearnsets[][2] =
+{
+ [SPECIES_NONE] = TMHM_LEARNSET(0),
+
+ [SPECIES_BULBASAUR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_IVYSAUR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_VENUSAUR] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CHARMANDER] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CHARMELEON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CHARIZARD] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SQUIRTLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_WARTORTLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_BLASTOISE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CATERPIE] = TMHM_LEARNSET(0),
+
+ [SPECIES_METAPOD] = TMHM_LEARNSET(0),
+
+ [SPECIES_BUTTERFREE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WEEDLE] = TMHM_LEARNSET(0),
+
+ [SPECIES_KAKUNA] = TMHM_LEARNSET(0),
+
+ [SPECIES_BEEDRILL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PIDGEY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_PIDGEOTTO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_PIDGEOT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_RATTATA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RATICATE] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SPEAROW] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_FEAROW] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_EKANS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)),
+
+ [SPECIES_ARBOK] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)),
+
+ [SPECIES_PIKACHU] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RAICHU] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SANDSHREW] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SANDSLASH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDORAN_F] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDORINA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDOQUEEN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDORAN_M] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDORINO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDOKING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CLEFAIRY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CLEFABLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_VULPIX] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)),
+
+ [SPECIES_NINETALES] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)),
+
+ [SPECIES_JIGGLYPUFF] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WIGGLYTUFF] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ZUBAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM49_SNATCH)),
+
+ [SPECIES_GOLBAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM49_SNATCH)),
+
+ [SPECIES_ODDISH] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_GLOOM] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_VILEPLUME] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_PARAS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PARASECT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_VENONAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_VENOMOTH] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_DIGLETT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_DUGTRIO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MEOWTH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_PERSIAN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_PSYDUCK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GOLDUCK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MANKEY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PRIMEAPE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GROWLITHE] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ARCANINE] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_POLIWAG] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_POLIWHIRL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_POLIWRATH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_ABRA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_KADABRA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ALAKAZAM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MACHOP] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MACHOKE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MACHAMP] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BELLSPROUT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WEEPINBELL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_VICTREEBEL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_TENTACOOL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_TENTACRUEL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GEODUDE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GRAVELER] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GOLEM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PONYTA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)),
+
+ [SPECIES_RAPIDASH] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)),
+
+ [SPECIES_SLOWPOKE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SLOWBRO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MAGNEMITE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MAGNETON] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_FARFETCHD] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_DODUO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_DODRIO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_SEEL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_DEWGONG] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GRIMER] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)),
+
+ [SPECIES_MUK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SHELLDER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CLOYSTER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GASTLY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)),
+
+ [SPECIES_HAUNTER] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)),
+
+ [SPECIES_GENGAR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ONIX] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_DROWZEE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_HYPNO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_KRABBY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_KINGLER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_VOLTORB] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ELECTRODE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_EXEGGCUTE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_EXEGGUTOR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CUBONE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAROWAK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HITMONLEE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HITMONCHAN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_LICKITUNG] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_KOFFING] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WEEZING] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_RHYHORN] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RHYDON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CHANSEY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TANGELA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_KANGASKHAN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HORSEA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SEADRA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GOLDEEN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SEAKING] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_STARYU] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_STARMIE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MR_MIME] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SCYTHER] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_JYNX] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ELECTABUZZ] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAGMAR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PINSIR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TAUROS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAGIKARP] = TMHM_LEARNSET(0),
+
+ [SPECIES_GYARADOS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LAPRAS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_DITTO] = TMHM_LEARNSET(0),
+
+ [SPECIES_EEVEE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)),
+
+ [SPECIES_VAPOREON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_JOLTEON] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_FLAREON] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)),
+
+ [SPECIES_PORYGON] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_OMANYTE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_OMASTAR] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_KABUTO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)),
+
+ [SPECIES_KABUTOPS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_AERODACTYL] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SNORLAX] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)),
+
+ [SPECIES_ARTICUNO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ZAPDOS] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MOLTRES] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_DRATINI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)),
+
+ [SPECIES_DRAGONAIR] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)),
+
+ [SPECIES_DRAGONITE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MEWTWO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MEW] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CHIKORITA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_BAYLEEF] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MEGANIUM] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CYNDAQUIL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)),
+
+ [SPECIES_QUILAVA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TYPHLOSION] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TOTODILE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CROCONAW] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_FERALIGATR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SENTRET] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)),
+
+ [SPECIES_FURRET] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HOOTHOOT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_NOCTOWL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LEDYBA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LEDIAN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SPINARAK] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ARIADOS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CROBAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_CHINCHOU] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LANTURN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_PICHU] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CLEFFA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_IGGLYBUFF] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_TOGEPI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TOGETIC] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NATU] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_XATU] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM02_FLY)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MAREEP] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_FLAAFFY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_AMPHAROS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BELLOSSOM] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MARILL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_AZUMARILL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SUDOWOODO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_POLITOED] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_HOPPIP] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SKIPLOOM] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_JUMPLUFF] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_AIPOM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SUNKERN] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SUNFLORA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_YANMA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WOOPER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_QUAGSIRE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_ESPEON] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_UMBREON] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MURKROW] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_SLOWKING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MISDREAVUS] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_UNOWN] = TMHM_LEARNSET(0),
+
+ [SPECIES_WOBBUFFET] = TMHM_LEARNSET(0),
+
+ [SPECIES_GIRAFARIG] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PINECO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_FORRETRESS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_DUNSPARCE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GLIGAR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_STEELIX] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SNUBBULL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GRANBULL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_QWILFISH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SCIZOR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SHUCKLE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HERACROSS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SNEASEL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TEDDIURSA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_URSARING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SLUGMA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAGCARGO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SWINUB] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PILOSWINE] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CORSOLA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_REMORAID] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_OCTILLERY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_DELIBIRD] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_MANTINE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SKARMORY] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HOUNDOUR] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HOUNDOOM] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_KINGDRA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_PHANPY] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_DONPHAN] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PORYGON2] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_STANTLER] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SMEARGLE] = TMHM_LEARNSET(0),
+
+ [SPECIES_TYROGUE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HITMONTOP] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SMOOCHUM] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ELEKID] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAGBY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MILTANK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BLISSEY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RAIKOU] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ENTEI] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SUICUNE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LARVITAR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PUPITAR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TYRANITAR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_LUGIA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_HO_OH] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CELEBI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_OLD_UNOWN_B] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_C] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_D] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_E] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_F] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_G] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_H] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_I] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_J] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_K] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_L] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_M] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_N] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_O] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_P] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_Q] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_R] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_S] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_T] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_U] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_V] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_W] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_X] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_Y] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_Z] = TMHM_LEARNSET(0),
+
+ [SPECIES_TREECKO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GROVYLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SCEPTILE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TORCHIC] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_COMBUSKEN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BLAZIKEN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MUDKIP] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MARSHTOMP] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SWAMPERT] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_POOCHYENA] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MIGHTYENA] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ZIGZAGOON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_LINOONE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_WURMPLE] = TMHM_LEARNSET(0),
+
+ [SPECIES_SILCOON] = TMHM_LEARNSET(0),
+
+ [SPECIES_BEAUTIFLY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CASCOON] = TMHM_LEARNSET(0),
+
+ [SPECIES_DUSTOX] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LOTAD] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LOMBRE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LUDICOLO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SEEDOT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NUZLEAF] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SHIFTRY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NINCADA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_NINJASK] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SHEDINJA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_TAILLOW] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_SWELLOW] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_SHROOMISH] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_BRELOOM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SPINDA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_WINGULL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_PELIPPER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)),
+
+ [SPECIES_SURSKIT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MASQUERAIN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WAILMER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_WAILORD] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SKITTY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_DELCATTY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_KECLEON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BALTOY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CLAYDOL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NOSEPASS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TORKOAL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SABLEYE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BARBOACH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_WHISCASH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LUVDISC] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CORPHISH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)),
+
+ [SPECIES_CRAWDAUNT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_FEEBAS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MILOTIC] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CARVANHA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SHARPEDO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_TRAPINCH] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_VIBRAVA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_FLYGON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAKUHITA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HARIYAMA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ELECTRIKE] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MANECTRIC] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_NUMEL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CAMERUPT] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SPHEAL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SEALEO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_WALREIN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CACNEA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CACTURNE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SNORUNT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_GLALIE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LUNATONE] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SOLROCK] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_AZURILL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)),
+
+ [SPECIES_SPOINK] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_GRUMPIG] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_PLUSLE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MINUN] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MAWILE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MEDITITE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MEDICHAM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SWABLU] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_ALTARIA] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_WYNAUT] = TMHM_LEARNSET(0),
+
+ [SPECIES_DUSKULL] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_DUSCLOPS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ROSELIA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SLAKOTH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_VIGOROTH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SLAKING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GULPIN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SWALOT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TROPIUS] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_WHISMUR] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)),
+
+ [SPECIES_LOUDRED] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_EXPLOUD] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CLAMPERL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_HUNTAIL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GOREBYSS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_ABSOL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SHUPPET] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_BANETTE] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SEVIPER] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ZANGOOSE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RELICANTH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_ARON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_LAIRON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_AGGRON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CASTFORM] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_VOLBEAT] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ILLUMISE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LILEEP] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)),
+
+ [SPECIES_CRADILY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ANORITH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ARMALDO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RALTS] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_KIRLIA] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_GARDEVOIR] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_BAGON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SHELGON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SALAMENCE] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BELDUM] = TMHM_LEARNSET(0),
+
+ [SPECIES_METANG] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_METAGROSS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_REGIROCK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_REGICE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_REGISTEEL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_KYOGRE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GROUDON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RAYQUAZA] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LATIAS] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LATIOS] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_JIRACHI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_DEOXYS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CHIMECHO] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+};
+
+#endif // GUARD_TMHM_LEARNSETS_H
diff --git a/include/data/pokemon/trainer_class_lookups.h b/include/data/pokemon/trainer_class_lookups.h
new file mode 100644
index 000000000..2ffe9cd85
--- /dev/null
+++ b/include/data/pokemon/trainer_class_lookups.h
@@ -0,0 +1,176 @@
+#ifndef POKEEMERALD_TRAINER_CLASS_LOOKUPS_H
+#define POKEEMERALD_TRAINER_CLASS_LOOKUPS_H
+
+const u8 gFacilityClassToPicIndex[] =
+{
+ TRAINER_PIC_HIKER, // FACILITY_CLASS_HIKER
+ TRAINER_PIC_AQUA_GRUNT_M, // FACILITY_CLASS_TEAM_AQUA_1
+ TRAINER_PIC_POKEMON_BREEDER_F, // FACILITY_CLASS_PKMN_BREEDER_1
+ TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_1
+ TRAINER_PIC_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER
+ TRAINER_PIC_COLLECTOR, // FACILITY_CLASS_COLLECTOR
+ TRAINER_PIC_AQUA_GRUNT_F, // FACILITY_CLASS_TEAM_AQUA_2
+ TRAINER_PIC_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
+ TRAINER_PIC_MAGMA_GRUNT_M, // FACILITY_CLASS_TEAM_MAGMA_1
+ TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_1
+ TRAINER_PIC_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT
+ TRAINER_PIC_AQUA_LEADER_ARCHIE, // FACILITY_CLASS_AQUA_LEADER
+ TRAINER_PIC_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
+ TRAINER_PIC_AROMA_LADY, // FACILITY_CLASS_AROMA_LADY
+ TRAINER_PIC_RUIN_MANIAC, // FACILITY_CLASS_RUIN_MANIAC
+ TRAINER_PIC_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
+ TRAINER_PIC_TUBER_F, // FACILITY_CLASS_TUBER_1
+ TRAINER_PIC_TUBER_M, // FACILITY_CLASS_TUBER_2
+ TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_2
+ TRAINER_PIC_LADY, // FACILITY_CLASS_LADY
+ TRAINER_PIC_BEAUTY, // FACILITY_CLASS_BEAUTY
+ TRAINER_PIC_RICH_BOY, // FACILITY_CLASS_RICH_BOY
+ TRAINER_PIC_EXPERT_F, // FACILITY_CLASS_EXPERT_2
+ TRAINER_PIC_POKEMANIAC, // FACILITY_CLASS_POKEMANIAC
+ TRAINER_PIC_MAGMA_GRUNT_F, // FACILITY_CLASS_TEAM_MAGMA_2
+ TRAINER_PIC_GUITARIST, // FACILITY_CLASS_GUITARIST
+ TRAINER_PIC_KINDLER, // FACILITY_CLASS_KINDLER
+ TRAINER_PIC_CAMPER, // FACILITY_CLASS_CAMPER
+ TRAINER_PIC_PICNICKER, // FACILITY_CLASS_PICNICKER
+ TRAINER_PIC_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
+ TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_1
+ TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_2
+ TRAINER_PIC_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
+ TRAINER_PIC_ELITE_FOUR_SIDNEY, // FACILITY_CLASS_ELITE_FOUR_1
+ TRAINER_PIC_ELITE_FOUR_PHOEBE, // FACILITY_CLASS_ELITE_FOUR_2
+ TRAINER_PIC_LEADER_ROXANNE, // FACILITY_CLASS_LEADER_1
+ TRAINER_PIC_LEADER_BRAWLY, // FACILITY_CLASS_LEADER_2
+ TRAINER_PIC_LEADER_TATE_AND_LIZA, // FACILITY_CLASS_LEADER_3
+ TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_1
+ TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_2
+ TRAINER_PIC_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
+ TRAINER_PIC_WINSTRATE_M, // FACILITY_CLASS_POKEFAN_1
+ TRAINER_PIC_WINSTRATE_F, // FACILITY_CLASS_POKEFAN_2
+ TRAINER_PIC_YOUNGSTER, // FACILITY_CLASS_YOUNGSTER
+ TRAINER_PIC_CHAMPION_WALLACE, // FACILITY_CLASS_CHAMPION
+ TRAINER_PIC_FISHERMAN, // FACILITY_CLASS_FISHERMAN
+ TRAINER_PIC_CYCLING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_1
+ TRAINER_PIC_CYCLING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_2
+ TRAINER_PIC_RUNNING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_3
+ TRAINER_PIC_RUNNING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_4
+ TRAINER_PIC_SWIMMING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_5
+ TRAINER_PIC_SWIMMING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_6
+ TRAINER_PIC_DRAGON_TAMER, // FACILITY_CLASS_DRAGON_TAMER
+ TRAINER_PIC_NINJA_BOY, // FACILITY_CLASS_NINJA_BOY
+ TRAINER_PIC_BATTLE_GIRL, // FACILITY_CLASS_BATTLE_GIRL
+ TRAINER_PIC_PARASOL_LADY, // FACILITY_CLASS_PARASOL_LADY
+ TRAINER_PIC_SWIMMER_F, // FACILITY_CLASS_SWIMMER_F
+ TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS
+ TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR
+ TRAINER_PIC_WALLY, // FACILITY_CLASS_PKMN_TRAINER_1
+ TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_2
+ TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_3
+ TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_4
+ TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_5
+ TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_6
+ TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_7
+ TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2
+ TRAINER_PIC_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER
+ TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_1
+ TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_2
+ TRAINER_PIC_MAGMA_LEADER_MAXIE, // FACILITY_CLASS_MAGMA_LEADER
+ TRAINER_PIC_LASS, // FACILITY_CLASS_LASS
+ TRAINER_PIC_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
+ TRAINER_PIC_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
+ TRAINER_PIC_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO
+ TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_8
+ TRAINER_PIC_SALON_MAIDEN_ANABEL, // FACILITY_CLASS_SALON_MAIDEN
+ TRAINER_PIC_DOME_ACE_TUCKER, // FACILITY_CLASS_DOME_ACE
+ TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_9
+ TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_10
+ TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_11
+ TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_12
+};
+
+const u8 gFacilityClassToTrainerClass[] =
+{
+ TRAINER_CLASS_HIKER, // FACILITY_CLASS_HIKER
+ TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_1
+ TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_1
+ TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_1
+ TRAINER_CLASS_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER
+ TRAINER_CLASS_COLLECTOR, // FACILITY_CLASS_COLLECTOR
+ TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_2
+ TRAINER_CLASS_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
+ TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_1
+ TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_1
+ TRAINER_CLASS_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT
+ TRAINER_CLASS_AQUA_LEADER, // FACILITY_CLASS_AQUA_LEADER
+ TRAINER_CLASS_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
+ TRAINER_CLASS_AROMA_LADY, // FACILITY_CLASS_AROMA_LADY
+ TRAINER_CLASS_RUIN_MANIAC, // FACILITY_CLASS_RUIN_MANIAC
+ TRAINER_CLASS_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
+ TRAINER_CLASS_TUBER_1, // FACILITY_CLASS_TUBER_1
+ TRAINER_CLASS_TUBER_2, // FACILITY_CLASS_TUBER_2
+ TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_2
+ TRAINER_CLASS_LADY, // FACILITY_CLASS_LADY
+ TRAINER_CLASS_BEAUTY, // FACILITY_CLASS_BEAUTY
+ TRAINER_CLASS_RICH_BOY, // FACILITY_CLASS_RICH_BOY
+ TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_2
+ TRAINER_CLASS_POKEMANIAC, // FACILITY_CLASS_POKEMANIAC
+ TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_2
+ TRAINER_CLASS_GUITARIST, // FACILITY_CLASS_GUITARIST
+ TRAINER_CLASS_KINDLER, // FACILITY_CLASS_KINDLER
+ TRAINER_CLASS_CAMPER, // FACILITY_CLASS_CAMPER
+ TRAINER_CLASS_PICNICKER, // FACILITY_CLASS_PICNICKER
+ TRAINER_CLASS_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
+ TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_1
+ TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_2
+ TRAINER_CLASS_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
+ TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_1
+ TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_2
+ TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_1
+ TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_2
+ TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_3
+ TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_1
+ TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_2
+ TRAINER_CLASS_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
+ TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_1
+ TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_2
+ TRAINER_CLASS_YOUNGSTER, // FACILITY_CLASS_YOUNGSTER
+ TRAINER_CLASS_CHAMPION, // FACILITY_CLASS_CHAMPION
+ TRAINER_CLASS_FISHERMAN, // FACILITY_CLASS_FISHERMAN
+ TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_1
+ TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_2
+ TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_3
+ TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_4
+ TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_5
+ TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_6
+ TRAINER_CLASS_DRAGON_TAMER, // FACILITY_CLASS_DRAGON_TAMER
+ TRAINER_CLASS_NINJA_BOY, // FACILITY_CLASS_NINJA_BOY
+ TRAINER_CLASS_BATTLE_GIRL, // FACILITY_CLASS_BATTLE_GIRL
+ TRAINER_CLASS_PARASOL_LADY, // FACILITY_CLASS_PARASOL_LADY
+ TRAINER_CLASS_SWIMMER_F, // FACILITY_CLASS_SWIMMER_F
+ TRAINER_CLASS_TWINS, // FACILITY_CLASS_TWINS
+ TRAINER_CLASS_SAILOR, // FACILITY_CLASS_SAILOR
+ TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_1
+ TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_2
+ TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_3
+ TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_4
+ TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_5
+ TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_6
+ TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_7
+ TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_2
+ TRAINER_CLASS_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER
+ TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_1
+ TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_2
+ TRAINER_CLASS_MAGMA_LEADER, // FACILITY_CLASS_MAGMA_LEADER
+ TRAINER_CLASS_LASS, // FACILITY_CLASS_LASS
+ TRAINER_CLASS_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
+ TRAINER_CLASS_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
+ TRAINER_CLASS_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO
+ TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_8
+ TRAINER_CLASS_SALON_MAIDEN, // FACILITY_CLASS_SALON_MAIDEN
+ TRAINER_CLASS_DOME_ACE, // FACILITY_CLASS_DOME_ACE
+ TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_9
+ TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_10
+ TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_11
+ TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_12
+};
+
+#endif //POKEEMERALD_TRAINER_CLASS_LOOKUPS_H
diff --git a/include/data/region_map/region_map_entries.h b/include/data/region_map/region_map_entries.h
new file mode 100644
index 000000000..9c7e3f2fc
--- /dev/null
+++ b/include/data/region_map/region_map_entries.h
@@ -0,0 +1,421 @@
+#ifndef GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H
+#define GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H
+
+static const u8 sMapName_LittlerootTown[] = _("LITTLEROOT TOWN");
+static const u8 sMapName_OldaleTown[] = _("OLDALE TOWN");
+static const u8 sMapName_DewfordTown[] = _("DEWFORD TOWN");
+static const u8 sMapName_LavaridgeTown[] = _("LAVARIDGE TOWN");
+static const u8 sMapName_FallarborTown[] = _("FALLARBOR TOWN");
+static const u8 sMapName_VerdanturfTown[] = _("VERDANTURF TOWN");
+static const u8 sMapName_PacifidlogTown[] = _("PACIFIDLOG TOWN");
+static const u8 sMapName_PetalburgCity[] = _("PETALBURG CITY");
+static const u8 sMapName_SlateportCity[] = _("SLATEPORT CITY");
+static const u8 sMapName_MauvilleCity[] = _("MAUVILLE CITY");
+static const u8 sMapName_RustboroCity[] = _("RUSTBORO CITY");
+static const u8 sMapName_FortreeCity[] = _("FORTREE CITY");
+static const u8 sMapName_LilycoveCity[] = _("LILYCOVE CITY");
+static const u8 sMapName_MossdeepCity[] = _("MOSSDEEP CITY");
+static const u8 sMapName_SootopolisCity[] = _("SOOTOPOLIS CITY");
+static const u8 sMapName_EverGrandeCity[] = _("EVER GRANDE CITY");
+static const u8 sMapName_Route101[] = _("ROUTE 101");
+static const u8 sMapName_Route102[] = _("ROUTE 102");
+static const u8 sMapName_Route103[] = _("ROUTE 103");
+static const u8 sMapName_Route104[] = _("ROUTE 104");
+static const u8 sMapName_Route105[] = _("ROUTE 105");
+static const u8 sMapName_Route106[] = _("ROUTE 106");
+static const u8 sMapName_Route107[] = _("ROUTE 107");
+static const u8 sMapName_Route108[] = _("ROUTE 108");
+static const u8 sMapName_Route109[] = _("ROUTE 109");
+static const u8 sMapName_Route110[] = _("ROUTE 110");
+static const u8 sMapName_Route111[] = _("ROUTE 111");
+static const u8 sMapName_Route112[] = _("ROUTE 112");
+static const u8 sMapName_Route113[] = _("ROUTE 113");
+static const u8 sMapName_Route114[] = _("ROUTE 114");
+static const u8 sMapName_Route115[] = _("ROUTE 115");
+static const u8 sMapName_Route116[] = _("ROUTE 116");
+static const u8 sMapName_Route117[] = _("ROUTE 117");
+static const u8 sMapName_Route118[] = _("ROUTE 118");
+static const u8 sMapName_Route119[] = _("ROUTE 119");
+static const u8 sMapName_Route120[] = _("ROUTE 120");
+static const u8 sMapName_Route121[] = _("ROUTE 121");
+static const u8 sMapName_Route122[] = _("ROUTE 122");
+static const u8 sMapName_Route123[] = _("ROUTE 123");
+static const u8 sMapName_Route124[] = _("ROUTE 124");
+static const u8 sMapName_Route125[] = _("ROUTE 125");
+static const u8 sMapName_Route126[] = _("ROUTE 126");
+static const u8 sMapName_Route127[] = _("ROUTE 127");
+static const u8 sMapName_Route128[] = _("ROUTE 128");
+static const u8 sMapName_Route129[] = _("ROUTE 129");
+static const u8 sMapName_Route130[] = _("ROUTE 130");
+static const u8 sMapName_Route131[] = _("ROUTE 131");
+static const u8 sMapName_Route132[] = _("ROUTE 132");
+static const u8 sMapName_Route133[] = _("ROUTE 133");
+static const u8 sMapName_Route134[] = _("ROUTE 134");
+static const u8 sMapName_Underwater[] = _("UNDERWATER");
+static const u8 sMapName_GraniteCave[] = _("GRANITE CAVE");
+static const u8 sMapName_MtChimney[] = _("MT. CHIMNEY");
+static const u8 sMapName_SafariZone[] = _("SAFARI ZONE");
+static const u8 sMapName_BattleFrontier[] = _("BATTLE FRONTIER");
+static const u8 sMapName_PetalburgWoods[] = _("PETALBURG WOODS");
+static const u8 sMapName_RusturfTunnel[] = _("RUSTURF TUNNEL");
+static const u8 sMapName_AbandonedShip[] = _("ABANDONED SHIP");
+static const u8 sMapName_NewMauville[] = _("NEW MAUVILLE");
+static const u8 sMapName_MeteorFalls[] = _("METEOR FALLS");
+static const u8 sMapName_MtPyre[] = _("MT. PYRE");
+// This was the Aqua or Magma hideout in Ruby/Sapphire, but each team has a
+// hideout in Emerald with their own new region map entries, and this name
+// doesn't seem to be used anymore.
+static const u8 sMapName_AquaHideoutOld[] = _("{AQUA} HIDEOUT");
+static const u8 sMapName_ShoalCave[] = _("SHOAL CAVE");
+static const u8 sMapName_SeafloorCavern[] = _("SEAFLOOR CAVERN");
+static const u8 sMapName_VictoryRoad[] = _("VICTORY ROAD");
+static const u8 sMapName_MirageIsland[] = _("MIRAGE ISLAND");
+static const u8 sMapName_CaveOfOrigin[] = _("CAVE OF ORIGIN");
+static const u8 sMapName_SouthernIsland[] = _("SOUTHERN ISLAND");
+static const u8 sMapName_FieryPath[] = _("FIERY PATH");
+static const u8 sMapName_JaggedPass[] = _("JAGGED PASS");
+static const u8 sMapName_SealedChamber[] = _("SEALED CHAMBER");
+static const u8 sMapName_ScorchedSlab[] = _("SCORCHED SLAB");
+static const u8 sMapName_IslandCave[] = _("ISLAND CAVE");
+static const u8 sMapName_DesertRuins[] = _("DESERT RUINS");
+static const u8 sMapName_AncientTomb[] = _("ANCIENT TOMB");
+static const u8 sMapName_InsideOfTruck[] = _("INSIDE OF TRUCK");
+static const u8 sMapName_SkyPillar[] = _("SKY PILLAR");
+static const u8 sMapName_SecretBase[] = _("SECRET BASE");
+static const u8 sMapName_None[] = _("");
+static const u8 sMapName_PalletTown[] = _("PALLET TOWN");
+static const u8 sMapName_ViridianCity[] = _("VIRIDIAN CITY");
+static const u8 sMapName_PewterCity[] = _("PEWTER CITY");
+static const u8 sMapName_CeruleanCity[] = _("CERULEAN CITY");
+static const u8 sMapName_LavenderTown[] = _("LAVENDER TOWN");
+static const u8 sMapName_VermilionCity[] = _("VERMILION CITY");
+static const u8 sMapName_CeladonCity[] = _("CELADON CITY");
+static const u8 sMapName_FuchsiaCity[] = _("FUCHSIA CITY");
+static const u8 sMapName_CinnabarIsland[] = _("CINNABAR ISLAND");
+static const u8 sMapName_IndigoPlateau[] = _("INDIGO PLATEAU");
+static const u8 sMapName_SaffronCity[] = _("SAFFRON CITY");
+static const u8 sMapName_Route4[] = _("ROUTE 4");
+static const u8 sMapName_Route10[] = _("ROUTE 10");
+static const u8 sMapName_Route1[] = _("ROUTE 1");
+static const u8 sMapName_Route2[] = _("ROUTE 2");
+static const u8 sMapName_Route3[] = _("ROUTE 3");
+static const u8 sMapName_Route4_2[] = _("ROUTE 4");
+static const u8 sMapName_Route5[] = _("ROUTE 5");
+static const u8 sMapName_Route6[] = _("ROUTE 6");
+static const u8 sMapName_Route7[] = _("ROUTE 7");
+static const u8 sMapName_Route8[] = _("ROUTE 8");
+static const u8 sMapName_Route9[] = _("ROUTE 9");
+static const u8 sMapName_Route10_2[] = _("ROUTE 10");
+static const u8 sMapName_Route11[] = _("ROUTE 11");
+static const u8 sMapName_Route12[] = _("ROUTE 12");
+static const u8 sMapName_Route13[] = _("ROUTE 13");
+static const u8 sMapName_Route14[] = _("ROUTE 14");
+static const u8 sMapName_Route15[] = _("ROUTE 15");
+static const u8 sMapName_Route16[] = _("ROUTE 16");
+static const u8 sMapName_Route17[] = _("ROUTE 17");
+static const u8 sMapName_Route18[] = _("ROUTE 18");
+static const u8 sMapName_Route19[] = _("ROUTE 19");
+static const u8 sMapName_Route20[] = _("ROUTE 20");
+static const u8 sMapName_Route21[] = _("ROUTE 21");
+static const u8 sMapName_Route22[] = _("ROUTE 22");
+static const u8 sMapName_Route23[] = _("ROUTE 23");
+static const u8 sMapName_Route24[] = _("ROUTE 24");
+static const u8 sMapName_Route25[] = _("ROUTE 25");
+static const u8 sMapName_ViridianForest[] = _("VIRIDIAN FOREST");
+static const u8 sMapName_MtMoon[] = _("MT. MOON");
+static const u8 sMapName_SSAnne[] = _("S.S. ANNE");
+static const u8 sMapName_UndergroundPath[] = _("UNDERGROUND PATH");
+static const u8 sMapName_UndergroundPath2[] = _("UNDERGROUND PATH");
+static const u8 sMapName_DiglettsCave[] = _("DIGLETT’S CAVE");
+static const u8 sMapName_KantoVictoryRoad[] = _("VICTORY ROAD");
+static const u8 sMapName_RocketHideout[] = _("ROCKET HIDEOUT");
+static const u8 sMapName_SilphCo[] = _("SILPH CO.");
+static const u8 sMapName_PokemonMansion[] = _("POKéMON MANSION");
+static const u8 sMapName_KantoSafariZone[] = _("SAFARI ZONE");
+static const u8 sMapName_PokemonLeague[] = _("POKéMON LEAGUE");
+static const u8 sMapName_RockTunnel[] = _("ROCK TUNNEL");
+static const u8 sMapName_SeafoamIslands[] = _("SEAFOAM ISLANDS");
+static const u8 sMapName_PokemonTower[] = _("POKéMON TOWER");
+static const u8 sMapName_CeruleanCave[] = _("CERULEAN CAVE");
+static const u8 sMapName_PowerPlant[] = _("POWER PLANT");
+static const u8 sMapName_OneIsland[] = _("ONE ISLAND");
+static const u8 sMapName_TwoIsland[] = _("TWO ISLAND");
+static const u8 sMapName_ThreeIsland[] = _("THREE ISLAND");
+static const u8 sMapName_FourIsland[] = _("FOUR ISLAND");
+static const u8 sMapName_FiveIsland[] = _("FIVE ISLAND");
+static const u8 sMapName_SevenIsland[] = _("SEVEN ISLAND");
+static const u8 sMapName_SixIsland[] = _("SIX ISLAND");
+static const u8 sMapName_KindleRoad[] = _("KINDLE ROAD");
+static const u8 sMapName_TreasureBeach[] = _("TREASURE BEACH");
+static const u8 sMapName_CapeBrink[] = _("CAPE BRINK");
+static const u8 sMapName_BondBridge[] = _("BOND BRIDGE");
+static const u8 sMapName_ThreeIslePort[] = _("THREE ISLE PORT");
+static const u8 sMapName_SeviiIsle6[] = _("SEVII ISLE 6");
+static const u8 sMapName_SeviiIsle7[] = _("SEVII ISLE 7");
+static const u8 sMapName_SeviiIsle8[] = _("SEVII ISLE 8");
+static const u8 sMapName_SeviiIsle9[] = _("SEVII ISLE 9");
+static const u8 sMapName_ResortGorgeous[] = _("RESORT GORGEOUS");
+static const u8 sMapName_WaterLabyrinth[] = _("WATER LABYRINTH");
+static const u8 sMapName_FiveIsleMeadow[] = _("FIVE ISLE MEADOW");
+static const u8 sMapName_MemorialPillar[] = _("MEMORIAL PILLAR");
+static const u8 sMapName_OutcastIsland[] = _("OUTCAST ISLAND");
+static const u8 sMapName_GreenPath[] = _("GREEN PATH");
+static const u8 sMapName_WaterPath[] = _("WATER PATH");
+static const u8 sMapName_RuinValley[] = _("RUIN VALLEY");
+static const u8 sMapName_TrainerTower[] = _("TRAINER TOWER");
+static const u8 sMapName_CanyonEntrance[] = _("CANYON ENTRANCE");
+static const u8 sMapName_SevaultCanyon[] = _("SEVAULT CANYON");
+static const u8 sMapName_TanobyRuins[] = _("TANOBY RUINS");
+static const u8 sMapName_SeviiIsle22[] = _("SEVII ISLE 22");
+static const u8 sMapName_SeviiIsle23[] = _("SEVII ISLE 23");
+static const u8 sMapName_SeviiIsle24[] = _("SEVII ISLE 24");
+static const u8 sMapName_NavelRock[] = _("NAVEL ROCK");
+static const u8 sMapName_MtEmber[] = _("MT. EMBER");
+static const u8 sMapName_BerryForest[] = _("BERRY FOREST");
+static const u8 sMapName_IcefallCave[] = _("ICEFALL CAVE");
+static const u8 sMapName_RocketWarehouse[] = _("ROCKET WAREHOUSE");
+static const u8 sMapName_TrainerTower2[] = _("TRAINER TOWER");
+static const u8 sMapName_DottedHole[] = _("DOTTED HOLE");
+static const u8 sMapName_LostCave[] = _("LOST CAVE");
+static const u8 sMapName_PatternBush[] = _("PATTERN BUSH");
+static const u8 sMapName_AlteringCave[] = _("ALTERING CAVE");
+static const u8 sMapName_TanobyChambers[] = _("TANOBY CHAMBERS");
+static const u8 sMapName_ThreeIslePath[] = _("THREE ISLE PATH");
+static const u8 sMapName_TanobyKey[] = _("TANOBY KEY");
+static const u8 sMapName_BirthIsland[] = _("BIRTH ISLAND");
+static const u8 sMapName_MoneanChamber[] = _("MONEAN CHAMBER");
+static const u8 sMapName_LiptooChamber[] = _("LIPTOO CHAMBER");
+static const u8 sMapName_WeepthChamber[] = _("WEEPTH CHAMBER");
+static const u8 sMapName_DilfordChamber[] = _("DILFORD CHAMBER");
+static const u8 sMapName_ScufibChamber[] = _("SCUFIB CHAMBER");
+static const u8 sMapName_RixyChamber[] = _("RIXY CHAMBER");
+static const u8 sMapName_ViapoisChamber[] = _("VIAPOIS CHAMBER");
+static const u8 sMapName_EmberSpa[] = _("EMBER SPA");
+static const u8 sMapName_SpecialArea[] = _("SPECIAL AREA");
+static const u8 sMapName_AquaHideout[] = _("AQUA HIDEOUT");
+static const u8 sMapName_MagmaHideout[] = _("MAGMA HIDEOUT");
+static const u8 sMapName_MirageTower[] = _("MIRAGE TOWER");
+static const u8 sMapName_FarawayIsland[] = _("FARAWAY ISLAND");
+static const u8 sMapName_ArtisanCave[] = _("ARTISAN CAVE");
+static const u8 sMapName_MarineCave[] = _("MARINE CAVE");
+static const u8 sMapName_TerraCave[] = _("TERRA CAVE");
+static const u8 sMapName_DesertUnderpass[] = _("DESERT UNDERPASS");
+static const u8 sMapName_TrainerHill[] = _("TRAINER HILL");
+
+const struct RegionMapLocation gRegionMapEntries[] = {
+ { 4, 11, 1, 1, sMapName_LittlerootTown},
+ { 4, 9, 1, 1, sMapName_OldaleTown},
+ { 2, 14, 1, 1, sMapName_DewfordTown},
+ { 5, 3, 1, 1, sMapName_LavaridgeTown},
+ { 3, 0, 1, 1, sMapName_FallarborTown},
+ { 4, 6, 1, 1, sMapName_VerdanturfTown},
+ {17, 10, 1, 1, sMapName_PacifidlogTown},
+ { 1, 9, 1, 1, sMapName_PetalburgCity},
+ { 8, 10, 1, 2, sMapName_SlateportCity},
+ { 8, 6, 2, 1, sMapName_MauvilleCity},
+ { 0, 5, 1, 2, sMapName_RustboroCity},
+ {12, 0, 1, 1, sMapName_FortreeCity},
+ {18, 3, 2, 1, sMapName_LilycoveCity},
+ {24, 5, 2, 1, sMapName_MossdeepCity},
+ {21, 7, 1, 1, sMapName_SootopolisCity},
+ {27, 8, 1, 2, sMapName_EverGrandeCity},
+ { 4, 10, 1, 1, sMapName_Route101},
+ { 2, 9, 2, 1, sMapName_Route102},
+ { 4, 8, 4, 1, sMapName_Route103},
+ { 0, 7, 1, 3, sMapName_Route104},
+ { 0, 10, 1, 3, sMapName_Route105},
+ { 0, 13, 2, 1, sMapName_Route106},
+ { 3, 14, 3, 1, sMapName_Route107},
+ { 6, 14, 2, 1, sMapName_Route108},
+ { 8, 12, 1, 3, sMapName_Route109},
+ { 8, 7, 1, 3, sMapName_Route110},
+ { 8, 0, 1, 6, sMapName_Route111},
+ { 6, 3, 2, 1, sMapName_Route112},
+ { 4, 0, 4, 1, sMapName_Route113},
+ { 1, 0, 2, 3, sMapName_Route114},
+ { 0, 2, 1, 3, sMapName_Route115},
+ { 1, 5, 4, 1, sMapName_Route116},
+ { 5, 6, 3, 1, sMapName_Route117},
+ {10, 6, 2, 1, sMapName_Route118},
+ {11, 0, 1, 6, sMapName_Route119},
+ {13, 0, 1, 4, sMapName_Route120},
+ {14, 3, 4, 1, sMapName_Route121},
+ {16, 4, 1, 2, sMapName_Route122},
+ {12, 6, 5, 1, sMapName_Route123},
+ {20, 3, 4, 3, sMapName_Route124},
+ {24, 3, 2, 2, sMapName_Route125},
+ {20, 6, 3, 3, sMapName_Route126},
+ {23, 6, 3, 3, sMapName_Route127},
+ {23, 9, 4, 1, sMapName_Route128},
+ {24, 10, 2, 1, sMapName_Route129},
+ {21, 10, 3, 1, sMapName_Route130},
+ {18, 10, 3, 1, sMapName_Route131},
+ {15, 10, 2, 1, sMapName_Route132},
+ {12, 10, 3, 1, sMapName_Route133},
+ { 9, 10, 3, 1, sMapName_Route134},
+ {20, 3, 4, 3, sMapName_Underwater},
+ {20, 6, 3, 3, sMapName_Underwater},
+ {23, 6, 3, 3, sMapName_Underwater},
+ {23, 9, 4, 1, sMapName_Underwater},
+ {21, 7, 1, 1, sMapName_Underwater},
+ { 1, 13, 1, 1, sMapName_GraniteCave},
+ { 6, 2, 1, 1, sMapName_MtChimney},
+ {16, 2, 1, 1, sMapName_SafariZone},
+ {22, 12, 1, 1, sMapName_BattleFrontier},
+ { 0, 8, 1, 1, sMapName_PetalburgWoods},
+ { 2, 5, 1, 1, sMapName_RusturfTunnel},
+ { 6, 14, 1, 1, sMapName_AbandonedShip},
+ { 8, 7, 1, 1, sMapName_NewMauville},
+ { 0, 3, 1, 1, sMapName_MeteorFalls},
+ { 1, 2, 1, 1, sMapName_MeteorFalls},
+ {16, 4, 1, 1, sMapName_MtPyre},
+ {19, 3, 1, 1, sMapName_AquaHideoutOld},
+ {24, 4, 1, 1, sMapName_ShoalCave},
+ {24, 9, 1, 1, sMapName_SeafloorCavern},
+ {24, 9, 1, 1, sMapName_Underwater},
+ {27, 9, 1, 1, sMapName_VictoryRoad},
+ {17, 10, 1, 1, sMapName_MirageIsland},
+ {21, 7, 1, 1, sMapName_CaveOfOrigin},
+ {12, 14, 1, 1, sMapName_SouthernIsland},
+ { 6, 3, 1, 1, sMapName_FieryPath},
+ { 7, 3, 1, 1, sMapName_FieryPath},
+ { 6, 3, 1, 1, sMapName_JaggedPass},
+ { 7, 2, 1, 1, sMapName_JaggedPass},
+ {11, 10, 1, 1, sMapName_SealedChamber},
+ {11, 10, 1, 1, sMapName_Underwater},
+ {13, 0, 1, 1, sMapName_ScorchedSlab},
+ { 0, 10, 1, 1, sMapName_IslandCave},
+ { 8, 3, 1, 1, sMapName_DesertRuins},
+ {13, 2, 1, 1, sMapName_AncientTomb},
+ { 0, 0, 1, 1, sMapName_InsideOfTruck},
+ {19, 10, 1, 1, sMapName_SkyPillar},
+ { 0, 0, 1, 1, sMapName_SecretBase},
+ { 0, 0, 1, 1, sMapName_None},
+ { 0, 0, 1, 1, sMapName_PalletTown},
+ { 0, 0, 1, 1, sMapName_ViridianCity},
+ { 0, 0, 1, 1, sMapName_PewterCity},
+ { 0, 0, 1, 1, sMapName_CeruleanCity},
+ { 0, 0, 1, 1, sMapName_LavenderTown},
+ { 0, 0, 1, 1, sMapName_VermilionCity},
+ { 0, 0, 1, 1, sMapName_CeladonCity},
+ { 0, 0, 1, 1, sMapName_FuchsiaCity},
+ { 0, 0, 1, 1, sMapName_CinnabarIsland},
+ { 0, 0, 1, 1, sMapName_IndigoPlateau},
+ { 0, 0, 1, 1, sMapName_SaffronCity},
+ { 0, 0, 1, 1, sMapName_Route4},
+ { 0, 0, 1, 1, sMapName_Route10},
+ { 0, 0, 1, 1, sMapName_Route1},
+ { 0, 0, 1, 1, sMapName_Route2},
+ { 0, 0, 1, 1, sMapName_Route3},
+ { 0, 0, 1, 1, sMapName_Route4_2},
+ { 0, 0, 1, 1, sMapName_Route5},
+ { 0, 0, 1, 1, sMapName_Route6},
+ { 0, 0, 1, 1, sMapName_Route7},
+ { 0, 0, 1, 1, sMapName_Route8},
+ { 0, 0, 1, 1, sMapName_Route9},
+ { 0, 0, 1, 1, sMapName_Route10_2},
+ { 0, 0, 1, 1, sMapName_Route11},
+ { 0, 0, 1, 1, sMapName_Route12},
+ { 0, 0, 1, 1, sMapName_Route13},
+ { 0, 0, 1, 1, sMapName_Route14},
+ { 0, 0, 1, 1, sMapName_Route15},
+ { 0, 0, 1, 1, sMapName_Route16},
+ { 0, 0, 1, 1, sMapName_Route17},
+ { 0, 0, 1, 1, sMapName_Route18},
+ { 0, 0, 1, 1, sMapName_Route19},
+ { 0, 0, 1, 1, sMapName_Route20},
+ { 0, 0, 1, 1, sMapName_Route21},
+ { 0, 0, 1, 1, sMapName_Route22},
+ { 0, 0, 1, 1, sMapName_Route23},
+ { 0, 0, 1, 1, sMapName_Route24},
+ { 0, 0, 1, 1, sMapName_Route25},
+ { 0, 0, 1, 1, sMapName_ViridianForest},
+ { 0, 0, 1, 1, sMapName_MtMoon},
+ { 0, 0, 1, 1, sMapName_SSAnne},
+ { 0, 0, 1, 1, sMapName_UndergroundPath},
+ { 0, 0, 1, 1, sMapName_UndergroundPath2},
+ { 0, 0, 1, 1, sMapName_DiglettsCave},
+ { 0, 0, 1, 1, sMapName_KantoVictoryRoad},
+ { 0, 0, 1, 1, sMapName_RocketHideout},
+ { 0, 0, 1, 1, sMapName_SilphCo},
+ { 0, 0, 1, 1, sMapName_PokemonMansion},
+ { 0, 0, 1, 1, sMapName_KantoSafariZone},
+ { 0, 0, 1, 1, sMapName_PokemonLeague},
+ { 0, 0, 1, 1, sMapName_RockTunnel},
+ { 0, 0, 1, 1, sMapName_SeafoamIslands},
+ { 0, 0, 1, 1, sMapName_PokemonTower},
+ { 0, 0, 1, 1, sMapName_CeruleanCave},
+ { 0, 0, 1, 1, sMapName_PowerPlant},
+ { 0, 0, 1, 1, sMapName_OneIsland},
+ { 0, 0, 1, 1, sMapName_TwoIsland},
+ { 0, 0, 1, 1, sMapName_ThreeIsland},
+ { 0, 0, 1, 1, sMapName_FourIsland},
+ { 0, 0, 1, 1, sMapName_FiveIsland},
+ { 0, 0, 1, 1, sMapName_SevenIsland},
+ { 0, 0, 1, 1, sMapName_SixIsland},
+ { 0, 0, 1, 1, sMapName_KindleRoad},
+ { 0, 0, 1, 1, sMapName_TreasureBeach},
+ { 0, 0, 1, 1, sMapName_CapeBrink},
+ { 0, 0, 1, 1, sMapName_BondBridge},
+ { 0, 0, 1, 1, sMapName_ThreeIslePort},
+ { 0, 0, 1, 1, sMapName_SeviiIsle6},
+ { 0, 0, 1, 1, sMapName_SeviiIsle7},
+ { 0, 0, 1, 1, sMapName_SeviiIsle8},
+ { 0, 0, 1, 1, sMapName_SeviiIsle9},
+ { 0, 0, 1, 1, sMapName_ResortGorgeous},
+ { 0, 0, 1, 1, sMapName_WaterLabyrinth},
+ { 0, 0, 1, 1, sMapName_FiveIsleMeadow},
+ { 0, 0, 1, 1, sMapName_MemorialPillar},
+ { 0, 0, 1, 1, sMapName_OutcastIsland},
+ { 0, 0, 1, 1, sMapName_GreenPath},
+ { 0, 0, 1, 1, sMapName_WaterPath},
+ { 0, 0, 1, 1, sMapName_RuinValley},
+ { 0, 0, 1, 1, sMapName_TrainerTower},
+ { 0, 0, 1, 1, sMapName_CanyonEntrance},
+ { 0, 0, 1, 1, sMapName_SevaultCanyon},
+ { 0, 0, 1, 1, sMapName_TanobyRuins},
+ { 0, 0, 1, 1, sMapName_SeviiIsle22},
+ { 0, 0, 1, 1, sMapName_SeviiIsle23},
+ { 0, 0, 1, 1, sMapName_SeviiIsle24},
+ { 0, 0, 1, 1, sMapName_NavelRock},
+ { 0, 0, 1, 1, sMapName_MtEmber},
+ { 0, 0, 1, 1, sMapName_BerryForest},
+ { 0, 0, 1, 1, sMapName_IcefallCave},
+ { 0, 0, 1, 1, sMapName_RocketWarehouse},
+ { 0, 0, 1, 1, sMapName_TrainerTower2},
+ { 0, 0, 1, 1, sMapName_DottedHole},
+ { 0, 0, 1, 1, sMapName_LostCave},
+ { 0, 0, 1, 1, sMapName_PatternBush},
+ { 0, 0, 1, 1, sMapName_AlteringCave},
+ { 0, 0, 1, 1, sMapName_TanobyChambers},
+ { 0, 0, 1, 1, sMapName_ThreeIslePath},
+ { 0, 0, 1, 1, sMapName_TanobyKey},
+ { 0, 0, 1, 1, sMapName_BirthIsland},
+ { 0, 0, 1, 1, sMapName_MoneanChamber},
+ { 0, 0, 1, 1, sMapName_LiptooChamber},
+ { 0, 0, 1, 1, sMapName_WeepthChamber},
+ { 0, 0, 1, 1, sMapName_DilfordChamber},
+ { 0, 0, 1, 1, sMapName_ScufibChamber},
+ { 0, 0, 1, 1, sMapName_RixyChamber},
+ { 0, 0, 1, 1, sMapName_ViapoisChamber},
+ { 0, 0, 1, 1, sMapName_EmberSpa},
+ { 0, 0, 1, 1, sMapName_SpecialArea},
+ {19, 3, 1, 1, sMapName_AquaHideout},
+ { 6, 3, 1, 1, sMapName_MagmaHideout},
+ { 8, 2, 1, 1, sMapName_MirageTower},
+ { 0, 0, 1, 1, sMapName_BirthIsland},
+ { 0, 0, 1, 1, sMapName_FarawayIsland},
+ {22, 12, 1, 1, sMapName_ArtisanCave},
+ { 0, 0, 1, 1, sMapName_MarineCave},
+ { 0, 0, 1, 1, sMapName_Underwater},
+ { 0, 0, 1, 1, sMapName_TerraCave},
+ { 0, 10, 1, 3, sMapName_Underwater},
+ {24, 3, 2, 2, sMapName_Underwater},
+ {24, 10, 2, 1, sMapName_Underwater},
+ { 2, 0, 1, 1, sMapName_DesertUnderpass},
+ { 6, 8, 1, 1, sMapName_AlteringCave},
+ { 0, 0, 1, 1, sMapName_NavelRock},
+ { 8, 4, 1, 1, sMapName_TrainerHill}
+};
+
+#endif //GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H
diff --git a/include/daycare.h b/include/daycare.h
new file mode 100644
index 000000000..7db44e024
--- /dev/null
+++ b/include/daycare.h
@@ -0,0 +1,27 @@
+#ifndef GUARD_DAYCARE_H
+#define GUARD_DAYCARE_H
+
+#define EGG_HATCH_LEVEL 5
+
+u8 *GetMonNick(struct Pokemon *mon, u8 *dest);
+u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest);
+u8 CountPokemonInDaycare(struct DayCare *daycare);
+void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail);
+void StoreSelectedPokemonInDaycare(void);
+u16 TakePokemonFromDaycare(void);
+void GetDaycareCost(void);
+u8 GetNumLevelsGainedFromDaycare(void);
+void TriggerPendingDaycareEgg(void);
+void RejectEggFromDayCare(void);
+void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation);
+void GiveEggFromDaycare(void);
+bool8 DoEggActions_CheckHatch(void);
+u16 GetSelectedMonNickAndSpecies(void);
+void GetDaycareMonNicknames(void);
+u8 GetDaycareState(void);
+void SetDaycareCompatibilityString(void);
+bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio);
+void ShowDaycareLevelMenu(void);
+void ChooseSendDaycareMon(void);
+
+#endif // GUARD_DAYCARE_H
diff --git a/include/decompress.h b/include/decompress.h
index c3a771893..34a678cda 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -3,6 +3,8 @@
#include "sprite.h"
+extern u8 gDecompressionBuffer[0x4000];
+
void LZDecompressWram(const void *src, void *dest);
void LZDecompressVram(const void *src, void *dest);
@@ -26,4 +28,6 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
+u32 sub_8034974(const u8 *ptr);
+
#endif // GUARD_DECOMPRESS_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/dewford_trend.h b/include/dewford_trend.h
index 01e5d9762..dac5ea6c9 100644
--- a/include/dewford_trend.h
+++ b/include/dewford_trend.h
@@ -3,5 +3,6 @@
void InitDewfordTrend(void);
void UpdateDewfordTrendPerDay(u16);
+void UpdateDewfordTrendPerDay(u16 days);
#endif // GUARD_DEWFORDTREND_H
diff --git a/include/dma3.h b/include/dma3.h
index 265b47824..19a69ea80 100644
--- a/include/dma3.h
+++ b/include/dma3.h
@@ -3,8 +3,8 @@
void ClearDma3Requests(void);
void ProcessDma3Requests(void);
-int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
-int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
-int CheckForSpaceForDma3Request(s16 index);
+s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
+s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
+s16 CheckForSpaceForDma3Request(s16 index);
#endif // GUARD_DMA3_H
diff --git a/include/egg_hatch.h b/include/egg_hatch.h
new file mode 100644
index 000000000..862d33947
--- /dev/null
+++ b/include/egg_hatch.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_EGG_HATCH_H
+#define GUARD_EGG_HATCH_H
+
+void ScriptHatchMon(void);
+bool8 sub_8071614(void);
+void EggHatch(void);
+u8 GetEggStepsToSubtract(void);
+u16 sub_80722E0(void);
+
+#endif // GUARD_EGG_HATCH_H
diff --git a/include/event_data.h b/include/event_data.h
index 0bd11fdcd..f829d3b87 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -1,8 +1,8 @@
#ifndef GUARD_EVENT_DATA_H
#define GUARD_EVENT_DATA_H
-#include "flags.h"
-#include "vars.h"
+#include "constants/flags.h"
+#include "constants/vars.h"
void InitEventData(void);
void ClearTempFieldEventData(void);
@@ -42,11 +42,11 @@ extern u16 gSpecialVar_0x8008;
extern u16 gSpecialVar_0x8009;
extern u16 gSpecialVar_0x800A;
extern u16 gSpecialVar_0x800B;
-extern u16 gScriptResult;
-extern u16 gScriptLastTalked;
-extern u16 gScriptFacing;
-extern u16 gSpecialVar_0x8012;
-extern u16 gSpecialVar_0x8013;
+extern u16 gSpecialVar_Result;
+extern u16 gSpecialVar_LastTalked;
+extern u16 gSpecialVar_Facing;
+extern u16 gSpecialVar_MonBoxId;
+extern u16 gSpecialVar_MonBoxPos;
extern u16 gSpecialVar_0x8014;
#endif // GUARD_EVENT_DATA_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index f85118e00..a54e0e463 100755..100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -7,12 +7,20 @@
extern const u8 gUnknown_0823B4E8[];
extern const u8 gUnknown_0823B5E9[];
-extern const u8 gUnknown_08275BB7[];
-extern const u8 gUnknown_08275D0C[];
-extern const u8 gUnknown_08275D1F[];
-extern const u8 gUnknown_08275D2E[];
-extern const u8 gUnknown_082766A2[];
-extern const u8 gUnknown_082766A6[];
+extern const u8 EventScript_TestSignpostMsg[];
+extern const u8 EventScript_TryGetTrainerScript[];
+extern const u8 EventScript_275BB7[];
+extern const u8 EventScript_275D0C[];
+extern const u8 EventScript_275D1F[];
+extern const u8 EventScript_275D2E[];
+extern const u8 EventScript_271354[];
+extern const u8 EventScript_2713C2[];
+extern const u8 EventScript_TryDoDoubleTrainerBattle[];
+extern const u8 EventScript_271362[];
+extern const u8 EventScript_TryDoDoubleRematchBattle[];
+extern const u8 EventScript_2713D1[];
+extern const u8 EventScript_2766A2[];
+extern const u8 EventScript_2766A6[];
extern const u8 gTVBravoTrainerText00[];
extern const u8 gTVBravoTrainerText01[];
@@ -362,14 +370,14 @@ extern const u8 gPokeNewsTextLilycove_Ending[];
extern const u8 gPokeNewsTextBlendMaster_Upcoming[];
extern const u8 gPokeNewsTextBlendMaster_Ongoing[];
extern const u8 gPokeNewsTextBlendMaster_Ending[];
-extern const u8 gUnknown_08274966[];
-extern const u8 gUnknown_08274D13[];
-extern const u8 gUnknown_08274FFE[];
-extern const u8 gUnknown_08275367[];
-extern const u8 gUnknown_082756C7[];
-extern const u8 gUnknown_08274B24[];
-extern const u8 gUnknown_08274E75[];
-extern const u8 gUnknown_082751E1[];
-extern const u8 gUnknown_082754F6[];
-extern const u8 gUnknown_082758CC[];
+extern const u8 SecretBase_RedCave1_Text_274966[];
+extern const u8 SecretBase_RedCave1_Text_274D13[];
+extern const u8 SecretBase_RedCave1_Text_274FFE[];
+extern const u8 SecretBase_RedCave1_Text_275367[];
+extern const u8 SecretBase_RedCave1_Text_2756C7[];
+extern const u8 SecretBase_RedCave1_Text_274B24[];
+extern const u8 SecretBase_RedCave1_Text_274E75[];
+extern const u8 SecretBase_RedCave1_Text_2751E1[];
+extern const u8 SecretBase_RedCave1_Text_2754F6[];
+extern const u8 SecretBase_RedCave1_Text_2758CC[];
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_camera.h b/include/field_camera.h
index a8559e1c2..6daa9a8a2 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -24,5 +24,7 @@ extern u16 gUnknown_03005DE8;
void DrawWholeMapView(void);
void CurrentMapDrawMetatileAt(int x, int y);
+void sub_8089C08(s16 *a0, s16 *a1);
+void DrawDoorMetatileAt(int x, int y, u16 *arr);
#endif //GUARD_FIELD_CAMERA_H
diff --git a/include/field_door.h b/include/field_door.h
index f1dfc551d..8b4955cac 100644
--- a/include/field_door.h
+++ b/include/field_door.h
@@ -1,6 +1,21 @@
#ifndef GUARD_FIELDDOOR_H
#define GUARD_FIELDDOOR_H
+struct DoorGraphics
+{
+ u16 metatileNum;
+ u8 sound;
+ u8 size;
+ const void *tiles;
+ const void *palette;
+};
+
+struct DoorAnimFrame
+{
+ u8 time;
+ u16 offset;
+};
+
void FieldSetDoorOpened(u32, u32);
void FieldSetDoorClosed(u32, u32);
s8 FieldAnimateDoorClose(u32, u32);
diff --git a/include/field_effect.h b/include/field_effect.h
index aa3f7eba0..7395270f9 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -69,9 +69,15 @@ enum FieldEffectScriptIdx
FLDEFF_USE_TELEPORT
};
-u8 FieldEffectStart(u8);
-bool8 FieldEffectActiveListContains(u8 id);
-
extern u32 gFieldEffectArguments[8];
+u32 FieldEffectStart(u8);
+bool8 FieldEffectActiveListContains(u8 id);
+void sub_80B69DC(void);
+void FieldEffectStop(struct Sprite *sprite, u8 id);
+u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer);
+void sub_80B7FC8(void);
+void FieldEffectActiveListRemove(u8 id);
+void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8);
+
#endif //GUARD_FIELD_EFFECTS_H
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index e80daf3bd..15928eba3 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -12,5 +12,6 @@
// Exported ROM declarations
u8 sub_8154228(void);
bool8 sub_8155DA0(struct MapObject *);
+void sub_8155D78(struct MapObject *);
#endif //GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 0107fa10f..198dd9759 100755..100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -60,7 +60,7 @@ void sub_808E82C(u8, u8, u8, s16, s16);
void sub_808E7E4(u8, u8, u8);
void sub_808E78C(u8, u8, u8, u8);
void sub_808E75C(s16, s16);
-void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
+void FieldObjectGetLocalIdAndMap(struct MapObject *mapObject, void *localId, void *mapNum, void *mapGroup);
void npc_coords_shift(struct MapObject *, s16, s16);
void sub_808EB08(struct MapObject *, s16, s16);
void sub_808F254(u8, u8, u8);
@@ -76,6 +76,18 @@ void MoveCoords(u8, s16 *, s16 *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
+void npc_set_running_behaviour_etc(struct MapObject *mapObject, u8 animPattern);
+u8 npc_running_behaviour_by_direction(u8 direction);
+const u8 *GetFieldObjectScriptPointerByFieldObjectId(u8 mapObjectId);
+u8 sub_8092C8C(struct MapObject *mapObject, s16 x, s16 y, u8 direction);
+u8 GetFaceDirectionAnimId(u32);
+u8 GetGoSpeed0AnimId(u32);
+u8 sub_80934BC(u32);
+bool8 FieldObjectSetSpecialAnim(struct MapObject *mapObject, u8 specialAnimId);
+bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *mapObject);
+u8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *mapObject);
+void sub_808F23C(const struct MapObject *mapObject, u8 movementType);
+void sub_808F208(const struct MapObject *mapObject);
// Exported data declarations
diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h
index ba797ec98..031c7a8ab 100644
--- a/include/field_map_obj_helpers.h
+++ b/include/field_map_obj_helpers.h
@@ -1,7 +1,31 @@
-#ifndef GUARD_FIELDMAPOBJHELP_H
-#define GUARD_FIELDMAPOBJHELP_H
+#ifndef GUARD_FIELD_MAP_OBJ_HELPERS_H
+#define GUARD_FIELD_MAP_OBJ_HELPERS_H
+// Exported type declarations
+
+// Exported RAM declarations
+extern u8 *gUnknown_020375B8;
+
+// Exported ROM declarations
+void sub_8097AC8(struct Sprite *);
+void npc_sync_anim_pause_bits(struct MapObject *);
+void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
+u8 sub_8097F78(struct MapObject *);
+bool8 obj_npc_ministep(struct Sprite *sprite);
+bool8 sub_80976EC(struct Sprite *sprite);
+void sub_80976DC(struct Sprite *, u8);
+void sub_809783C(struct Sprite *, u8, u8, u8);
+void DoShadowFieldEffect(struct MapObject *);
+u8 sub_809785C(struct Sprite *);
+u8 sub_80978E4(struct Sprite *);
+void obj_anim_image_set_and_seek(struct Sprite *, u8, u8);
+bool8 sub_80979BC(struct Sprite *);
+void sub_8097750(struct Sprite *);
+bool8 sub_8097758(struct Sprite *);
+void sub_8097FA4(struct MapObject *);
+void sub_8098044(u8);
void UnfreezeMapObjects(void);
+void FreezeMapObjectsExceptOne(u8 mapObjectId);
void sub_8097B78(u8, u8);
-#endif
+#endif //GUARD_FIELD_MAP_OBJ_HELPERS_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 25b7f2d71..af602245b 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -9,8 +9,31 @@ void PlayerGetDestCoords(s16 *, s16 *);
u8 player_get_direction_lower_nybble(void);
u8 player_get_direction_upper_nybble(void);
u8 player_get_x22(void);
+void PlayerGoSpeed1(u8);
+void PlayerGoSpeed2(u8);
+void PlayerGoSpeed3(u8);
+void PlayerGoSpeed4(u8);
+void PlayerOnBikeCollide(u8);
+void PlayerFaceDirection(u8 a);
+void PlayerTurnInPlace(u8 a);
+void PlayerJumpLedge(u8 a);
+void PlayerIdleWheelie(u8 a);
+void PlayerStartWheelie(u8 a);
+void PlayerEndWheelie(u8 a);
+void PlayerStandingHoppingWheelie(u8 a);
+void PlayerMovingHoppingWheelie(u8 a);
+void PlayerLedgeHoppingWheelie(u8 a);
+void PlayerAcroTurnJump(u8 a);
+void PlayerSetAnimId(u8 a, u8 b);
+bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction);
+void PlayerOnBikeCollideWithFarawayIslandMew(u8 direction);
+u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e);
+u8 PlayerGetZCoord(void);
+void SetPlayerAvatarTransitionFlags(u16 a);
+void sub_808BCE8(void);
void sub_808D074(u8);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
+u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8);
#endif //GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_poison.h b/include/field_poison.h
new file mode 100644
index 000000000..d1a4c823b
--- /dev/null
+++ b/include/field_poison.h
@@ -0,0 +1,19 @@
+#ifndef GUARD_FIELD_POISON_H
+#define GUARD_FIELD_POISON_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+enum {
+ FLDPSN_NONE,
+ FLDPSN_PSN,
+ FLDPSN_FNT
+};
+
+void sub_80F972C(void);
+unsigned int overworld_poison(void);
+
+#endif //GUARD_FIELD_POISON_H
diff --git a/include/field_screen.h b/include/field_screen.h
index 6e33a8b7b..5d6240f8b 100644
--- a/include/field_screen.h
+++ b/include/field_screen.h
@@ -10,5 +10,6 @@ void pal_fill_black(void);
bool8 sub_80ABDFC(void);
void sub_80AF168(void);
void sub_80AF2B4(u8 taskId);
+void UpdateWeatherPerDay(u16 days);
#endif //GUARD_FIELD_SCREEN_H
diff --git a/include/field_specials.h b/include/field_specials.h
index 1f8fbf147..dd72bdd13 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -2,5 +2,7 @@
#define GUARD_FIELD_SPECIALS_H
u8 GetLeadMonIndex(void);
+u8 sub_813B260(void);
+u16 get_unknown_box_id(void);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/field_weather.h b/include/field_weather.h
index e12107e70..7ad8d21e7 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -1,12 +1,177 @@
#ifndef GUARD_WEATHER_H
#define GUARD_WEATHER_H
-void fade_screen(u8, s8);
+#include "sprite.h"
+// Controls how the weather should be changing the screen palettes.
+enum {
+ WEATHER_PAL_STATE_CHANGING_WEATHER,
+ WEATHER_PAL_STATE_SCREEN_FADING_IN,
+ WEATHER_PAL_STATE_SCREEN_FADING_OUT,
+ WEATHER_PAL_STATE_IDLE,
+};
+
+struct Weather
+{
+ union
+ {
+ struct
+ {
+ struct Sprite *rainSprites[24];
+ struct Sprite *snowflakeSprites[101];
+ struct Sprite *cloudSprites[3];
+ } s1;
+ struct
+ {
+ u8 filler0[0xA0];
+ struct Sprite *fog1Sprites[20];
+ struct Sprite *ashSprites[20];
+ struct Sprite *fog2Sprites[20];
+ struct Sprite *sandstormSprites1[20];
+ struct Sprite *sandstormSprites2[5];
+ } s2;
+ } sprites;
+ u8 gammaShifts[19][32];
+ u8 altGammaShifts[19][32];
+ s8 gammaIndex;
+ s8 gammaTargetIndex;
+ u8 gammaStepDelay;
+ u8 gammaStepFrameCounter;
+ u16 fadeDestColor;
+ u8 palProcessingState;
+ u8 fadeScreenCounter;
+ bool8 readyForInit;
+ u8 taskId;
+ u8 unknown_6CA;
+ u8 unknown_6CB;
+ u16 initStep;
+ u16 finishStep;
+ u8 currWeather;
+ u8 nextWeather;
+ u8 weatherGfxLoaded;
+ bool8 weatherChangeComplete;
+ u8 weatherPicSpritePalIndex;
+ u8 altGammaSpritePalIndex;
+ u16 unknown_6D6;
+ u8 unknown_6D8;
+ u8 unknown_6D9;
+ u8 rainSpriteCount;
+ u8 unknown_6DB;
+ u8 unknown_6DC;
+ u8 rainStrength;
+ /*0x6DE*/ u8 cloudSpritesCreated;
+ u8 filler_6DF[1];
+ u16 unknown_6E0;
+ u16 unknown_6E2;
+ u8 snowflakeSpriteCount;
+ u8 unknown_6E5;
+ u16 unknown_6E6;
+ u16 thunderCounter;
+ u8 unknown_6EA;
+ u8 unknown_6EB;
+ u8 unknown_6EC;
+ u8 unknown_6ED;
+ u16 fog1ScrollPosX;
+ u16 unknown_6F0;
+ u16 unknown_6F2;
+ u8 lightenedFogSpritePals[6];
+ u8 lightenedFogSpritePalsCount;
+ u8 fog1SpritesCreated;
+ u16 unknown_6FC;
+ u16 unknown_6FE;
+ u8 ashSpritesCreated;
+ u8 filler_701[3];
+ u32 unknown_704;
+ u32 unknown_708;
+ u8 filler_70C[2];
+ u16 unknown_70E;
+ u16 unknown_710;
+ u16 unknown_712;
+ u16 unknown_714;
+ u8 sandstormSprites1Created;
+ u8 sandstormSprites2Created;
+ u16 unknown_718;
+ u16 unknown_71A;
+ u16 unknown_71C;
+ u16 unknown_71E;
+ u16 unknown_720;
+ u16 unknown_722;
+ u8 fog2SpritesCreated;
+ u8 filler_725[1];
+ u16 unknown_726;
+ u16 unknown_728;
+ u16 unknown_72A;
+ u16 unknown_72C;
+ u8 unknown_72E;
+ u8 filler_72F;
+ u16 currBlendEVA;
+ u16 currBlendEVB;
+ u16 targetBlendEVA;
+ u16 targetBlendEVB;
+ u8 blendUpdateCounter;
+ u8 blendFrameCounter;
+ u8 blendDelay;
+ u8 filler_73B[0x3C-0x3B];
+ s16 unknown_73C;
+ s16 unknown_73E;
+ s16 unknown_740;
+ s16 unknown_742;
+ u8 filler_744[0xD-4];
+ s8 loadDroughtPalsIndex;
+ u8 loadDroughtPalsOffset;
+};
+
+void StartWeather(void);
+void ChangeWeather(u8 weather);
+void sub_807C988(u8 effect);
+void sub_807C9B4(u8 effect);
+void Task_WeatherInit(u8);
+void Task_WeatherMain(u8);
+void sub_807CAE8(void);
+void nullsub_38(void);
+void SetWeatherScreenFadeOut(void);
+
+enum
+{
+ FADE_FROM_BLACK,
+ FADE_TO_BLACK,
+ FADE_FROM_WHITE,
+ FADE_TO_WHITE,
+};
+
+void FadeScreen(u8, s8);
+// ...
+void UpdateSpritePaletteWithWeather(u8 tag);
+void ApplyWeatherGammaShiftToPal(u8);
+// ...
+void Weather_SetBlendCoeffs(u8, u8);
+// ...
+void PlayRainSoundEffect(void);
+// ...
void SetSav1Weather(u32);
u8 GetSav1Weather(void);
void sub_80AEDBC(void);
+void SetSav1WeatherFromCurrMapHeader(void);
+// ...
void DoCurrentWeather(void);
+void sub_8080750();
+
+bool8 IsWeatherNotFadingIn(void);
+bool8 IsWeatherChangeComplete(void);
+void SetWeather(u32);
+void UpdateWeatherPerDay(u16);
+void PreservePaletteInWeather(u8 index);
+void ResetPreservedPalettesInWeather(void);
+extern void ResetDroughtWeatherPaletteLoading(void);
+void ResetDroughtWeatherPaletteLoading(void);
+bool8 LoadDroughtWeatherPalettes(void);
+u8 GetCurrentWeather(void);
+void LoadCustomWeatherSpritePalette(const u16 *palette);
+
+
+extern struct Weather gWeather;
+
+extern struct Weather *const gWeatherPtr;
#endif // GUARD_WEATHER_H
diff --git a/include/flags.h b/include/flags.h
deleted file mode 100644
index 7d825feba..000000000
--- a/include/flags.h
+++ /dev/null
@@ -1,111 +0,0 @@
-#ifndef GUARD_FLAGS_H
-#define GUARD_FLAGS_H
-
-#define TRAINER_FLAG_START 0x500
-#define TRAINERS_FLAG_NO 0x356
-#define CODE_FLAGS (TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860
-
-// SYSTEM FLAGS
-
-#define SYS_POKEMON_GET CODE_FLAGS + 0
-#define SYS_POKEDEX_GET CODE_FLAGS + 1
-#define SYS_POKENAV_GET CODE_FLAGS + 2
-// third one appears unused
-#define SYS_GAME_CLEAR CODE_FLAGS + 4
-#define SYS_CHAT_USED CODE_FLAGS + 5
-#define SYS_HIPSTER_MEET CODE_FLAGS + 6
-
-// badges
-#define BADGE01_GET CODE_FLAGS + 7
-#define BADGE02_GET CODE_FLAGS + 8
-#define BADGE03_GET CODE_FLAGS + 9
-#define BADGE04_GET CODE_FLAGS + 0xA
-#define BADGE05_GET CODE_FLAGS + 0xB
-#define BADGE06_GET CODE_FLAGS + 0xC
-#define BADGE07_GET CODE_FLAGS + 0xD
-#define BADGE08_GET CODE_FLAGS + 0xE
-
-// cities and towns
-#define FLAG_VISITED_LITTLEROOT_TOWN CODE_FLAGS + 0xF
-#define FLAG_VISITED_OLDALE_TOWN CODE_FLAGS + 0x10
-#define FLAG_VISITED_DEWFORD_TOWN CODE_FLAGS + 0x11
-#define FLAG_VISITED_LAVARIDGE_TOWN CODE_FLAGS + 0x12
-#define FLAG_VISITED_FALLARBOR_TOWN CODE_FLAGS + 0x13
-#define FLAG_VISITED_VERDANTURF_TOWN CODE_FLAGS + 0x14
-#define FLAG_VISITED_PACIFIDLOG_TOWN CODE_FLAGS + 0x15
-#define FLAG_VISITED_PETALBURG_CITY CODE_FLAGS + 0x16
-#define FLAG_VISITED_SLATEPORT_CITY CODE_FLAGS + 0x17
-#define FLAG_VISITED_MAUVILLE_CITY CODE_FLAGS + 0x18
-#define FLAG_VISITED_RUSTBORO_CITY CODE_FLAGS + 0x19
-#define FLAG_VISITED_FORTREE_CITY CODE_FLAGS + 0x1A
-#define FLAG_VISITED_LILYCOVE_CITY CODE_FLAGS + 0x1B
-#define FLAG_VISITED_MOSSDEEP_CITY CODE_FLAGS + 0x1C
-#define FLAG_VISITED_SOOTOPOLIS_CITY CODE_FLAGS + 0x1D
-#define FLAG_VISITED_EVER_GRANDE_CITY CODE_FLAGS + 0x1E
-
-#define SYS_UNKNOWN_880 CODE_FLAGS + 0x20
-
-#define SYS_USE_FLASH CODE_FLAGS + 0x28
-#define SYS_USE_STRENGTH CODE_FLAGS + 0x29
-#define SYS_WEATHER_CTRL CODE_FLAGS + 0x2A
-#define SYS_CYCLING_ROAD CODE_FLAGS + 0x2B
-#define SYS_SAFARI_MODE CODE_FLAGS + 0x2C
-#define SYS_CRUISE_MODE CODE_FLAGS + 0x2D
-
-#define SYS_TV_HOME CODE_FLAGS + 0x30
-#define SYS_TV_WATCH CODE_FLAGS + 0x31
-#define SYS_TV_START CODE_FLAGS + 0x32
-#define SYS_POPWORD_INPUT CODE_FLAGS + 0x33
-#define SYS_MIX_RECORD CODE_FLAGS + 0x34
-#define SYS_CLOCK_SET CODE_FLAGS + 0x35
-#define SYS_NATIONAL_DEX CODE_FLAGS + 0x36
-#define SYS_CAVE_SHIP CODE_FLAGS + 0x37
-#define SYS_CAVE_WONDER CODE_FLAGS + 0x38
-#define SYS_CAVE_BATTLE CODE_FLAGS + 0x39
-#define SYS_SHOAL_TIDE CODE_FLAGS + 0x3A
-#define SYS_RIBBON_GET CODE_FLAGS + 0x3B
-
-#define SYS_PC_LANETTE CODE_FLAGS + 0x4B
-#define SYS_MYSTERY_EVENT_ENABLE CODE_FLAGS + 0x4C
-#define SYS_ENC_UP_ITEM CODE_FLAGS + 0x4D
-#define SYS_ENC_DOWN_ITEM CODE_FLAGS + 0x4E
-#define SYS_BRAILLE_DIG CODE_FLAGS + 0x4F
-#define SYS_BRAILLE_STRENGTH CODE_FLAGS + 0x50
-#define SYS_BRAILLE_WAIT CODE_FLAGS + 0x51
-#define SYS_BRAILLE_FLY CODE_FLAGS + 0x52
-#define SYS_HAS_EON_TICKET CODE_FLAGS + 0x53
-
-#define SYS_POKEMON_LEAGUE_FLY CODE_FLAGS + 0x54
-
-#define SYS_TV_LATI CODE_FLAGS + 0x5D
-
-#define SYS_SHOAL_ITEM CODE_FLAGS + 0x5F
-#define SYS_B_DASH CODE_FLAGS + 0x60 // got Running Shoes
-#define SYS_CTRL_OBJ_DELETE CODE_FLAGS + 0x61
-#define SYS_RESET_RTC_ENABLE CODE_FLAGS + 0x62
-
-#define SYS_TOWER_SILVER CODE_FLAGS + 0x64
-#define SYS_TOWER_GOLD CODE_FLAGS + 0x65
-#define SYS_DOME_SILVER CODE_FLAGS + 0x66
-#define SYS_DOME_GOLD CODE_FLAGS + 0x67
-#define SYS_PALACE_SILVER CODE_FLAGS + 0x68
-#define SYS_PALACE_GOLD CODE_FLAGS + 0x69
-#define SYS_ARENA_SILVER CODE_FLAGS + 0x6A
-#define SYS_ARENA_GOLD CODE_FLAGS + 0x6B
-#define SYS_FACTORY_SILVER CODE_FLAGS + 0x6C
-#define SYS_FACTORY_GOLD CODE_FLAGS + 0x6D
-#define SYS_PIKE_SILVER CODE_FLAGS + 0x6E
-#define SYS_PIKE_GOLD CODE_FLAGS + 0x6F
-#define SYS_PYRAMID_SILVER CODE_FLAGS + 0x70
-#define SYS_PYRAMID_GOLD CODE_FLAGS + 0x71
-#define SYS_FRONTIER_PASS CODE_FLAGS + 0x72
-
-#define SYS_STORAGE_UNKNOWN_FLAG CODE_FLAGS + 0x77
-
-#define SYS_MYSTERY_GIFT_ENABLE CODE_FLAGS + 0x7B
-
-// SPECIAL FLAGS (unknown purpose)
-
-#define SPECIAL_FLAG_1 0x4001
-
-#endif // GUARD_FLAGS_H
diff --git a/include/fldeff_80F9BCC.h b/include/fldeff_80F9BCC.h
index aae4751c1..a210b8545 100644
--- a/include/fldeff_80F9BCC.h
+++ b/include/fldeff_80F9BCC.h
@@ -11,5 +11,6 @@ void sub_80FA5E4(s16 id, s16 x, s16 y);
void sub_80FA794(s16 x, s16 y);
void sub_80FB00C(void);
void sub_80FB074(void);
+void overworld_poison_effect(void);
#endif //GUARD_FLDEFF_80F9BCC_H
diff --git a/include/fldeff_teleport.h b/include/fldeff_teleport.h
new file mode 100644
index 000000000..71fb64ad2
--- /dev/null
+++ b/include/fldeff_teleport.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_FLDEFF_TELEPORT_H
+#define GUARD_FLDEFF_TELEPORT_H
+
+void hm_teleport_run_dp02scr(void);
+void sub_817C94C(void);
+
+#endif // GUARD_FLDEFF_TELEPORT_H
diff --git a/include/gba/defines.h b/include/gba/defines.h
index 41cc84f4a..1eed6303d 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -39,6 +39,9 @@
#define BG_CHAR_ADDR(n) (BG_VRAM + (BG_CHAR_SIZE * (n)))
#define BG_SCREEN_ADDR(n) (BG_VRAM + (BG_SCREEN_SIZE * (n)))
+#define BG_TILE_H_FLIP(n) (0x400 + (n))
+#define BG_TILE_V_FLIP(n) (0x800 + (n))
+
// text-mode BG
#define OBJ_VRAM0 (VRAM + 0x10000)
#define OBJ_VRAM0_SIZE 0x8000
@@ -60,11 +63,6 @@
#define TOTAL_OBJ_TILE_COUNT 1024
-#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
-
-#define RGB_BLACK RGB(0, 0, 0)
-#define RGB_WHITE RGB(31, 31, 31)
-
#define WIN_RANGE(a, b) (((a) << 8) | (b))
#endif // GUARD_GBA_DEFINES
diff --git a/include/gba/gba.h b/include/gba/gba.h
index 19b65dbca..349344031 100644
--- a/include/gba/gba.h
+++ b/include/gba/gba.h
@@ -7,6 +7,6 @@
#include "gba/multiboot.h"
#include "gba/syscall.h"
#include "gba/macro.h"
-#include "gba/libc.h"
+#include "gba/isagbprint.h"
#endif // GUARD_GBA_GBA_H
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index f86f2434c..0364c38bc 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -501,12 +501,12 @@
// I/O register fields
// DISPCNT
-#define DISPCNT_MODE_0 0x0000
-#define DISPCNT_MODE_1 0x0001
-#define DISPCNT_MODE_2 0x0002
-#define DISPCNT_MODE_3 0x0003
-#define DISPCNT_MODE_4 0x0004
-#define DISPCNT_MODE_5 0x0005
+#define DISPCNT_MODE_0 0x0000 // BG0: text, BG1: text, BG2: text, BG3: text
+#define DISPCNT_MODE_1 0x0001 // BG0: text, BG1: text, BG2: affine, BG3: off
+#define DISPCNT_MODE_2 0x0002 // BG0: off, BG1: off, BG2: affine, BG3: affine
+#define DISPCNT_MODE_3 0x0003 // Bitmap mode, 240x160, BGR555 color
+#define DISPCNT_MODE_4 0x0004 // Bitmap mode, 240x160, 256 color palette
+#define DISPCNT_MODE_5 0x0005 // Bitmap mode, 160x128, BGR555 color
#define DISPCNT_OBJ_1D_MAP 0x0040
#define DISPCNT_FORCED_BLANK 0x0080
#define DISPCNT_BG0_ON 0x0100
@@ -527,7 +527,46 @@
#define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled
#define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled
+// BGCNT
+#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs.
+#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data.
+#define BGCNT_MOSAIC 0x0040
+#define BGCNT_16COLOR 0x0000 // 4 bits per pixel
+#define BGCNT_256COLOR 0x0080 // 8 bits per pixel
+#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map.
+#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default.
+#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels.
+#define BGCNT_TXT512x256 0x4000
+#define BGCNT_TXT256x512 0x8000
+#define BGCNT_TXT512x512 0xC000
+#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels.
+#define BGCNT_AFF256x256 0x4000
+#define BGCNT_AFF512x512 0x8000
+#define BGCNT_AFF1024x1024 0xC000
+
// BLDCNT
+// Bits 0-5 select layers for the 1st target
+#define BLDCNT_TGT1_BG0 (1 << 0)
+#define BLDCNT_TGT1_BG1 (1 << 1)
+#define BLDCNT_TGT1_BG2 (1 << 2)
+#define BLDCNT_TGT1_BG3 (1 << 3)
+#define BLDCNT_TGT1_OBJ (1 << 4)
+#define BLDCNT_TGT1_BD (1 << 5)
+// Bits 6-7 select the special effect
+#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect
+#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA)
+#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY)
+#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY)
+// Bits 8-13 select layers for the 2nd target
+#define BLDCNT_TGT2_BG0 (1 << 8)
+#define BLDCNT_TGT2_BG1 (1 << 9)
+#define BLDCNT_TGT2_BG2 (1 << 10)
+#define BLDCNT_TGT2_BG3 (1 << 11)
+#define BLDCNT_TGT2_OBJ (1 << 12)
+#define BLDCNT_TGT2_BD (1 << 13)
+
+// BLDALPHA
+#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
// SOUNDCNT_H
#define SOUND_CGB_MIX_QUARTER 0x0000
@@ -627,8 +666,8 @@
#define KEY_INTR_ENABLE 0x0400
#define KEY_OR_INTR 0x0000
#define KEY_AND_INTR 0x8000
-
-#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN))
+#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN))
+#define JOY_EXCL_DPAD 0x030F
// interrupt flags
#define INTR_FLAG_VBLANK (1 << 0)
diff --git a/include/gba/isagbprint.h b/include/gba/isagbprint.h
new file mode 100644
index 000000000..c5eb456c3
--- /dev/null
+++ b/include/gba/isagbprint.h
@@ -0,0 +1,50 @@
+#ifndef GUARD_GBA_ISAGBPRINT_H
+#define GUARD_GBA_ISAGBPRINT_H
+
+#ifdef NDEBUG
+#define AGBPrintInit()
+#define AGBPutc(cChr)
+#define AGBPrint(pBuf)
+#define AGBPrintf(pBuf, ...)
+#define AGBPrintFlush1Block()
+#define AGBPrintFlush()
+#define AGBAssert(pFile, nLine, pExpression, nStopProgram)
+#else
+void AGBPrintInit(void);
+void AGBPutc(const char cChr);
+void AGBPrint(const char *pBuf);
+void AGBPrintf(const char *pBuf, ...);
+void AGBPrintFlush1Block(void);
+void AGBPrintFlush(void);
+void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram);
+#endif
+
+#undef AGB_ASSERT
+#ifdef NDEBUG
+#define AGB_ASSERT(exp)
+#else
+#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
+#endif
+
+#undef AGB_WARNING
+#ifdef NDEBUG
+#define AGB_WARNING(exp)
+#else
+#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
+#endif
+
+// for matching purposes
+
+#ifdef NDEBUG
+#define AGB_ASSERT_EX(exp, file, line)
+#else
+#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1);
+#endif
+
+#ifdef NDEBUG
+#define AGB_WARNING_EX(exp, file, line)
+#else
+#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
+#endif
+
+#endif // GUARD_GBA_ISAGBPRINT_H
diff --git a/include/gba/libc.h b/include/gba/libc.h
deleted file mode 100644
index 9ed82ac28..000000000
--- a/include/gba/libc.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef GUARD_LIBC_H
-#define GUARD_LIBC_H
-
-void *memset(void *dst, int val, size_t size);
-void *memcpy(void *dst, const void *src, size_t size);
-int strcmp(const char *s1, const char *s2);
-char *strcpy(char *dst0, const char *src0);
-#define abs(x) ((x) >= 0 ? (x) : -(x))
-
-#endif //GUARD_LIBC_H
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index 6cdfd13e1..659302fd5 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -406,7 +406,7 @@ void m4aSoundVSyncOff(void);
void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo);
void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
-void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 pitch);
+void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch);
void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan);
void ClearModM(struct MusicPlayerTrack *track);
void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth);
diff --git a/include/gba/macro.h b/include/gba/macro.h
index 7b6b98c06..3b35a1946 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -78,6 +78,102 @@
#define DmaCopy16(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 16)
#define DmaCopy32(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 32)
+#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \
+{ \
+ const void *_src = src; \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ DmaCopy##bit(dmaNum, _src, _dest, (block)); \
+ _src += (block); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaCopy##bit(dmaNum, _src, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
+#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16)
+
+#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32)
+
+#define DmaFillLarge(dmaNum, value, dest, size, block, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ DmaFill##bit(dmaNum, value, _dest, (block)); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaFill##bit(dmaNum, value, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
+#define DmaFillLarge16(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 16)
+
+#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32)
+
+#define DmaClearLarge(dmaNum, dest, size, block, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ DmaFill##bit(dmaNum, 0, _dest, (block)); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaFill##bit(dmaNum, 0, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
+#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16)
+
+#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32)
+
+#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \
+{ \
+ const void *_src = src; \
+ void *_dest = dest; \
+ u32 _size = size; \
+ DmaCopy##bit(dmaNum, _src, _dest, _size); \
+}
+
+#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16)
+#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32)
+
+#define DmaFillDefvars(dmaNum, value, dest, size, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ DmaFill##bit(dmaNum, value, _dest, _size); \
+}
+
+#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16)
+#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32)
+
+#define DmaClearDefvars(dmaNum, dest, size, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ DmaClear##bit(dmaNum, _dest, _size); \
+}
+
+#define DmaClear16Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 16)
+#define DmaClear32Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 32)
+
#define DmaStop(dmaNum) \
{ \
vu16 *dmaRegs = (vu16 *)REG_ADDR_DMA##dmaNum; \
diff --git a/include/gba/types.h b/include/gba/types.h
index e9a380023..9f63489aa 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -49,7 +49,7 @@ struct OamData
u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode
u32 size:2;
- /*0x04*/ u16 tileNum:10; // 0x33F
+ /*0x04*/ u16 tileNum:10; // 0x3FF
u16 priority:2; // 0x400, 0x800 -> 0xC00
u16 paletteNum:4;
/*0x06*/ u16 affineParam;
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index ed5054b7d..b12febefd 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -39,7 +39,7 @@ enum
MAP_BATTLE_SCENE_PHOEBE, // 5
MAP_BATTLE_SCENE_GLACIA, // 6
MAP_BATTLE_SCENE_DRAKE, // 7
- MAP_BATTLE_SCENE_BATTLE_TOWER, // 8
+ MAP_BATTLE_SCENE_FRONTIER, // 8
};
typedef void (*TilesetCB)(void);
@@ -224,7 +224,7 @@ struct MapObject
/*0x0C*/ struct Coords16 coords1;
/*0x10*/ struct Coords16 coords2;
/*0x14*/ struct Coords16 coords3;
- /*0x18*/ u8 mapobj_unk_18:4; //current direction?
+ /*0x18*/ u8 mapobj_unk_18:4; // current direction?
/*0x18*/ u8 placeholder18:4;
/*0x19*/ union __attribute__((packed)) {
u8 as_byte;
@@ -299,25 +299,42 @@ enum
COLLISION_LEDGE_JUMP = 6
};
-struct PlayerAvatar /* 0x202E858 */
+// player running states
+enum
+{
+ NOT_MOVING,
+ TURN_DIRECTION, // not the same as turning! turns your avatar without moving. also known as a turn frame in some circles
+ MOVING,
+};
+
+// player tile transition states
+enum
+{
+ T_NOT_MOVING,
+ T_TILE_TRANSITION,
+ T_TILE_CENTER, // player is on a frame in which they are centered on a tile during which the player either stops or keeps their momentum and keeps going, changing direction if necessary.
+};
+
+struct PlayerAvatar
{
/*0x00*/ u8 flags;
- /*0x01*/ u8 bike;
- /*0x02*/ u8 running2;
- /*0x03*/ u8 running1;
+ /*0x01*/ u8 unk1; // used to be named bike, but its definitely not that. seems to be some transition flags
+ /*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving.
+ /*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning.
/*0x04*/ u8 spriteId;
/*0x05*/ u8 mapObjectId;
- /*0x06*/ u8 unk6;
+ /*0x06*/ bool8 preventStep;
/*0x07*/ u8 gender;
- u8 acroBikeState;
- u8 unk9;
- u8 bikeFrameCounter;
- u8 unkB;
- u32 unkC;
- u32 unk10;
- u8 unk14[8];
- u8 unk1C[8];
- // TODO: rest of struct
+ /*0x08*/ u8 acroBikeState; // 00 is normal, 01 is turning, 02 is standing wheelie, 03 is hopping wheelie
+ /*0x09*/ u8 newDirBackup; // during bike movement, the new direction as opposed to player's direction is backed up here.
+ /*0x0A*/ u8 bikeFrameCounter; // on the mach bike, when this value is 1, the bike is moving but not accelerating yet for 1 tile. on the acro bike, this acts as a timer for acro bike.
+ /*0x0B*/ u8 bikeSpeed;
+ // acro bike only
+ /*0x0C*/ u32 directionHistory; // up/down/left/right history is stored in each nybble, but using the field directions and not the io inputs.
+ /*0x10*/ u32 abStartSelectHistory; // same as above but for A + B + start + select only
+ // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update.
+ /*0x14*/ u8 dirTimerHistory[8];
+ /*0x1C*/ u8 abStartSelectTimerHistory[8];
};
struct Camera
diff --git a/include/global.h b/include/global.h
index 8343f99f8..308fb4d42 100644
--- a/include/global.h
+++ b/include/global.h
@@ -1,8 +1,9 @@
#ifndef GUARD_GLOBAL_H
#define GUARD_GLOBAL_H
+#include <string.h>
+#include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines.
#include "gba/gba.h"
-#include "config.h"
// Prevent cross-jump optimization.
#define BLOCK_CROSS_JUMP asm("");
@@ -11,7 +12,19 @@
#define asm_comment(x) asm volatile("@ -- " x " -- ")
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
-#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
+// IDE support
+#if defined (__APPLE__) || defined (__CYGWIN__)
+#define _(x) x
+#define __(x) x
+#define INCBIN_U8 {0}
+#define INCBIN_U16 {0}
+#define INCBIN_U32 {0}
+#define INCBIN_S8 {0}
+#define INCBIN_S16 {0}
+#define INCBIN_S32 {0}
+#endif // __APPLE__
+
+#define ARRAY_COUNT(array) (size_t)(sizeof(array) / sizeof((array)[0]))
// useful math macros
@@ -21,14 +34,39 @@
// Converts a number to Q4.12 fixed-point format
#define Q_4_12(n) ((s16)((n) * 4096))
+#define PARTY_SIZE 6
+
#define POKEMON_NAME_LENGTH 10
#define OT_NAME_LENGTH 7
+#define min(a, b) ((a) < (b) ? (a) : (b))
+#define max(a, b) ((a) >= (b) ? (a) : (b))
+
+#define HEAP_SIZE 0x1C000
+
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
extern u8 gStringVar4[];
+// There are many quirks in the source code which have overarching behavioral differences from
+// a number of other files. For example, diploma.c seems to declare rodata before each use while
+// other files declare out of order and must be at the beginning. There are also a number of
+// macros which differ from one file to the next due to the method of obtaining the result, such
+// as these below. Because of this, there is a theory (Two Team Theory) that states that these
+// programming projects had more than 1 "programming team" which utilized different macros for
+// each of the files that were worked on.
+#define T1_READ_8(ptr) ((ptr)[0])
+#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
+#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24))
+#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr)
+
+// T2_READ_8 is a duplicate to remain consistent with each group.
+#define T2_READ_8(ptr) ((ptr)[0])
+#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
+#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
+#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)
+
enum
{
VERSION_SAPPHIRE = 1,
@@ -38,10 +76,15 @@ enum
VERSION_LEAF_GREEN = 5,
};
-enum LanguageId {
+enum LanguageId
+{
LANGUAGE_JAPANESE = 1,
LANGUAGE_ENGLISH = 2,
+ LANGUAGE_FRENCH = 3,
+ LANGUAGE_ITALIAN = 4,
LANGUAGE_GERMAN = 5,
+ // 6 goes unused but the theory is it was meant to be Korean
+ LANGUAGE_SPANISH = 7,
};
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
@@ -160,9 +203,31 @@ struct BerryCrush
u32 unk;
};
+#define PLAYER_NAME_LENGTH 8
+
+struct UnknownSaveBlock2Struct
+{
+ u8 field_0;
+ u8 field_1;
+ u8 field_2[2];
+ u8 field_4[8];
+ u8 field_C[16];
+ u16 field_1C[6];
+ u16 field_28[6];
+ u8 field_34[176];
+ u8 field_E4;
+ u8 field_E5;
+ u8 field_E6;
+ u8 field_E7;
+ u8 field_E8;
+ u8 field_E9;
+ u8 field_EA;
+ u8 field_EB;
+}; // sizeof = 0xEC
+
struct SaveBlock2
{
- /*0x00*/ u8 playerName[8];
+ /*0x00*/ u8 playerName[PLAYER_NAME_LENGTH];
/*0x08*/ u8 playerGender; // MALE, FEMALE
/*0x09*/ u8 specialSaveWarp;
/*0x0A*/ u8 playerTrainerId[4];
@@ -190,12 +255,13 @@ struct SaveBlock2
/*0x1EC*/ struct BerryCrush berryCrush;
/*0x1FC*/ struct PokemonJumpResults pokeJump;
/*0x20C*/ struct BerryPickingResults berryPick;
- /*0x214*/ u8 field_214[1032];
+ /*0x21C*/ u8 field_21C[1032];
/*0x624*/ u16 contestLinkResults[20]; // 4 positions for 5 categories, possibly a struct or a 2d array
// All below could be a one giant struct
- /*0x64C*/ u8 field_64C[0x588];
+ /*0x64C*/ u8 field_64C[236];
+ /*0x738*/ struct UnknownSaveBlock2Struct field_738[5]; // No idea here, it's probably wrong, no clue.
/*0xBD4*/ u16 field_BD4;
/*0xBD6*/ u16 field_BD6;
/*0xBD8*/ u8 field_BD8[11];
@@ -209,10 +275,12 @@ struct SaveBlock2
/*0xCA9*/ u8 field_CA9_d : 1; // 0x20
/*0xCA9*/ u8 field_CA9_e : 1; // 0x40
/*0xCA9*/ u8 field_CA9_f : 1; // 0x80
- /*0xCAA*/ u16 field_CAA[0x2e];
+ /*0xCAA*/ u16 field_CAA[4];
+ /*0xCB2*/ u16 battlePyramidWildHeaderId;
+ /*0xCB4*/ u16 field_CB4[41];
/*0xD06*/ u8 field_D06;
/*0xD07*/ u8 field_D07;
- /*0xd08*/ u8 filler_D08[0x112];
+ /*0xD08*/ u8 filler_D08[0x112];
/*0xE1A*/ u16 battlePyramidFloor; // possibly?
/*0xE1C*/ u8 field_E1C[16];
/*0xE2C*/ struct PyramidBag pyramidBag;
@@ -230,6 +298,16 @@ struct SaveBlock2
extern struct SaveBlock2 *gSaveBlock2Ptr;
+struct SecretBaseParty
+{
+ u32 personality[PARTY_SIZE];
+ u16 moves[PARTY_SIZE * 4];
+ u16 species[PARTY_SIZE];
+ u16 heldItems[PARTY_SIZE];
+ u8 levels[PARTY_SIZE];
+ u8 EVs[PARTY_SIZE];
+};
+
struct SecretBaseRecord
{
/*0x1A9C*/ u8 secretBaseId;
@@ -245,15 +323,10 @@ struct SecretBaseRecord
/*0x1AAD*/ u8 sbr_field_11;
/*0x1AAE*/ u8 decorations[16];
/*0x1ABE*/ u8 decorationPos[16];
- /*0x1AD0*/ u32 partyPersonality[6];
- /*0x1AE8*/ u16 partyMoves[6 * 4];
- /*0x1B18*/ u16 partySpecies[6];
- /*0x1B24*/ u16 partyHeldItems[6];
- /*0x1B2E*/ u8 partyLevels[6];
- /*0x1B34*/ u8 partyEVs[6];
+ /*0x1AD0*/ struct SecretBaseParty party;
};
-#include "game_stat.h"
+#include "constants/game_stat.h"
#include "global.fieldmap.h"
#include "global.berry.h"
#include "global.tv.h"
@@ -325,10 +398,12 @@ struct EasyChatPair
u16 words[2];
}; /*size = 0x8*/
+#define MAIL_WORDS_COUNT 9
+
struct MailStruct
{
- /*0x00*/ u16 words[9];
- /*0x12*/ u8 playerName[8];
+ /*0x00*/ u16 words[MAIL_WORDS_COUNT];
+ /*0x12*/ u8 playerName[PLAYER_NAME_LENGTH];
/*0x1A*/ u8 trainerId[4];
/*0x1E*/ u16 species;
/*0x20*/ u16 itemId;
@@ -420,30 +495,53 @@ struct ContestWinner
u8 contestRank;
};
-struct DaycareMon
+struct DaycareMiscMon
{
- struct BoxPokemon mon;
struct MailStruct mail;
u8 OT_name[OT_NAME_LENGTH + 1];
- u8 monName[11];
- u8 language_maybe : 4;
- u8 unknown : 4;
- u32 stepsTaken;
+ u8 monName[POKEMON_NAME_LENGTH + 1];
+ u8 gameLanguage:4;
+ u8 monLanguage:4;
};
-struct DaycareData
+struct DaycareMon
{
- struct DaycareMon mons[2];
+ struct BoxPokemon mon;
+ struct DaycareMiscMon misc;
+ u32 steps;
+};
+
+#define DAYCARE_MON_COUNT 2
+
+struct DayCare
+{
+ struct DaycareMon mons[DAYCARE_MON_COUNT];
u32 offspringPersonality;
u8 stepCounter;
};
-#define MAP_OBJECTS_COUNT 16
-#define BERRY_TREES_COUNT 128
-#define FLAGS_COUNT 300
-#define VARS_COUNT 256
+struct DayCareMail
+{
+ /*0x00*/ struct MailStruct message;
+ /*0x24*/ u8 names[19];
+};
+
+struct RecordMixingDayCareMail
+{
+ struct DayCareMail mail[DAYCARE_MON_COUNT];
+ u32 numDaycareMons;
+ bool16 holdsItem[DAYCARE_MON_COUNT];
+};
-enum {
+#define POKEBLOCKS_COUNT 40
+#define MAP_OBJECTS_COUNT 16
+#define BERRY_TREES_COUNT 128
+#define FLAGS_COUNT 300
+#define VARS_COUNT 256
+#define MAIL_COUNT 16
+
+enum
+{
LILYCOVE_LADY_QUIZ,
LILYCOVE_LADY_FAVOUR,
LILYCOVE_LADY_CONTEST
@@ -534,7 +632,7 @@ struct SaveBlock1
/*0x650*/ struct ItemSlot bagPocket_PokeBalls[16];
/*0x690*/ struct ItemSlot bagPocket_TMHM[64];
/*0x790*/ struct ItemSlot bagPocket_Berries[46];
- /*0x848*/ struct Pokeblock pokeblocks[40];
+ /*0x848*/ struct Pokeblock pokeblocks[POKEBLOCKS_COUNT];
/*0x988*/ u8 seen1[52];
/*0x9BC*/ u16 berryBlenderRecords[3];
/*0x9C2*/ u8 field_9C2[6];
@@ -575,13 +673,13 @@ struct SaveBlock1
/*0x2BBC*/ u16 unk2BBC[6];
/*0x2BC8*/ u16 unk2BC8[6];
/*0x2BD4*/ u16 unk2BD4[6];
- /*0x2BE0*/ struct MailStruct mail[16];
+ /*0x2BE0*/ struct MailStruct mail[MAIL_COUNT];
/*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system
/*0x2E25*/ u8 unk2E25[3]; // possibly padding?
/*0x2E28*/ OldMan oldMan;
/*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
/*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum
- /*0x3030*/ struct DaycareData daycare;
+ /*0x3030*/ struct DayCare daycare;
/*0x3150*/ struct LinkBattleRecord linkBattleRecords[5];
/*0x31A0*/ u8 unk_31A0;
/*0x31A1*/ u8 filler_31A1[7];
diff --git a/include/graphics.h b/include/graphics.h
index c50fdef3f..39662c8c1 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -1,10 +1,2468 @@
-//
-// Created by scott on 10/21/2017.
-//
-
#ifndef GUARD_GRAPHICS_H
#define GUARD_GRAPHICS_H
+// overworld
+extern const u32 gMessageBox_Gfx[];
+extern const u16 gMessageBox_Pal[];
+
+// interface pokeballs
+extern const u8 gInterfaceGfx_PokeBall[];
+extern const u8 gInterfacePal_PokeBall[];
+extern const u8 gInterfaceGfx_GreatBall[];
+extern const u8 gInterfacePal_GreatBall[];
+extern const u8 gInterfaceGfx_SafariBall[];
+extern const u8 gInterfacePal_SafariBall[];
+extern const u8 gInterfaceGfx_UltraBall[];
+extern const u8 gInterfacePal_UltraBall[];
+extern const u8 gInterfaceGfx_MasterBall[];
+extern const u8 gInterfacePal_MasterBall[];
+extern const u8 gInterfaceGfx_NetBall[];
+extern const u8 gInterfacePal_NetBall[];
+extern const u8 gInterfaceGfx_DiveBall[];
+extern const u8 gInterfacePal_DiveBall[];
+extern const u8 gInterfaceGfx_NestBall[];
+extern const u8 gInterfacePal_NestBall[];
+extern const u8 gInterfaceGfx_RepeatBall[];
+extern const u8 gInterfacePal_RepeatBall[];
+extern const u8 gInterfaceGfx_TimerBall[];
+extern const u8 gInterfacePal_TimerBall[];
+extern const u8 gInterfaceGfx_LuxuryBall[];
+extern const u8 gInterfacePal_LuxuryBall[];
+extern const u8 gInterfaceGfx_PremierBall[];
+extern const u8 gInterfacePal_PremierBall[];
+extern const u8 gOpenPokeballGfx[];
+
+// pokemon gfx
+extern const u8 gMonFrontPic_Bulbasaur[];
+extern const u8 gMonPalette_Bulbasaur[];
+extern const u8 gMonBackPic_Bulbasaur[];
+extern const u8 gMonShinyPalette_Bulbasaur[];
+extern const u8 gMonIcon_Bulbasaur[];
+extern const u8 gMonFootprint_Bulbasaur[];
+extern const u8 gMonFrontPic_Ivysaur[];
+extern const u8 gMonPalette_Ivysaur[];
+extern const u8 gMonBackPic_Ivysaur[];
+extern const u8 gMonShinyPalette_Ivysaur[];
+extern const u8 gMonIcon_Ivysaur[];
+extern const u8 gMonFootprint_Ivysaur[];
+extern const u8 gMonFrontPic_Venusaur[];
+extern const u8 gMonPalette_Venusaur[];
+extern const u8 gMonBackPic_Venusaur[];
+extern const u8 gMonShinyPalette_Venusaur[];
+extern const u8 gMonIcon_Venusaur[];
+extern const u8 gMonFootprint_Venusaur[];
+extern const u8 gMonFrontPic_Charmander[];
+extern const u8 gMonPalette_Charmander[];
+extern const u8 gMonBackPic_Charmander[];
+extern const u8 gMonShinyPalette_Charmander[];
+extern const u8 gMonIcon_Charmander[];
+extern const u8 gMonFootprint_Charmander[];
+extern const u8 gMonFrontPic_Charmeleon[];
+extern const u8 gMonPalette_Charmeleon[];
+extern const u8 gMonBackPic_Charmeleon[];
+extern const u8 gMonShinyPalette_Charmeleon[];
+extern const u8 gMonIcon_Charmeleon[];
+extern const u8 gMonFootprint_Charmeleon[];
+extern const u8 gMonFrontPic_Charizard[];
+extern const u8 gMonPalette_Charizard[];
+extern const u8 gMonBackPic_Charizard[];
+extern const u8 gMonShinyPalette_Charizard[];
+extern const u8 gMonIcon_Charizard[];
+extern const u8 gMonFootprint_Charizard[];
+extern const u8 gMonFrontPic_Squirtle[];
+extern const u8 gMonPalette_Squirtle[];
+extern const u8 gMonBackPic_Squirtle[];
+extern const u8 gMonShinyPalette_Squirtle[];
+extern const u8 gMonIcon_Squirtle[];
+extern const u8 gMonFootprint_Squirtle[];
+extern const u8 gMonFrontPic_Wartortle[];
+extern const u8 gMonPalette_Wartortle[];
+extern const u8 gMonBackPic_Wartortle[];
+extern const u8 gMonShinyPalette_Wartortle[];
+extern const u8 gMonIcon_Wartortle[];
+extern const u8 gMonFootprint_Wartortle[];
+extern const u8 gMonFrontPic_Blastoise[];
+extern const u8 gMonPalette_Blastoise[];
+extern const u8 gMonBackPic_Blastoise[];
+extern const u8 gMonShinyPalette_Blastoise[];
+extern const u8 gMonIcon_Blastoise[];
+extern const u8 gMonFootprint_Blastoise[];
+extern const u8 gMonFrontPic_Caterpie[];
+extern const u8 gMonPalette_Caterpie[];
+extern const u8 gMonBackPic_Caterpie[];
+extern const u8 gMonShinyPalette_Caterpie[];
+extern const u8 gMonIcon_Caterpie[];
+extern const u8 gMonFootprint_Caterpie[];
+extern const u8 gMonFrontPic_Metapod[];
+extern const u8 gMonPalette_Metapod[];
+extern const u8 gMonBackPic_Metapod[];
+extern const u8 gMonShinyPalette_Metapod[];
+extern const u8 gMonIcon_Metapod[];
+extern const u8 gMonFootprint_Metapod[];
+extern const u8 gMonFrontPic_Butterfree[];
+extern const u8 gMonPalette_Butterfree[];
+extern const u8 gMonBackPic_Butterfree[];
+extern const u8 gMonShinyPalette_Butterfree[];
+extern const u8 gMonIcon_Butterfree[];
+extern const u8 gMonFootprint_Butterfree[];
+extern const u8 gMonFrontPic_Weedle[];
+extern const u8 gMonPalette_Weedle[];
+extern const u8 gMonBackPic_Weedle[];
+extern const u8 gMonShinyPalette_Weedle[];
+extern const u8 gMonIcon_Weedle[];
+extern const u8 gMonFootprint_Weedle[];
+extern const u8 gMonFrontPic_Kakuna[];
+extern const u8 gMonPalette_Kakuna[];
+extern const u8 gMonBackPic_Kakuna[];
+extern const u8 gMonShinyPalette_Kakuna[];
+extern const u8 gMonIcon_Kakuna[];
+extern const u8 gMonFootprint_Kakuna[];
+extern const u8 gMonFrontPic_Beedrill[];
+extern const u8 gMonPalette_Beedrill[];
+extern const u8 gMonBackPic_Beedrill[];
+extern const u8 gMonShinyPalette_Beedrill[];
+extern const u8 gMonIcon_Beedrill[];
+extern const u8 gMonFootprint_Beedrill[];
+extern const u8 gMonFrontPic_Pidgey[];
+extern const u8 gMonPalette_Pidgey[];
+extern const u8 gMonBackPic_Pidgey[];
+extern const u8 gMonShinyPalette_Pidgey[];
+extern const u8 gMonIcon_Pidgey[];
+extern const u8 gMonFootprint_Pidgey[];
+extern const u8 gMonFrontPic_Pidgeotto[];
+extern const u8 gMonPalette_Pidgeotto[];
+extern const u8 gMonBackPic_Pidgeotto[];
+extern const u8 gMonShinyPalette_Pidgeotto[];
+extern const u8 gMonIcon_Pidgeotto[];
+extern const u8 gMonFootprint_Pidgeotto[];
+extern const u8 gMonFrontPic_Pidgeot[];
+extern const u8 gMonPalette_Pidgeot[];
+extern const u8 gMonBackPic_Pidgeot[];
+extern const u8 gMonShinyPalette_Pidgeot[];
+extern const u8 gMonIcon_Pidgeot[];
+extern const u8 gMonFootprint_Pidgeot[];
+extern const u8 gMonFrontPic_Rattata[];
+extern const u8 gMonPalette_Rattata[];
+extern const u8 gMonBackPic_Rattata[];
+extern const u8 gMonShinyPalette_Rattata[];
+extern const u8 gMonIcon_Rattata[];
+extern const u8 gMonFootprint_Rattata[];
+extern const u8 gMonFrontPic_Raticate[];
+extern const u8 gMonPalette_Raticate[];
+extern const u8 gMonBackPic_Raticate[];
+extern const u8 gMonShinyPalette_Raticate[];
+extern const u8 gMonIcon_Raticate[];
+extern const u8 gMonFootprint_Raticate[];
+extern const u8 gMonFrontPic_Spearow[];
+extern const u8 gMonPalette_Spearow[];
+extern const u8 gMonBackPic_Spearow[];
+extern const u8 gMonShinyPalette_Spearow[];
+extern const u8 gMonIcon_Spearow[];
+extern const u8 gMonFootprint_Spearow[];
+extern const u8 gMonFrontPic_Fearow[];
+extern const u8 gMonPalette_Fearow[];
+extern const u8 gMonBackPic_Fearow[];
+extern const u8 gMonShinyPalette_Fearow[];
+extern const u8 gMonIcon_Fearow[];
+extern const u8 gMonFootprint_Fearow[];
+extern const u8 gMonFrontPic_Ekans[];
+extern const u8 gMonPalette_Ekans[];
+extern const u8 gMonBackPic_Ekans[];
+extern const u8 gMonShinyPalette_Ekans[];
+extern const u8 gMonIcon_Ekans[];
+extern const u8 gMonFootprint_Ekans[];
+extern const u8 gMonFrontPic_Arbok[];
+extern const u8 gMonPalette_Arbok[];
+extern const u8 gMonBackPic_Arbok[];
+extern const u8 gMonShinyPalette_Arbok[];
+extern const u8 gMonIcon_Arbok[];
+extern const u8 gMonFootprint_Arbok[];
+extern const u8 gMonFrontPic_Pikachu[];
+extern const u8 gMonPalette_Pikachu[];
+extern const u8 gMonBackPic_Pikachu[];
+extern const u8 gMonShinyPalette_Pikachu[];
+extern const u8 gMonIcon_Pikachu[];
+extern const u8 gMonFootprint_Pikachu[];
+extern const u8 gMonFrontPic_Raichu[];
+extern const u8 gMonPalette_Raichu[];
+extern const u8 gMonBackPic_Raichu[];
+extern const u8 gMonShinyPalette_Raichu[];
+extern const u8 gMonIcon_Raichu[];
+extern const u8 gMonFootprint_Raichu[];
+extern const u8 gMonFrontPic_Sandshrew[];
+extern const u8 gMonPalette_Sandshrew[];
+extern const u8 gMonBackPic_Sandshrew[];
+extern const u8 gMonShinyPalette_Sandshrew[];
+extern const u8 gMonIcon_Sandshrew[];
+extern const u8 gMonFootprint_Sandshrew[];
+extern const u8 gMonFrontPic_Sandslash[];
+extern const u8 gMonPalette_Sandslash[];
+extern const u8 gMonBackPic_Sandslash[];
+extern const u8 gMonShinyPalette_Sandslash[];
+extern const u8 gMonIcon_Sandslash[];
+extern const u8 gMonFootprint_Sandslash[];
+extern const u8 gMonFrontPic_NidoranF[];
+extern const u8 gMonPalette_NidoranF[];
+extern const u8 gMonBackPic_NidoranF[];
+extern const u8 gMonShinyPalette_NidoranF[];
+extern const u8 gMonIcon_NidoranF[];
+extern const u8 gMonFootprint_NidoranF[];
+extern const u8 gMonFrontPic_Nidorina[];
+extern const u8 gMonPalette_Nidorina[];
+extern const u8 gMonBackPic_Nidorina[];
+extern const u8 gMonShinyPalette_Nidorina[];
+extern const u8 gMonIcon_Nidorina[];
+extern const u8 gMonFootprint_Nidorina[];
+extern const u8 gMonFrontPic_Nidoqueen[];
+extern const u8 gMonPalette_Nidoqueen[];
+extern const u8 gMonBackPic_Nidoqueen[];
+extern const u8 gMonShinyPalette_Nidoqueen[];
+extern const u8 gMonIcon_Nidoqueen[];
+extern const u8 gMonFootprint_Nidoqueen[];
+extern const u8 gMonFrontPic_NidoranM[];
+extern const u8 gMonPalette_NidoranM[];
+extern const u8 gMonBackPic_NidoranM[];
+extern const u8 gMonShinyPalette_NidoranM[];
+extern const u8 gMonIcon_NidoranM[];
+extern const u8 gMonFootprint_NidoranM[];
+extern const u8 gMonFrontPic_Nidorino[];
+extern const u8 gMonPalette_Nidorino[];
+extern const u8 gMonBackPic_Nidorino[];
+extern const u8 gMonShinyPalette_Nidorino[];
+extern const u8 gMonIcon_Nidorino[];
+extern const u8 gMonFootprint_Nidorino[];
+extern const u8 gMonFrontPic_Nidoking[];
+extern const u8 gMonPalette_Nidoking[];
+extern const u8 gMonBackPic_Nidoking[];
+extern const u8 gMonShinyPalette_Nidoking[];
+extern const u8 gMonIcon_Nidoking[];
+extern const u8 gMonFootprint_Nidoking[];
+extern const u8 gMonFrontPic_Clefairy[];
+extern const u8 gMonPalette_Clefairy[];
+extern const u8 gMonBackPic_Clefairy[];
+extern const u8 gMonShinyPalette_Clefairy[];
+extern const u8 gMonIcon_Clefairy[];
+extern const u8 gMonFootprint_Clefairy[];
+extern const u8 gMonFrontPic_Clefable[];
+extern const u8 gMonPalette_Clefable[];
+extern const u8 gMonBackPic_Clefable[];
+extern const u8 gMonShinyPalette_Clefable[];
+extern const u8 gMonIcon_Clefable[];
+extern const u8 gMonFootprint_Clefable[];
+extern const u8 gMonFrontPic_Vulpix[];
+extern const u8 gMonPalette_Vulpix[];
+extern const u8 gMonBackPic_Vulpix[];
+extern const u8 gMonShinyPalette_Vulpix[];
+extern const u8 gMonIcon_Vulpix[];
+extern const u8 gMonFootprint_Vulpix[];
+extern const u8 gMonFrontPic_Ninetales[];
+extern const u8 gMonPalette_Ninetales[];
+extern const u8 gMonBackPic_Ninetales[];
+extern const u8 gMonShinyPalette_Ninetales[];
+extern const u8 gMonIcon_Ninetales[];
+extern const u8 gMonFootprint_Ninetales[];
+extern const u8 gMonFrontPic_Jigglypuff[];
+extern const u8 gMonPalette_Jigglypuff[];
+extern const u8 gMonBackPic_Jigglypuff[];
+extern const u8 gMonShinyPalette_Jigglypuff[];
+extern const u8 gMonIcon_Jigglypuff[];
+extern const u8 gMonFootprint_Jigglypuff[];
+extern const u8 gMonFrontPic_Wigglytuff[];
+extern const u8 gMonPalette_Wigglytuff[];
+extern const u8 gMonBackPic_Wigglytuff[];
+extern const u8 gMonShinyPalette_Wigglytuff[];
+extern const u8 gMonIcon_Wigglytuff[];
+extern const u8 gMonFootprint_Wigglytuff[];
+extern const u8 gMonFrontPic_Zubat[];
+extern const u8 gMonPalette_Zubat[];
+extern const u8 gMonBackPic_Zubat[];
+extern const u8 gMonShinyPalette_Zubat[];
+extern const u8 gMonIcon_Zubat[];
+extern const u8 gMonFootprint_Zubat[];
+extern const u8 gMonFrontPic_Golbat[];
+extern const u8 gMonPalette_Golbat[];
+extern const u8 gMonBackPic_Golbat[];
+extern const u8 gMonShinyPalette_Golbat[];
+extern const u8 gMonIcon_Golbat[];
+extern const u8 gMonFootprint_Golbat[];
+extern const u8 gMonFrontPic_Oddish[];
+extern const u8 gMonPalette_Oddish[];
+extern const u8 gMonBackPic_Oddish[];
+extern const u8 gMonShinyPalette_Oddish[];
+extern const u8 gMonIcon_Oddish[];
+extern const u8 gMonFootprint_Oddish[];
+extern const u8 gMonFrontPic_Gloom[];
+extern const u8 gMonPalette_Gloom[];
+extern const u8 gMonBackPic_Gloom[];
+extern const u8 gMonShinyPalette_Gloom[];
+extern const u8 gMonIcon_Gloom[];
+extern const u8 gMonFootprint_Gloom[];
+extern const u8 gMonFrontPic_Vileplume[];
+extern const u8 gMonPalette_Vileplume[];
+extern const u8 gMonBackPic_Vileplume[];
+extern const u8 gMonShinyPalette_Vileplume[];
+extern const u8 gMonIcon_Vileplume[];
+extern const u8 gMonFootprint_Vileplume[];
+extern const u8 gMonFrontPic_Paras[];
+extern const u8 gMonPalette_Paras[];
+extern const u8 gMonBackPic_Paras[];
+extern const u8 gMonShinyPalette_Paras[];
+extern const u8 gMonIcon_Paras[];
+extern const u8 gMonFootprint_Paras[];
+extern const u8 gMonFrontPic_Parasect[];
+extern const u8 gMonPalette_Parasect[];
+extern const u8 gMonBackPic_Parasect[];
+extern const u8 gMonShinyPalette_Parasect[];
+extern const u8 gMonIcon_Parasect[];
+extern const u8 gMonFootprint_Parasect[];
+extern const u8 gMonFrontPic_Venonat[];
+extern const u8 gMonPalette_Venonat[];
+extern const u8 gMonBackPic_Venonat[];
+extern const u8 gMonShinyPalette_Venonat[];
+extern const u8 gMonIcon_Venonat[];
+extern const u8 gMonFootprint_Venonat[];
+extern const u8 gMonFrontPic_Venomoth[];
+extern const u8 gMonPalette_Venomoth[];
+extern const u8 gMonBackPic_Venomoth[];
+extern const u8 gMonShinyPalette_Venomoth[];
+extern const u8 gMonIcon_Venomoth[];
+extern const u8 gMonFootprint_Venomoth[];
+extern const u8 gMonFrontPic_Diglett[];
+extern const u8 gMonPalette_Diglett[];
+extern const u8 gMonBackPic_Diglett[];
+extern const u8 gMonShinyPalette_Diglett[];
+extern const u8 gMonIcon_Diglett[];
+extern const u8 gMonFootprint_Diglett[];
+extern const u8 gMonFrontPic_Dugtrio[];
+extern const u8 gMonPalette_Dugtrio[];
+extern const u8 gMonBackPic_Dugtrio[];
+extern const u8 gMonShinyPalette_Dugtrio[];
+extern const u8 gMonIcon_Dugtrio[];
+extern const u8 gMonFootprint_Dugtrio[];
+extern const u8 gMonFrontPic_Meowth[];
+extern const u8 gMonPalette_Meowth[];
+extern const u8 gMonBackPic_Meowth[];
+extern const u8 gMonShinyPalette_Meowth[];
+extern const u8 gMonIcon_Meowth[];
+extern const u8 gMonFootprint_Meowth[];
+extern const u8 gMonFrontPic_Persian[];
+extern const u8 gMonPalette_Persian[];
+extern const u8 gMonBackPic_Persian[];
+extern const u8 gMonShinyPalette_Persian[];
+extern const u8 gMonIcon_Persian[];
+extern const u8 gMonFootprint_Persian[];
+extern const u8 gMonFrontPic_Psyduck[];
+extern const u8 gMonPalette_Psyduck[];
+extern const u8 gMonBackPic_Psyduck[];
+extern const u8 gMonShinyPalette_Psyduck[];
+extern const u8 gMonIcon_Psyduck[];
+extern const u8 gMonFootprint_Psyduck[];
+extern const u8 gMonFrontPic_Golduck[];
+extern const u8 gMonPalette_Golduck[];
+extern const u8 gMonBackPic_Golduck[];
+extern const u8 gMonShinyPalette_Golduck[];
+extern const u8 gMonIcon_Golduck[];
+extern const u8 gMonFootprint_Golduck[];
+extern const u8 gMonFrontPic_Mankey[];
+extern const u8 gMonPalette_Mankey[];
+extern const u8 gMonBackPic_Mankey[];
+extern const u8 gMonShinyPalette_Mankey[];
+extern const u8 gMonIcon_Mankey[];
+extern const u8 gMonFootprint_Mankey[];
+extern const u8 gMonFrontPic_Primeape[];
+extern const u8 gMonPalette_Primeape[];
+extern const u8 gMonBackPic_Primeape[];
+extern const u8 gMonShinyPalette_Primeape[];
+extern const u8 gMonIcon_Primeape[];
+extern const u8 gMonFootprint_Primeape[];
+extern const u8 gMonFrontPic_Growlithe[];
+extern const u8 gMonPalette_Growlithe[];
+extern const u8 gMonBackPic_Growlithe[];
+extern const u8 gMonShinyPalette_Growlithe[];
+extern const u8 gMonIcon_Growlithe[];
+extern const u8 gMonFootprint_Growlithe[];
+extern const u8 gMonFrontPic_Arcanine[];
+extern const u8 gMonPalette_Arcanine[];
+extern const u8 gMonBackPic_Arcanine[];
+extern const u8 gMonShinyPalette_Arcanine[];
+extern const u8 gMonIcon_Arcanine[];
+extern const u8 gMonFootprint_Arcanine[];
+extern const u8 gMonFrontPic_Poliwag[];
+extern const u8 gMonPalette_Poliwag[];
+extern const u8 gMonBackPic_Poliwag[];
+extern const u8 gMonShinyPalette_Poliwag[];
+extern const u8 gMonIcon_Poliwag[];
+extern const u8 gMonFootprint_Poliwag[];
+extern const u8 gMonFrontPic_Poliwhirl[];
+extern const u8 gMonPalette_Poliwhirl[];
+extern const u8 gMonBackPic_Poliwhirl[];
+extern const u8 gMonShinyPalette_Poliwhirl[];
+extern const u8 gMonIcon_Poliwhirl[];
+extern const u8 gMonFootprint_Poliwhirl[];
+extern const u8 gMonFrontPic_Poliwrath[];
+extern const u8 gMonPalette_Poliwrath[];
+extern const u8 gMonBackPic_Poliwrath[];
+extern const u8 gMonShinyPalette_Poliwrath[];
+extern const u8 gMonIcon_Poliwrath[];
+extern const u8 gMonFootprint_Poliwrath[];
+extern const u8 gMonFrontPic_Abra[];
+extern const u8 gMonPalette_Abra[];
+extern const u8 gMonBackPic_Abra[];
+extern const u8 gMonShinyPalette_Abra[];
+extern const u8 gMonIcon_Abra[];
+extern const u8 gMonFootprint_Abra[];
+extern const u8 gMonFrontPic_Kadabra[];
+extern const u8 gMonPalette_Kadabra[];
+extern const u8 gMonBackPic_Kadabra[];
+extern const u8 gMonShinyPalette_Kadabra[];
+extern const u8 gMonIcon_Kadabra[];
+extern const u8 gMonFootprint_Kadabra[];
+extern const u8 gMonFrontPic_Alakazam[];
+extern const u8 gMonPalette_Alakazam[];
+extern const u8 gMonBackPic_Alakazam[];
+extern const u8 gMonShinyPalette_Alakazam[];
+extern const u8 gMonIcon_Alakazam[];
+extern const u8 gMonFootprint_Alakazam[];
+extern const u8 gMonFrontPic_Machop[];
+extern const u8 gMonPalette_Machop[];
+extern const u8 gMonBackPic_Machop[];
+extern const u8 gMonShinyPalette_Machop[];
+extern const u8 gMonIcon_Machop[];
+extern const u8 gMonFootprint_Machop[];
+extern const u8 gMonFrontPic_Machoke[];
+extern const u8 gMonPalette_Machoke[];
+extern const u8 gMonBackPic_Machoke[];
+extern const u8 gMonShinyPalette_Machoke[];
+extern const u8 gMonIcon_Machoke[];
+extern const u8 gMonFootprint_Machoke[];
+extern const u8 gMonFrontPic_Machamp[];
+extern const u8 gMonPalette_Machamp[];
+extern const u8 gMonBackPic_Machamp[];
+extern const u8 gMonShinyPalette_Machamp[];
+extern const u8 gMonIcon_Machamp[];
+extern const u8 gMonFootprint_Machamp[];
+extern const u8 gMonFrontPic_Bellsprout[];
+extern const u8 gMonPalette_Bellsprout[];
+extern const u8 gMonBackPic_Bellsprout[];
+extern const u8 gMonShinyPalette_Bellsprout[];
+extern const u8 gMonIcon_Bellsprout[];
+extern const u8 gMonFootprint_Bellsprout[];
+extern const u8 gMonFrontPic_Weepinbell[];
+extern const u8 gMonPalette_Weepinbell[];
+extern const u8 gMonBackPic_Weepinbell[];
+extern const u8 gMonShinyPalette_Weepinbell[];
+extern const u8 gMonIcon_Weepinbell[];
+extern const u8 gMonFootprint_Weepinbell[];
+extern const u8 gMonFrontPic_Victreebel[];
+extern const u8 gMonPalette_Victreebel[];
+extern const u8 gMonBackPic_Victreebel[];
+extern const u8 gMonShinyPalette_Victreebel[];
+extern const u8 gMonIcon_Victreebel[];
+extern const u8 gMonFootprint_Victreebel[];
+extern const u8 gMonFrontPic_Tentacool[];
+extern const u8 gMonPalette_Tentacool[];
+extern const u8 gMonBackPic_Tentacool[];
+extern const u8 gMonShinyPalette_Tentacool[];
+extern const u8 gMonIcon_Tentacool[];
+extern const u8 gMonFootprint_Tentacool[];
+extern const u8 gMonFrontPic_Tentacruel[];
+extern const u8 gMonPalette_Tentacruel[];
+extern const u8 gMonBackPic_Tentacruel[];
+extern const u8 gMonShinyPalette_Tentacruel[];
+extern const u8 gMonIcon_Tentacruel[];
+extern const u8 gMonFootprint_Tentacruel[];
+extern const u8 gMonFrontPic_Geodude[];
+extern const u8 gMonPalette_Geodude[];
+extern const u8 gMonBackPic_Geodude[];
+extern const u8 gMonShinyPalette_Geodude[];
+extern const u8 gMonIcon_Geodude[];
+extern const u8 gMonFootprint_Geodude[];
+extern const u8 gMonFrontPic_Graveler[];
+extern const u8 gMonPalette_Graveler[];
+extern const u8 gMonBackPic_Graveler[];
+extern const u8 gMonShinyPalette_Graveler[];
+extern const u8 gMonIcon_Graveler[];
+extern const u8 gMonFootprint_Graveler[];
+extern const u8 gMonFrontPic_Golem[];
+extern const u8 gMonPalette_Golem[];
+extern const u8 gMonBackPic_Golem[];
+extern const u8 gMonShinyPalette_Golem[];
+extern const u8 gMonIcon_Golem[];
+extern const u8 gMonFootprint_Golem[];
+extern const u8 gMonFrontPic_Ponyta[];
+extern const u8 gMonPalette_Ponyta[];
+extern const u8 gMonBackPic_Ponyta[];
+extern const u8 gMonShinyPalette_Ponyta[];
+extern const u8 gMonIcon_Ponyta[];
+extern const u8 gMonFootprint_Ponyta[];
+extern const u8 gMonFrontPic_Rapidash[];
+extern const u8 gMonPalette_Rapidash[];
+extern const u8 gMonBackPic_Rapidash[];
+extern const u8 gMonShinyPalette_Rapidash[];
+extern const u8 gMonIcon_Rapidash[];
+extern const u8 gMonFootprint_Rapidash[];
+extern const u8 gMonFrontPic_Slowpoke[];
+extern const u8 gMonPalette_Slowpoke[];
+extern const u8 gMonBackPic_Slowpoke[];
+extern const u8 gMonShinyPalette_Slowpoke[];
+extern const u8 gMonIcon_Slowpoke[];
+extern const u8 gMonFootprint_Slowpoke[];
+extern const u8 gMonFrontPic_Slowbro[];
+extern const u8 gMonPalette_Slowbro[];
+extern const u8 gMonBackPic_Slowbro[];
+extern const u8 gMonShinyPalette_Slowbro[];
+extern const u8 gMonIcon_Slowbro[];
+extern const u8 gMonFootprint_Slowbro[];
+extern const u8 gMonFrontPic_Magnemite[];
+extern const u8 gMonPalette_Magnemite[];
+extern const u8 gMonBackPic_Magnemite[];
+extern const u8 gMonShinyPalette_Magnemite[];
+extern const u8 gMonIcon_Magnemite[];
+extern const u8 gMonFootprint_Magnemite[];
+extern const u8 gMonFrontPic_Magneton[];
+extern const u8 gMonPalette_Magneton[];
+extern const u8 gMonBackPic_Magneton[];
+extern const u8 gMonShinyPalette_Magneton[];
+extern const u8 gMonIcon_Magneton[];
+extern const u8 gMonFootprint_Magneton[];
+extern const u8 gMonFrontPic_Farfetchd[];
+extern const u8 gMonPalette_Farfetchd[];
+extern const u8 gMonBackPic_Farfetchd[];
+extern const u8 gMonShinyPalette_Farfetchd[];
+extern const u8 gMonIcon_Farfetchd[];
+extern const u8 gMonFootprint_Farfetchd[];
+extern const u8 gMonFrontPic_Doduo[];
+extern const u8 gMonPalette_Doduo[];
+extern const u8 gMonBackPic_Doduo[];
+extern const u8 gMonShinyPalette_Doduo[];
+extern const u8 gMonIcon_Doduo[];
+extern const u8 gMonFootprint_Doduo[];
+extern const u8 gMonFrontPic_Dodrio[];
+extern const u8 gMonPalette_Dodrio[];
+extern const u8 gMonBackPic_Dodrio[];
+extern const u8 gMonShinyPalette_Dodrio[];
+extern const u8 gMonIcon_Dodrio[];
+extern const u8 gMonFootprint_Dodrio[];
+extern const u8 gMonFrontPic_Seel[];
+extern const u8 gMonPalette_Seel[];
+extern const u8 gMonBackPic_Seel[];
+extern const u8 gMonShinyPalette_Seel[];
+extern const u8 gMonIcon_Seel[];
+extern const u8 gMonFootprint_Seel[];
+extern const u8 gMonFrontPic_Dewgong[];
+extern const u8 gMonPalette_Dewgong[];
+extern const u8 gMonBackPic_Dewgong[];
+extern const u8 gMonShinyPalette_Dewgong[];
+extern const u8 gMonIcon_Dewgong[];
+extern const u8 gMonFootprint_Dewgong[];
+extern const u8 gMonFrontPic_Grimer[];
+extern const u8 gMonPalette_Grimer[];
+extern const u8 gMonBackPic_Grimer[];
+extern const u8 gMonShinyPalette_Grimer[];
+extern const u8 gMonIcon_Grimer[];
+extern const u8 gMonFootprint_Grimer[];
+extern const u8 gMonFrontPic_Muk[];
+extern const u8 gMonPalette_Muk[];
+extern const u8 gMonBackPic_Muk[];
+extern const u8 gMonShinyPalette_Muk[];
+extern const u8 gMonIcon_Muk[];
+extern const u8 gMonFootprint_Muk[];
+extern const u8 gMonFrontPic_Shellder[];
+extern const u8 gMonPalette_Shellder[];
+extern const u8 gMonBackPic_Shellder[];
+extern const u8 gMonShinyPalette_Shellder[];
+extern const u8 gMonIcon_Shellder[];
+extern const u8 gMonFootprint_Shellder[];
+extern const u8 gMonFrontPic_Cloyster[];
+extern const u8 gMonPalette_Cloyster[];
+extern const u8 gMonBackPic_Cloyster[];
+extern const u8 gMonShinyPalette_Cloyster[];
+extern const u8 gMonIcon_Cloyster[];
+extern const u8 gMonFootprint_Cloyster[];
+extern const u8 gMonFrontPic_Gastly[];
+extern const u8 gMonPalette_Gastly[];
+extern const u8 gMonBackPic_Gastly[];
+extern const u8 gMonShinyPalette_Gastly[];
+extern const u8 gMonIcon_Gastly[];
+extern const u8 gMonFootprint_Gastly[];
+extern const u8 gMonFrontPic_Haunter[];
+extern const u8 gMonPalette_Haunter[];
+extern const u8 gMonBackPic_Haunter[];
+extern const u8 gMonShinyPalette_Haunter[];
+extern const u8 gMonIcon_Haunter[];
+extern const u8 gMonFootprint_Haunter[];
+extern const u8 gMonFrontPic_Gengar[];
+extern const u8 gMonPalette_Gengar[];
+extern const u8 gMonBackPic_Gengar[];
+extern const u8 gMonShinyPalette_Gengar[];
+extern const u8 gMonIcon_Gengar[];
+extern const u8 gMonFootprint_Gengar[];
+extern const u8 gMonFrontPic_Onix[];
+extern const u8 gMonPalette_Onix[];
+extern const u8 gMonBackPic_Onix[];
+extern const u8 gMonShinyPalette_Onix[];
+extern const u8 gMonIcon_Onix[];
+extern const u8 gMonFootprint_Onix[];
+extern const u8 gMonFrontPic_Drowzee[];
+extern const u8 gMonPalette_Drowzee[];
+extern const u8 gMonBackPic_Drowzee[];
+extern const u8 gMonShinyPalette_Drowzee[];
+extern const u8 gMonIcon_Drowzee[];
+extern const u8 gMonFootprint_Drowzee[];
+extern const u8 gMonFrontPic_Hypno[];
+extern const u8 gMonPalette_Hypno[];
+extern const u8 gMonBackPic_Hypno[];
+extern const u8 gMonShinyPalette_Hypno[];
+extern const u8 gMonIcon_Hypno[];
+extern const u8 gMonFootprint_Hypno[];
+extern const u8 gMonFrontPic_Krabby[];
+extern const u8 gMonPalette_Krabby[];
+extern const u8 gMonBackPic_Krabby[];
+extern const u8 gMonShinyPalette_Krabby[];
+extern const u8 gMonIcon_Krabby[];
+extern const u8 gMonFootprint_Krabby[];
+extern const u8 gMonFrontPic_Kingler[];
+extern const u8 gMonPalette_Kingler[];
+extern const u8 gMonBackPic_Kingler[];
+extern const u8 gMonShinyPalette_Kingler[];
+extern const u8 gMonIcon_Kingler[];
+extern const u8 gMonFootprint_Kingler[];
+extern const u8 gMonFrontPic_Voltorb[];
+extern const u8 gMonPalette_Voltorb[];
+extern const u8 gMonBackPic_Voltorb[];
+extern const u8 gMonShinyPalette_Voltorb[];
+extern const u8 gMonIcon_Voltorb[];
+extern const u8 gMonFootprint_Voltorb[];
+extern const u8 gMonFrontPic_Electrode[];
+extern const u8 gMonPalette_Electrode[];
+extern const u8 gMonBackPic_Electrode[];
+extern const u8 gMonShinyPalette_Electrode[];
+extern const u8 gMonIcon_Electrode[];
+extern const u8 gMonFootprint_Electrode[];
+extern const u8 gMonFrontPic_Exeggcute[];
+extern const u8 gMonPalette_Exeggcute[];
+extern const u8 gMonBackPic_Exeggcute[];
+extern const u8 gMonShinyPalette_Exeggcute[];
+extern const u8 gMonIcon_Exeggcute[];
+extern const u8 gMonFootprint_Exeggcute[];
+extern const u8 gMonFrontPic_Exeggutor[];
+extern const u8 gMonPalette_Exeggutor[];
+extern const u8 gMonBackPic_Exeggutor[];
+extern const u8 gMonShinyPalette_Exeggutor[];
+extern const u8 gMonIcon_Exeggutor[];
+extern const u8 gMonFootprint_Exeggutor[];
+extern const u8 gMonFrontPic_Cubone[];
+extern const u8 gMonPalette_Cubone[];
+extern const u8 gMonBackPic_Cubone[];
+extern const u8 gMonShinyPalette_Cubone[];
+extern const u8 gMonIcon_Cubone[];
+extern const u8 gMonFootprint_Cubone[];
+extern const u8 gMonFrontPic_Marowak[];
+extern const u8 gMonPalette_Marowak[];
+extern const u8 gMonBackPic_Marowak[];
+extern const u8 gMonShinyPalette_Marowak[];
+extern const u8 gMonIcon_Marowak[];
+extern const u8 gMonFootprint_Marowak[];
+extern const u8 gMonFrontPic_Hitmonlee[];
+extern const u8 gMonPalette_Hitmonlee[];
+extern const u8 gMonBackPic_Hitmonlee[];
+extern const u8 gMonShinyPalette_Hitmonlee[];
+extern const u8 gMonIcon_Hitmonlee[];
+extern const u8 gMonFootprint_Hitmonlee[];
+extern const u8 gMonFrontPic_Hitmonchan[];
+extern const u8 gMonPalette_Hitmonchan[];
+extern const u8 gMonBackPic_Hitmonchan[];
+extern const u8 gMonShinyPalette_Hitmonchan[];
+extern const u8 gMonIcon_Hitmonchan[];
+extern const u8 gMonFootprint_Hitmonchan[];
+extern const u8 gMonFrontPic_Lickitung[];
+extern const u8 gMonPalette_Lickitung[];
+extern const u8 gMonBackPic_Lickitung[];
+extern const u8 gMonShinyPalette_Lickitung[];
+extern const u8 gMonIcon_Lickitung[];
+extern const u8 gMonFootprint_Lickitung[];
+extern const u8 gMonFrontPic_Koffing[];
+extern const u8 gMonPalette_Koffing[];
+extern const u8 gMonBackPic_Koffing[];
+extern const u8 gMonShinyPalette_Koffing[];
+extern const u8 gMonIcon_Koffing[];
+extern const u8 gMonFootprint_Koffing[];
+extern const u8 gMonFrontPic_Weezing[];
+extern const u8 gMonPalette_Weezing[];
+extern const u8 gMonBackPic_Weezing[];
+extern const u8 gMonShinyPalette_Weezing[];
+extern const u8 gMonIcon_Weezing[];
+extern const u8 gMonFootprint_Weezing[];
+extern const u8 gMonFrontPic_Rhyhorn[];
+extern const u8 gMonPalette_Rhyhorn[];
+extern const u8 gMonBackPic_Rhyhorn[];
+extern const u8 gMonShinyPalette_Rhyhorn[];
+extern const u8 gMonIcon_Rhyhorn[];
+extern const u8 gMonFootprint_Rhyhorn[];
+extern const u8 gMonFrontPic_Rhydon[];
+extern const u8 gMonPalette_Rhydon[];
+extern const u8 gMonBackPic_Rhydon[];
+extern const u8 gMonShinyPalette_Rhydon[];
+extern const u8 gMonIcon_Rhydon[];
+extern const u8 gMonFootprint_Rhydon[];
+extern const u8 gMonFrontPic_Chansey[];
+extern const u8 gMonPalette_Chansey[];
+extern const u8 gMonBackPic_Chansey[];
+extern const u8 gMonShinyPalette_Chansey[];
+extern const u8 gMonIcon_Chansey[];
+extern const u8 gMonFootprint_Chansey[];
+extern const u8 gMonFrontPic_Tangela[];
+extern const u8 gMonPalette_Tangela[];
+extern const u8 gMonBackPic_Tangela[];
+extern const u8 gMonShinyPalette_Tangela[];
+extern const u8 gMonIcon_Tangela[];
+extern const u8 gMonFootprint_Tangela[];
+extern const u8 gMonFrontPic_Kangaskhan[];
+extern const u8 gMonPalette_Kangaskhan[];
+extern const u8 gMonBackPic_Kangaskhan[];
+extern const u8 gMonShinyPalette_Kangaskhan[];
+extern const u8 gMonIcon_Kangaskhan[];
+extern const u8 gMonFootprint_Kangaskhan[];
+extern const u8 gMonFrontPic_Horsea[];
+extern const u8 gMonPalette_Horsea[];
+extern const u8 gMonBackPic_Horsea[];
+extern const u8 gMonShinyPalette_Horsea[];
+extern const u8 gMonIcon_Horsea[];
+extern const u8 gMonFootprint_Horsea[];
+extern const u8 gMonFrontPic_Seadra[];
+extern const u8 gMonPalette_Seadra[];
+extern const u8 gMonBackPic_Seadra[];
+extern const u8 gMonShinyPalette_Seadra[];
+extern const u8 gMonIcon_Seadra[];
+extern const u8 gMonFootprint_Seadra[];
+extern const u8 gMonFrontPic_Goldeen[];
+extern const u8 gMonPalette_Goldeen[];
+extern const u8 gMonBackPic_Goldeen[];
+extern const u8 gMonShinyPalette_Goldeen[];
+extern const u8 gMonIcon_Goldeen[];
+extern const u8 gMonFootprint_Goldeen[];
+extern const u8 gMonFrontPic_Seaking[];
+extern const u8 gMonPalette_Seaking[];
+extern const u8 gMonBackPic_Seaking[];
+extern const u8 gMonShinyPalette_Seaking[];
+extern const u8 gMonIcon_Seaking[];
+extern const u8 gMonFootprint_Seaking[];
+extern const u8 gMonFrontPic_Staryu[];
+extern const u8 gMonPalette_Staryu[];
+extern const u8 gMonBackPic_Staryu[];
+extern const u8 gMonShinyPalette_Staryu[];
+extern const u8 gMonIcon_Staryu[];
+extern const u8 gMonFootprint_Staryu[];
+extern const u8 gMonFrontPic_Starmie[];
+extern const u8 gMonPalette_Starmie[];
+extern const u8 gMonBackPic_Starmie[];
+extern const u8 gMonShinyPalette_Starmie[];
+extern const u8 gMonIcon_Starmie[];
+extern const u8 gMonFootprint_Starmie[];
+extern const u8 gMonFrontPic_Mrmime[];
+extern const u8 gMonPalette_Mrmime[];
+extern const u8 gMonBackPic_Mrmime[];
+extern const u8 gMonShinyPalette_Mrmime[];
+extern const u8 gMonIcon_Mrmime[];
+extern const u8 gMonFootprint_Mrmime[];
+extern const u8 gMonFrontPic_Scyther[];
+extern const u8 gMonPalette_Scyther[];
+extern const u8 gMonBackPic_Scyther[];
+extern const u8 gMonShinyPalette_Scyther[];
+extern const u8 gMonIcon_Scyther[];
+extern const u8 gMonFootprint_Scyther[];
+extern const u8 gMonFrontPic_Jynx[];
+extern const u8 gMonPalette_Jynx[];
+extern const u8 gMonBackPic_Jynx[];
+extern const u8 gMonShinyPalette_Jynx[];
+extern const u8 gMonIcon_Jynx[];
+extern const u8 gMonFootprint_Jynx[];
+extern const u8 gMonFrontPic_Electabuzz[];
+extern const u8 gMonPalette_Electabuzz[];
+extern const u8 gMonBackPic_Electabuzz[];
+extern const u8 gMonShinyPalette_Electabuzz[];
+extern const u8 gMonIcon_Electabuzz[];
+extern const u8 gMonFootprint_Electabuzz[];
+extern const u8 gMonFrontPic_Magmar[];
+extern const u8 gMonPalette_Magmar[];
+extern const u8 gMonBackPic_Magmar[];
+extern const u8 gMonShinyPalette_Magmar[];
+extern const u8 gMonIcon_Magmar[];
+extern const u8 gMonFootprint_Magmar[];
+extern const u8 gMonFrontPic_Pinsir[];
+extern const u8 gMonPalette_Pinsir[];
+extern const u8 gMonBackPic_Pinsir[];
+extern const u8 gMonShinyPalette_Pinsir[];
+extern const u8 gMonIcon_Pinsir[];
+extern const u8 gMonFootprint_Pinsir[];
+extern const u8 gMonFrontPic_Tauros[];
+extern const u8 gMonPalette_Tauros[];
+extern const u8 gMonBackPic_Tauros[];
+extern const u8 gMonShinyPalette_Tauros[];
+extern const u8 gMonIcon_Tauros[];
+extern const u8 gMonFootprint_Tauros[];
+extern const u8 gMonFrontPic_Magikarp[];
+extern const u8 gMonPalette_Magikarp[];
+extern const u8 gMonBackPic_Magikarp[];
+extern const u8 gMonShinyPalette_Magikarp[];
+extern const u8 gMonIcon_Magikarp[];
+extern const u8 gMonFootprint_Magikarp[];
+extern const u8 gMonFrontPic_Gyarados[];
+extern const u8 gMonPalette_Gyarados[];
+extern const u8 gMonBackPic_Gyarados[];
+extern const u8 gMonShinyPalette_Gyarados[];
+extern const u8 gMonIcon_Gyarados[];
+extern const u8 gMonFootprint_Gyarados[];
+extern const u8 gMonFrontPic_Lapras[];
+extern const u8 gMonPalette_Lapras[];
+extern const u8 gMonBackPic_Lapras[];
+extern const u8 gMonShinyPalette_Lapras[];
+extern const u8 gMonIcon_Lapras[];
+extern const u8 gMonFootprint_Lapras[];
+extern const u8 gMonFrontPic_Ditto[];
+extern const u8 gMonPalette_Ditto[];
+extern const u8 gMonBackPic_Ditto[];
+extern const u8 gMonShinyPalette_Ditto[];
+extern const u8 gMonIcon_Ditto[];
+extern const u8 gMonFootprint_Ditto[];
+extern const u8 gMonFrontPic_Eevee[];
+extern const u8 gMonPalette_Eevee[];
+extern const u8 gMonBackPic_Eevee[];
+extern const u8 gMonShinyPalette_Eevee[];
+extern const u8 gMonIcon_Eevee[];
+extern const u8 gMonFootprint_Eevee[];
+extern const u8 gMonFrontPic_Vaporeon[];
+extern const u8 gMonPalette_Vaporeon[];
+extern const u8 gMonBackPic_Vaporeon[];
+extern const u8 gMonShinyPalette_Vaporeon[];
+extern const u8 gMonIcon_Vaporeon[];
+extern const u8 gMonFootprint_Vaporeon[];
+extern const u8 gMonFrontPic_Jolteon[];
+extern const u8 gMonPalette_Jolteon[];
+extern const u8 gMonBackPic_Jolteon[];
+extern const u8 gMonShinyPalette_Jolteon[];
+extern const u8 gMonIcon_Jolteon[];
+extern const u8 gMonFootprint_Jolteon[];
+extern const u8 gMonFrontPic_Flareon[];
+extern const u8 gMonPalette_Flareon[];
+extern const u8 gMonBackPic_Flareon[];
+extern const u8 gMonShinyPalette_Flareon[];
+extern const u8 gMonIcon_Flareon[];
+extern const u8 gMonFootprint_Flareon[];
+extern const u8 gMonFrontPic_Porygon[];
+extern const u8 gMonPalette_Porygon[];
+extern const u8 gMonBackPic_Porygon[];
+extern const u8 gMonShinyPalette_Porygon[];
+extern const u8 gMonIcon_Porygon[];
+extern const u8 gMonFootprint_Porygon[];
+extern const u8 gMonFrontPic_Omanyte[];
+extern const u8 gMonPalette_Omanyte[];
+extern const u8 gMonBackPic_Omanyte[];
+extern const u8 gMonShinyPalette_Omanyte[];
+extern const u8 gMonIcon_Omanyte[];
+extern const u8 gMonFootprint_Omanyte[];
+extern const u8 gMonFrontPic_Omastar[];
+extern const u8 gMonPalette_Omastar[];
+extern const u8 gMonBackPic_Omastar[];
+extern const u8 gMonShinyPalette_Omastar[];
+extern const u8 gMonIcon_Omastar[];
+extern const u8 gMonFootprint_Omastar[];
+extern const u8 gMonFrontPic_Kabuto[];
+extern const u8 gMonPalette_Kabuto[];
+extern const u8 gMonBackPic_Kabuto[];
+extern const u8 gMonShinyPalette_Kabuto[];
+extern const u8 gMonIcon_Kabuto[];
+extern const u8 gMonFootprint_Kabuto[];
+extern const u8 gMonFrontPic_Kabutops[];
+extern const u8 gMonPalette_Kabutops[];
+extern const u8 gMonBackPic_Kabutops[];
+extern const u8 gMonShinyPalette_Kabutops[];
+extern const u8 gMonIcon_Kabutops[];
+extern const u8 gMonFootprint_Kabutops[];
+extern const u8 gMonFrontPic_Aerodactyl[];
+extern const u8 gMonPalette_Aerodactyl[];
+extern const u8 gMonBackPic_Aerodactyl[];
+extern const u8 gMonShinyPalette_Aerodactyl[];
+extern const u8 gMonIcon_Aerodactyl[];
+extern const u8 gMonFootprint_Aerodactyl[];
+extern const u8 gMonFrontPic_Snorlax[];
+extern const u8 gMonPalette_Snorlax[];
+extern const u8 gMonBackPic_Snorlax[];
+extern const u8 gMonShinyPalette_Snorlax[];
+extern const u8 gMonIcon_Snorlax[];
+extern const u8 gMonFootprint_Snorlax[];
+extern const u8 gMonFrontPic_Articuno[];
+extern const u8 gMonPalette_Articuno[];
+extern const u8 gMonBackPic_Articuno[];
+extern const u8 gMonShinyPalette_Articuno[];
+extern const u8 gMonIcon_Articuno[];
+extern const u8 gMonFootprint_Articuno[];
+extern const u8 gMonFrontPic_Zapdos[];
+extern const u8 gMonPalette_Zapdos[];
+extern const u8 gMonBackPic_Zapdos[];
+extern const u8 gMonShinyPalette_Zapdos[];
+extern const u8 gMonIcon_Zapdos[];
+extern const u8 gMonFootprint_Zapdos[];
+extern const u8 gMonFrontPic_Moltres[];
+extern const u8 gMonPalette_Moltres[];
+extern const u8 gMonBackPic_Moltres[];
+extern const u8 gMonShinyPalette_Moltres[];
+extern const u8 gMonIcon_Moltres[];
+extern const u8 gMonFootprint_Moltres[];
+extern const u8 gMonFrontPic_Dratini[];
+extern const u8 gMonPalette_Dratini[];
+extern const u8 gMonBackPic_Dratini[];
+extern const u8 gMonShinyPalette_Dratini[];
+extern const u8 gMonIcon_Dratini[];
+extern const u8 gMonFootprint_Dratini[];
+extern const u8 gMonFrontPic_Dragonair[];
+extern const u8 gMonPalette_Dragonair[];
+extern const u8 gMonBackPic_Dragonair[];
+extern const u8 gMonShinyPalette_Dragonair[];
+extern const u8 gMonIcon_Dragonair[];
+extern const u8 gMonFootprint_Dragonair[];
+extern const u8 gMonFrontPic_Dragonite[];
+extern const u8 gMonPalette_Dragonite[];
+extern const u8 gMonBackPic_Dragonite[];
+extern const u8 gMonShinyPalette_Dragonite[];
+extern const u8 gMonIcon_Dragonite[];
+extern const u8 gMonFootprint_Dragonite[];
+extern const u8 gMonFrontPic_Mewtwo[];
+extern const u8 gMonPalette_Mewtwo[];
+extern const u8 gMonBackPic_Mewtwo[];
+extern const u8 gMonShinyPalette_Mewtwo[];
+extern const u8 gMonIcon_Mewtwo[];
+extern const u8 gMonFootprint_Mewtwo[];
+extern const u8 gMonFrontPic_Mew[];
+extern const u8 gMonPalette_Mew[];
+extern const u8 gMonBackPic_Mew[];
+extern const u8 gMonShinyPalette_Mew[];
+extern const u8 gMonIcon_Mew[];
+extern const u8 gMonFootprint_Mew[];
+extern const u8 gMonFrontPic_Chikorita[];
+extern const u8 gMonPalette_Chikorita[];
+extern const u8 gMonBackPic_Chikorita[];
+extern const u8 gMonShinyPalette_Chikorita[];
+extern const u8 gMonIcon_Chikorita[];
+extern const u8 gMonFootprint_Chikorita[];
+extern const u8 gMonFrontPic_Bayleef[];
+extern const u8 gMonPalette_Bayleef[];
+extern const u8 gMonBackPic_Bayleef[];
+extern const u8 gMonShinyPalette_Bayleef[];
+extern const u8 gMonIcon_Bayleef[];
+extern const u8 gMonFootprint_Bayleef[];
+extern const u8 gMonFrontPic_Meganium[];
+extern const u8 gMonPalette_Meganium[];
+extern const u8 gMonBackPic_Meganium[];
+extern const u8 gMonShinyPalette_Meganium[];
+extern const u8 gMonIcon_Meganium[];
+extern const u8 gMonFootprint_Meganium[];
+extern const u8 gMonFrontPic_Cyndaquil[];
+extern const u8 gMonPalette_Cyndaquil[];
+extern const u8 gMonBackPic_Cyndaquil[];
+extern const u8 gMonShinyPalette_Cyndaquil[];
+extern const u8 gMonIcon_Cyndaquil[];
+extern const u8 gMonFootprint_Cyndaquil[];
+extern const u8 gMonFrontPic_Quilava[];
+extern const u8 gMonPalette_Quilava[];
+extern const u8 gMonBackPic_Quilava[];
+extern const u8 gMonShinyPalette_Quilava[];
+extern const u8 gMonIcon_Quilava[];
+extern const u8 gMonFootprint_Quilava[];
+extern const u8 gMonFrontPic_Typhlosion[];
+extern const u8 gMonPalette_Typhlosion[];
+extern const u8 gMonBackPic_Typhlosion[];
+extern const u8 gMonShinyPalette_Typhlosion[];
+extern const u8 gMonIcon_Typhlosion[];
+extern const u8 gMonFootprint_Typhlosion[];
+extern const u8 gMonFrontPic_Totodile[];
+extern const u8 gMonPalette_Totodile[];
+extern const u8 gMonBackPic_Totodile[];
+extern const u8 gMonShinyPalette_Totodile[];
+extern const u8 gMonIcon_Totodile[];
+extern const u8 gMonFootprint_Totodile[];
+extern const u8 gMonFrontPic_Croconaw[];
+extern const u8 gMonPalette_Croconaw[];
+extern const u8 gMonBackPic_Croconaw[];
+extern const u8 gMonShinyPalette_Croconaw[];
+extern const u8 gMonIcon_Croconaw[];
+extern const u8 gMonFootprint_Croconaw[];
+extern const u8 gMonFrontPic_Feraligatr[];
+extern const u8 gMonPalette_Feraligatr[];
+extern const u8 gMonBackPic_Feraligatr[];
+extern const u8 gMonShinyPalette_Feraligatr[];
+extern const u8 gMonIcon_Feraligatr[];
+extern const u8 gMonFootprint_Feraligatr[];
+extern const u8 gMonFrontPic_Sentret[];
+extern const u8 gMonPalette_Sentret[];
+extern const u8 gMonBackPic_Sentret[];
+extern const u8 gMonShinyPalette_Sentret[];
+extern const u8 gMonIcon_Sentret[];
+extern const u8 gMonFootprint_Sentret[];
+extern const u8 gMonFrontPic_Furret[];
+extern const u8 gMonPalette_Furret[];
+extern const u8 gMonBackPic_Furret[];
+extern const u8 gMonShinyPalette_Furret[];
+extern const u8 gMonIcon_Furret[];
+extern const u8 gMonFootprint_Furret[];
+extern const u8 gMonFrontPic_Hoothoot[];
+extern const u8 gMonPalette_Hoothoot[];
+extern const u8 gMonBackPic_Hoothoot[];
+extern const u8 gMonShinyPalette_Hoothoot[];
+extern const u8 gMonIcon_Hoothoot[];
+extern const u8 gMonFootprint_Hoothoot[];
+extern const u8 gMonFrontPic_Noctowl[];
+extern const u8 gMonPalette_Noctowl[];
+extern const u8 gMonBackPic_Noctowl[];
+extern const u8 gMonShinyPalette_Noctowl[];
+extern const u8 gMonIcon_Noctowl[];
+extern const u8 gMonFootprint_Noctowl[];
+extern const u8 gMonFrontPic_Ledyba[];
+extern const u8 gMonPalette_Ledyba[];
+extern const u8 gMonBackPic_Ledyba[];
+extern const u8 gMonShinyPalette_Ledyba[];
+extern const u8 gMonIcon_Ledyba[];
+extern const u8 gMonFootprint_Ledyba[];
+extern const u8 gMonFrontPic_Ledian[];
+extern const u8 gMonPalette_Ledian[];
+extern const u8 gMonBackPic_Ledian[];
+extern const u8 gMonShinyPalette_Ledian[];
+extern const u8 gMonIcon_Ledian[];
+extern const u8 gMonFootprint_Ledian[];
+extern const u8 gMonFrontPic_Spinarak[];
+extern const u8 gMonPalette_Spinarak[];
+extern const u8 gMonBackPic_Spinarak[];
+extern const u8 gMonShinyPalette_Spinarak[];
+extern const u8 gMonIcon_Spinarak[];
+extern const u8 gMonFootprint_Spinarak[];
+extern const u8 gMonFrontPic_Ariados[];
+extern const u8 gMonPalette_Ariados[];
+extern const u8 gMonBackPic_Ariados[];
+extern const u8 gMonShinyPalette_Ariados[];
+extern const u8 gMonIcon_Ariados[];
+extern const u8 gMonFootprint_Ariados[];
+extern const u8 gMonFrontPic_Crobat[];
+extern const u8 gMonPalette_Crobat[];
+extern const u8 gMonBackPic_Crobat[];
+extern const u8 gMonShinyPalette_Crobat[];
+extern const u8 gMonIcon_Crobat[];
+extern const u8 gMonFootprint_Crobat[];
+extern const u8 gMonFrontPic_Chinchou[];
+extern const u8 gMonPalette_Chinchou[];
+extern const u8 gMonBackPic_Chinchou[];
+extern const u8 gMonShinyPalette_Chinchou[];
+extern const u8 gMonIcon_Chinchou[];
+extern const u8 gMonFootprint_Chinchou[];
+extern const u8 gMonFrontPic_Lanturn[];
+extern const u8 gMonPalette_Lanturn[];
+extern const u8 gMonBackPic_Lanturn[];
+extern const u8 gMonShinyPalette_Lanturn[];
+extern const u8 gMonIcon_Lanturn[];
+extern const u8 gMonFootprint_Lanturn[];
+extern const u8 gMonFrontPic_Pichu[];
+extern const u8 gMonPalette_Pichu[];
+extern const u8 gMonBackPic_Pichu[];
+extern const u8 gMonShinyPalette_Pichu[];
+extern const u8 gMonIcon_Pichu[];
+extern const u8 gMonFootprint_Pichu[];
+extern const u8 gMonFrontPic_Cleffa[];
+extern const u8 gMonPalette_Cleffa[];
+extern const u8 gMonBackPic_Cleffa[];
+extern const u8 gMonShinyPalette_Cleffa[];
+extern const u8 gMonIcon_Cleffa[];
+extern const u8 gMonFootprint_Cleffa[];
+extern const u8 gMonFrontPic_Igglybuff[];
+extern const u8 gMonPalette_Igglybuff[];
+extern const u8 gMonBackPic_Igglybuff[];
+extern const u8 gMonShinyPalette_Igglybuff[];
+extern const u8 gMonIcon_Igglybuff[];
+extern const u8 gMonFootprint_Igglybuff[];
+extern const u8 gMonFrontPic_Togepi[];
+extern const u8 gMonPalette_Togepi[];
+extern const u8 gMonBackPic_Togepi[];
+extern const u8 gMonShinyPalette_Togepi[];
+extern const u8 gMonIcon_Togepi[];
+extern const u8 gMonFootprint_Togepi[];
+extern const u8 gMonFrontPic_Togetic[];
+extern const u8 gMonPalette_Togetic[];
+extern const u8 gMonBackPic_Togetic[];
+extern const u8 gMonShinyPalette_Togetic[];
+extern const u8 gMonIcon_Togetic[];
+extern const u8 gMonFootprint_Togetic[];
+extern const u8 gMonFrontPic_Natu[];
+extern const u8 gMonPalette_Natu[];
+extern const u8 gMonBackPic_Natu[];
+extern const u8 gMonShinyPalette_Natu[];
+extern const u8 gMonIcon_Natu[];
+extern const u8 gMonFootprint_Natu[];
+extern const u8 gMonFrontPic_Xatu[];
+extern const u8 gMonPalette_Xatu[];
+extern const u8 gMonBackPic_Xatu[];
+extern const u8 gMonShinyPalette_Xatu[];
+extern const u8 gMonIcon_Xatu[];
+extern const u8 gMonFootprint_Xatu[];
+extern const u8 gMonFrontPic_Mareep[];
+extern const u8 gMonPalette_Mareep[];
+extern const u8 gMonBackPic_Mareep[];
+extern const u8 gMonShinyPalette_Mareep[];
+extern const u8 gMonIcon_Mareep[];
+extern const u8 gMonFootprint_Mareep[];
+extern const u8 gMonFrontPic_Flaaffy[];
+extern const u8 gMonPalette_Flaaffy[];
+extern const u8 gMonBackPic_Flaaffy[];
+extern const u8 gMonShinyPalette_Flaaffy[];
+extern const u8 gMonIcon_Flaaffy[];
+extern const u8 gMonFootprint_Flaaffy[];
+extern const u8 gMonFrontPic_Ampharos[];
+extern const u8 gMonPalette_Ampharos[];
+extern const u8 gMonBackPic_Ampharos[];
+extern const u8 gMonShinyPalette_Ampharos[];
+extern const u8 gMonIcon_Ampharos[];
+extern const u8 gMonFootprint_Ampharos[];
+extern const u8 gMonFrontPic_Bellossom[];
+extern const u8 gMonPalette_Bellossom[];
+extern const u8 gMonBackPic_Bellossom[];
+extern const u8 gMonShinyPalette_Bellossom[];
+extern const u8 gMonIcon_Bellossom[];
+extern const u8 gMonFootprint_Bellossom[];
+extern const u8 gMonFrontPic_Marill[];
+extern const u8 gMonPalette_Marill[];
+extern const u8 gMonBackPic_Marill[];
+extern const u8 gMonShinyPalette_Marill[];
+extern const u8 gMonIcon_Marill[];
+extern const u8 gMonFootprint_Marill[];
+extern const u8 gMonFrontPic_Azumarill[];
+extern const u8 gMonPalette_Azumarill[];
+extern const u8 gMonBackPic_Azumarill[];
+extern const u8 gMonShinyPalette_Azumarill[];
+extern const u8 gMonIcon_Azumarill[];
+extern const u8 gMonFootprint_Azumarill[];
+extern const u8 gMonFrontPic_Sudowoodo[];
+extern const u8 gMonPalette_Sudowoodo[];
+extern const u8 gMonBackPic_Sudowoodo[];
+extern const u8 gMonShinyPalette_Sudowoodo[];
+extern const u8 gMonIcon_Sudowoodo[];
+extern const u8 gMonFootprint_Sudowoodo[];
+extern const u8 gMonFrontPic_Politoed[];
+extern const u8 gMonPalette_Politoed[];
+extern const u8 gMonBackPic_Politoed[];
+extern const u8 gMonShinyPalette_Politoed[];
+extern const u8 gMonIcon_Politoed[];
+extern const u8 gMonFootprint_Politoed[];
+extern const u8 gMonFrontPic_Hoppip[];
+extern const u8 gMonPalette_Hoppip[];
+extern const u8 gMonBackPic_Hoppip[];
+extern const u8 gMonShinyPalette_Hoppip[];
+extern const u8 gMonIcon_Hoppip[];
+extern const u8 gMonFootprint_Hoppip[];
+extern const u8 gMonFrontPic_Skiploom[];
+extern const u8 gMonPalette_Skiploom[];
+extern const u8 gMonBackPic_Skiploom[];
+extern const u8 gMonShinyPalette_Skiploom[];
+extern const u8 gMonIcon_Skiploom[];
+extern const u8 gMonFootprint_Skiploom[];
+extern const u8 gMonFrontPic_Jumpluff[];
+extern const u8 gMonPalette_Jumpluff[];
+extern const u8 gMonBackPic_Jumpluff[];
+extern const u8 gMonShinyPalette_Jumpluff[];
+extern const u8 gMonIcon_Jumpluff[];
+extern const u8 gMonFootprint_Jumpluff[];
+extern const u8 gMonFrontPic_Aipom[];
+extern const u8 gMonPalette_Aipom[];
+extern const u8 gMonBackPic_Aipom[];
+extern const u8 gMonShinyPalette_Aipom[];
+extern const u8 gMonIcon_Aipom[];
+extern const u8 gMonFootprint_Aipom[];
+extern const u8 gMonFrontPic_Sunkern[];
+extern const u8 gMonPalette_Sunkern[];
+extern const u8 gMonBackPic_Sunkern[];
+extern const u8 gMonShinyPalette_Sunkern[];
+extern const u8 gMonIcon_Sunkern[];
+extern const u8 gMonFootprint_Sunkern[];
+extern const u8 gMonFrontPic_Sunflora[];
+extern const u8 gMonPalette_Sunflora[];
+extern const u8 gMonBackPic_Sunflora[];
+extern const u8 gMonShinyPalette_Sunflora[];
+extern const u8 gMonIcon_Sunflora[];
+extern const u8 gMonFootprint_Sunflora[];
+extern const u8 gMonFrontPic_Yanma[];
+extern const u8 gMonPalette_Yanma[];
+extern const u8 gMonBackPic_Yanma[];
+extern const u8 gMonShinyPalette_Yanma[];
+extern const u8 gMonIcon_Yanma[];
+extern const u8 gMonFootprint_Yanma[];
+extern const u8 gMonFrontPic_Wooper[];
+extern const u8 gMonPalette_Wooper[];
+extern const u8 gMonBackPic_Wooper[];
+extern const u8 gMonShinyPalette_Wooper[];
+extern const u8 gMonIcon_Wooper[];
+extern const u8 gMonFootprint_Wooper[];
+extern const u8 gMonFrontPic_Quagsire[];
+extern const u8 gMonPalette_Quagsire[];
+extern const u8 gMonBackPic_Quagsire[];
+extern const u8 gMonShinyPalette_Quagsire[];
+extern const u8 gMonIcon_Quagsire[];
+extern const u8 gMonFootprint_Quagsire[];
+extern const u8 gMonFrontPic_Espeon[];
+extern const u8 gMonPalette_Espeon[];
+extern const u8 gMonBackPic_Espeon[];
+extern const u8 gMonShinyPalette_Espeon[];
+extern const u8 gMonIcon_Espeon[];
+extern const u8 gMonFootprint_Espeon[];
+extern const u8 gMonFrontPic_Umbreon[];
+extern const u8 gMonPalette_Umbreon[];
+extern const u8 gMonBackPic_Umbreon[];
+extern const u8 gMonShinyPalette_Umbreon[];
+extern const u8 gMonIcon_Umbreon[];
+extern const u8 gMonFootprint_Umbreon[];
+extern const u8 gMonFrontPic_Murkrow[];
+extern const u8 gMonPalette_Murkrow[];
+extern const u8 gMonBackPic_Murkrow[];
+extern const u8 gMonShinyPalette_Murkrow[];
+extern const u8 gMonIcon_Murkrow[];
+extern const u8 gMonFootprint_Murkrow[];
+extern const u8 gMonFrontPic_Slowking[];
+extern const u8 gMonPalette_Slowking[];
+extern const u8 gMonBackPic_Slowking[];
+extern const u8 gMonShinyPalette_Slowking[];
+extern const u8 gMonIcon_Slowking[];
+extern const u8 gMonFootprint_Slowking[];
+extern const u8 gMonFrontPic_Misdreavus[];
+extern const u8 gMonPalette_Misdreavus[];
+extern const u8 gMonBackPic_Misdreavus[];
+extern const u8 gMonShinyPalette_Misdreavus[];
+extern const u8 gMonIcon_Misdreavus[];
+extern const u8 gMonFootprint_Misdreavus[];
+extern const u8 gMonFrontPic_UnownA[];
+extern const u8 gMonPalette_Unown[];
+extern const u8 gMonBackPic_UnownA[];
+extern const u8 gMonShinyPalette_Unown[];
+extern const u8 gMonIcon_UnownA[];
+extern const u8 gMonFootprint_Unown[];
+extern const u8 gMonFrontPic_Wobbuffet[];
+extern const u8 gMonPalette_Wobbuffet[];
+extern const u8 gMonBackPic_Wobbuffet[];
+extern const u8 gMonShinyPalette_Wobbuffet[];
+extern const u8 gMonIcon_Wobbuffet[];
+extern const u8 gMonFootprint_Wobbuffet[];
+extern const u8 gMonFrontPic_Girafarig[];
+extern const u8 gMonPalette_Girafarig[];
+extern const u8 gMonBackPic_Girafarig[];
+extern const u8 gMonShinyPalette_Girafarig[];
+extern const u8 gMonIcon_Girafarig[];
+extern const u8 gMonFootprint_Girafarig[];
+extern const u8 gMonFrontPic_Pineco[];
+extern const u8 gMonPalette_Pineco[];
+extern const u8 gMonBackPic_Pineco[];
+extern const u8 gMonShinyPalette_Pineco[];
+extern const u8 gMonIcon_Pineco[];
+extern const u8 gMonFootprint_Pineco[];
+extern const u8 gMonFrontPic_Forretress[];
+extern const u8 gMonPalette_Forretress[];
+extern const u8 gMonBackPic_Forretress[];
+extern const u8 gMonShinyPalette_Forretress[];
+extern const u8 gMonIcon_Forretress[];
+extern const u8 gMonFootprint_Forretress[];
+extern const u8 gMonFrontPic_Dunsparce[];
+extern const u8 gMonPalette_Dunsparce[];
+extern const u8 gMonBackPic_Dunsparce[];
+extern const u8 gMonShinyPalette_Dunsparce[];
+extern const u8 gMonIcon_Dunsparce[];
+extern const u8 gMonFootprint_Dunsparce[];
+extern const u8 gMonFrontPic_Gligar[];
+extern const u8 gMonPalette_Gligar[];
+extern const u8 gMonBackPic_Gligar[];
+extern const u8 gMonShinyPalette_Gligar[];
+extern const u8 gMonIcon_Gligar[];
+extern const u8 gMonFootprint_Gligar[];
+extern const u8 gMonFrontPic_Steelix[];
+extern const u8 gMonPalette_Steelix[];
+extern const u8 gMonBackPic_Steelix[];
+extern const u8 gMonShinyPalette_Steelix[];
+extern const u8 gMonIcon_Steelix[];
+extern const u8 gMonFootprint_Steelix[];
+extern const u8 gMonFrontPic_Snubbull[];
+extern const u8 gMonPalette_Snubbull[];
+extern const u8 gMonBackPic_Snubbull[];
+extern const u8 gMonShinyPalette_Snubbull[];
+extern const u8 gMonIcon_Snubbull[];
+extern const u8 gMonFootprint_Snubbull[];
+extern const u8 gMonFrontPic_Granbull[];
+extern const u8 gMonPalette_Granbull[];
+extern const u8 gMonBackPic_Granbull[];
+extern const u8 gMonShinyPalette_Granbull[];
+extern const u8 gMonIcon_Granbull[];
+extern const u8 gMonFootprint_Granbull[];
+extern const u8 gMonFrontPic_Qwilfish[];
+extern const u8 gMonPalette_Qwilfish[];
+extern const u8 gMonBackPic_Qwilfish[];
+extern const u8 gMonShinyPalette_Qwilfish[];
+extern const u8 gMonIcon_Qwilfish[];
+extern const u8 gMonFootprint_Qwilfish[];
+extern const u8 gMonFrontPic_Scizor[];
+extern const u8 gMonPalette_Scizor[];
+extern const u8 gMonBackPic_Scizor[];
+extern const u8 gMonShinyPalette_Scizor[];
+extern const u8 gMonIcon_Scizor[];
+extern const u8 gMonFootprint_Scizor[];
+extern const u8 gMonFrontPic_Shuckle[];
+extern const u8 gMonPalette_Shuckle[];
+extern const u8 gMonBackPic_Shuckle[];
+extern const u8 gMonShinyPalette_Shuckle[];
+extern const u8 gMonIcon_Shuckle[];
+extern const u8 gMonFootprint_Shuckle[];
+extern const u8 gMonFrontPic_Heracross[];
+extern const u8 gMonPalette_Heracross[];
+extern const u8 gMonBackPic_Heracross[];
+extern const u8 gMonShinyPalette_Heracross[];
+extern const u8 gMonIcon_Heracross[];
+extern const u8 gMonFootprint_Heracross[];
+extern const u8 gMonFrontPic_Sneasel[];
+extern const u8 gMonPalette_Sneasel[];
+extern const u8 gMonBackPic_Sneasel[];
+extern const u8 gMonShinyPalette_Sneasel[];
+extern const u8 gMonIcon_Sneasel[];
+extern const u8 gMonFootprint_Sneasel[];
+extern const u8 gMonFrontPic_Teddiursa[];
+extern const u8 gMonPalette_Teddiursa[];
+extern const u8 gMonBackPic_Teddiursa[];
+extern const u8 gMonShinyPalette_Teddiursa[];
+extern const u8 gMonIcon_Teddiursa[];
+extern const u8 gMonFootprint_Teddiursa[];
+extern const u8 gMonFrontPic_Ursaring[];
+extern const u8 gMonPalette_Ursaring[];
+extern const u8 gMonBackPic_Ursaring[];
+extern const u8 gMonShinyPalette_Ursaring[];
+extern const u8 gMonIcon_Ursaring[];
+extern const u8 gMonFootprint_Ursaring[];
+extern const u8 gMonFrontPic_Slugma[];
+extern const u8 gMonPalette_Slugma[];
+extern const u8 gMonBackPic_Slugma[];
+extern const u8 gMonShinyPalette_Slugma[];
+extern const u8 gMonIcon_Slugma[];
+extern const u8 gMonFootprint_Slugma[];
+extern const u8 gMonFrontPic_Magcargo[];
+extern const u8 gMonPalette_Magcargo[];
+extern const u8 gMonBackPic_Magcargo[];
+extern const u8 gMonShinyPalette_Magcargo[];
+extern const u8 gMonIcon_Magcargo[];
+extern const u8 gMonFootprint_Magcargo[];
+extern const u8 gMonFrontPic_Swinub[];
+extern const u8 gMonPalette_Swinub[];
+extern const u8 gMonBackPic_Swinub[];
+extern const u8 gMonShinyPalette_Swinub[];
+extern const u8 gMonIcon_Swinub[];
+extern const u8 gMonFootprint_Swinub[];
+extern const u8 gMonFrontPic_Piloswine[];
+extern const u8 gMonPalette_Piloswine[];
+extern const u8 gMonBackPic_Piloswine[];
+extern const u8 gMonShinyPalette_Piloswine[];
+extern const u8 gMonIcon_Piloswine[];
+extern const u8 gMonFootprint_Piloswine[];
+extern const u8 gMonFrontPic_Corsola[];
+extern const u8 gMonPalette_Corsola[];
+extern const u8 gMonBackPic_Corsola[];
+extern const u8 gMonShinyPalette_Corsola[];
+extern const u8 gMonIcon_Corsola[];
+extern const u8 gMonFootprint_Corsola[];
+extern const u8 gMonFrontPic_Remoraid[];
+extern const u8 gMonPalette_Remoraid[];
+extern const u8 gMonBackPic_Remoraid[];
+extern const u8 gMonShinyPalette_Remoraid[];
+extern const u8 gMonIcon_Remoraid[];
+extern const u8 gMonFootprint_Remoraid[];
+extern const u8 gMonFrontPic_Octillery[];
+extern const u8 gMonPalette_Octillery[];
+extern const u8 gMonBackPic_Octillery[];
+extern const u8 gMonShinyPalette_Octillery[];
+extern const u8 gMonIcon_Octillery[];
+extern const u8 gMonFootprint_Octillery[];
+extern const u8 gMonFrontPic_Delibird[];
+extern const u8 gMonPalette_Delibird[];
+extern const u8 gMonBackPic_Delibird[];
+extern const u8 gMonShinyPalette_Delibird[];
+extern const u8 gMonIcon_Delibird[];
+extern const u8 gMonFootprint_Delibird[];
+extern const u8 gMonFrontPic_Mantine[];
+extern const u8 gMonPalette_Mantine[];
+extern const u8 gMonBackPic_Mantine[];
+extern const u8 gMonShinyPalette_Mantine[];
+extern const u8 gMonIcon_Mantine[];
+extern const u8 gMonFootprint_Mantine[];
+extern const u8 gMonFrontPic_Skarmory[];
+extern const u8 gMonPalette_Skarmory[];
+extern const u8 gMonBackPic_Skarmory[];
+extern const u8 gMonShinyPalette_Skarmory[];
+extern const u8 gMonIcon_Skarmory[];
+extern const u8 gMonFootprint_Skarmory[];
+extern const u8 gMonFrontPic_Houndour[];
+extern const u8 gMonPalette_Houndour[];
+extern const u8 gMonBackPic_Houndour[];
+extern const u8 gMonShinyPalette_Houndour[];
+extern const u8 gMonIcon_Houndour[];
+extern const u8 gMonFootprint_Houndour[];
+extern const u8 gMonFrontPic_Houndoom[];
+extern const u8 gMonPalette_Houndoom[];
+extern const u8 gMonBackPic_Houndoom[];
+extern const u8 gMonShinyPalette_Houndoom[];
+extern const u8 gMonIcon_Houndoom[];
+extern const u8 gMonFootprint_Houndoom[];
+extern const u8 gMonFrontPic_Kingdra[];
+extern const u8 gMonPalette_Kingdra[];
+extern const u8 gMonBackPic_Kingdra[];
+extern const u8 gMonShinyPalette_Kingdra[];
+extern const u8 gMonIcon_Kingdra[];
+extern const u8 gMonFootprint_Kingdra[];
+extern const u8 gMonFrontPic_Phanpy[];
+extern const u8 gMonPalette_Phanpy[];
+extern const u8 gMonBackPic_Phanpy[];
+extern const u8 gMonShinyPalette_Phanpy[];
+extern const u8 gMonIcon_Phanpy[];
+extern const u8 gMonFootprint_Phanpy[];
+extern const u8 gMonFrontPic_Donphan[];
+extern const u8 gMonPalette_Donphan[];
+extern const u8 gMonBackPic_Donphan[];
+extern const u8 gMonShinyPalette_Donphan[];
+extern const u8 gMonIcon_Donphan[];
+extern const u8 gMonFootprint_Donphan[];
+extern const u8 gMonFrontPic_Porygon2[];
+extern const u8 gMonPalette_Porygon2[];
+extern const u8 gMonBackPic_Porygon2[];
+extern const u8 gMonShinyPalette_Porygon2[];
+extern const u8 gMonIcon_Porygon2[];
+extern const u8 gMonFootprint_Porygon2[];
+extern const u8 gMonFrontPic_Stantler[];
+extern const u8 gMonPalette_Stantler[];
+extern const u8 gMonBackPic_Stantler[];
+extern const u8 gMonShinyPalette_Stantler[];
+extern const u8 gMonIcon_Stantler[];
+extern const u8 gMonFootprint_Stantler[];
+extern const u8 gMonFrontPic_Smeargle[];
+extern const u8 gMonPalette_Smeargle[];
+extern const u8 gMonBackPic_Smeargle[];
+extern const u8 gMonShinyPalette_Smeargle[];
+extern const u8 gMonIcon_Smeargle[];
+extern const u8 gMonFootprint_Smeargle[];
+extern const u8 gMonFrontPic_Tyrogue[];
+extern const u8 gMonPalette_Tyrogue[];
+extern const u8 gMonBackPic_Tyrogue[];
+extern const u8 gMonShinyPalette_Tyrogue[];
+extern const u8 gMonIcon_Tyrogue[];
+extern const u8 gMonFootprint_Tyrogue[];
+extern const u8 gMonFrontPic_Hitmontop[];
+extern const u8 gMonPalette_Hitmontop[];
+extern const u8 gMonBackPic_Hitmontop[];
+extern const u8 gMonShinyPalette_Hitmontop[];
+extern const u8 gMonIcon_Hitmontop[];
+extern const u8 gMonFootprint_Hitmontop[];
+extern const u8 gMonFrontPic_Smoochum[];
+extern const u8 gMonPalette_Smoochum[];
+extern const u8 gMonBackPic_Smoochum[];
+extern const u8 gMonShinyPalette_Smoochum[];
+extern const u8 gMonIcon_Smoochum[];
+extern const u8 gMonFootprint_Smoochum[];
+extern const u8 gMonFrontPic_Elekid[];
+extern const u8 gMonPalette_Elekid[];
+extern const u8 gMonBackPic_Elekid[];
+extern const u8 gMonShinyPalette_Elekid[];
+extern const u8 gMonIcon_Elekid[];
+extern const u8 gMonFootprint_Elekid[];
+extern const u8 gMonFrontPic_Magby[];
+extern const u8 gMonPalette_Magby[];
+extern const u8 gMonBackPic_Magby[];
+extern const u8 gMonShinyPalette_Magby[];
+extern const u8 gMonIcon_Magby[];
+extern const u8 gMonFootprint_Magby[];
+extern const u8 gMonFrontPic_Miltank[];
+extern const u8 gMonPalette_Miltank[];
+extern const u8 gMonBackPic_Miltank[];
+extern const u8 gMonShinyPalette_Miltank[];
+extern const u8 gMonIcon_Miltank[];
+extern const u8 gMonFootprint_Miltank[];
+extern const u8 gMonFrontPic_Blissey[];
+extern const u8 gMonPalette_Blissey[];
+extern const u8 gMonBackPic_Blissey[];
+extern const u8 gMonShinyPalette_Blissey[];
+extern const u8 gMonIcon_Blissey[];
+extern const u8 gMonFootprint_Blissey[];
+extern const u8 gMonFrontPic_Raikou[];
+extern const u8 gMonPalette_Raikou[];
+extern const u8 gMonBackPic_Raikou[];
+extern const u8 gMonShinyPalette_Raikou[];
+extern const u8 gMonIcon_Raikou[];
+extern const u8 gMonFootprint_Raikou[];
+extern const u8 gMonFrontPic_Entei[];
+extern const u8 gMonPalette_Entei[];
+extern const u8 gMonBackPic_Entei[];
+extern const u8 gMonShinyPalette_Entei[];
+extern const u8 gMonIcon_Entei[];
+extern const u8 gMonFootprint_Entei[];
+extern const u8 gMonFrontPic_Suicune[];
+extern const u8 gMonPalette_Suicune[];
+extern const u8 gMonBackPic_Suicune[];
+extern const u8 gMonShinyPalette_Suicune[];
+extern const u8 gMonIcon_Suicune[];
+extern const u8 gMonFootprint_Suicune[];
+extern const u8 gMonFrontPic_Larvitar[];
+extern const u8 gMonPalette_Larvitar[];
+extern const u8 gMonBackPic_Larvitar[];
+extern const u8 gMonShinyPalette_Larvitar[];
+extern const u8 gMonIcon_Larvitar[];
+extern const u8 gMonFootprint_Larvitar[];
+extern const u8 gMonFrontPic_Pupitar[];
+extern const u8 gMonPalette_Pupitar[];
+extern const u8 gMonBackPic_Pupitar[];
+extern const u8 gMonShinyPalette_Pupitar[];
+extern const u8 gMonIcon_Pupitar[];
+extern const u8 gMonFootprint_Pupitar[];
+extern const u8 gMonFrontPic_Tyranitar[];
+extern const u8 gMonPalette_Tyranitar[];
+extern const u8 gMonBackPic_Tyranitar[];
+extern const u8 gMonShinyPalette_Tyranitar[];
+extern const u8 gMonIcon_Tyranitar[];
+extern const u8 gMonFootprint_Tyranitar[];
+extern const u8 gMonFrontPic_Lugia[];
+extern const u8 gMonPalette_Lugia[];
+extern const u8 gMonBackPic_Lugia[];
+extern const u8 gMonShinyPalette_Lugia[];
+extern const u8 gMonIcon_Lugia[];
+extern const u8 gMonFootprint_Lugia[];
+extern const u8 gMonFrontPic_HoOh[];
+extern const u8 gMonPalette_HoOh[];
+extern const u8 gMonBackPic_HoOh[];
+extern const u8 gMonShinyPalette_HoOh[];
+extern const u8 gMonIcon_HoOh[];
+extern const u8 gMonFootprint_HoOh[];
+extern const u8 gMonFrontPic_Celebi[];
+extern const u8 gMonPalette_Celebi[];
+extern const u8 gMonBackPic_Celebi[];
+extern const u8 gMonShinyPalette_Celebi[];
+extern const u8 gMonIcon_Celebi[];
+extern const u8 gMonFootprint_Celebi[];
+extern const u8 gMonFrontPic_QuestionMark[];
+extern const u8 gMonPalette_QuestionMark[];
+extern const u8 gMonBackPic_QuestionMark[];
+extern const u8 gMonShinyPalette_QuestionMark[];
+extern const u8 gMonFrontPic_Treecko[];
+extern const u8 gMonPalette_Treecko[];
+extern const u8 gMonBackPic_Treecko[];
+extern const u8 gMonShinyPalette_Treecko[];
+extern const u8 gMonIcon_Treecko[];
+extern const u8 gMonFootprint_Treecko[];
+extern const u8 gMonFrontPic_Grovyle[];
+extern const u8 gMonPalette_Grovyle[];
+extern const u8 gMonBackPic_Grovyle[];
+extern const u8 gMonShinyPalette_Grovyle[];
+extern const u8 gMonIcon_Grovyle[];
+extern const u8 gMonFootprint_Grovyle[];
+extern const u8 gMonFrontPic_Sceptile[];
+extern const u8 gMonPalette_Sceptile[];
+extern const u8 gMonBackPic_Sceptile[];
+extern const u8 gMonShinyPalette_Sceptile[];
+extern const u8 gMonIcon_Sceptile[];
+extern const u8 gMonFootprint_Sceptile[];
+extern const u8 gMonFrontPic_Torchic[];
+extern const u8 gMonPalette_Torchic[];
+extern const u8 gMonBackPic_Torchic[];
+extern const u8 gMonShinyPalette_Torchic[];
+extern const u8 gMonIcon_Torchic[];
+extern const u8 gMonFootprint_Torchic[];
+extern const u8 gMonFrontPic_Combusken[];
+extern const u8 gMonPalette_Combusken[];
+extern const u8 gMonBackPic_Combusken[];
+extern const u8 gMonShinyPalette_Combusken[];
+extern const u8 gMonIcon_Combusken[];
+extern const u8 gMonFootprint_Combusken[];
+extern const u8 gMonFrontPic_Blaziken[];
+extern const u8 gMonPalette_Blaziken[];
+extern const u8 gMonBackPic_Blaziken[];
+extern const u8 gMonShinyPalette_Blaziken[];
+extern const u8 gMonIcon_Blaziken[];
+extern const u8 gMonFootprint_Blaziken[];
+extern const u8 gMonFrontPic_Mudkip[];
+extern const u8 gMonPalette_Mudkip[];
+extern const u8 gMonBackPic_Mudkip[];
+extern const u8 gMonShinyPalette_Mudkip[];
+extern const u8 gMonIcon_Mudkip[];
+extern const u8 gMonFootprint_Mudkip[];
+extern const u8 gMonFrontPic_Marshtomp[];
+extern const u8 gMonPalette_Marshtomp[];
+extern const u8 gMonBackPic_Marshtomp[];
+extern const u8 gMonShinyPalette_Marshtomp[];
+extern const u8 gMonIcon_Marshtomp[];
+extern const u8 gMonFootprint_Marshtomp[];
+extern const u8 gMonFrontPic_Swampert[];
+extern const u8 gMonPalette_Swampert[];
+extern const u8 gMonBackPic_Swampert[];
+extern const u8 gMonShinyPalette_Swampert[];
+extern const u8 gMonIcon_Swampert[];
+extern const u8 gMonFootprint_Swampert[];
+extern const u8 gMonFrontPic_Poochyena[];
+extern const u8 gMonPalette_Poochyena[];
+extern const u8 gMonBackPic_Poochyena[];
+extern const u8 gMonShinyPalette_Poochyena[];
+extern const u8 gMonIcon_Poochyena[];
+extern const u8 gMonFootprint_Poochyena[];
+extern const u8 gMonFrontPic_Mightyena[];
+extern const u8 gMonPalette_Mightyena[];
+extern const u8 gMonBackPic_Mightyena[];
+extern const u8 gMonShinyPalette_Mightyena[];
+extern const u8 gMonIcon_Mightyena[];
+extern const u8 gMonFootprint_Mightyena[];
+extern const u8 gMonFrontPic_Zigzagoon[];
+extern const u8 gMonPalette_Zigzagoon[];
+extern const u8 gMonBackPic_Zigzagoon[];
+extern const u8 gMonShinyPalette_Zigzagoon[];
+extern const u8 gMonIcon_Zigzagoon[];
+extern const u8 gMonFootprint_Zigzagoon[];
+extern const u8 gMonFrontPic_Linoone[];
+extern const u8 gMonPalette_Linoone[];
+extern const u8 gMonBackPic_Linoone[];
+extern const u8 gMonShinyPalette_Linoone[];
+extern const u8 gMonIcon_Linoone[];
+extern const u8 gMonFootprint_Linoone[];
+extern const u8 gMonFrontPic_Wurmple[];
+extern const u8 gMonPalette_Wurmple[];
+extern const u8 gMonBackPic_Wurmple[];
+extern const u8 gMonShinyPalette_Wurmple[];
+extern const u8 gMonIcon_Wurmple[];
+extern const u8 gMonFootprint_Wurmple[];
+extern const u8 gMonFrontPic_Silcoon[];
+extern const u8 gMonPalette_Silcoon[];
+extern const u8 gMonBackPic_Silcoon[];
+extern const u8 gMonShinyPalette_Silcoon[];
+extern const u8 gMonIcon_Silcoon[];
+extern const u8 gMonFootprint_Silcoon[];
+extern const u8 gMonFrontPic_Beautifly[];
+extern const u8 gMonPalette_Beautifly[];
+extern const u8 gMonBackPic_Beautifly[];
+extern const u8 gMonShinyPalette_Beautifly[];
+extern const u8 gMonIcon_Beautifly[];
+extern const u8 gMonFootprint_Beautifly[];
+extern const u8 gMonFrontPic_Cascoon[];
+extern const u8 gMonPalette_Cascoon[];
+extern const u8 gMonBackPic_Cascoon[];
+extern const u8 gMonShinyPalette_Cascoon[];
+extern const u8 gMonIcon_Cascoon[];
+extern const u8 gMonFootprint_Cascoon[];
+extern const u8 gMonFrontPic_Dustox[];
+extern const u8 gMonPalette_Dustox[];
+extern const u8 gMonBackPic_Dustox[];
+extern const u8 gMonShinyPalette_Dustox[];
+extern const u8 gMonIcon_Dustox[];
+extern const u8 gMonFootprint_Dustox[];
+extern const u8 gMonFrontPic_Lotad[];
+extern const u8 gMonPalette_Lotad[];
+extern const u8 gMonBackPic_Lotad[];
+extern const u8 gMonShinyPalette_Lotad[];
+extern const u8 gMonIcon_Lotad[];
+extern const u8 gMonFootprint_Lotad[];
+extern const u8 gMonFrontPic_Lombre[];
+extern const u8 gMonPalette_Lombre[];
+extern const u8 gMonBackPic_Lombre[];
+extern const u8 gMonShinyPalette_Lombre[];
+extern const u8 gMonIcon_Lombre[];
+extern const u8 gMonFootprint_Lombre[];
+extern const u8 gMonFrontPic_Ludicolo[];
+extern const u8 gMonPalette_Ludicolo[];
+extern const u8 gMonBackPic_Ludicolo[];
+extern const u8 gMonShinyPalette_Ludicolo[];
+extern const u8 gMonIcon_Ludicolo[];
+extern const u8 gMonFootprint_Ludicolo[];
+extern const u8 gMonFrontPic_Seedot[];
+extern const u8 gMonPalette_Seedot[];
+extern const u8 gMonBackPic_Seedot[];
+extern const u8 gMonShinyPalette_Seedot[];
+extern const u8 gMonIcon_Seedot[];
+extern const u8 gMonFootprint_Seedot[];
+extern const u8 gMonFrontPic_Nuzleaf[];
+extern const u8 gMonPalette_Nuzleaf[];
+extern const u8 gMonBackPic_Nuzleaf[];
+extern const u8 gMonShinyPalette_Nuzleaf[];
+extern const u8 gMonIcon_Nuzleaf[];
+extern const u8 gMonFootprint_Nuzleaf[];
+extern const u8 gMonFrontPic_Shiftry[];
+extern const u8 gMonPalette_Shiftry[];
+extern const u8 gMonBackPic_Shiftry[];
+extern const u8 gMonShinyPalette_Shiftry[];
+extern const u8 gMonIcon_Shiftry[];
+extern const u8 gMonFootprint_Shiftry[];
+extern const u8 gMonFrontPic_Nincada[];
+extern const u8 gMonPalette_Nincada[];
+extern const u8 gMonBackPic_Nincada[];
+extern const u8 gMonShinyPalette_Nincada[];
+extern const u8 gMonIcon_Nincada[];
+extern const u8 gMonFootprint_Nincada[];
+extern const u8 gMonFrontPic_Ninjask[];
+extern const u8 gMonPalette_Ninjask[];
+extern const u8 gMonBackPic_Ninjask[];
+extern const u8 gMonShinyPalette_Ninjask[];
+extern const u8 gMonIcon_Ninjask[];
+extern const u8 gMonFootprint_Ninjask[];
+extern const u8 gMonFrontPic_Shedinja[];
+extern const u8 gMonPalette_Shedinja[];
+extern const u8 gMonBackPic_Shedinja[];
+extern const u8 gMonShinyPalette_Shedinja[];
+extern const u8 gMonIcon_Shedinja[];
+extern const u8 gMonFootprint_Shedinja[];
+extern const u8 gMonFrontPic_Taillow[];
+extern const u8 gMonPalette_Taillow[];
+extern const u8 gMonBackPic_Taillow[];
+extern const u8 gMonShinyPalette_Taillow[];
+extern const u8 gMonIcon_Taillow[];
+extern const u8 gMonFootprint_Taillow[];
+extern const u8 gMonFrontPic_Swellow[];
+extern const u8 gMonPalette_Swellow[];
+extern const u8 gMonBackPic_Swellow[];
+extern const u8 gMonShinyPalette_Swellow[];
+extern const u8 gMonIcon_Swellow[];
+extern const u8 gMonFootprint_Swellow[];
+extern const u8 gMonFrontPic_Shroomish[];
+extern const u8 gMonPalette_Shroomish[];
+extern const u8 gMonBackPic_Shroomish[];
+extern const u8 gMonShinyPalette_Shroomish[];
+extern const u8 gMonIcon_Shroomish[];
+extern const u8 gMonFootprint_Shroomish[];
+extern const u8 gMonFrontPic_Breloom[];
+extern const u8 gMonPalette_Breloom[];
+extern const u8 gMonBackPic_Breloom[];
+extern const u8 gMonShinyPalette_Breloom[];
+extern const u8 gMonIcon_Breloom[];
+extern const u8 gMonFootprint_Breloom[];
+extern const u8 gMonFrontPic_Spinda[];
+extern const u8 gMonPalette_Spinda[];
+extern const u8 gMonBackPic_Spinda[];
+extern const u8 gMonShinyPalette_Spinda[];
+extern const u8 gMonIcon_Spinda[];
+extern const u8 gMonFootprint_Spinda[];
+extern const u8 gMonFrontPic_Wingull[];
+extern const u8 gMonPalette_Wingull[];
+extern const u8 gMonBackPic_Wingull[];
+extern const u8 gMonShinyPalette_Wingull[];
+extern const u8 gMonIcon_Wingull[];
+extern const u8 gMonFootprint_Wingull[];
+extern const u8 gMonFrontPic_Pelipper[];
+extern const u8 gMonPalette_Pelipper[];
+extern const u8 gMonBackPic_Pelipper[];
+extern const u8 gMonShinyPalette_Pelipper[];
+extern const u8 gMonIcon_Pelipper[];
+extern const u8 gMonFootprint_Pelipper[];
+extern const u8 gMonFrontPic_Surskit[];
+extern const u8 gMonPalette_Surskit[];
+extern const u8 gMonBackPic_Surskit[];
+extern const u8 gMonShinyPalette_Surskit[];
+extern const u8 gMonIcon_Surskit[];
+extern const u8 gMonFootprint_Surskit[];
+extern const u8 gMonFrontPic_Masquerain[];
+extern const u8 gMonPalette_Masquerain[];
+extern const u8 gMonBackPic_Masquerain[];
+extern const u8 gMonShinyPalette_Masquerain[];
+extern const u8 gMonIcon_Masquerain[];
+extern const u8 gMonFootprint_Masquerain[];
+extern const u8 gMonFrontPic_Wailmer[];
+extern const u8 gMonPalette_Wailmer[];
+extern const u8 gMonBackPic_Wailmer[];
+extern const u8 gMonShinyPalette_Wailmer[];
+extern const u8 gMonIcon_Wailmer[];
+extern const u8 gMonFootprint_Wailmer[];
+extern const u8 gMonFrontPic_Wailord[];
+extern const u8 gMonPalette_Wailord[];
+extern const u8 gMonBackPic_Wailord[];
+extern const u8 gMonShinyPalette_Wailord[];
+extern const u8 gMonIcon_Wailord[];
+extern const u8 gMonFootprint_Wailord[];
+extern const u8 gMonFrontPic_Skitty[];
+extern const u8 gMonPalette_Skitty[];
+extern const u8 gMonBackPic_Skitty[];
+extern const u8 gMonShinyPalette_Skitty[];
+extern const u8 gMonIcon_Skitty[];
+extern const u8 gMonFootprint_Skitty[];
+extern const u8 gMonFrontPic_Delcatty[];
+extern const u8 gMonPalette_Delcatty[];
+extern const u8 gMonBackPic_Delcatty[];
+extern const u8 gMonShinyPalette_Delcatty[];
+extern const u8 gMonIcon_Delcatty[];
+extern const u8 gMonFootprint_Delcatty[];
+extern const u8 gMonFrontPic_Kecleon[];
+extern const u8 gMonPalette_Kecleon[];
+extern const u8 gMonBackPic_Kecleon[];
+extern const u8 gMonShinyPalette_Kecleon[];
+extern const u8 gMonIcon_Kecleon[];
+extern const u8 gMonFootprint_Kecleon[];
+extern const u8 gMonFrontPic_Baltoy[];
+extern const u8 gMonPalette_Baltoy[];
+extern const u8 gMonBackPic_Baltoy[];
+extern const u8 gMonShinyPalette_Baltoy[];
+extern const u8 gMonIcon_Baltoy[];
+extern const u8 gMonFootprint_Baltoy[];
+extern const u8 gMonFrontPic_Claydol[];
+extern const u8 gMonPalette_Claydol[];
+extern const u8 gMonBackPic_Claydol[];
+extern const u8 gMonShinyPalette_Claydol[];
+extern const u8 gMonIcon_Claydol[];
+extern const u8 gMonFootprint_Claydol[];
+extern const u8 gMonFrontPic_Nosepass[];
+extern const u8 gMonPalette_Nosepass[];
+extern const u8 gMonBackPic_Nosepass[];
+extern const u8 gMonShinyPalette_Nosepass[];
+extern const u8 gMonIcon_Nosepass[];
+extern const u8 gMonFootprint_Nosepass[];
+extern const u8 gMonFrontPic_Torkoal[];
+extern const u8 gMonPalette_Torkoal[];
+extern const u8 gMonBackPic_Torkoal[];
+extern const u8 gMonShinyPalette_Torkoal[];
+extern const u8 gMonIcon_Torkoal[];
+extern const u8 gMonFootprint_Torkoal[];
+extern const u8 gMonFrontPic_Sableye[];
+extern const u8 gMonPalette_Sableye[];
+extern const u8 gMonBackPic_Sableye[];
+extern const u8 gMonShinyPalette_Sableye[];
+extern const u8 gMonIcon_Sableye[];
+extern const u8 gMonFootprint_Sableye[];
+extern const u8 gMonFrontPic_Barboach[];
+extern const u8 gMonPalette_Barboach[];
+extern const u8 gMonBackPic_Barboach[];
+extern const u8 gMonShinyPalette_Barboach[];
+extern const u8 gMonIcon_Barboach[];
+extern const u8 gMonFootprint_Barboach[];
+extern const u8 gMonFrontPic_Whiscash[];
+extern const u8 gMonPalette_Whiscash[];
+extern const u8 gMonBackPic_Whiscash[];
+extern const u8 gMonShinyPalette_Whiscash[];
+extern const u8 gMonIcon_Whiscash[];
+extern const u8 gMonFootprint_Whiscash[];
+extern const u8 gMonFrontPic_Luvdisc[];
+extern const u8 gMonPalette_Luvdisc[];
+extern const u8 gMonBackPic_Luvdisc[];
+extern const u8 gMonShinyPalette_Luvdisc[];
+extern const u8 gMonIcon_Luvdisc[];
+extern const u8 gMonFootprint_Luvdisc[];
+extern const u8 gMonFrontPic_Corphish[];
+extern const u8 gMonPalette_Corphish[];
+extern const u8 gMonBackPic_Corphish[];
+extern const u8 gMonShinyPalette_Corphish[];
+extern const u8 gMonIcon_Corphish[];
+extern const u8 gMonFootprint_Corphish[];
+extern const u8 gMonFrontPic_Crawdaunt[];
+extern const u8 gMonPalette_Crawdaunt[];
+extern const u8 gMonBackPic_Crawdaunt[];
+extern const u8 gMonShinyPalette_Crawdaunt[];
+extern const u8 gMonIcon_Crawdaunt[];
+extern const u8 gMonFootprint_Crawdaunt[];
+extern const u8 gMonFrontPic_Feebas[];
+extern const u8 gMonPalette_Feebas[];
+extern const u8 gMonBackPic_Feebas[];
+extern const u8 gMonShinyPalette_Feebas[];
+extern const u8 gMonIcon_Feebas[];
+extern const u8 gMonFootprint_Feebas[];
+extern const u8 gMonFrontPic_Milotic[];
+extern const u8 gMonPalette_Milotic[];
+extern const u8 gMonBackPic_Milotic[];
+extern const u8 gMonShinyPalette_Milotic[];
+extern const u8 gMonIcon_Milotic[];
+extern const u8 gMonFootprint_Milotic[];
+extern const u8 gMonFrontPic_Carvanha[];
+extern const u8 gMonPalette_Carvanha[];
+extern const u8 gMonBackPic_Carvanha[];
+extern const u8 gMonShinyPalette_Carvanha[];
+extern const u8 gMonIcon_Carvanha[];
+extern const u8 gMonFootprint_Carvanha[];
+extern const u8 gMonFrontPic_Sharpedo[];
+extern const u8 gMonPalette_Sharpedo[];
+extern const u8 gMonBackPic_Sharpedo[];
+extern const u8 gMonShinyPalette_Sharpedo[];
+extern const u8 gMonIcon_Sharpedo[];
+extern const u8 gMonFootprint_Sharpedo[];
+extern const u8 gMonFrontPic_Trapinch[];
+extern const u8 gMonPalette_Trapinch[];
+extern const u8 gMonBackPic_Trapinch[];
+extern const u8 gMonShinyPalette_Trapinch[];
+extern const u8 gMonIcon_Trapinch[];
+extern const u8 gMonFootprint_Trapinch[];
+extern const u8 gMonFrontPic_Vibrava[];
+extern const u8 gMonPalette_Vibrava[];
+extern const u8 gMonBackPic_Vibrava[];
+extern const u8 gMonShinyPalette_Vibrava[];
+extern const u8 gMonIcon_Vibrava[];
+extern const u8 gMonFootprint_Vibrava[];
+extern const u8 gMonFrontPic_Flygon[];
+extern const u8 gMonPalette_Flygon[];
+extern const u8 gMonBackPic_Flygon[];
+extern const u8 gMonShinyPalette_Flygon[];
+extern const u8 gMonIcon_Flygon[];
+extern const u8 gMonFootprint_Flygon[];
+extern const u8 gMonFrontPic_Makuhita[];
+extern const u8 gMonPalette_Makuhita[];
+extern const u8 gMonBackPic_Makuhita[];
+extern const u8 gMonShinyPalette_Makuhita[];
+extern const u8 gMonIcon_Makuhita[];
+extern const u8 gMonFootprint_Makuhita[];
+extern const u8 gMonFrontPic_Hariyama[];
+extern const u8 gMonPalette_Hariyama[];
+extern const u8 gMonBackPic_Hariyama[];
+extern const u8 gMonShinyPalette_Hariyama[];
+extern const u8 gMonIcon_Hariyama[];
+extern const u8 gMonFootprint_Hariyama[];
+extern const u8 gMonFrontPic_Electrike[];
+extern const u8 gMonPalette_Electrike[];
+extern const u8 gMonBackPic_Electrike[];
+extern const u8 gMonShinyPalette_Electrike[];
+extern const u8 gMonIcon_Electrike[];
+extern const u8 gMonFootprint_Electrike[];
+extern const u8 gMonFrontPic_Manectric[];
+extern const u8 gMonPalette_Manectric[];
+extern const u8 gMonBackPic_Manectric[];
+extern const u8 gMonShinyPalette_Manectric[];
+extern const u8 gMonIcon_Manectric[];
+extern const u8 gMonFootprint_Manectric[];
+extern const u8 gMonFrontPic_Numel[];
+extern const u8 gMonPalette_Numel[];
+extern const u8 gMonBackPic_Numel[];
+extern const u8 gMonShinyPalette_Numel[];
+extern const u8 gMonIcon_Numel[];
+extern const u8 gMonFootprint_Numel[];
+extern const u8 gMonFrontPic_Camerupt[];
+extern const u8 gMonPalette_Camerupt[];
+extern const u8 gMonBackPic_Camerupt[];
+extern const u8 gMonShinyPalette_Camerupt[];
+extern const u8 gMonIcon_Camerupt[];
+extern const u8 gMonFootprint_Camerupt[];
+extern const u8 gMonFrontPic_Spheal[];
+extern const u8 gMonPalette_Spheal[];
+extern const u8 gMonBackPic_Spheal[];
+extern const u8 gMonShinyPalette_Spheal[];
+extern const u8 gMonIcon_Spheal[];
+extern const u8 gMonFootprint_Spheal[];
+extern const u8 gMonFrontPic_Sealeo[];
+extern const u8 gMonPalette_Sealeo[];
+extern const u8 gMonBackPic_Sealeo[];
+extern const u8 gMonShinyPalette_Sealeo[];
+extern const u8 gMonIcon_Sealeo[];
+extern const u8 gMonFootprint_Sealeo[];
+extern const u8 gMonFrontPic_Walrein[];
+extern const u8 gMonPalette_Walrein[];
+extern const u8 gMonBackPic_Walrein[];
+extern const u8 gMonShinyPalette_Walrein[];
+extern const u8 gMonIcon_Walrein[];
+extern const u8 gMonFootprint_Walrein[];
+extern const u8 gMonFrontPic_Cacnea[];
+extern const u8 gMonPalette_Cacnea[];
+extern const u8 gMonBackPic_Cacnea[];
+extern const u8 gMonShinyPalette_Cacnea[];
+extern const u8 gMonIcon_Cacnea[];
+extern const u8 gMonFootprint_Cacnea[];
+extern const u8 gMonFrontPic_Cacturne[];
+extern const u8 gMonPalette_Cacturne[];
+extern const u8 gMonBackPic_Cacturne[];
+extern const u8 gMonShinyPalette_Cacturne[];
+extern const u8 gMonIcon_Cacturne[];
+extern const u8 gMonFootprint_Cacturne[];
+extern const u8 gMonFrontPic_Snorunt[];
+extern const u8 gMonPalette_Snorunt[];
+extern const u8 gMonBackPic_Snorunt[];
+extern const u8 gMonShinyPalette_Snorunt[];
+extern const u8 gMonIcon_Snorunt[];
+extern const u8 gMonFootprint_Snorunt[];
+extern const u8 gMonFrontPic_Glalie[];
+extern const u8 gMonPalette_Glalie[];
+extern const u8 gMonBackPic_Glalie[];
+extern const u8 gMonShinyPalette_Glalie[];
+extern const u8 gMonIcon_Glalie[];
+extern const u8 gMonFootprint_Glalie[];
+extern const u8 gMonFrontPic_Lunatone[];
+extern const u8 gMonPalette_Lunatone[];
+extern const u8 gMonBackPic_Lunatone[];
+extern const u8 gMonShinyPalette_Lunatone[];
+extern const u8 gMonIcon_Lunatone[];
+extern const u8 gMonFootprint_Lunatone[];
+extern const u8 gMonFrontPic_Solrock[];
+extern const u8 gMonPalette_Solrock[];
+extern const u8 gMonBackPic_Solrock[];
+extern const u8 gMonShinyPalette_Solrock[];
+extern const u8 gMonIcon_Solrock[];
+extern const u8 gMonFootprint_Solrock[];
+extern const u8 gMonFrontPic_Azurill[];
+extern const u8 gMonPalette_Azurill[];
+extern const u8 gMonBackPic_Azurill[];
+extern const u8 gMonShinyPalette_Azurill[];
+extern const u8 gMonIcon_Azurill[];
+extern const u8 gMonFootprint_Azurill[];
+extern const u8 gMonFrontPic_Spoink[];
+extern const u8 gMonPalette_Spoink[];
+extern const u8 gMonBackPic_Spoink[];
+extern const u8 gMonShinyPalette_Spoink[];
+extern const u8 gMonIcon_Spoink[];
+extern const u8 gMonFootprint_Spoink[];
+extern const u8 gMonFrontPic_Grumpig[];
+extern const u8 gMonPalette_Grumpig[];
+extern const u8 gMonBackPic_Grumpig[];
+extern const u8 gMonShinyPalette_Grumpig[];
+extern const u8 gMonIcon_Grumpig[];
+extern const u8 gMonFootprint_Grumpig[];
+extern const u8 gMonFrontPic_Plusle[];
+extern const u8 gMonPalette_Plusle[];
+extern const u8 gMonBackPic_Plusle[];
+extern const u8 gMonShinyPalette_Plusle[];
+extern const u8 gMonIcon_Plusle[];
+extern const u8 gMonFootprint_Plusle[];
+extern const u8 gMonFrontPic_Minun[];
+extern const u8 gMonPalette_Minun[];
+extern const u8 gMonBackPic_Minun[];
+extern const u8 gMonShinyPalette_Minun[];
+extern const u8 gMonIcon_Minun[];
+extern const u8 gMonFootprint_Minun[];
+extern const u8 gMonFrontPic_Mawile[];
+extern const u8 gMonPalette_Mawile[];
+extern const u8 gMonBackPic_Mawile[];
+extern const u8 gMonShinyPalette_Mawile[];
+extern const u8 gMonIcon_Mawile[];
+extern const u8 gMonFootprint_Mawile[];
+extern const u8 gMonFrontPic_Meditite[];
+extern const u8 gMonPalette_Meditite[];
+extern const u8 gMonBackPic_Meditite[];
+extern const u8 gMonShinyPalette_Meditite[];
+extern const u8 gMonIcon_Meditite[];
+extern const u8 gMonFootprint_Meditite[];
+extern const u8 gMonFrontPic_Medicham[];
+extern const u8 gMonPalette_Medicham[];
+extern const u8 gMonBackPic_Medicham[];
+extern const u8 gMonShinyPalette_Medicham[];
+extern const u8 gMonIcon_Medicham[];
+extern const u8 gMonFootprint_Medicham[];
+extern const u8 gMonFrontPic_Swablu[];
+extern const u8 gMonPalette_Swablu[];
+extern const u8 gMonBackPic_Swablu[];
+extern const u8 gMonShinyPalette_Swablu[];
+extern const u8 gMonIcon_Swablu[];
+extern const u8 gMonFootprint_Swablu[];
+extern const u8 gMonFrontPic_Altaria[];
+extern const u8 gMonPalette_Altaria[];
+extern const u8 gMonBackPic_Altaria[];
+extern const u8 gMonShinyPalette_Altaria[];
+extern const u8 gMonIcon_Altaria[];
+extern const u8 gMonFootprint_Altaria[];
+extern const u8 gMonFrontPic_Wynaut[];
+extern const u8 gMonPalette_Wynaut[];
+extern const u8 gMonBackPic_Wynaut[];
+extern const u8 gMonShinyPalette_Wynaut[];
+extern const u8 gMonIcon_Wynaut[];
+extern const u8 gMonFootprint_Wynaut[];
+extern const u8 gMonFrontPic_Duskull[];
+extern const u8 gMonPalette_Duskull[];
+extern const u8 gMonBackPic_Duskull[];
+extern const u8 gMonShinyPalette_Duskull[];
+extern const u8 gMonIcon_Duskull[];
+extern const u8 gMonFootprint_Duskull[];
+extern const u8 gMonFrontPic_Dusclops[];
+extern const u8 gMonPalette_Dusclops[];
+extern const u8 gMonBackPic_Dusclops[];
+extern const u8 gMonShinyPalette_Dusclops[];
+extern const u8 gMonIcon_Dusclops[];
+extern const u8 gMonFootprint_Dusclops[];
+extern const u8 gMonFrontPic_Roselia[];
+extern const u8 gMonPalette_Roselia[];
+extern const u8 gMonBackPic_Roselia[];
+extern const u8 gMonShinyPalette_Roselia[];
+extern const u8 gMonIcon_Roselia[];
+extern const u8 gMonFootprint_Roselia[];
+extern const u8 gMonFrontPic_Slakoth[];
+extern const u8 gMonPalette_Slakoth[];
+extern const u8 gMonBackPic_Slakoth[];
+extern const u8 gMonShinyPalette_Slakoth[];
+extern const u8 gMonIcon_Slakoth[];
+extern const u8 gMonFootprint_Slakoth[];
+extern const u8 gMonFrontPic_Vigoroth[];
+extern const u8 gMonPalette_Vigoroth[];
+extern const u8 gMonBackPic_Vigoroth[];
+extern const u8 gMonShinyPalette_Vigoroth[];
+extern const u8 gMonIcon_Vigoroth[];
+extern const u8 gMonFootprint_Vigoroth[];
+extern const u8 gMonFrontPic_Slaking[];
+extern const u8 gMonPalette_Slaking[];
+extern const u8 gMonBackPic_Slaking[];
+extern const u8 gMonShinyPalette_Slaking[];
+extern const u8 gMonIcon_Slaking[];
+extern const u8 gMonFootprint_Slaking[];
+extern const u8 gMonFrontPic_Gulpin[];
+extern const u8 gMonPalette_Gulpin[];
+extern const u8 gMonBackPic_Gulpin[];
+extern const u8 gMonShinyPalette_Gulpin[];
+extern const u8 gMonIcon_Gulpin[];
+extern const u8 gMonFootprint_Gulpin[];
+extern const u8 gMonFrontPic_Swalot[];
+extern const u8 gMonPalette_Swalot[];
+extern const u8 gMonBackPic_Swalot[];
+extern const u8 gMonShinyPalette_Swalot[];
+extern const u8 gMonIcon_Swalot[];
+extern const u8 gMonFootprint_Swalot[];
+extern const u8 gMonFrontPic_Tropius[];
+extern const u8 gMonPalette_Tropius[];
+extern const u8 gMonBackPic_Tropius[];
+extern const u8 gMonShinyPalette_Tropius[];
+extern const u8 gMonIcon_Tropius[];
+extern const u8 gMonFootprint_Tropius[];
+extern const u8 gMonFrontPic_Whismur[];
+extern const u8 gMonPalette_Whismur[];
+extern const u8 gMonBackPic_Whismur[];
+extern const u8 gMonShinyPalette_Whismur[];
+extern const u8 gMonIcon_Whismur[];
+extern const u8 gMonFootprint_Whismur[];
+extern const u8 gMonFrontPic_Loudred[];
+extern const u8 gMonPalette_Loudred[];
+extern const u8 gMonBackPic_Loudred[];
+extern const u8 gMonShinyPalette_Loudred[];
+extern const u8 gMonIcon_Loudred[];
+extern const u8 gMonFootprint_Loudred[];
+extern const u8 gMonFrontPic_Exploud[];
+extern const u8 gMonPalette_Exploud[];
+extern const u8 gMonBackPic_Exploud[];
+extern const u8 gMonShinyPalette_Exploud[];
+extern const u8 gMonIcon_Exploud[];
+extern const u8 gMonFootprint_Exploud[];
+extern const u8 gMonFrontPic_Clamperl[];
+extern const u8 gMonPalette_Clamperl[];
+extern const u8 gMonBackPic_Clamperl[];
+extern const u8 gMonShinyPalette_Clamperl[];
+extern const u8 gMonIcon_Clamperl[];
+extern const u8 gMonFootprint_Clamperl[];
+extern const u8 gMonFrontPic_Huntail[];
+extern const u8 gMonPalette_Huntail[];
+extern const u8 gMonBackPic_Huntail[];
+extern const u8 gMonShinyPalette_Huntail[];
+extern const u8 gMonIcon_Huntail[];
+extern const u8 gMonFootprint_Huntail[];
+extern const u8 gMonFrontPic_Gorebyss[];
+extern const u8 gMonPalette_Gorebyss[];
+extern const u8 gMonBackPic_Gorebyss[];
+extern const u8 gMonShinyPalette_Gorebyss[];
+extern const u8 gMonIcon_Gorebyss[];
+extern const u8 gMonFootprint_Gorebyss[];
+extern const u8 gMonFrontPic_Absol[];
+extern const u8 gMonPalette_Absol[];
+extern const u8 gMonBackPic_Absol[];
+extern const u8 gMonShinyPalette_Absol[];
+extern const u8 gMonIcon_Absol[];
+extern const u8 gMonFootprint_Absol[];
+extern const u8 gMonFrontPic_Shuppet[];
+extern const u8 gMonPalette_Shuppet[];
+extern const u8 gMonBackPic_Shuppet[];
+extern const u8 gMonShinyPalette_Shuppet[];
+extern const u8 gMonIcon_Shuppet[];
+extern const u8 gMonFootprint_Shuppet[];
+extern const u8 gMonFrontPic_Banette[];
+extern const u8 gMonPalette_Banette[];
+extern const u8 gMonBackPic_Banette[];
+extern const u8 gMonShinyPalette_Banette[];
+extern const u8 gMonIcon_Banette[];
+extern const u8 gMonFootprint_Banette[];
+extern const u8 gMonFrontPic_Seviper[];
+extern const u8 gMonPalette_Seviper[];
+extern const u8 gMonBackPic_Seviper[];
+extern const u8 gMonShinyPalette_Seviper[];
+extern const u8 gMonIcon_Seviper[];
+extern const u8 gMonFootprint_Seviper[];
+extern const u8 gMonFrontPic_Zangoose[];
+extern const u8 gMonPalette_Zangoose[];
+extern const u8 gMonBackPic_Zangoose[];
+extern const u8 gMonShinyPalette_Zangoose[];
+extern const u8 gMonIcon_Zangoose[];
+extern const u8 gMonFootprint_Zangoose[];
+extern const u8 gMonFrontPic_Relicanth[];
+extern const u8 gMonPalette_Relicanth[];
+extern const u8 gMonBackPic_Relicanth[];
+extern const u8 gMonShinyPalette_Relicanth[];
+extern const u8 gMonIcon_Relicanth[];
+extern const u8 gMonFootprint_Relicanth[];
+extern const u8 gMonFrontPic_Aron[];
+extern const u8 gMonPalette_Aron[];
+extern const u8 gMonBackPic_Aron[];
+extern const u8 gMonShinyPalette_Aron[];
+extern const u8 gMonIcon_Aron[];
+extern const u8 gMonFootprint_Aron[];
+extern const u8 gMonFrontPic_Lairon[];
+extern const u8 gMonPalette_Lairon[];
+extern const u8 gMonBackPic_Lairon[];
+extern const u8 gMonShinyPalette_Lairon[];
+extern const u8 gMonIcon_Lairon[];
+extern const u8 gMonFootprint_Lairon[];
+extern const u8 gMonFrontPic_Aggron[];
+extern const u8 gMonPalette_Aggron[];
+extern const u8 gMonBackPic_Aggron[];
+extern const u8 gMonShinyPalette_Aggron[];
+extern const u8 gMonIcon_Aggron[];
+extern const u8 gMonFootprint_Aggron[];
+extern const u8 gMonFrontPic_Castform[];
+extern const u8 gMonPalette_Castform[];
+extern const u8 gMonBackPic_Castform[];
+extern const u8 gMonShinyPalette_Castform[];
+extern const u8 gMonIcon_Castform[];
+extern const u8 gMonFootprint_Castform[];
+extern const u8 gMonFrontPic_Volbeat[];
+extern const u8 gMonPalette_Volbeat[];
+extern const u8 gMonBackPic_Volbeat[];
+extern const u8 gMonShinyPalette_Volbeat[];
+extern const u8 gMonIcon_Volbeat[];
+extern const u8 gMonFootprint_Volbeat[];
+extern const u8 gMonFrontPic_Illumise[];
+extern const u8 gMonPalette_Illumise[];
+extern const u8 gMonBackPic_Illumise[];
+extern const u8 gMonShinyPalette_Illumise[];
+extern const u8 gMonIcon_Illumise[];
+extern const u8 gMonFootprint_Illumise[];
+extern const u8 gMonFrontPic_Lileep[];
+extern const u8 gMonPalette_Lileep[];
+extern const u8 gMonBackPic_Lileep[];
+extern const u8 gMonShinyPalette_Lileep[];
+extern const u8 gMonIcon_Lileep[];
+extern const u8 gMonFootprint_Lileep[];
+extern const u8 gMonFrontPic_Cradily[];
+extern const u8 gMonPalette_Cradily[];
+extern const u8 gMonBackPic_Cradily[];
+extern const u8 gMonShinyPalette_Cradily[];
+extern const u8 gMonIcon_Cradily[];
+extern const u8 gMonFootprint_Cradily[];
+extern const u8 gMonFrontPic_Anorith[];
+extern const u8 gMonPalette_Anorith[];
+extern const u8 gMonBackPic_Anorith[];
+extern const u8 gMonShinyPalette_Anorith[];
+extern const u8 gMonIcon_Anorith[];
+extern const u8 gMonFootprint_Anorith[];
+extern const u8 gMonFrontPic_Armaldo[];
+extern const u8 gMonPalette_Armaldo[];
+extern const u8 gMonBackPic_Armaldo[];
+extern const u8 gMonShinyPalette_Armaldo[];
+extern const u8 gMonIcon_Armaldo[];
+extern const u8 gMonFootprint_Armaldo[];
+extern const u8 gMonFrontPic_Ralts[];
+extern const u8 gMonPalette_Ralts[];
+extern const u8 gMonBackPic_Ralts[];
+extern const u8 gMonShinyPalette_Ralts[];
+extern const u8 gMonIcon_Ralts[];
+extern const u8 gMonFootprint_Ralts[];
+extern const u8 gMonFrontPic_Kirlia[];
+extern const u8 gMonPalette_Kirlia[];
+extern const u8 gMonBackPic_Kirlia[];
+extern const u8 gMonShinyPalette_Kirlia[];
+extern const u8 gMonIcon_Kirlia[];
+extern const u8 gMonFootprint_Kirlia[];
+extern const u8 gMonFrontPic_Gardevoir[];
+extern const u8 gMonPalette_Gardevoir[];
+extern const u8 gMonBackPic_Gardevoir[];
+extern const u8 gMonShinyPalette_Gardevoir[];
+extern const u8 gMonIcon_Gardevoir[];
+extern const u8 gMonFootprint_Gardevoir[];
+extern const u8 gMonFrontPic_Bagon[];
+extern const u8 gMonPalette_Bagon[];
+extern const u8 gMonBackPic_Bagon[];
+extern const u8 gMonShinyPalette_Bagon[];
+extern const u8 gMonIcon_Bagon[];
+extern const u8 gMonFootprint_Bagon[];
+extern const u8 gMonFrontPic_Shelgon[];
+extern const u8 gMonPalette_Shelgon[];
+extern const u8 gMonBackPic_Shelgon[];
+extern const u8 gMonShinyPalette_Shelgon[];
+extern const u8 gMonIcon_Shelgon[];
+extern const u8 gMonFootprint_Shelgon[];
+extern const u8 gMonFrontPic_Salamence[];
+extern const u8 gMonPalette_Salamence[];
+extern const u8 gMonBackPic_Salamence[];
+extern const u8 gMonShinyPalette_Salamence[];
+extern const u8 gMonIcon_Salamence[];
+extern const u8 gMonFootprint_Salamence[];
+extern const u8 gMonFrontPic_Beldum[];
+extern const u8 gMonPalette_Beldum[];
+extern const u8 gMonBackPic_Beldum[];
+extern const u8 gMonShinyPalette_Beldum[];
+extern const u8 gMonIcon_Beldum[];
+extern const u8 gMonFootprint_Beldum[];
+extern const u8 gMonFrontPic_Metang[];
+extern const u8 gMonPalette_Metang[];
+extern const u8 gMonBackPic_Metang[];
+extern const u8 gMonShinyPalette_Metang[];
+extern const u8 gMonIcon_Metang[];
+extern const u8 gMonFootprint_Metang[];
+extern const u8 gMonFrontPic_Metagross[];
+extern const u8 gMonPalette_Metagross[];
+extern const u8 gMonBackPic_Metagross[];
+extern const u8 gMonShinyPalette_Metagross[];
+extern const u8 gMonIcon_Metagross[];
+extern const u8 gMonFootprint_Metagross[];
+extern const u8 gMonFrontPic_Regirock[];
+extern const u8 gMonPalette_Regirock[];
+extern const u8 gMonBackPic_Regirock[];
+extern const u8 gMonShinyPalette_Regirock[];
+extern const u8 gMonIcon_Regirock[];
+extern const u8 gMonFootprint_Regirock[];
+extern const u8 gMonFrontPic_Regice[];
+extern const u8 gMonPalette_Regice[];
+extern const u8 gMonBackPic_Regice[];
+extern const u8 gMonShinyPalette_Regice[];
+extern const u8 gMonIcon_Regice[];
+extern const u8 gMonFootprint_Regice[];
+extern const u8 gMonFrontPic_Registeel[];
+extern const u8 gMonPalette_Registeel[];
+extern const u8 gMonBackPic_Registeel[];
+extern const u8 gMonShinyPalette_Registeel[];
+extern const u8 gMonIcon_Registeel[];
+extern const u8 gMonFootprint_Registeel[];
+extern const u8 gMonFrontPic_Kyogre[];
+extern const u8 gMonPalette_Kyogre[];
+extern const u8 gMonBackPic_Kyogre[];
+extern const u8 gMonShinyPalette_Kyogre[];
+extern const u8 gMonIcon_Kyogre[];
+extern const u8 gMonFootprint_Kyogre[];
+extern const u8 gMonFrontPic_Groudon[];
+extern const u8 gMonPalette_Groudon[];
+extern const u8 gMonBackPic_Groudon[];
+extern const u8 gMonShinyPalette_Groudon[];
+extern const u8 gMonIcon_Groudon[];
+extern const u8 gMonFootprint_Groudon[];
+extern const u8 gMonFrontPic_Rayquaza[];
+extern const u8 gMonPalette_Rayquaza[];
+extern const u8 gMonBackPic_Rayquaza[];
+extern const u8 gMonShinyPalette_Rayquaza[];
+extern const u8 gMonIcon_Rayquaza[];
+extern const u8 gMonFootprint_Rayquaza[];
+extern const u8 gMonFrontPic_Latias[];
+extern const u8 gMonPalette_Latias[];
+extern const u8 gMonBackPic_Latias[];
+extern const u8 gMonShinyPalette_Latias[];
+extern const u8 gMonIcon_Latias[];
+extern const u8 gMonFootprint_Latias[];
+extern const u8 gMonFrontPic_Latios[];
+extern const u8 gMonPalette_Latios[];
+extern const u8 gMonBackPic_Latios[];
+extern const u8 gMonShinyPalette_Latios[];
+extern const u8 gMonIcon_Latios[];
+extern const u8 gMonFootprint_Latios[];
+extern const u8 gMonFrontPic_Jirachi[];
+extern const u8 gMonPalette_Jirachi[];
+extern const u8 gMonBackPic_Jirachi[];
+extern const u8 gMonShinyPalette_Jirachi[];
+extern const u8 gMonIcon_Jirachi[];
+extern const u8 gMonFootprint_Jirachi[];
+extern const u8 gMonFrontPic_Deoxys[];
+extern const u8 gMonPalette_Deoxys[];
+extern const u8 gMonBackPic_Deoxys[];
+extern const u8 gMonShinyPalette_Deoxys[];
+extern const u8 gMonIcon_Deoxys[];
+extern const u8 gMonFootprint_Deoxys[];
+extern const u8 gMonFrontPic_Chimecho[];
+extern const u8 gMonPalette_Chimecho[];
+extern const u8 gMonBackPic_Chimecho[];
+extern const u8 gMonShinyPalette_Chimecho[];
+extern const u8 gMonIcon_Chimecho[];
+extern const u8 gMonFootprint_Chimecho[];
+extern const u8 gMonPic_Egg[];
+extern const u8 gMonPalette_Egg[];
+extern const u8 gMonFrontPic_UnownB[];
+extern const u8 gMonBackPic_UnownB[];
+extern const u8 gMonIcon_UnownB[];
+extern const u8 gMonFrontPic_UnownC[];
+extern const u8 gMonBackPic_UnownC[];
+extern const u8 gMonIcon_UnownC[];
+extern const u8 gMonFrontPic_UnownD[];
+extern const u8 gMonBackPic_UnownD[];
+extern const u8 gMonIcon_UnownD[];
+extern const u8 gMonFrontPic_UnownE[];
+extern const u8 gMonBackPic_UnownE[];
+extern const u8 gMonIcon_UnownE[];
+extern const u8 gMonFrontPic_UnownF[];
+extern const u8 gMonBackPic_UnownF[];
+extern const u8 gMonIcon_UnownF[];
+extern const u8 gMonFrontPic_UnownG[];
+extern const u8 gMonBackPic_UnownG[];
+extern const u8 gMonIcon_UnownG[];
+extern const u8 gMonFrontPic_UnownH[];
+extern const u8 gMonBackPic_UnownH[];
+extern const u8 gMonIcon_UnownH[];
+extern const u8 gMonFrontPic_UnownI[];
+extern const u8 gMonBackPic_UnownI[];
+extern const u8 gMonIcon_UnownI[];
+extern const u8 gMonFrontPic_UnownJ[];
+extern const u8 gMonBackPic_UnownJ[];
+extern const u8 gMonIcon_UnownJ[];
+extern const u8 gMonFrontPic_UnownK[];
+extern const u8 gMonBackPic_UnownK[];
+extern const u8 gMonIcon_UnownK[];
+extern const u8 gMonFrontPic_UnownL[];
+extern const u8 gMonBackPic_UnownL[];
+extern const u8 gMonIcon_UnownL[];
+extern const u8 gMonFrontPic_UnownM[];
+extern const u8 gMonBackPic_UnownM[];
+extern const u8 gMonIcon_UnownM[];
+extern const u8 gMonFrontPic_UnownN[];
+extern const u8 gMonBackPic_UnownN[];
+extern const u8 gMonIcon_UnownN[];
+extern const u8 gMonFrontPic_UnownO[];
+extern const u8 gMonBackPic_UnownO[];
+extern const u8 gMonIcon_UnownO[];
+extern const u8 gMonFrontPic_UnownP[];
+extern const u8 gMonBackPic_UnownP[];
+extern const u8 gMonIcon_UnownP[];
+extern const u8 gMonFrontPic_UnownQ[];
+extern const u8 gMonBackPic_UnownQ[];
+extern const u8 gMonIcon_UnownQ[];
+extern const u8 gMonFrontPic_UnownR[];
+extern const u8 gMonBackPic_UnownR[];
+extern const u8 gMonIcon_UnownR[];
+extern const u8 gMonFrontPic_UnownS[];
+extern const u8 gMonBackPic_UnownS[];
+extern const u8 gMonIcon_UnownS[];
+extern const u8 gMonFrontPic_UnownT[];
+extern const u8 gMonBackPic_UnownT[];
+extern const u8 gMonIcon_UnownT[];
+extern const u8 gMonFrontPic_UnownU[];
+extern const u8 gMonBackPic_UnownU[];
+extern const u8 gMonIcon_UnownU[];
+extern const u8 gMonFrontPic_UnownV[];
+extern const u8 gMonBackPic_UnownV[];
+extern const u8 gMonIcon_UnownV[];
+extern const u8 gMonFrontPic_UnownW[];
+extern const u8 gMonBackPic_UnownW[];
+extern const u8 gMonIcon_UnownW[];
+extern const u8 gMonFrontPic_UnownX[];
+extern const u8 gMonBackPic_UnownX[];
+extern const u8 gMonIcon_UnownX[];
+extern const u8 gMonFrontPic_UnownY[];
+extern const u8 gMonBackPic_UnownY[];
+extern const u8 gMonIcon_UnownY[];
+extern const u8 gMonFrontPic_UnownZ[];
+extern const u8 gMonBackPic_UnownZ[];
+extern const u8 gMonIcon_UnownZ[];
+extern const u8 gMonFrontPic_UnownExclamationMark[];
+extern const u8 gMonBackPic_UnownExclamationMark[];
+extern const u8 gMonIcon_UnownExclamationMark[];
+extern const u8 gMonFrontPic_UnownQuestionMark[];
+extern const u8 gMonBackPic_UnownQuestionMark[];
+extern const u8 gMonIcon_UnownQuestionMark[];
+
+extern const u8 gMonIcon_QuestionMark[];
+extern const u8 gMonIcon_Egg[];
+extern const u16 gMonIconPalettes[][16];
+
+// pokeblock
+extern const u8 gMenuPokeblock_Gfx[];
+extern const u8 gMenuPokeblock_Pal[];
+extern const u8 gMenuPokeblock_Tilemap[];
+extern const u8 gMenuPokeblockDevice_Gfx[];
+extern const u8 gMenuPokeblockDevice_Pal[];
+extern const u8 gPokeblockRed_Pal[];
+extern const u8 gPokeblockBlue_Pal[];
+extern const u8 gPokeblockPink_Pal[];
+extern const u8 gPokeblockGreen_Pal[];
+extern const u8 gPokeblockYellow_Pal[];
+extern const u8 gPokeblockPurple_Pal[];
+extern const u8 gPokeblockIndigo_Pal[];
+extern const u8 gPokeblockBrown_Pal[];
+extern const u8 gPokeblockLiteBlue_Pal[];
+extern const u8 gPokeblockOlive_Pal[];
+extern const u8 gPokeblockGray_Pal[];
+extern const u8 gPokeblockBlack_Pal[];
+extern const u8 gPokeblockWhite_Pal[];
+extern const u8 gPokeblockGold_Pal[];
+extern const u8 gPokeblock_Gfx[];
+
extern const u8 gItemIcon_QuestionMark[];
extern const u8 gItemIconPalette_QuestionMark[];
extern const u8 gUnknown_08DB7AA0[];
@@ -91,5 +2549,174 @@ extern const u8 gUnknown_08DB9F08[];
extern const u8 gUnknown_08DB9FFC[];
extern const u8 gUnknown_08DBA020[];
extern const u8 gUnknown_08DBA12C[];
+extern const u8 gWallclock_Gfx[];
+extern const u16 gWallclockMale_Pal[];
+extern const u16 gWallclockFemale_Pal[];
+extern const u8 gUnknown_08DCC648[];
+extern const u8 gUnknown_08DCC908[];
+extern const u8 gBerryFixGameboy_Gfx[];
+extern const u8 gBerryFixGameboy_Tilemap[];
+extern const u16 gBerryFixGameboy_Pal[];
+extern const u8 gBerryFixGameboyLogo_Gfx[];
+extern const u8 gBerryFixGameboyLogo_Tilemap[];
+extern const u16 gBerryFixGameboyLogo_Pal[];
+extern const u8 gBerryFixGbaTransfer_Gfx[];
+extern const u8 gBerryFixGbaTransfer_Tilemap[];
+extern const u16 gBerryFixGbaTransfer_Pal[];
+extern const u8 gBerryFixGbaTransferHighlight_Gfx[];
+extern const u8 gBerryFixGbaTransferHighlight_Tilemap[];
+extern const u16 gBerryFixGbaTransferHighlight_Pal[];
+extern const u8 gBerryFixGbaTransferError_Gfx[];
+extern const u8 gBerryFixGbaTransferError_Tilemap[];
+extern const u16 gBerryFixGbaTransferError_Pal[];
+extern const u8 gBerryFixWindow_Gfx[];
+extern const u8 gBerryFixWindow_Tilemap[];
+extern const u16 gBerryFixWindow_Pal[];
+
+extern const u8 gBattleTextboxTiles[];
+extern const u8 gBattleTextboxTilemap[];
+extern const u8 gBattleTextboxPalette[];
+extern const u8 gUnknown_08D778F0[];
+extern const u8 gUnknown_08D77B0C[];
+extern const u8 gUnknown_08D77AE4[];
+extern const u8 gUnknown_08D779D8[];
+extern const u8 gUnknown_08D857A8[];
+extern const u8 gUnknown_08D85A1C[];
+extern const u8 gUnknown_08D85600[];
+
+// battle terrains
+extern const u8 gBattleTerrainTiles_TallGrass[];
+extern const u8 gBattleTerrainTilemap_TallGrass[];
+extern const u8 gBattleTerrainAnimTiles_TallGrass[];
+extern const u8 gBattleTerrainAnimTilemap_TallGrass[];
+extern const u8 gBattleTerrainPalette_TallGrass[];
+extern const u8 gBattleTerrainTiles_LongGrass[];
+extern const u8 gBattleTerrainTilemap_LongGrass[];
+extern const u8 gBattleTerrainAnimTiles_LongGrass[];
+extern const u8 gBattleTerrainAnimTilemap_LongGrass[];
+extern const u8 gBattleTerrainPalette_LongGrass[];
+extern const u8 gBattleTerrainTiles_Sand[];
+extern const u8 gBattleTerrainTilemap_Sand[];
+extern const u8 gBattleTerrainAnimTiles_Sand[];
+extern const u8 gBattleTerrainAnimTilemap_Sand[];
+extern const u8 gBattleTerrainPalette_Sand[];
+extern const u8 gBattleTerrainTiles_Underwater[];
+extern const u8 gBattleTerrainTilemap_Underwater[];
+extern const u8 gBattleTerrainAnimTiles_Underwater[];
+extern const u8 gBattleTerrainAnimTilemap_Underwater[];
+extern const u8 gBattleTerrainPalette_Underwater[];
+extern const u8 gBattleTerrainTiles_Water[];
+extern const u8 gBattleTerrainTilemap_Water[];
+extern const u8 gBattleTerrainAnimTiles_Water[];
+extern const u8 gBattleTerrainAnimTilemap_Water[];
+extern const u8 gBattleTerrainPalette_Water[];
+extern const u8 gBattleTerrainTiles_PondWater[];
+extern const u8 gBattleTerrainTilemap_PondWater[];
+extern const u8 gBattleTerrainAnimTiles_PondWater[];
+extern const u8 gBattleTerrainAnimTilemap_PondWater[];
+extern const u8 gBattleTerrainPalette_PondWater[];
+extern const u8 gBattleTerrainTiles_Rock[];
+extern const u8 gBattleTerrainTilemap_Rock[];
+extern const u8 gBattleTerrainAnimTiles_Rock[];
+extern const u8 gBattleTerrainAnimTilemap_Rock[];
+extern const u8 gBattleTerrainPalette_Rock[];
+extern const u8 gBattleTerrainTiles_Cave[];
+extern const u8 gBattleTerrainTilemap_Cave[];
+extern const u8 gBattleTerrainAnimTiles_Cave[];
+extern const u8 gBattleTerrainAnimTilemap_Cave[];
+extern const u8 gBattleTerrainPalette_Cave[];
+extern const u8 gBattleTerrainTiles_Building[];
+extern const u8 gBattleTerrainTilemap_Building[];
+extern const u8 gBattleTerrainAnimTiles_Building[];
+extern const u8 gBattleTerrainAnimTilemap_Building[];
+extern const u8 gBattleTerrainPalette_Building[];
+extern const u8 gBattleTerrainPalette_Plain[];
+extern const u8 gBattleTerrainPalette_Frontier[];
+extern const u8 gBattleTerrainTiles_Stadium[];
+extern const u8 gBattleTerrainTilemap_Stadium[];
+extern const u8 gBattleTerrainTiles_Rayquaza[];
+extern const u8 gBattleTerrainTilemap_Rayquaza[];
+extern const u8 gBattleTerrainAnimTiles_Rayquaza[];
+extern const u8 gBattleTerrainAnimTilemap_Rayquaza[];
+extern const u8 gBattleTerrainPalette_Rayquaza[];
+extern const u8 gBattleTerrainPalette_Kyogre[];
+extern const u8 gBattleTerrainPalette_Groudon[];
+extern const u8 gBattleTerrainPalette_BuildingGym[];
+extern const u8 gBattleTerrainPalette_BuildingLeader[];
+extern const u8 gBattleTerrainPalette_StadiumAqua[];
+extern const u8 gBattleTerrainPalette_StadiumMagma[];
+extern const u8 gBattleTerrainPalette_StadiumSidney[];
+extern const u8 gBattleTerrainPalette_StadiumPhoebe[];
+extern const u8 gBattleTerrainPalette_StadiumGlacia[];
+extern const u8 gBattleTerrainPalette_StadiumDrake[];
+extern const u8 gBattleTerrainPalette_StadiumWallace[];
+
+extern const u8 gPokedexMenu2_Gfx[];
+extern const u8 gPokedexText_Pal[];
+
+// berry tag screen
+extern const u8 gUnknown_08D9BB44[];
+extern const u8 gUnknown_08D9BF98[];
+extern const u8 gUnknown_08D9C13C[];
+extern const u8 gUnknown_08D9BEF0[];
+
+// rayquaza scene gfx
+extern const u8 gRaySceneGroudon_Gfx[];
+extern const u8 gRaySceneGroudon2_Gfx[];
+extern const u8 gRaySceneGroudon3_Gfx[];
+extern const u8 gRaySceneKyogre_Gfx[];
+extern const u8 gRaySceneKyogre2_Gfx[];
+extern const u8 gRaySceneKyogre3_Gfx[];
+extern const u8 gRaySceneGroudon_Pal[];
+extern const u8 gRaySceneKyogre_Pal[];
+extern const u8 gRaySceneSmoke_Gfx[];
+extern const u8 gRaySceneSmoke_Pal[];
+extern const u8 gRaySceneRayquaza_Pal[];
+extern const u8 gRaySceneRayquazaFly1_Gfx[];
+extern const u8 gRaySceneRayquazaTail_Gfx[];
+extern const u8 gRaySceneGroudonLeft_Gfx[];
+extern const u8 gRaySceneGroudonTail_Gfx[];
+extern const u8 gRaySceneKyogreRight_Gfx[];
+extern const u8 gRaySceneRayquazaHover_Gfx[];
+extern const u8 gRaySceneRayquazaFlyIn_Gfx[];
+extern const u8 gRaySceneOvercast_Gfx[];
+extern const u8 gRaySceneOvercast_Tilemap[];
+extern const u8 gRaySceneRayquaza_Gfx[];
+extern const u8 gRaySceneRayquaza_Tilemap[];
+extern const u8 gRaySceneSplash_Gfx[];
+extern const u8 gRaySceneGroudonLeft_Pal[];
+extern const u8 gRaySceneKyogreRight_Pal[];
+extern const u8 gRaySceneRayquazaHover_Pal[];
+extern const u8 gRaySceneSplash_Pal[];
+extern const u8 gRaySceneClouds_Gfx[];
+extern const u8 gRaySceneClouds_Pal[];
+extern const u8 gRaySceneClouds2_Tilemap[];
+extern const u8 gRaySceneClouds1_Tilemap[];
+extern const u8 gRaySceneClouds3_Tilemap[];
+extern const u8 gRaySceneRayquazaLight_Gfx[];
+extern const u8 gRaySceneRayquazaLight_Tilemap[];
+extern const u8 gRaySceneOvercast2_Gfx[];
+extern const u8 gRaySceneOvercast2_Tilemap[];
+extern const u8 gRaySceneOvercast2_Pal[];
+extern const u8 gRaySceneRayquazaChase_Gfx[];
+extern const u8 gRaySceneChaseStreaks_Gfx[];
+extern const u8 gRaySceneChaseBg_Gfx[];
+extern const u8 gRayChaseRayquazaChase2_Tilemap[];
+extern const u8 gRayChaseRayquazaChase_Tilemap[];
+extern const u8 gRaySceneChaseStreaks_Tilemap[];
+extern const u8 gRaySceneChaseBg_Tilemap[];
+extern const u8 gRaySceneChase_Pal[];
+extern const u8 gRaySceneHushRing_Tilemap[];
+extern const u8 gRaySceneHushBg_Tilemap[];
+extern const u8 gRaySceneHushRing_Map[];
+extern const u8 gRaySceneHushBg_Pal[];
+extern const u8 gRaySceneHushBg_Gfx[];
+extern const u8 gRaySceneHushRing_Gfx[];
+
+//menu graphics
+extern const u16 gFireRedMenuElements1_Pal[16];
+extern const u16 gFireRedMenuElements2_Pal[16];
+extern const u16 gFireRedMenuElements3_Pal[16];
+extern const u8 gFireRedMenuElements_Gfx[];
#endif //GUARD_GRAPHICS_H
diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h
index 62e84c39e..d35ecf268 100644
--- a/include/hall_of_fame.h
+++ b/include/hall_of_fame.h
@@ -1,9 +1,9 @@
#ifndef GUARD_HALL_OF_FAME_H
#define GUARD_HALL_OF_FAME_H
-void sub_8141F90(void);
-void sub_8143648(u16 paletteTag, u8 arg1);
-void sub_81428CC(void);
-void sub_8143680(int, u8);
+void CB2_DoHallOfFameScreen(void);
+void CB2_DoHallOfFameScreenDontSaveData(void);
+void CB2_DoHallOfFamePC(void);
+void sub_8175280(void);
#endif // GUARD_HALL_OF_FAME_H
diff --git a/include/heal_location.h b/include/heal_location.h
new file mode 100644
index 000000000..1f966f1ae
--- /dev/null
+++ b/include/heal_location.h
@@ -0,0 +1,25 @@
+#ifndef GUARD_HEAL_LOCATION_H
+#define GUARD_HEAL_LOCATION_H
+
+// Exported type declarations
+
+struct UnkStruct_0859F534 {
+ const union AffineAnimCmd *const *const affineAnims;
+ void (* callback)(struct Sprite *sprite);
+};
+
+struct HealLocation
+{
+ s8 group;
+ s8 map;
+ u16 x;
+ u16 y;
+};
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+const struct HealLocation *GetHealLocationPointer(u32 loc);
+
+#endif //GUARD_HEAL_LOCATION_H
diff --git a/include/international_string_util.h b/include/international_string_util.h
index 9d9735a52..f4ba827e3 100644
--- a/include/international_string_util.h
+++ b/include/international_string_util.h
@@ -12,9 +12,9 @@ s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 lett
s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1);
s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2);
// sub_81DB41C
-// sub_81DB468
+// CopyMonCategoryText
// sub_81DB494
-// sub_81DB4DC
+void PadNameString(u8 *dst, u8 padWith);
// sub_81DB554
// sub_81DB5AC
u32 sub_81DB604(const u8 *);
diff --git a/include/intro.h b/include/intro.h
new file mode 100644
index 000000000..53a446418
--- /dev/null
+++ b/include/intro.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_INTRO_H
+#define GUARD_INTRO_H
+
+void CB2_InitCopyrightScreenAfterBootup(void);
+void CB2_InitCopyrightScreenAfterTitleScreen(void);
+void sub_816F2A8(u16, u16, u16, u16);
+
+#endif // GUARD_INTRO_H
diff --git a/include/item.h b/include/item.h
index a136f03ec..06eb08046 100644
--- a/include/item.h
+++ b/include/item.h
@@ -60,5 +60,6 @@ u8 ItemId_GetBattleUsage(u16 itemId);
ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
u8 ItemId_GetSecondaryId(u16 itemId);
u16 itemid_get_market_price(u16 itemId);
+u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 pocketPos);
#endif // ITEM_H
diff --git a/include/item_icon.h b/include/item_icon.h
index a43b72f39..b702b2045 100644
--- a/include/item_icon.h
+++ b/include/item_icon.h
@@ -1,17 +1,16 @@
-//
-// Created by scott on 10/20/2017.
-//
-
#ifndef GUARD_ITEM_ICON_H
#define GUARD_ITEM_ICON_H
-extern EWRAM_DATA void *gUnknown_0203CEBC;
-extern EWRAM_DATA void *gUnknown_0203CEC0;
+extern void *gItemIconDecompressionBuffer;
+extern void *gItemIcon4x4Buffer;
-extern const struct SpriteTemplate gUnknown_08614FF4;
+extern const struct SpriteTemplate gItemIconSpriteTemplate;
bool8 AllocItemIconTemporaryBuffers(void);
-void CopyItemIconPicTo4x4Buffer(void *src, void *dest);
void FreeItemIconTemporaryBuffers(void);
+void CopyItemIconPicTo4x4Buffer(const void *src, void *dest);
+u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId);
+u8 AddCustomItemIconSprite(struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId);
+const void *GetItemIconPicOrPalette(u16 itemId, u8 which);
#endif //GUARD_ITEM_ICON_H
diff --git a/include/item_menu.h b/include/item_menu.h
index 85655e9d5..0ddd6766b 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -2,11 +2,24 @@
#define GUARD_item_menu_H
// Exported type declarations
+struct BagStruct
+{
+ void *func;
+ u8 unk4;
+ u8 pocket;
+ u8 unk6[2];
+ u16 unk8[5];
+ u16 unk12[5];
+ void *unk1C;
+};
+
+extern struct BagStruct gUnknown_0203CE58;
// Exported RAM declarations
// Exported ROM declarations
void sub_81AAC50(void);
void sub_81AAC70(void);
+void bag_menu_mail_related(void);
#endif //GUARD_item_menu_H
diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h
new file mode 100644
index 000000000..c3932390c
--- /dev/null
+++ b/include/item_menu_icons.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_ITEM_MENU_ICONS
+#define GUARD_ITEM_MENU_ICONS
+
+extern const struct CompressedSpriteSheet gUnknown_0857FDEC;
+extern const struct CompressedSpritePalette gUnknown_0857FDF4;
+
+u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3);
+u8 CreateBerryTagSprite(u8 id, s16 x, s16 y);
+void FreeBerryTagSpritePalette(void);
+u8 CreateBerryFlavorCircleSprite(s16 x);
+
+#endif // GUARD_ITEM_MENU_ICONS
diff --git a/include/item_use.h b/include/item_use.h
new file mode 100644
index 000000000..ee7939824
--- /dev/null
+++ b/include/item_use.h
@@ -0,0 +1,54 @@
+#ifndef GUARD_ITEM_USE_H
+#define GUARD_ITEM_USE_H
+
+extern u16 gSpecialVar_ItemId;
+
+void ItemUseOutOfBattle_Mail(u8);
+void ItemUseOutOfBattle_Bike(u8);
+void ItemUseOnFieldCB_Bike(u8);
+void ItemUseOutOfBattle_Rod(u8);
+void ItemUseOnFieldCB_Rod(u8);
+void ItemUseOutOfBattle_Itemfinder(u8);
+void ItemUseOnFieldCB_Itemfinder(u8);
+void RunItemfinderResults(u8);
+void ExitItemfinder(u8);
+bool8 ItemfinderCheckForHiddenItems(struct MapEvents *, u8);
+void sub_80C9720(u8);
+void sub_80C9838(u8, s16, s16);
+u8 GetPlayerDirectionTowardsHiddenItem(s16, s16);
+void SetPlayerDirectionTowardsItem(u8);
+void DisplayItemRespondingMessageAndExitItemfinder(u8);
+void RotatePlayerAndExitItemfinder(u8);
+void ItemUseOutOfBattle_PokeblockCase(u8);
+void ItemUseOutOfBattle_CoinCase(u8);
+void ItemUseOutOfBattle_SSTicket(u8);
+void sub_80C9D00(u8);
+void ItemUseOutOfBattle_WailmerPail(u8);
+void sub_80C9D74(u8);
+void ItemUseOutOfBattle_Medicine(u8);
+void ItemUseOutOfBattle_SacredAsh(u8);
+void ItemUseOutOfBattle_PPRecovery(u8);
+void ItemUseOutOfBattle_PPUp(u8);
+void ItemUseOutOfBattle_RareCandy(u8);
+void ItemUseOutOfBattle_TMHM(u8);
+void sub_80C9EE4(u8);
+void sub_80C9F10(u8);
+void sub_80C9F80(u8);
+void sub_80C9FC0(u8);
+void ItemUseOutOfBattle_Repel(u8);
+void ItemUseOutOfBattle_BlackWhiteFlute(u8);
+void task08_080A1C44(u8);
+u8 CanUseEscapeRopeOnCurrMap(void);
+void ItemUseOutOfBattle_EscapeRope(u8);
+void ItemUseOutOfBattle_EvolutionStone(u8);
+void ItemUseInBattle_PokeBall(u8);
+void ItemUseInBattle_StatIncrease(u8);
+void ItemUseInBattle_Medicine(u8);
+void ItemUseInBattle_PPRecovery(u8);
+void ItemUseInBattle_Escape(u8);
+void ItemUseOutOfBattle_EnigmaBerry(u8);
+void ItemUseInBattle_EnigmaBerry(u8);
+void ItemUseOutOfBattle_CannotUse(u8);
+u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId);
+
+#endif // GUARD_ITEM_USE_H
diff --git a/include/items.h b/include/items.h
deleted file mode 100644
index b8cc23d82..000000000
--- a/include/items.h
+++ /dev/null
@@ -1,398 +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
-};
-
-enum
-{
- ITEMS_POCKET,
- BALLS_POCKET,
- TMHM_POCKET,
- BERRIES_POCKET,
- KEYITEMS_POCKET
-};
-
-#endif // GUARD_ITEMS_H
diff --git a/include/landmark.h b/include/landmark.h
new file mode 100644
index 000000000..395905033
--- /dev/null
+++ b/include/landmark.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_LANDMARK_H
+#define GUARD_LANDMARK_H
+
+const u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count);
+
+#endif // GUARD_LANDMARK_H
diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h
index 66922273e..f26285d68 100644
--- a/include/lilycove_lady.h
+++ b/include/lilycove_lady.h
@@ -7,7 +7,7 @@ void sub_818DA78(void);
void sub_818DEF4(void);
void sub_818E564(void);
void sub_818E570(const LilycoveLady *lilycoveLady);
-bool8 sub_818E704(struct Pokeblock *pokeblock);
+bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock);
void sub_818E7E0(u8 *dest1, u8 *dest2);
void sub_818E81C(u8 *dest);
void sub_818E848(u8 *dest);
diff --git a/include/link.h b/include/link.h
index a33c7da89..709bdc399 100644
--- a/include/link.h
+++ b/include/link.h
@@ -2,12 +2,11 @@
#define GUARD_LINK_H
#define MAX_LINK_PLAYERS 4
+#define MAX_RFU_PLAYERS 5
#define CMD_LENGTH 8
#define QUEUE_CAPACITY 50
#define BLOCK_BUFFER_SIZE 0x100
-#define gBlockSendBuffer gUnknown_020228C4 // FIXME
-
#define LINK_STAT_LOCAL_ID 0x00000003
#define LINK_STAT_PLAYER_COUNT 0x0000001C
#define LINK_STAT_PLAYER_COUNT_SHIFT 2
@@ -70,7 +69,7 @@ struct LinkPlayer
/* 0x08 */ u8 name[11];
/* 0x13 */ u8 gender;
/* 0x14 */ u32 linkType;
- /* 0x18 */ u16 lp_field_18;
+ /* 0x18 */ u16 lp_field_18; // battle bank in battles
/* 0x1A */ u16 language;
};
@@ -133,7 +132,7 @@ struct BlockRequest
extern const struct BlockRequest sBlockRequestLookupTable[5];
extern struct Link gLink;
-extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS];
+extern u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH];
extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
extern u16 gLinkType;
extern u32 gLinkStatus;
@@ -144,8 +143,9 @@ extern struct LinkPlayer gLinkPlayers[];
extern u16 word_3002910[];
extern bool8 gReceivedRemoteLinkPlayers;
extern bool8 gLinkVSyncDisabled;
+extern u32 gLinkStatus;
-void Task_DestroySelf(u8);
+void Task_DestroySelf(u8 taskId);
void OpenLink(void);
void CloseLink(void);
u16 LinkMain2(u16 *);
@@ -181,6 +181,7 @@ void LinkVSync(void);
void Timer3Intr(void);
void SerialCB(void);
u8 GetLinkPlayerCount(void);
+bool32 InUnionRoom(void);
void sub_800E0E8(void);
bool8 sub_800A520(void);
@@ -188,11 +189,9 @@ bool8 sub_8010500(void);
void sub_800DFB4(u8, u8);
void sub_800ADF8(void);
void sub_800B488(void);
-void sub_8009734(void);
+void OpenLink(void);
void sub_800A620(void);
void sub_8011BD0(void);
-u8 sub_800ABAC(void);
-u8 sub_800ABBC(void);
void sub_800AC34(void);
bool32 Link_AnyPartnersPlayingRubyOrSapphire(void);
bool32 sub_800A03C(void);
@@ -202,5 +201,6 @@ void sub_8009FAC(void);
void sub_800A4D8(u8);
u8 sub_800A9D8(void);
bool8 sub_801048C(u8);
+u8 sub_800A0C8(s32, s32);
#endif // GUARD_LINK_H
diff --git a/include/list_menu.h b/include/list_menu.h
index 93005e482..8b793c0e4 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -1,38 +1,45 @@
#ifndef GUARD_LIST_MENU_H
#define GUARD_LIST_MENU_H
+#define LIST_NOTHING_CHOSEN -1
+#define LIST_B_PRESSED -2
+
// Exported type declarations
// Exported RAM declarations
-struct ListMenuItem {
- const u8 *unk_00;
- s32 unk_04;
+struct ListMenuItem
+{
+ const u8 *name;
+ s32 id;
};
struct ListMenu;
-struct ListMenuTemplate {
- struct ListMenuItem *unk_00;
- void (* unk_04)(u32, bool8, struct ListMenu *);
+struct ListMenuTemplate
+{
+ const struct ListMenuItem *items;
+ void (* moveCursorFunc)(u32, bool8, struct ListMenu *);
void (* unk_08)(u8, s32, u8);
- u16 unk_0c;
- u16 unk_0e;
+ u16 totalItems;
+ u16 maxShowed;
u8 unk_10;
u8 unk_11;
u8 unk_12;
- u8 unk_13;
- u32 unk_14_0:4;
- u32 unk_14_4:4;
- u32 unk_15_0:4;
- u32 unk_15_4:4;
- u32 unk_16_0:1;
- u32 unk_16_1:6;
- u32 unk_16_7:1;
- u32 unk_17_0:6;
+ u8 cursor_Y;
+ u32 upText_Y:4; // x1, x2, x4, x8 = xF
+ u32 cursorColor:4; // x10, x20, x40, x80 = xF0
+ u32 fillColor:4; // x100, x200, x400, x800 = xF00
+ u32 cursorShadowColor:4; // x1000, x2000, x4000, x8000 = xF000
+ u32 unk_16_0:1; // x10000
+ u32 spaceBetweenItems:6; // x20000, x40000, x80000, x100000, x200000, x400000 = x7E0000
+ u32 unk_16_7:1; // x800000
+ u32 unk_17_0:6; // x1000000, x2000000, x4000000, x8000000, x10000000, x20000000 = x3F000000
+ u32 cursorKind:2; // x40000000, x80000000
};
-struct ListMenu {
+struct ListMenu
+{
struct ListMenuTemplate _template;
u16 scrollOffset;
u16 selectedRow;
@@ -42,13 +49,13 @@ struct ListMenu {
u8 unk_1F;
};
-extern struct ListMenuTemplate gUnknown_03006310;
+extern struct ListMenuTemplate gMultiuseListMenuTemplate;
// Exported ROM declarations
-u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2);
-s32 ListMenuHandleInput(u8 id);
-void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2);
-void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
+u8 ListMenuInit(struct ListMenuTemplate *template, u16 cursorPage, u16 cursorPosition);
+s32 ListMenuHandleInputGetItemId(u8 listTaskId);
+void sub_81AE860(u8 listTaskId, u16 *a1, u16 *a2);
+void sub_81AE6C8(u8 listTaskId, u16 *a1, u16 *a2);
#endif //GUARD_LIST_MENU_H
diff --git a/include/mail.h b/include/mail.h
index 16ca1f676..042586653 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 \
@@ -16,4 +14,20 @@
|| itemId == ITEM_FAB_MAIL \
|| itemId == ITEM_RETRO_MAIL))
+// mail.h
+void ReadMail(struct MailStruct *mail, void (*callback)(void), bool8 flag);
+
+// mail_data.h
+void ClearMailData(void);
+void ClearMailStruct(struct MailStruct *mail);
+bool8 MonHasMail(struct Pokemon *mon);
+u8 GiveMailToMon(struct Pokemon *mon, u16 itemId);
+u16 SpeciesToMailSpecies(u16 species, u32 personality);
+u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer);
+u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail);
+void TakeMailFromMon(struct Pokemon *mon);
+void ClearMailItemId(u8 mailId);
+u8 TakeMailFromMon2(struct Pokemon *mon);
+bool8 ItemIsMail(u16 itemId);
+
#endif // GUARD_MAIL_H
diff --git a/include/mail_data.h b/include/mail_data.h
deleted file mode 100644
index bf6540bad..000000000
--- a/include/mail_data.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef GUARD_MAIL_DATA_H
-#define GUARD_MAIL_DATA_H
-
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-u16 sub_80D45E8(u16, u16 *);
-
-#endif //GUARD_MAIL_DATA_H
diff --git a/include/main.h b/include/main.h
index e283d1754..40a2580a2 100644
--- a/include/main.h
+++ b/include/main.h
@@ -60,5 +60,7 @@ void SetSerialCallback(IntrCallback callback);
void InitFlashTimer(void);
void DoSoftReset(void);
void ClearPokemonCrySongs(void);
+void StartTimer1(void);
+void SeedRngAndSetTrainerId(void);
#endif // GUARD_MAIN_H
diff --git a/include/main_menu.h b/include/main_menu.h
new file mode 100644
index 000000000..08cd913dc
--- /dev/null
+++ b/include/main_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_MAIN_MENU_H
+#define GUARD_MAIN_MENU_H
+
+void CB2_InitMainMenu(void);
+
+#endif // GUARD_MAIN_MENU_H
diff --git a/include/malloc.h b/include/malloc.h
index f3a731797..003ee1f03 100644
--- a/include/malloc.h
+++ b/include/malloc.h
@@ -5,6 +5,12 @@
#define calloc(ct, sz) AllocZeroed((ct) * (sz))
#define free Free
+#define FREE_AND_SET_NULL(ptr) \
+{ \
+ free(ptr); \
+ ptr = NULL; \
+}
+
extern u8 gHeap[];
void *Alloc(u32 size);
void *AllocZeroed(u32 size);
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_obj_8097404.h b/include/map_obj_8097404.h
deleted file mode 100644
index 27ffd18cb..000000000
--- a/include/map_obj_8097404.h
+++ /dev/null
@@ -1,32 +0,0 @@
-//
-// Created by scott on 9/7/2017.
-//
-
-#ifndef GUARD_MAP_OBJ_8097404_H
-#define GUARD_MAP_OBJ_8097404_H
-
-// Exported type declarations
-
-// Exported RAM declarations
-extern void *gUnknown_020375B8;
-
-// Exported ROM declarations
-void sub_8097AC8(struct Sprite *);
-void npc_sync_anim_pause_bits(struct MapObject *);
-void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
-u8 sub_8097F78(struct MapObject *);
-bool8 obj_npc_ministep(struct Sprite *sprite);
-bool8 sub_80976EC(struct Sprite *sprite);
-void sub_80976DC(struct Sprite *, u8);
-void sub_809783C(struct Sprite *, u8, u8, u8);
-void DoShadowFieldEffect(struct MapObject *);
-u8 sub_809785C(struct Sprite *);
-u8 sub_80978E4(struct Sprite *);
-void obj_anim_image_set_and_seek(struct Sprite *, u8, u8);
-bool8 sub_80979BC(struct Sprite *);
-void sub_8097750(struct Sprite *);
-bool8 sub_8097758(struct Sprite *);
-void sub_8097FA4(struct MapObject *);
-void sub_8098044(u8);
-
-#endif //GUARD_MAP_OBJ_8097404_H
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/menu.h b/include/menu.h
index d8b2afc5c..2046f7d2b 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -1,8 +1,13 @@
#ifndef GUARD_MENU_H
#define GUARD_MENU_H
+#include "task.h"
+#include "text.h"
#include "window.h"
+#define MENU_NOTHING_CHOSEN -2
+#define MENU_B_PRESSED -1
+
struct MenuAction
{
const u8 *text;
@@ -12,22 +17,47 @@ struct MenuAction
} func;
};
-void box_print(u8, u8, u8, u8, const void *, s8, const u8 *);
+void sub_81971D0(void);
+void sub_8197200(void);
+u16 sub_8197224(void);
+void sub_81973A4(void);
+void NewMenuHelpers_DrawDialogueFrame(u8, u8);
+void sub_819746C(u8 windowId, bool8 copyToVram);
+void NewMenuHelpers_DrawStdWindowFrame(u8, u8);
+u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
+void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
+void sub_8197434(u8 a0, u8 a1);
+void SetStandardWindowBorderStyle(u8 a0, u8 a1);
+void sub_8197930(void);
+u8 GetPlayerTextSpeed(void);
+void sub_81978B0(u16 arg0);
+
+void box_print(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
void sub_8198070(u8 windowId, bool8 copyToVram);
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette);
void schedule_bg_copy_tilemap_to_vram(u8 bgNum);
-void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs);
-void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
+void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs);
+u8 InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 windowId, u8 numItems, u8 initialCursorPos);
u8 GetMenuCursorPos(void);
s8 ProcessMenuInput(void);
s8 ProcessMenuInputNoWrapAround(void);
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void reset_temp_tile_data_buffers(void);
-int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode);
+void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode);
bool8 free_temp_tile_data_buffers_if_possible(void);
-u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
+struct WindowTemplate sub_8198A50(u8, u8, u8, u8, u8, u8, u16);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
-s8 sub_8198C58(void);
+s8 ProcessMenuInputNoWrap_(void);
+void do_scheduled_bg_tilemap_copies_to_vram(void);
+void clear_scheduled_bg_copies_to_vram(void);
+void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str);
+void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u8 a3);
+void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds);
+void sub_8197DF8(u8 windowId, bool8 copyToVram);
+u16 sub_8198AA4(u8, u8, u8, u8, u8, u8, u16);
+void *malloc_and_decompress(const void *src, int *sizeOut);
+u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode);
+void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);
#endif // GUARD_MENU_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index f083a10e2..048a4aa43 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -1,9 +1,12 @@
#ifndef GUARD_MENU_HELPERS_H
#define GUARD_MENU_HELPERS_H
+#include "task.h"
+
// Exported type declarations
-struct YesNoFuncTable {
+struct YesNoFuncTable
+{
TaskFunc yesFunc;
TaskFunc noFunc;
};
@@ -16,5 +19,18 @@ void sub_812225C(u16 *, u16 *, u8, u8);
void sub_8122298(u16 *, u16 *, u8, u8, u8);
void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
bool8 sub_81221AC(void);
+bool8 sub_81221EC(void);
+void ResetVramOamAndBgCntRegs(void);
+void SetVBlankHBlankCallbacksToNull(void);
+void ResetAllBgsCoordinates(void);
+bool16 RunTextPrintersRetIsActive(u8 textPrinterId);
+void sub_8122344(void *arg0, u8 arg1);
+void LoadListMenuArrowsGfx(void);
+void sub_81223FC(u8 *a0, u8 count, u8 a2);
+void sub_8122448(u8 *a0, u8 count, u16 x, u16 y);
+void DisplayMessageAndContinueTask(u8 taskId, u8 arg1, u16 arg2, u8 arg3, u8 arg4, u8 textSpeed, const u8 *string, void *taskFunc);
+void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
+u8 GetLRKeysState(void);
+u8 sub_812210C(void);
#endif //GUARD_MENU_HELPERS_H
diff --git a/include/moves.h b/include/moves.h
deleted file mode 100644
index 682f59506..000000000
--- a/include/moves.h
+++ /dev/null
@@ -1,366 +0,0 @@
-#ifndef GUARD_MOVES_H
-#define GUARD_MOVES_H
-
-enum
-{
- MOVE_NONE,
- MOVE_POUND,
- MOVE_KARATE_CHOP,
- MOVE_DOUBLE_SLAP,
- MOVE_COMET_PUNCH,
- MOVE_MEGA_PUNCH,
- MOVE_PAY_DAY,
- MOVE_FIRE_PUNCH,
- MOVE_ICE_PUNCH,
- MOVE_THUNDER_PUNCH,
- MOVE_SCRATCH,
- MOVE_VICE_GRIP,
- MOVE_GUILLOTINE,
- MOVE_RAZOR_WIND,
- MOVE_SWORDS_DANCE,
- MOVE_CUT,
- MOVE_GUST,
- MOVE_WING_ATTACK,
- MOVE_WHIRLWIND,
- MOVE_FLY,
- MOVE_BIND,
- MOVE_SLAM,
- MOVE_VINE_WHIP,
- MOVE_STOMP,
- MOVE_DOUBLE_KICK,
- MOVE_MEGA_KICK,
- MOVE_JUMP_KICK,
- MOVE_ROLLING_KICK,
- MOVE_SAND_ATTACK,
- MOVE_HEADBUTT,
- MOVE_HORN_ATTACK,
- MOVE_FURY_ATTACK,
- MOVE_HORN_DRILL,
- MOVE_TACKLE,
- MOVE_BODY_SLAM,
- MOVE_WRAP,
- MOVE_TAKE_DOWN,
- MOVE_THRASH,
- MOVE_DOUBLE_EDGE,
- MOVE_TAIL_WHIP,
- MOVE_POISON_STING,
- MOVE_TWINEEDLE,
- MOVE_PIN_MISSILE,
- MOVE_LEER,
- MOVE_BITE,
- MOVE_GROWL,
- MOVE_ROAR,
- MOVE_SING,
- MOVE_SUPERSONIC,
- MOVE_SONIC_BOOM,
- MOVE_DISABLE,
- MOVE_ACID,
- MOVE_EMBER,
- MOVE_FLAMETHROWER,
- MOVE_MIST,
- MOVE_WATER_GUN,
- MOVE_HYDRO_PUMP,
- MOVE_SURF,
- MOVE_ICE_BEAM,
- MOVE_BLIZZARD,
- MOVE_PSYBEAM,
- MOVE_BUBBLE_BEAM,
- MOVE_AURORA_BEAM,
- MOVE_HYPER_BEAM,
- MOVE_PECK,
- MOVE_DRILL_PECK,
- MOVE_SUBMISSION,
- MOVE_LOW_KICK,
- MOVE_COUNTER,
- MOVE_SEISMIC_TOSS,
- MOVE_STRENGTH,
- MOVE_ABSORB,
- MOVE_MEGA_DRAIN,
- MOVE_LEECH_SEED,
- MOVE_GROWTH,
- MOVE_RAZOR_LEAF,
- MOVE_SOLAR_BEAM,
- MOVE_POISON_POWDER,
- MOVE_STUN_SPORE,
- MOVE_SLEEP_POWDER,
- MOVE_PETAL_DANCE,
- MOVE_STRING_SHOT,
- MOVE_DRAGON_RAGE,
- MOVE_FIRE_SPIN,
- MOVE_THUNDER_SHOCK,
- MOVE_THUNDERBOLT,
- MOVE_THUNDER_WAVE,
- MOVE_THUNDER,
- MOVE_ROCK_THROW,
- MOVE_EARTHQUAKE,
- MOVE_FISSURE,
- MOVE_DIG,
- MOVE_TOXIC,
- MOVE_CONFUSION,
- MOVE_PSYCHIC,
- MOVE_HYPNOSIS,
- MOVE_MEDITATE,
- MOVE_AGILITY,
- MOVE_QUICK_ATTACK,
- MOVE_RAGE,
- MOVE_TELEPORT,
- MOVE_NIGHT_SHADE,
- MOVE_MIMIC,
- MOVE_SCREECH,
- MOVE_DOUBLE_TEAM,
- MOVE_RECOVER,
- MOVE_HARDEN,
- MOVE_MINIMIZE,
- MOVE_SMOKESCREEN,
- MOVE_CONFUSE_RAY,
- MOVE_WITHDRAW,
- MOVE_DEFENSE_CURL,
- MOVE_BARRIER,
- MOVE_LIGHT_SCREEN,
- MOVE_HAZE,
- MOVE_REFLECT,
- MOVE_FOCUS_ENERGY,
- MOVE_BIDE,
- MOVE_METRONOME,
- MOVE_MIRROR_MOVE,
- MOVE_SELF_DESTRUCT,
- MOVE_EGG_BOMB,
- MOVE_LICK,
- MOVE_SMOG,
- MOVE_SLUDGE,
- MOVE_BONE_CLUB,
- MOVE_FIRE_BLAST,
- MOVE_WATERFALL,
- MOVE_CLAMP,
- MOVE_SWIFT,
- MOVE_SKULL_BASH,
- MOVE_SPIKE_CANNON,
- MOVE_CONSTRICT,
- MOVE_AMNESIA,
- MOVE_KINESIS,
- MOVE_SOFT_BOILED,
- MOVE_HI_JUMP_KICK,
- MOVE_GLARE,
- MOVE_DREAM_EATER,
- MOVE_POISON_GAS,
- MOVE_BARRAGE,
- MOVE_LEECH_LIFE,
- MOVE_LOVELY_KISS,
- MOVE_SKY_ATTACK,
- MOVE_TRANSFORM,
- MOVE_BUBBLE,
- MOVE_DIZZY_PUNCH,
- MOVE_SPORE,
- MOVE_FLASH,
- MOVE_PSYWAVE,
- MOVE_SPLASH,
- MOVE_ACID_ARMOR,
- MOVE_CRABHAMMER,
- MOVE_EXPLOSION,
- MOVE_FURY_SWIPES,
- MOVE_BONEMERANG,
- MOVE_REST,
- MOVE_ROCK_SLIDE,
- MOVE_HYPER_FANG,
- MOVE_SHARPEN,
- MOVE_CONVERSION,
- MOVE_TRI_ATTACK,
- MOVE_SUPER_FANG,
- MOVE_SLASH,
- MOVE_SUBSTITUTE,
- MOVE_STRUGGLE,
- MOVE_SKETCH,
- MOVE_TRIPLE_KICK,
- MOVE_THIEF,
- MOVE_SPIDER_WEB,
- MOVE_MIND_READER,
- MOVE_NIGHTMARE,
- MOVE_FLAME_WHEEL,
- MOVE_SNORE,
- MOVE_CURSE,
- MOVE_FLAIL,
- MOVE_CONVERSION_2,
- MOVE_AEROBLAST,
- MOVE_COTTON_SPORE,
- MOVE_REVERSAL,
- MOVE_SPITE,
- MOVE_POWDER_SNOW,
- MOVE_PROTECT,
- MOVE_MACH_PUNCH,
- MOVE_SCARY_FACE,
- MOVE_FAINT_ATTACK,
- MOVE_SWEET_KISS,
- MOVE_BELLY_DRUM,
- MOVE_SLUDGE_BOMB,
- MOVE_MUD_SLAP,
- MOVE_OCTAZOOKA,
- MOVE_SPIKES,
- MOVE_ZAP_CANNON,
- MOVE_FORESIGHT,
- MOVE_DESTINY_BOND,
- MOVE_PERISH_SONG,
- MOVE_ICY_WIND,
- MOVE_DETECT,
- MOVE_BONE_RUSH,
- MOVE_LOCK_ON,
- MOVE_OUTRAGE,
- MOVE_SANDSTORM,
- MOVE_GIGA_DRAIN,
- MOVE_ENDURE,
- MOVE_CHARM,
- MOVE_ROLLOUT,
- MOVE_FALSE_SWIPE,
- MOVE_SWAGGER,
- MOVE_MILK_DRINK,
- MOVE_SPARK,
- MOVE_FURY_CUTTER,
- MOVE_STEEL_WING,
- MOVE_MEAN_LOOK,
- MOVE_ATTRACT,
- MOVE_SLEEP_TALK,
- MOVE_HEAL_BELL,
- MOVE_RETURN,
- MOVE_PRESENT,
- MOVE_FRUSTRATION,
- MOVE_SAFEGUARD,
- MOVE_PAIN_SPLIT,
- MOVE_SACRED_FIRE,
- MOVE_MAGNITUDE,
- MOVE_DYNAMIC_PUNCH,
- MOVE_MEGAHORN,
- MOVE_DRAGON_BREATH,
- MOVE_BATON_PASS,
- MOVE_ENCORE,
- MOVE_PURSUIT,
- MOVE_RAPID_SPIN,
- MOVE_SWEET_SCENT,
- MOVE_IRON_TAIL,
- MOVE_METAL_CLAW,
- MOVE_VITAL_THROW,
- MOVE_MORNING_SUN,
- MOVE_SYNTHESIS,
- MOVE_MOONLIGHT,
- MOVE_HIDDEN_POWER,
- MOVE_CROSS_CHOP,
- MOVE_TWISTER,
- MOVE_RAIN_DANCE,
- MOVE_SUNNY_DAY,
- MOVE_CRUNCH,
- MOVE_MIRROR_COAT,
- MOVE_PSYCH_UP,
- MOVE_EXTREME_SPEED,
- MOVE_ANCIENT_POWER,
- MOVE_SHADOW_BALL,
- MOVE_FUTURE_SIGHT,
- MOVE_ROCK_SMASH,
- MOVE_WHIRLPOOL,
- MOVE_BEAT_UP,
- MOVE_FAKE_OUT,
- MOVE_UPROAR,
- MOVE_STOCKPILE,
- MOVE_SPIT_UP,
- MOVE_SWALLOW,
- MOVE_HEAT_WAVE,
- MOVE_HAIL,
- MOVE_TORMENT,
- MOVE_FLATTER,
- MOVE_WILL_O_WISP,
- MOVE_MEMENTO,
- MOVE_FACADE,
- MOVE_FOCUS_PUNCH,
- MOVE_SMELLING_SALT,
- MOVE_FOLLOW_ME,
- MOVE_NATURE_POWER,
- MOVE_CHARGE,
- MOVE_TAUNT,
- MOVE_HELPING_HAND,
- MOVE_TRICK,
- MOVE_ROLE_PLAY,
- MOVE_WISH,
- MOVE_ASSIST,
- MOVE_INGRAIN,
- MOVE_SUPERPOWER,
- MOVE_MAGIC_COAT,
- MOVE_RECYCLE,
- MOVE_REVENGE,
- MOVE_BRICK_BREAK,
- MOVE_YAWN,
- MOVE_KNOCK_OFF,
- MOVE_ENDEAVOR,
- MOVE_ERUPTION,
- MOVE_SKILL_SWAP,
- MOVE_IMPRISON,
- MOVE_REFRESH,
- MOVE_GRUDGE,
- MOVE_SNATCH,
- MOVE_SECRET_POWER,
- MOVE_DIVE,
- MOVE_ARM_THRUST,
- MOVE_CAMOUFLAGE,
- MOVE_TAIL_GLOW,
- MOVE_LUSTER_PURGE,
- MOVE_MIST_BALL,
- MOVE_FEATHER_DANCE,
- MOVE_TEETER_DANCE,
- MOVE_BLAZE_KICK,
- MOVE_MUD_SPORT,
- MOVE_ICE_BALL,
- MOVE_NEEDLE_ARM,
- MOVE_SLACK_OFF,
- MOVE_HYPER_VOICE,
- MOVE_POISON_FANG,
- MOVE_CRUSH_CLAW,
- MOVE_BLAST_BURN,
- MOVE_HYDRO_CANNON,
- MOVE_METEOR_MASH,
- MOVE_ASTONISH,
- MOVE_WEATHER_BALL,
- MOVE_AROMATHERAPY,
- MOVE_FAKE_TEARS,
- MOVE_AIR_CUTTER,
- MOVE_OVERHEAT,
- MOVE_ODOR_SLEUTH,
- MOVE_ROCK_TOMB,
- MOVE_SILVER_WIND,
- MOVE_METAL_SOUND,
- MOVE_GRASS_WHISTLE,
- MOVE_TICKLE,
- MOVE_COSMIC_POWER,
- MOVE_WATER_SPOUT,
- MOVE_SIGNAL_BEAM,
- MOVE_SHADOW_PUNCH,
- MOVE_EXTRASENSORY,
- MOVE_SKY_UPPERCUT,
- MOVE_SAND_TOMB,
- MOVE_SHEER_COLD,
- MOVE_MUDDY_WATER,
- MOVE_BULLET_SEED,
- MOVE_AERIAL_ACE,
- MOVE_ICICLE_SPEAR,
- MOVE_IRON_DEFENSE,
- MOVE_BLOCK,
- MOVE_HOWL,
- MOVE_DRAGON_CLAW,
- MOVE_FRENZY_PLANT,
- MOVE_BULK_UP,
- MOVE_BOUNCE,
- MOVE_MUD_SHOT,
- MOVE_POISON_TAIL,
- MOVE_COVET,
- MOVE_VOLT_TACKLE,
- MOVE_MAGICAL_LEAF,
- MOVE_WATER_SPORT,
- MOVE_CALM_MIND,
- MOVE_LEAF_BLADE,
- MOVE_DRAGON_DANCE,
- MOVE_ROCK_BLAST,
- MOVE_SHOCK_WAVE,
- MOVE_WATER_PULSE,
- MOVE_DOOM_DESIRE,
- MOVE_PSYCHO_BOOST,
-};
-extern const u8 gMoveNames[][13];
-
-#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST
-
-#endif // GUARD_MOVES_H
diff --git a/include/mystery_event_menu.h b/include/mystery_event_menu.h
new file mode 100644
index 000000000..8801789d9
--- /dev/null
+++ b/include/mystery_event_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_MYSTERY_EVENT_MENU_H
+#define GUARD_MYSTERY_EVENT_MENU_H
+
+void CB2_InitMysteryEventMenu(void);
+
+#endif // GUARD_MYSTERY_EVENT_MENU_H
diff --git a/include/mystery_event_msg.h b/include/mystery_event_msg.h
new file mode 100644
index 000000000..465b60ccb
--- /dev/null
+++ b/include/mystery_event_msg.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_MYSTERY_EVENT_MSG_H
+#define GUARD_MYSTERY_EVENT_MSG_H
+
+extern const u8 gText_MysteryGiftBerry[];
+extern const u8 gText_MysteryGiftBerryTransform[];
+extern const u8 gText_MysteryGiftBerryObtained[];
+extern const u8 gText_MysteryGiftSpecialRibbon[];
+extern const u8 gText_MysteryGiftNationalDex[];
+extern const u8 gText_MysteryGiftRareWord[];
+extern const u8 gText_MysteryGiftSentOver[];
+extern const u8 gText_MysteryGiftFullParty[];
+extern const u8 gText_MysteryGiftNewTrainer[];
+extern const u8 gText_MysteryGiftNewAdversaryInBattleTower[];
+extern const u8 gText_MysteryGiftCantBeUsed[];
+
+#endif // GUARD_MYSTERY_EVENT_MSG_H
diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h
index 1fad6c485..0857c7188 100644
--- a/include/mystery_event_script.h
+++ b/include/mystery_event_script.h
@@ -1,9 +1,11 @@
#ifndef GUARD_MYSTERY_EVENT_SCRIPT_H
#define GUARD_MYSTERY_EVENT_SCRIPT_H
-u32 RunMysteryEventScript(u8 *);
+void sub_8153870(u8 *script);
+bool32 sub_8153884(u32 *a0);
+u32 RunMysteryEventScript(u8 *script);
void SetMysteryEventScriptStatus(u32 val);
u16 GetRecordMixingGift(void);
-u16 sub_81539D4(void);
+u16 GetRecordMixingGift(void);
#endif // GUARD_MYSTERY_EVENT_SCRIPT_H
diff --git a/include/naming_screen.h b/include/naming_screen.h
index 3d69b834f..b04cb19b6 100644
--- a/include/naming_screen.h
+++ b/include/naming_screen.h
@@ -1,12 +1,89 @@
#ifndef GUARD_NAMING_SCREEN_H
#define GUARD_NAMING_SCREEN_H
-#define NAMING_SCREEN_PLAYER 0
-#define NAMING_SCREEN_BOX 1
-#define NAMING_SCREEN_CAUGHT_MON 2
-#define NAMING_SCREEN_3 3
-#define NAMING_SCREEN_WALDA 4
+#include "main.h"
-void DoNamingScreen(u8 caseId, u8* dst, u16 monSpecies, u8 monGender, u32 monPersonality, void (*callback)(void));
+#define KBEVENT_NONE 0
+#define KBEVENT_PRESSED_A 5
+#define KBEVENT_PRESSED_B 6
+#define KBEVENT_PRESSED_SELECT 8
+#define KBEVENT_PRESSED_START 9
+
+enum
+{
+ NAMING_SCREEN_PLAYER,
+ NAMING_SCREEN_BOX,
+ NAMING_SCREEN_CAUGHT_MON,
+ NAMING_SCREEN_3,
+ NAMING_SCREEN_WALDA,
+};
+
+struct NamingScreenTemplate
+{
+ u8 copyExistingString;
+ u8 maxChars;
+ u8 iconFunction;
+ u8 addGenderIcon;
+ u8 initialPage;
+ u8 unused;
+ const u8 *title;
+};
+
+struct NamingScreenData {
+ /*0x0*/ u8 tilemapBuffer1[0x800];
+ /*0x800*/ u8 tilemapBuffer2[0x800];
+ /*0x800*/ u8 tilemapBuffer3[0x800];
+ /*0x1800*/ u8 textBuffer[0x10];
+ /*0x1810*/ u8 tileBuffer[0x600];
+ /*0x1E10*/ u8 state;
+ /*0x1E11*/ u8 windows[5];
+ /*0x1E16*/ u16 inputCharBaseXPos;
+ /*0x1E18*/ u16 bg1vOffset;
+ /*0x1E1A*/ u16 bg2vOffset;
+ /*0x1E1C*/ u16 bg1Priority;
+ /*0x1E1E*/ u16 bg2Priority;
+ /*0x1E20*/ u8 bgToReveal;
+ /*0x1E21*/ u8 bgToHide;
+ /*0x1E22*/ u8 currentPage;
+ /*0x1E23*/ u8 cursorSpriteId;
+ /*0x1E24*/ u8 selectBtnFrameSpriteId;
+ /*0x1E25*/ u8 keyRepeatStartDelayCopy;
+ /*0x1E28*/ const struct NamingScreenTemplate *template;
+ /*0x1E2C*/ u8 templateNum;
+ /*0x1E30*/ u8 *destBuffer;
+ /*0x1E34*/ u16 monSpecies;
+ /*0x1E36*/ u16 monGender;
+ /*0x1E38*/ u32 monPersonality;
+ /*0x1E3C*/ MainCallback returnCallback;
+};
+
+enum
+{
+ PAGE_UPPER,
+ PAGE_LOWER,
+ PAGE_OTHERS,
+};
+
+enum
+{
+ MAIN_STATE_BEGIN_FADE_IN,
+ MAIN_STATE_WAIT_FADE_IN,
+ MAIN_STATE_HANDLE_INPUT,
+ MAIN_STATE_MOVE_TO_OK_BUTTON,
+ MAIN_STATE_START_PAGE_SWAP,
+ MAIN_STATE_WAIT_PAGE_SWAP,
+ MAIN_STATE_6,
+ MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE,
+ MAIN_STATE_BEGIN_FADE_OUT,
+};
+
+enum
+{
+ INPUT_STATE_DISABLED,
+ INPUT_STATE_ENABLED,
+ INPUT_STATE_2,
+};
+
+void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback);
#endif // GUARD_NAMING_SCREEN_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
deleted file mode 100644
index 42b8c60b1..000000000
--- a/include/new_menu_helpers.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef GUARD_NEW_MENU_HELPERS_H
-#define GUARD_NEW_MENU_HELPERS_H
-
-#include "text.h"
-#include "task.h"
-
-void sub_81973A4(void);
-void sub_81973C4(u8, u8);
-void sub_819746C(u8 windowId, bool8 copyToVram);
-void sub_81973FC(u8, u8);
-u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor);
-void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
-void sub_8197434(u8 a0, u8 a1);
-void SetStandardWindowBorderStyle(u8 a0, u8 a1);
-void sub_8197930(void);
-
-#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/option_menu.h b/include/option_menu.h
new file mode 100644
index 000000000..b23a73c4c
--- /dev/null
+++ b/include/option_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_OPTION_MENU_H
+#define GUARD_OPTION_MENU_H
+
+void CB2_InitOptionMenu(void);
+
+#endif // GUARD_OPTION_MENU_H
diff --git a/include/overworld.h b/include/overworld.h
index 63c54eee3..b7ed920db 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -42,6 +42,9 @@ void sub_8084EBC(s16, s16);
void player_avatar_init_params_reset(void);
+bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType);
+void Overworld_ResetStateAfterTeleport(void);
+
void Overworld_SetFlashLevel(s32 a1);
//u8 Overworld_GetFlashLevel(void);
void sub_8085524(u16);
@@ -53,17 +56,27 @@ void Overworld_ChangeMusicTo(u16);
bool32 is_c1_link_related_active(void);
void strange_npc_table_clear(void);
-const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8);
+const struct MapHeader *get_mapheader_by_bank_and_number(u16, u16);
void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *);
void sub_8086230(void);
void c2_exit_to_overworld_2_switch(void);
bool32 sub_8087598(void);
void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
void warp_in(void);
+u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum);
+void sub_8086194(void);
+void sub_8084CCC(u8 spawn);
void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpNum);
void c2_load_new_map(void);
void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
void mapldr_default(void);
void sub_808729C(void);
+u8 get_map_light_from_warp0(void);
+bool8 is_light_level_1_2_3_5_or_6(u8 a1);
+
+void IncrementGameStat(u8);
+u32 GetGameStat(u8);
+
+void CB2_OverworldBasic(void);
#endif //GUARD_ROM4_H
diff --git a/include/palette.h b/include/palette.h
index d3bcd2271..41cef4048 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -14,7 +14,7 @@
enum
{
FAST_FADE_IN_FROM_WHITE,
- FAST_FADE_OUT_TO_WHTIE,
+ FAST_FADE_OUT_TO_WHITE,
FAST_FADE_IN_FROM_BLACK,
FAST_FADE_OUT_TO_BLACK,
};
@@ -67,5 +67,6 @@ void BeginFastPaletteFade(u8);
void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
void BlendPalettes(u32, u8, u16);
void BlendPalettesUnfaded(u32, u8, u16);
+void sub_80A2C44(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7);
#endif // GUARD_PALETTE_H
diff --git a/include/party_menu.h b/include/party_menu.h
index c93f63a6d..1d1661cee 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -1,7 +1,22 @@
#ifndef GUARD_PARTY_MENU_H
#define GUARD_PARTY_MENU_H
+enum
+{
+ AILMENT_NONE,
+ AILMENT_PSN,
+ AILMENT_PRZ,
+ AILMENT_SLP,
+ AILMENT_FRZ,
+ AILMENT_BRN
+};
+
bool8 pokemon_has_move(struct Pokemon *, u16);
+void sub_81B58A8(void);
void DoWallyTutorialBagMenu(void);
+u8 pokemon_ailments_get_primary(u32 status);
+u8 *GetMonNickname(struct Pokemon *mon, u8 *dst);
+u8 GetCursorSelectionMonId(void);
+bool8 FieldCallback_Teleport(void);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/pokeball.h b/include/pokeball.h
index 76f084465..84178b5b2 100644
--- a/include/pokeball.h
+++ b/include/pokeball.h
@@ -1,8 +1,32 @@
#ifndef GUARD_POKEBALL_H
#define GUARD_POKEBALL_H
-u8 sub_80753E8(u16, u8);
+enum
+{
+ BALL_POKE,
+ BALL_GREAT,
+ BALL_SAFARI,
+ BALL_ULTRA,
+ BALL_MASTER,
+ BALL_NET,
+ BALL_DIVE,
+ BALL_NEST,
+ BALL_REPEAT,
+ BALL_TIMER,
+ BALL_LUXURY,
+ BALL_PREMIER,
+ POKEBALL_COUNT
+};
+
+#define POKEBALL_PLAYER_SENDOUT 0xFF
+#define POKEBALL_OPPONENT_SENDOUT 0xFE
+
+u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow);
+void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species);
+u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h);
void sub_8076918(u8 bank);
void DoHitAnimHealthboxEffect(u8 bank);
+void LoadBallGfx(u8 ballId);
+void FreeBallGfx(u8 ballId);
#endif // GUARD_POKEBALL_H
diff --git a/include/pokeblock.h b/include/pokeblock.h
index 5d52f8e55..6dd07b689 100644
--- a/include/pokeblock.h
+++ b/include/pokeblock.h
@@ -1,6 +1,9 @@
#ifndef GUARD_POKEBLOCK_H
#define GUARD_POKEBLOCK_H
+#define GFX_TAG_POKEBLOCK 14818
+#define GFX_TAG_POKEBLOCK_CASE 14800
+
enum
{
PBLOCK_CLR_BLACK,
@@ -22,24 +25,44 @@ enum
PBLOCK_FEEL,
};
-void ClearPokeblocks(void);
+enum
+{
+ PBLOCK_CASE_FIELD,
+ PBLOCK_CASE_BATTLE,
+ PBLOCK_CASE_FEEDER,
+ PBLOCK_CASE_GIVE
+};
+
+// use pokeblock
+extern u8 gPokeblockMonId;
+extern s16 gPokeblockGain;
-/*
-void sub_810B96C(void);
-u8 sub_810BA50(s16, s16, u8);
-u8 sub_810C9B0(struct Pokeblock *);
-s16 GetPokeblockData(const struct Pokeblock *, u8);
-u8 sub_810C9E8(struct Pokeblock *);
-void sub_810BA7C(u8);
-bool8 PokeblockClearIfExists(u8);
-s16 PokeblockGetGain(u8, const struct Pokeblock *);
-u8 sub_810CB68(u8, u8*);
-void PokeblockCopyName(struct Pokeblock *pokeblock, u8 *dest);
+void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void));
+
+// pokeblock feed
void CB2_PreparePokeblockFeedScene(void);
-#include "main.h"
+// pokeblock
+extern const s8 gPokeblockFlavorCompatibilityTable[];
+extern const u8 *const gPokeblockNames[];
+extern const struct CompressedSpriteSheet gPokeblockCase_SpriteSheet;
+extern const struct CompressedSpritePalette gPokeblockCase_SpritePal;
-void sub_8136130(struct Pokeblock *, MainCallback);
-*/
+void OpenPokeblockCase(u8 caseId, void (*callback)(void));
+void OpenPokeblockCaseInBattle(void);
+void OpenPokeblockCaseOnFeeder(void);
+void ResetPokeblockScrollPositions(void);
+u8 CreatePokeblockCaseSprite(s16 x, s16 y, u8 subpriority);
+void ClearPokeblocks(void);
+u8 GetHighestPokeblocksFlavorLevel(const struct Pokeblock *pokeblock);
+u8 GetPokeblocksFeel(const struct Pokeblock *pokeblock);
+s8 GetFirstFreePokeblockSlot(void);
+bool32 AddPokeblock(const struct Pokeblock *pokeblock);
+bool32 TryClearPokeblock(u8 pkblId);
+s16 GetPokeblockData(const struct Pokeblock *pokeblock, u8 field);
+s16 PokeblockGetGain(u8 nature, const struct Pokeblock *pokeblock);
+void PokeblockCopyName(const struct Pokeblock *pokeblock, u8 *dest);
+bool8 CopyMonFavoritePokeblockName(u8 nature, u8 *dest);
+u8 GetPokeblocksFlavor(const struct Pokeblock *pokeblock);
#endif // GUARD_POKEBLOCK_H
diff --git a/include/pokedex.h b/include/pokedex.h
index 79721899f..236feac45 100644
--- a/include/pokedex.h
+++ b/include/pokedex.h
@@ -2,7 +2,7 @@
#define GUARD_POKEDEX_H
void ResetPokedex(void);
-const u8 *GetPokemonCategory(u16);
+void CopyMonCategoryText(u16 species, u8 *dst);
u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
u16 GetNationalPokedexCount(u8);
u16 GetHoennPokedexCount(u8);
diff --git a/include/pokemon.h b/include/pokemon.h
index 0c7d6ac40..de52696dd 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKEMON_H
#define GUARD_POKEMON_H
+#include "constants/pokemon.h"
+
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
@@ -107,82 +109,11 @@
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
-#define TYPE_NORMAL 0x00
-#define TYPE_FIGHTING 0x01
-#define TYPE_FLYING 0x02
-#define TYPE_POISON 0x03
-#define TYPE_GROUND 0x04
-#define TYPE_ROCK 0x05
-#define TYPE_BUG 0x06
-#define TYPE_GHOST 0x07
-#define TYPE_STEEL 0x08
-#define TYPE_MYSTERY 0x09
-#define TYPE_FIRE 0x0a
-#define TYPE_WATER 0x0b
-#define TYPE_GRASS 0x0c
-#define TYPE_ELECTRIC 0x0d
-#define TYPE_PSYCHIC 0x0e
-#define TYPE_ICE 0x0f
-#define TYPE_DRAGON 0x10
-#define TYPE_DARK 0x11
-
-#define NUMBER_OF_MON_TYPES 0x12
-
-#define PARTY_SIZE 6
#define MAX_TOTAL_EVS 510
#define NUM_STATS 6
#define UNOWN_FORM_COUNT 28
#define MAX_MON_LEVEL 100
-enum
-{
- EGG_GROUP_NONE,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- EGG_GROUP_BUG,
- EGG_GROUP_FLYING,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_WATER_3,
- EGG_GROUP_MINERAL,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_WATER_2,
- EGG_GROUP_DITTO,
- EGG_GROUP_DRAGON,
- EGG_GROUP_UNDISCOVERED
-};
-
-enum
-{
- NATURE_HARDY,
- NATURE_LONELY,
- NATURE_BRAVE,
- NATURE_ADAMANT,
- NATURE_NAUGHTY,
- NATURE_BOLD,
- NATURE_DOCILE,
- NATURE_RELAXED,
- NATURE_IMPISH,
- NATURE_LAX,
- NATURE_TIMID,
- NATURE_HASTY,
- NATURE_SERIOUS,
- NATURE_JOLLY,
- NATURE_NAIVE,
- NATURE_MODEST,
- NATURE_MILD,
- NATURE_QUIET,
- NATURE_BASHFUL,
- NATURE_RASH,
- NATURE_CALM,
- NATURE_GENTLE,
- NATURE_SASSY,
- NATURE_CAREFUL,
- NATURE_QUIRKY,
-};
-
struct PokemonSubstruct0
{
u16 species;
@@ -375,28 +306,6 @@ struct BattlePokemon
/*0x54*/ u32 otId;
};
-enum
-{
- STAT_STAGE_HP, // 0
- STAT_STAGE_ATK, // 1
- STAT_STAGE_DEF, // 2
- STAT_STAGE_SPEED, // 3
- STAT_STAGE_SPATK, // 4
- STAT_STAGE_SPDEF, // 5
- STAT_STAGE_ACC, // 6
- STAT_STAGE_EVASION, // 7
-};
-
-enum
-{
- STAT_HP, // 0
- STAT_ATK, // 1
- STAT_DEF, // 2
- STAT_SPD, // 3
- STAT_SPATK, // 4
- STAT_SPDEF, // 5
-};
-
struct BaseStats
{
/* 0x00 */ u8 baseHP;
@@ -509,10 +418,7 @@ struct Evolution
u16 targetSpecies;
};
-struct EvolutionData
-{
- struct Evolution evolutions[5];
-};
+#define EVOS_PER_MON 5
extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[PARTY_SIZE];
@@ -520,7 +426,7 @@ extern u8 gEnemyPartyCount;
extern struct Pokemon gEnemyParty[PARTY_SIZE];
extern const struct BaseStats gBaseStats[];
extern const u8 *const gItemEffectTable[];
-extern const struct EvolutionData gEvolutionTable[];
+extern const struct Evolution gEvolutionTable[][EVOS_PER_MON];
extern struct PokemonStorage* gPokemonStoragePtr;
extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];
extern const u16 *const gLevelUpLearnsets[];
@@ -612,8 +518,8 @@ u32 CanMonLearnTMHM(struct Pokemon *, u8);
u32 CanSpeciesLearnTMHM(u16 species, u8 tm);
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
void ClearBattleMonForms(void);
-const u8 *pokemon_get_pal(struct Pokemon *mon);
-const u8 *species_and_otid_get_pal(u16, u32, u32);
+const u8 *GetMonFrontSpritePal(struct Pokemon *mon);
+const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32);
const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32);
bool8 IsOtherTrainer(u32, u8 *);
void SetWildMonHeldItem(void);
@@ -629,7 +535,7 @@ bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
bool8 IsTradedMon(struct Pokemon *mon);
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
-s32 GetBankMultiplayerId(u16 a1);
+s32 GetBattlerMultiplayerId(u16 a1);
bool16 sub_806D82C(u8 id);
u16 MonTryLearningNewMove(struct Pokemon* mon, bool8);
void sub_8068AA4(void); // sets stats for deoxys
@@ -640,14 +546,18 @@ u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
void UpdatePartyPokerusTime(u16 days);
void PartySpreadPokerus(struct Pokemon *party);
-s8 GetMonFlavourRelation(struct Pokemon *mon, u8 a2);
-s8 GetFlavourRelationByPersonality(u32 personality, u8 a2);
+s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2);
+s8 GetFlavorRelationByPersonality(u32 personality, u8 a2);
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
u8 GetDefaultMoveTarget(u8 atkBank);
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);
void sub_806A1C0(u16 arg0, u8 bankIdentity);
void sub_806A12C(u16 trainerSpriteId, u8 bankIdentity);
u8 GetSecretBaseTrainerPicIndex(void);
+bool8 TryIncrementMonLevel(struct Pokemon *mon);
+void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon);
+u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
+u8 GetMonsStateToDoubles_2(void);
#include "sprite.h"
diff --git a/include/pokemon_3.h b/include/pokemon_3.h
index 5c9862d57..82dfacf48 100644
--- a/include/pokemon_3.h
+++ b/include/pokemon_3.h
@@ -3,5 +3,7 @@
const u8* GetTrainerClassNameFromId(u16 trainerId);
const u8* GetTrainerNameFromId(u16 trainerId);
+void PlayMapChosenOrBattleBGM(u16 song);
+u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
#endif // GUARD_POKEMON_3_H
diff --git a/include/pokemon_animation.h b/include/pokemon_animation.h
index 42fc10809..c1ab8d817 100644
--- a/include/pokemon_animation.h
+++ b/include/pokemon_animation.h
@@ -1,7 +1,10 @@
#ifndef GUARD_POKEMON_ANIMATION_H
#define GUARD_POKEMON_ANIMATION_H
-void LaunchAnimationTaskForFrontSprite(struct Sprite* sprite, u8 frontAnimId);
-void LaunchAnimationTaskForBackSprite(struct Sprite* sprite, u8 backAnimId);
+u8 GetSpeciesBackAnimSet(u16 species);
+void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, u8 frontAnimId);
+void StartMonSummaryAnimation(struct Sprite *sprite, u8 frontAnimId);
+void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet);
+void SetSpriteCB_MonAnimDummy(struct Sprite *sprite);
#endif // GUARD_POKEMON_ANIMATION_H
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index b6d21823e..e7fc81ce4 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -3,10 +3,13 @@
const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo);
const u16 *GetValidMonIconPalettePtr(u16 speciesId);
+u16 GetUnownLetterByPersonality(u32 personality);
u16 sub_80D2E84(u16 speciesId);
+void sub_80D2F04(void);
void sub_80D2F68(u16 iconId);
u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5);
void sub_80D2FF0(u16 iconId);
void sub_80D2EF8(struct Sprite *sprite);
+u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, int a7);
#endif // GUARD_POKEMON_ICON_H
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 49680793d..9fcfdba96 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -1,8 +1,13 @@
#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H
#define GUARD_POKEMON_STORAGE_SYSTEM_H
+#define TOTAL_BOXES_COUNT 14
+#define IN_BOX_COUNT 30
+
u8* GetBoxNamePtr(u8 boxNumber);
struct BoxPokemon *GetBoxedMonPtr(u8, u8);
void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
+void CompactPartySlots(void);
+u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/pokenav.h b/include/pokenav.h
new file mode 100644
index 000000000..ebe3b325c
--- /dev/null
+++ b/include/pokenav.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_POKENAV_H
+#define GUARD_POKENAV_H
+
+bool8 sub_81D5C18(void);
+bool8 sub_81D20BC(void *arg0);
+bool8 sub_81D312C(void *arg0);
+void sub_81D1ED4(void *arg0);
+void sub_81D2108(void *arg0);
+void sub_81D20AC(void *arg0);
+void sub_81D2230(void *arg0);
+void sub_81D3464(void *arg0);
+void sub_81D3480(void *arg0, u8 arg1);
+void sub_81D2754(void *arg0, void *arg1);
+void sub_81D1F84(void *arg0, void *arg1, void *arg2);
+const u8 *sub_81D62AC(void);
+
+#endif //GUARD_POKENAV_H
diff --git a/include/rng.h b/include/random.h
index ae98e575f..79a9d71dc 100644
--- a/include/rng.h
+++ b/include/random.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_RNG_H
-#define GUARD_RNG_H
+#ifndef GUARD_RANDOM_H
+#define GUARD_RANDOM_H
extern u32 gRngValue;
extern u32 gRng2Value;
@@ -15,4 +15,4 @@ u16 Random2(void);
void SeedRng(u16 seed);
void SeedRng2(u16 seed);
-#endif // GUARD_RNG_H
+#endif // GUARD_RANDOM_H
diff --git a/include/rayquaza_scene.h b/include/rayquaza_scene.h
new file mode 100644
index 000000000..fe66b3df0
--- /dev/null
+++ b/include/rayquaza_scene.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_RAYQUAZA_SCENE_H
+#define GUARD_RAYQUAZA_SCENE_H
+
+void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void));
+
+enum
+{
+ RAY_ANIM_DUO_FIGHT_PRE,
+ RAY_ANIM_DUO_FIGHT,
+ RAY_ANIM_TAKES_FLIGHT,
+ RAY_ANIM_DESCENDS,
+ RAY_ANIM_CHARGES,
+ RAY_ANIM_CHACES_AWAY,
+ RAY_ANIM_END
+};
+
+#endif // GUARD_RAYQUAZA_SCENE_H
diff --git a/include/recorded_battle.h b/include/recorded_battle.h
index ae2ed1a79..8b1fa258d 100644
--- a/include/recorded_battle.h
+++ b/include/recorded_battle.h
@@ -2,23 +2,40 @@
#define GUARD_RECORDED_BATTLE_H
extern u32 gRecordedBattleRngSeed;
+extern u32 gBattlePalaceMoveSelectionRngValue;
+extern u8 gUnknown_0203C7B4;
void sub_8184DA4(u8 arg0);
-void sub_8185F84(void);
void sub_8184E58(void);
-u8 RecordedBattle_ReadBankAction(u8 bank);
-void RecordedBattle_SetBankAction(u8 bank, u8 action);
-void RecordedBattle_ClearBankAction(u8 bank, u8 bytesToClear);
+void RecordedBattle_SetBattlerAction(u8 battlerId, u8 action);
+void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear);
+u8 RecordedBattle_GetBattlerAction(u8 battlerId);
+u8 sub_81850D0(void);
+u8 sub_81850DC(u8 *arg0);
+void sub_81851A8(u8 *arg0);
+bool32 CanCopyRecordedBattleSaveData(void);
+u32 MoveRecordedBattleToSaveData(void);
+void PlayRecordedBattle(void (*CB2_After)(void));
+u8 sub_8185EA0(void);
+u8 sub_8185EAC(void);
+void RecordedBattle_SaveParties(void);
+u8 GetActiveBattlerLinkPlayerGender(void);
+void sub_8185F84(void);
void sub_8185F90(u16 arg0);
-bool8 sub_8186450(void);
u8 sub_8185FAC(void);
-u8 sub_8185FB8(void);
-u8 MoveRecordedBattleToSaveData(void);
-void sub_818603C(u8);
-void sub_8185FD0(void);
+u8 GetBattleStyleInRecordedBattle(void);
+u8 GetTextSpeedInRecordedBattle(void);
+void RecordedBattle_CopyBattlerMoves(void);
+void sub_818603C(u8 arg0);
+u32 GetAiScriptsInRecordedBattle(void);
void sub_8186444(void);
-void sub_8185EB8(void);
-u8 sub_81850DC(u8 *arg0);
-u8 sub_8185F40(void);
+bool8 sub_8186450(void);
+void sub_8186468(u8 *dst);
+u8 sub_818649C(void);
+u8 sub_81864A8(void);
+u8 sub_81864B4(void);
+u8 sub_81864C0(void);
+void sub_81864CC(void);
+u16 *sub_81864E0(void);
#endif // GUARD_RECORDED_BATTLE_H
diff --git a/include/region_map.h b/include/region_map.h
index 52e7376be..af331ad81 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -1,227 +1,98 @@
#ifndef GUARD_REGION_MAP_H
#define GUARD_REGION_MAP_H
+#include "bg.h"
+
// Exported type declarations
+enum
+{
+ INPUT_EVENT_NONE,
+ INPUT_EVENT_MOVE_START,
+ INPUT_EVENT_MOVE_CONT,
+ INPUT_EVENT_MOVE_END,
+ INPUT_EVENT_A_BUTTON,
+ INPUT_EVENT_B_BUTTON,
+};
+
enum {
- REGION_MAP_LITTLEROOT_TOWN,
- REGION_MAP_OLDALE_TOWN,
- REGION_MAP_DEWFORD_TOWN,
- REGION_MAP_LAVARIDGE_TOWN,
- REGION_MAP_FALLARBOR_TOWN,
- REGION_MAP_VERDANTURF_TOWN,
- REGION_MAP_PACIFIDLOG_TOWN,
- REGION_MAP_PETALBURG_CITY,
- REGION_MAP_SLATEPORT_CITY,
- REGION_MAP_MAUVILLE_CITY,
- REGION_MAP_RUSTBORO_CITY,
- REGION_MAP_FORTREE_CITY,
- REGION_MAP_LILYCOVE_CITY,
- REGION_MAP_MOSSDEEP_CITY,
- REGION_MAP_SOOTOPOLIS_CITY,
- REGION_MAP_EVER_GRANDE_CITY,
- REGION_MAP_ROUTE_101,
- REGION_MAP_ROUTE_102,
- REGION_MAP_ROUTE_103,
- REGION_MAP_ROUTE_104,
- REGION_MAP_ROUTE_105,
- REGION_MAP_ROUTE_106,
- REGION_MAP_ROUTE_107,
- REGION_MAP_ROUTE_108,
- REGION_MAP_ROUTE_109,
- REGION_MAP_ROUTE_110,
- REGION_MAP_ROUTE_111,
- REGION_MAP_ROUTE_112,
- REGION_MAP_ROUTE_113,
- REGION_MAP_ROUTE_114,
- REGION_MAP_ROUTE_115,
- REGION_MAP_ROUTE_116,
- REGION_MAP_ROUTE_117,
- REGION_MAP_ROUTE_118,
- REGION_MAP_ROUTE_119,
- REGION_MAP_ROUTE_120,
- REGION_MAP_ROUTE_121,
- REGION_MAP_ROUTE_122,
- REGION_MAP_ROUTE_123,
- REGION_MAP_ROUTE_124,
- REGION_MAP_ROUTE_125,
- REGION_MAP_ROUTE_126,
- REGION_MAP_ROUTE_127,
- REGION_MAP_ROUTE_128,
- REGION_MAP_ROUTE_129,
- REGION_MAP_ROUTE_130,
- REGION_MAP_ROUTE_131,
- REGION_MAP_ROUTE_132,
- REGION_MAP_ROUTE_133,
- REGION_MAP_ROUTE_134,
- REGION_MAP_UNDERWATER_124,
- REGION_MAP_UNDERWATER_125,
- REGION_MAP_UNDERWATER_126,
- REGION_MAP_UNDERWATER_127,
- REGION_MAP_UNDERWATER_128,
- REGION_MAP_GRANITE_CAVE,
- REGION_MAP_MT_CHIMNEY,
- REGION_MAP_SAFARI_ZONE,
- REGION_MAP_BATTLE_FRONTIER,
- REGION_MAP_PETALBURG_WOODS,
- REGION_MAP_RUSTURF_TUNNEL,
- REGION_MAP_ABANDONED_SHIP,
- REGION_MAP_NEW_MAUVILLE,
- REGION_MAP_METEOR_FALLS,
- REGION_MAP_METEOR_FALLS2,
- REGION_MAP_MT_PYRE,
- REGION_MAP_AQUA_HIDEOUT_OLD,
- REGION_MAP_SHOAL_CAVE,
- REGION_MAP_SEAFLOOR_CAVERN,
- REGION_MAP_UNDERWATER,
- REGION_MAP_VICTORY_ROAD,
- REGION_MAP_MIRAGE_ISLAND,
- REGION_MAP_CAVE_OF_ORIGIN,
- REGION_MAP_SOUTHERN_ISLAND,
- REGION_MAP_FIERY_PATH,
- REGION_MAP_FIERY_PATH2,
- REGION_MAP_JAGGED_PASS,
- REGION_MAP_JAGGED_PASS2,
- REGION_MAP_SEALED_CHAMBER,
- REGION_MAP_UNDERWATER_SEALED_CHAMBER,
- REGION_MAP_SCORCHED_SLAB,
- REGION_MAP_ISLAND_CAVE,
- REGION_MAP_DESERT_RUINS,
- REGION_MAP_ANCIENT_TOMB,
- REGION_MAP_INSIDE_OF_TRUCK,
- REGION_MAP_SKY_PILLAR,
- REGION_MAP_SECRET_BASE,
- REGION_MAP_NONE,
- REGION_MAP_PALLET_TOWN,
- REGION_MAP_VIRIDIAN_CITY,
- REGION_MAP_PEWTER_CITY,
- REGION_MAP_CERULEAN_CITY,
- REGION_MAP_LAVENDER_TOWN,
- REGION_MAP_VERMILION_CITY,
- REGION_MAP_CELADON_CITY,
- REGION_MAP_FUCHSIA_CITY,
- REGION_MAP_CINNABAR_ISLAND,
- REGION_MAP_INDIGO_PLATEAU,
- REGION_MAP_SAFFRON_CITY,
- REGION_MAP_ROUTE_4,
- REGION_MAP_ROUTE_10,
- REGION_MAP_ROUTE_1,
- REGION_MAP_ROUTE_2,
- REGION_MAP_ROUTE_3,
- REGION_MAP_ROUTE_4_2,
- REGION_MAP_ROUTE_5,
- REGION_MAP_ROUTE_6,
- REGION_MAP_ROUTE_7,
- REGION_MAP_ROUTE_8,
- REGION_MAP_ROUTE_9,
- REGION_MAP_ROUTE_10_2,
- REGION_MAP_ROUTE_11,
- REGION_MAP_ROUTE_12,
- REGION_MAP_ROUTE_13,
- REGION_MAP_ROUTE_14,
- REGION_MAP_ROUTE_15,
- REGION_MAP_ROUTE_16,
- REGION_MAP_ROUTE_17,
- REGION_MAP_ROUTE_18,
- REGION_MAP_ROUTE_19,
- REGION_MAP_ROUTE_20,
- REGION_MAP_ROUTE_21,
- REGION_MAP_ROUTE_22,
- REGION_MAP_ROUTE_23,
- REGION_MAP_ROUTE_24,
- REGION_MAP_ROUTE_25,
- REGION_MAP_VIRIDIAN_FOREST,
- REGION_MAP_MT_MOON,
- REGION_MAP_S_S_ANNE,
- REGION_MAP_UNDERGROUND_PATH,
- REGION_MAP_UNDERGROUND_PATH_2,
- REGION_MAP_DIGLETTS_CAVE,
- REGION_MAP_KANTO_VICTORY_ROAD,
- REGION_MAP_ROCKET_HIDEOUT,
- REGION_MAP_SILPH_CO,
- REGION_MAP_POKEMON_MANSION,
- REGION_MAP_KANTO_SAFARI_ZONE,
- REGION_MAP_POKEMON_LEAGUE,
- REGION_MAP_ROCK_TUNNEL,
- REGION_MAP_SEAFOAM_ISLANDS,
- REGION_MAP_POKEMON_TOWER,
- REGION_MAP_CERULEAN_CAVE,
- REGION_MAP_POWER_PLANT,
- REGION_MAP_ONE_ISLAND,
- REGION_MAP_TWO_ISLAND,
- REGION_MAP_THREE_ISLAND,
- REGION_MAP_FOUR_ISLAND,
- REGION_MAP_FIVE_ISLAND,
- REGION_MAP_SEVEN_ISLAND,
- REGION_MAP_SIX_ISLAND,
- REGION_MAP_KINDLE_ROAD,
- REGION_MAP_TREASURE_BEACH,
- REGION_MAP_CAPE_BRINK,
- REGION_MAP_BOND_BRIDGE,
- REGION_MAP_THREE_ISLE_PORT,
- REGION_MAP_SEVII_ISLE_6,
- REGION_MAP_SEVII_ISLE_7,
- REGION_MAP_SEVII_ISLE_8,
- REGION_MAP_SEVII_ISLE_9,
- REGION_MAP_RESORT_GORGEOUS,
- REGION_MAP_WATER_LABYRINTH,
- REGION_MAP_FIVE_ISLE_MEADOW,
- REGION_MAP_MEMORIAL_PILLAR,
- REGION_MAP_OUTCAST_ISLAND,
- REGION_MAP_GREEN_PATH,
- REGION_MAP_WATER_PATH,
- REGION_MAP_RUIN_VALLEY,
- REGION_MAP_TRAINER_TOWER,
- REGION_MAP_CANYON_ENTRANCE,
- REGION_MAP_SEVAULT_CANYON,
- REGION_MAP_TANOBY_RUINS,
- REGION_MAP_SEVII_ISLE_22,
- REGION_MAP_SEVII_ISLE_23,
- REGION_MAP_SEVII_ISLE_24,
- REGION_MAP_NAVEL_ROCK,
- REGION_MAP_MT_EMBER,
- REGION_MAP_BERRY_FOREST,
- REGION_MAP_ICEFALL_CAVE,
- REGION_MAP_ROCKET_WAREHOUSE,
- REGION_MAP_TRAINER_TOWER_2,
- REGION_MAP_DOTTED_HOLE,
- REGION_MAP_LOST_CAVE,
- REGION_MAP_PATTERN_BUSH,
- REGION_MAP_ALTERING_CAVE,
- REGION_MAP_TANOBY_CHAMBERS,
- REGION_MAP_THREE_ISLE_PATH,
- REGION_MAP_TANOBY_KEY,
- REGION_MAP_BIRTH_ISLAND,
- REGION_MAP_MONEAN_CHAMBER,
- REGION_MAP_LIPTOO_CHAMBER,
- REGION_MAP_WEEPTH_CHAMBER,
- REGION_MAP_DILFORD_CHAMBER,
- REGION_MAP_SCUFIB_CHAMBER,
- REGION_MAP_RIXY_CHAMBER,
- REGION_MAP_VIAPOIS_CHAMBER,
- REGION_MAP_EMBER_SPA,
- REGION_MAP_SPECIAL_AREA,
- REGION_MAP_AQUA_HIDEOUT,
- REGION_MAP_MAGMA_HIDEOUT,
- REGION_MAP_MIRAGE_TOWER,
- REGION_MAP_BIRTH_ISLAND_2,
- REGION_MAP_FARAWAY_ISLAND,
- REGION_MAP_ARTISAN_CAVE,
- REGION_MAP_MARINE_CAVE,
- REGION_MAP_UNDERWATER_MARINE_CAVE,
- REGION_MAP_TERRA_CAVE,
- REGION_MAP_UNDERWATER_TERRA_CAVE,
- REGION_MAP_UNDERWATER_UNK1,
- REGION_MAP_UNDERWATER_UNK2,
- REGION_MAP_DESERT_UNDERPASS,
- REGION_MAP_ALTERING_CAVE_2,
- REGION_MAP_NAVEL_ROCK2,
- REGION_MAP_TRAINER_HILL
+ MAPSECTYPE_NONE,
+ MAPSECTYPE_PLAIN,
+ MAPSECTYPE_CITY_CANFLY,
+ MAPSECTYPE_CITY_CANTFLY,
+ MAPSECTYPE_BATTLE_FRONTIER
};
+struct RegionMap {
+ /*0x000*/ u16 mapSecId;
+ /*0x002*/ u8 iconDrawType;
+ /*0x003*/ u8 posWithinMapSec;
+ /*0x004*/ u8 mapSecName[0x14];
+ /*0x018*/ u8 (*inputCallback)(void);
+ /*0x01c*/ struct Sprite *cursorSprite;
+ /*0x020*/ struct Sprite *playerIconSprite;
+ /*0x024*/ s32 bg2x;
+ /*0x028*/ s32 bg2y;
+ /*0x02c*/ u32 bg2pa;
+ /*0x034*/ u32 bg2pc;
+ /*0x030*/ u32 bg2pb;
+ /*0x038*/ u32 bg2pd;
+ /*0x03c*/ s32 unk_03c;
+ /*0x040*/ s32 unk_040;
+ /*0x044*/ s32 unk_044;
+ /*0x048*/ s32 unk_048;
+ /*0x04c*/ s32 unk_04c;
+ /*0x050*/ s32 unk_050;
+ /*0x054*/ u16 cursorPosX;
+ /*0x056*/ u16 cursorPosY;
+ /*0x058*/ u16 cursorTileTag;
+ /*0x05a*/ u16 cursorPaletteTag;
+ /*0x05c*/ s16 scrollX;
+ /*0x05e*/ s16 scrollY;
+ /*0x060*/ s16 unk_060;
+ /*0x062*/ s16 unk_062;
+ /*0x064*/ u16 zoomedCursorPosX;
+ /*0x066*/ u16 zoomedCursorPosY;
+ /*0x068*/ s16 zoomedCursorDeltaY;
+ /*0x06a*/ s16 zoomedCursorDeltaX;
+ /*0x06c*/ u16 zoomedCursorMovementFrameCounter;
+ /*0x06e*/ u16 unk_06e;
+ /*0x070*/ u16 playerIconTileTag;
+ /*0x072*/ u16 playerIconPaletteTag;
+ /*0x074*/ u16 playerIconSpritePosX;
+ /*0x076*/ u16 playerIconSpritePosY;
+ /*0x078*/ bool8 zoomed;
+ /*0x079*/ u8 initStep;
+ /*0x07a*/ s8 cursorMovementFrameCounter;
+ /*0x07b*/ s8 cursorDeltaX;
+ /*0x07c*/ s8 cursorDeltaY;
+ /*0x07d*/ bool8 needUpdateVideoRegs;
+ /*0x07e*/ bool8 blinkPlayerIcon;
+ /*0x07f*/ bool8 playerIsInCave;
+ /*0x080*/ u8 bgNum;
+ /*0x081*/ u8 charBaseIdx;
+ /*0x082*/ u8 mapBaseIdx;
+ /*0x083*/ bool8 bgManaged;
+ /*0x084*/ u8 filler_084[0x100];
+ /*0x184*/ u8 cursorSmallImage[0x100];
+ /*0x284*/ u8 cursorLargeImage[0x600];
+}; // size = 0x884
+
// Exported RAM declarations
// Exported ROM declarations
-void GetMapName(u8 *, u16, u16);
+void sub_8122CF8(struct RegionMap *regionMap, struct BgTemplate *template, bool8 zoomed);
+bool8 sub_8122DB0(void);
+void UpdateRegionMapVideoRegs(void);
+void InitRegionMap(struct RegionMap *regionMap, u8 argument);
+u8 sub_81230AC(void);
+bool8 sub_8123514(void);
+void FreeRegionMapIconResources(void);
+u16 GetRegionMapSectionIdAt(u16 x, u16 y);
+void CreateRegionMapPlayerIcon(u16 x, u16 y);
+void CreateRegionMapCursor(u16 tileTag, u16 paletteTag);
+u8 *GetMapName(u8 *, u16, u16);
+bool32 sub_8124668(u8 mapSecId);
+u8 *sub_81245DC(u8 *dest, u16 mapSecId);
#endif //GUARD_REGION_MAP_H
diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h
new file mode 100644
index 000000000..5807dec99
--- /dev/null
+++ b/include/reset_rtc_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_RESET_RTC_SCREEN_H
+#define GUARD_RESET_RTC_SCREEN_H
+
+void CB2_InitResetRtcScreen(void);
+
+#endif // GUARD_RESET_RTC_SCREEN_H
diff --git a/include/rom6.h b/include/rom6.h
index a6aab998c..f91b34b4a 100644
--- a/include/rom6.h
+++ b/include/rom6.h
@@ -1,8 +1,16 @@
#ifndef GUARD_ROM6_H
#define GUARD_ROM6_H
-void sub_81357FC(u8, void(void));
+void OpenPokeblockCase(u8, void(void));
u8 GetLeadMonIndex(void);
+u8 GetSSTidalLocation(u8 *grp, u8 *num, s16 *x, s16 *y);
void sub_813BADC(bool8);
+bool8 sub_813B9C0(void);
+void UpdateMirageRnd(u16 days);
+void UpdateBirchState(u16 days);
+void UpdateFrontierManiac(u16 days);
+void UpdateFrontierGambler(u16 days);
+void SetShoalItemFlag(u16 days);
+u8 oei_task_add(void);
#endif //GUARD_ROM6_H
diff --git a/include/safari_zone.h b/include/safari_zone.h
index 9a81894b8..39ee3ccb3 100644
--- a/include/safari_zone.h
+++ b/include/safari_zone.h
@@ -13,6 +13,8 @@ void ExitSafariMode(void);
bool8 SafariZoneTakeStep(void);
void SafariZoneRetirePrompt(void);
+void CB2_EndSafariBattle(void);
+
struct Pokeblock *SafariZoneGetActivePokeblock(void);
void SafariZoneActivatePokeblockFeeder(u8 pokeblock_index);
diff --git a/include/save.h b/include/save.h
index a3473371e..df03c4183 100644
--- a/include/save.h
+++ b/include/save.h
@@ -56,44 +56,45 @@ enum
HOF_DELETE_SAVE // unused
};
+#define SECTION_ID_RECORDED_BATTLE 31
+
void ClearSaveData(void);
void ResetSaveCounters(void);
-//bool32 ManipulateSectorBits(u8 op, u8 bit);
-//u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *a2);
-u8 HandleWriteSector(u16, const struct SaveSectionLocation *);
-//u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size);
-u8 TryWriteSector(u8, u8 *);
-//u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location);
-//u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location);
-//u8 sub_812550C(u16 a1, const struct SaveSectionLocation *location);
+bool32 SetDamagedSectorBits(u8 op, u8 bit);
+u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location);
+u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location);
+u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size);
+u8 TryWriteSector(u8 sector, u8 *data);
+u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location);
+u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location);
+u8 sub_81529D4(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152A34(u16 a1, const struct SaveSectionLocation *location);
-u8 ClearSaveData_2(u16, const struct SaveSectionLocation *location);
-//u8 sub_8125758(u16 a1, const struct SaveSectionLocation *location);
-//u8 sub_81257F0(u16 a1, const struct SaveSectionLocation *location);
-//u8 sub_812587C(u16 a1, const struct SaveSectionLocation *location);
-u8 sub_8152E10(u16, const struct SaveSectionLocation *location);
+u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location);
+u8 sav12_xor_get(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_8152CAC(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_8152D44(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_8152DD0(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location);
u8 GetSaveValidStatus(const struct SaveSectionLocation *location);
-//u8 sub_8125B88(u8 a1, u8 *data, u16 size);
-u8 DoReadFlashWholeSection(u8, struct SaveSection *);
-u16 CalculateChecksum(void *, u16);
+u8 sub_81530DC(u8 a1, u8 *data, u16 size);
+u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section);
+u16 CalculateChecksum(void *data, u16 size);
+void UpdateSaveAddresses(void);
u8 HandleSavingData(u8 saveType);
-//u8 TrySavingData(u8 saveType);
-//u8 sub_8125D80(void);
-//bool8 sub_8125DA8(void);
-//u8 sub_8125DDC(void);
-//u8 sub_8125E04(void);
-//u8 sub_8125E2C(void);
-//bool8 sub_8125E6C(void);
-//u8 sub_8125EC8(u8 a1);
-//bool8 unref_sub_8125F4C(struct UnkSaveSection *a1);
-//u8 unref_sub_8125FA0(void);
-//u8 unref_sub_8125FF0(u8 *data, u16 size);
-//u8 unref_sub_8126068(u8 sector, u8 *data, u32 size);
-//u8 unref_sub_8126080(u8 sector, u8 *data);
+u8 TrySavingData(u8 saveType);
+u8 sub_8153380(void);
+bool8 sub_81533AC(void);
+u8 sub_81533E0(void);
+u8 sub_8153408(void);
+u8 sub_8153430(void);
+bool8 sub_8153474(void);
+u8 sub_81534D0(u8 a1);
u16 sub_815355C(void);
u8 sub_81534D0(u8);
u8 sub_8153430(void);
bool8 sub_8153474(void);
+u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
+u32 sub_8153634(u8 sector, u8* src);
void sub_8153688(u8 taskId);
#endif // GUARD_SAVE_H
diff --git a/include/scanline_effect.h b/include/scanline_effect.h
new file mode 100644
index 000000000..eb837e7e2
--- /dev/null
+++ b/include/scanline_effect.h
@@ -0,0 +1,47 @@
+#ifndef GUARD_SCANLINE_EFFECT_H
+#define GUARD_SCANLINE_EFFECT_H
+
+// DMA control value to transfer a single 16-bit value at HBlank
+#define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1)
+
+#define SCANLINE_EFFECT_REG_BG0HOFS (REG_ADDR_BG0HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG0VOFS (REG_ADDR_BG0VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG1HOFS (REG_ADDR_BG1HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG1VOFS (REG_ADDR_BG1VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG2HOFS (REG_ADDR_BG2HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG2VOFS (REG_ADDR_BG2VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG3HOFS (REG_ADDR_BG3HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG3VOFS (REG_ADDR_BG3VOFS - REG_ADDR_BG0HOFS)
+
+struct ScanlineEffectParams
+{
+ volatile void *dmaDest;
+ u32 dmaControl;
+ u8 initState;
+ u8 unused9;
+};
+
+struct ScanlineEffect
+{
+ void *dmaSrcBuffers[2];
+ volatile void *dmaDest;
+ u32 dmaControl;
+ void (*setFirstScanlineReg)(void);
+ u8 srcBuffer;
+ u8 state;
+ u8 unused16;
+ u8 unused17;
+ u8 waveTaskId;
+};
+
+extern struct ScanlineEffect gScanlineEffect;
+
+extern u16 gScanlineEffectRegBuffers[2][0x3C0];
+
+void ScanlineEffect_Stop(void);
+void ScanlineEffect_Clear(void);
+void ScanlineEffect_SetParams(struct ScanlineEffectParams);
+void ScanlineEffect_InitHBlankDmaTransfer(void);
+u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 a7);
+
+#endif // GUARD_SCANLINE_EFFECT_H
diff --git a/include/secret_base.h b/include/secret_base.h
index 43ea66ebc..91e7083b3 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -10,5 +10,7 @@ void sub_80E9578(void);
void sub_80E980C(void);
void sub_80EB18C(struct SecretBaseRecord *dest);
void sub_80E9914(void);
+u8 *GetSecretBaseMapName(u8 *dest);
+const u8 *GetSecretBaseTrainerLoseText(void);
#endif //GUARD_SECRET_BASE_H
diff --git a/include/songs.h b/include/songs.h
deleted file mode 100644
index 5a1fff00c..000000000
--- a/include/songs.h
+++ /dev/null
@@ -1,466 +0,0 @@
-#ifndef GUARD_SONGS_H
-#define GUARD_SONGS_H
-
-enum
-{
- /*0x00*/ SE_STOP,
- /*0x01*/ SE_KAIFUKU,
- /*0x02*/ SE_PC_LOGON,
- /*0x03*/ SE_PC_OFF,
- /*0x04*/ SE_PC_ON,
- /*0x05*/ SE_SELECT,
- /*0x06*/ SE_WIN_OPEN,
- /*0x07*/ SE_WALL_HIT,
- /*0x08*/ SE_DOOR,
- /*0x09*/ SE_KAIDAN,
- /*0x0A*/ SE_DANSA,
- /*0x0B*/ SE_JITENSYA,
- /*0x0C*/ SE_KOUKA_L, // Goggle told me Kouka means 'effectiveness' which makes sense, because
- /*0x0D*/ SE_KOUKA_M, // those three sounds play whenever you use a move
- /*0x0E*/ SE_KOUKA_H,
- /*0x0F*/ SE_BOWA2,
- /*0x10*/ SE_POKE_DEAD,
- /*0x11*/ SE_NIGERU,
- /*0x12*/ SE_JIDO_DOA,
- /*0x13*/ SE_NAMINORI,
- /*0x14*/ SE_BAN,
- /*0x15*/ SE_PIN,
- /*0x16*/ SE_BOO,
- /*0x17*/ SE_BOWA,
- /*0x18*/ SE_JYUNI,
- /*0x19*/ SE_A,
- /*0x1A*/ SE_I,
- /*0x1B*/ SE_U,
- /*0x1C*/ SE_E,
- /*0x1D*/ SE_O,
- /*0x1E*/ SE_N,
- /*0x1F*/ SE_SEIKAI,
- /*0x20*/ SE_HAZURE,
- /*0x21*/ SE_EXP,
- /*0x22*/ SE_JITE_PYOKO,
- /*0x23*/ SE_MU_PACHI,
- /*0x24*/ SE_TK_KASYA,
- /*0x25*/ SE_FU_ZAKU,
- /*0x26*/ SE_FU_ZAKU2,
- /*0x27*/ SE_FU_ZUZUZU,
- /*0x28*/ SE_RU_GASHIN,
- /*0x29*/ SE_RU_GASYAN,
- /*0x2A*/ SE_RU_BARI,
- /*0x2B*/ SE_RU_HYUU,
- /*0x2C*/ SE_KI_GASYAN,
- /*0x2D*/ SE_TK_WARPIN,
- /*0x2E*/ SE_TK_WARPOUT,
- /*0x2F*/ SE_TU_SAA,
- /*0x30*/ SE_HI_TURUN,
- /*0x31*/ SE_TRACK_MOVE,
- /*0x32*/ SE_TRACK_STOP,
- /*0x33*/ SE_TRACK_HAIK,
- /*0x34*/ SE_TRACK_DOOR,
- /*0x35*/ SE_MOTER,
- /*0x36*/ SE_CARD,
- /*0x37*/ SE_SAVE,
- /*0x38*/ SE_KON,
- /*0x39*/ SE_KON2,
- /*0x3A*/ SE_KON3,
- /*0x3B*/ SE_KON4,
- /*0x3C*/ SE_SUIKOMU,
- /*0x3D*/ SE_NAGERU,
- SE_TOY_C,
- SE_TOY_D,
- SE_TOY_E,
- SE_TOY_F,
- SE_TOY_G,
- SE_TOY_A,
- SE_TOY_B,
- SE_TOY_C1,
- SE_MIZU,
- SE_HASHI,
- SE_DAUGI,
- SE_PINPON,
- SE_FUUSEN1,
- SE_FUUSEN2,
- SE_FUUSEN3,
- SE_TOY_KABE,
- SE_TOY_DANGO,
- SE_DOKU,
- SE_ESUKA,
- SE_T_AME,
- SE_T_AME_E,
- SE_T_OOAME,
- SE_T_OOAME_E,
- SE_T_KOAME,
- SE_T_KOAME_E,
- SE_T_KAMI,
- SE_T_KAMI2,
- SE_ELEBETA,
- /*0x5A*/ SE_HINSI,
- /*0x5B*/ SE_EXPMAX,
- /*0x5C*/ SE_TAMAKORO,
- /*0x5D*/ SE_TAMAKORO_E,
- /*0x5E*/ SE_BASABASA,
- /*0x5F*/ SE_REGI,
- SE_C_GAJI,
- SE_C_MAKU_U,
- SE_C_MAKU_D,
- SE_C_PASI,
- SE_C_SYU,
- SE_C_PIKON,
- /*0x66*/ SE_REAPOKE,
- /*0x67*/ SE_OP_BASYU,
- /*0x68*/ SE_BT_START,
- SE_DENDOU,
- SE_JIHANKI,
- SE_TAMA,
- SE_Z_SCROLL,
- /*0x6D*/ SE_Z_PAGE,
- /*0x6E*/ SE_PN_ON,
- /*0x6F*/ SE_PN_OFF,
- /*0x70*/ SE_Z_SEARCH,
- /*0x71*/ SE_TAMAGO,
- /*0x72*/ SE_TB_START,
- /*0x73*/ SE_TB_KON,
- /*0x74*/ SE_TB_KARA,
- /*0x75*/ SE_BIDORO,
- /*0x76*/ SE_W085,
- /*0x77*/ SE_W085B,
- /*0x78*/ SE_W231,
- /*0x79*/ SE_W171,
- /*0x7A*/ SE_W233,
- /*0x7B*/ SE_W233B,
- /*0x7C*/ SE_W145,
- /*0x7D*/ SE_W145B,
- /*0x7E*/ SE_W145C,
- /*0x7F*/ SE_W240,
- /*0x80*/ SE_W015,
- /*0x81*/ SE_W081,
- /*0x82*/ SE_W081B,
- /*0x83*/ SE_W088,
- /*0x84*/ SE_W016,
- /*0x85*/ SE_W016B,
- /*0x86*/ SE_W003,
- /*0x87*/ SE_W104,
- /*0x88*/ SE_W013,
- /*0x89*/ SE_W196,
- /*0x8A*/ SE_W086,
- /*0x8B*/ SE_W004,
- /*0x8C*/ SE_W025,
- /*0x8D*/ SE_W025B,
- SE_W152,
- SE_W026,
- SE_W172,
- SE_W172B,
- SE_W053,
- SE_W007,
- SE_W092,
- SE_W221,
- SE_W221B,
- SE_W052,
- SE_W036,
- SE_W059,
- SE_W059B,
- SE_W010,
- SE_W011,
- SE_W017,
- SE_W019,
- SE_W028,
- SE_W013B,
- SE_W044,
- SE_W029,
- SE_W057,
- SE_W056,
- SE_W250,
- SE_W030,
- SE_W039,
- SE_W054,
- SE_W077,
- SE_W020,
- SE_W082,
- SE_W047,
- SE_W195,
- SE_W006,
- SE_W091,
- SE_W146,
- SE_W120,
- SE_W153,
- SE_W071B,
- SE_W071,
- SE_W103,
- /*0xB6*/ SE_W062,
- /*0xB7*/ SE_W062B,
- /*0xB8*/ SE_W048,
- /*0xB9*/ SE_W187,
- /*0xBA*/ SE_W118,
- /*0xBB*/ SE_W155,
- /*0xBC*/ SE_W122,
- /*0xBD*/ SE_W060,
- /*0xBE*/ SE_W185,
- /*0xBF*/ SE_W014,
- /*0xC0*/ SE_W043,
- /*0xC1*/ SE_W207,
- /*0xC2*/ SE_W207B,
- /*0xC3*/ SE_W215,
- /*0xC4*/ SE_W109,
- /*0xC5*/ SE_W173,
- /*0xC6*/ SE_W280,
- /*0xC7*/ SE_W202,
- /*0xC8*/ SE_W060B,
- /*0xC9*/ SE_W076,
- /*0xCA*/ SE_W080,
- /*0xCB*/ SE_W100,
- /*0xCC*/ SE_W107,
- SE_W166,
- SE_W129,
- SE_W115,
- SE_W112,
- SE_W197,
- SE_W199,
- SE_W236,
- SE_W204,
- SE_W268,
- SE_W070,
- SE_W063,
- SE_W127,
- SE_W179,
- SE_W151,
- SE_W201,
- SE_W161,
- SE_W161B,
- SE_W227,
- SE_W227B,
- SE_W226,
- SE_W208,
- SE_W213,
- SE_W213B,
- SE_W234,
- SE_W260,
- SE_W328,
- SE_W320,
- SE_W255,
- SE_W291,
- SE_W089,
- SE_W239,
- SE_W230,
- SE_W281,
- SE_W327,
- SE_W287,
- SE_W257,
- SE_W253,
- SE_W258,
- SE_W322,
- SE_W298,
- SE_W287B,
- SE_W114,
- SE_W063B,
- BGM_STOP = 349,
- /*0x15E*/ BGM_TETSUJI,
- /*0x15F*/ BGM_FIELD13,
- /*0x160*/ BGM_KACHI22,
- /*0x161*/ BGM_KACHI2,
- /*0x162*/ BGM_KACHI3,
- /*0x163*/ BGM_KACHI5,
- /*0x164*/ BGM_PCC,
- /*0x165*/ BGM_NIBI,
- /*0x166*/ BGM_SUIKUN,
- /*0x167*/ BGM_DOORO1,
- /*0x168*/ BGM_DOORO_X1,
- /*0x169*/ BGM_DOORO_X3,
- /*0x16A*/ BGM_MACHI_S2,
- /*0x16B*/ BGM_MACHI_S4,
- /*0x16C*/ BGM_GIM,
- /*0x16D*/ BGM_NAMINORI,
- /*0x16E*/ BGM_DAN01,
- /*0x16F*/ BGM_FANFA1,
- /*0x170*/ BGM_ME_ASA,
- /*0x171*/ BGM_ME_BACHI,
- /*0x172*/ BGM_FANFA4,
- /*0x173*/ BGM_FANFA5,
- /*0x174*/ BGM_ME_WAZA,
- /*0x175*/ BGM_BIJYUTU,
- /*0x176*/ BGM_DOORO_X4,
- /*0x177*/ BGM_FUNE_KAN,
- /*0x178*/ BGM_ME_SHINKA,
- /*0x179*/ BGM_SHINKA,
- /*0x17A*/ BGM_ME_WASURE,
- /*0x17B*/ BGM_SYOUJOEYE,
- /*0x17C*/ BGM_BOYEYE,
- /*0x17D*/ BGM_DAN02,
- /*0x17E*/ BGM_MACHI_S3,
- /*0x17F*/ BGM_ODAMAKI,
- /*0x180*/ BGM_B_TOWER,
- /*0x181*/ BGM_SWIMEYE,
- /*0x182*/ BGM_DAN03,
- /*0x183*/ BGM_ME_KINOMI,
- /*0x184*/ BGM_ME_TAMA,
- /*0x185*/ BGM_ME_B_BIG,
- /*0x186*/ BGM_ME_B_SMALL,
- /*0x187*/ BGM_ME_ZANNEN,
- /*0x188*/ BGM_BD_TIME,
- /*0x189*/ BGM_TEST1,
- /*0x18A*/ BGM_TEST2,
- /*0x18B*/ BGM_TEST3,
- /*0x18C*/ BGM_TEST4,
- /*0x18D*/ BGM_TEST,
- /*0x18E*/ BGM_GOMACHI0,
- /*0x18F*/ BGM_GOTOWN,
- /*0x190*/ BGM_POKECEN,
- /*0x191*/ BGM_NEXTROAD,
- /*0x192*/ BGM_GRANROAD,
- /*0x193*/ BGM_CYCLING,
- /*0x194*/ BGM_FRIENDLY,
- /*0x195*/ BGM_MISHIRO,
- /*0x196*/ BGM_TOZAN,
- /*0x197*/ BGM_GIRLEYE,
- /*0x198*/ BGM_MINAMO,
- /*0x199*/ BGM_ASHROAD,
- /*0x19A*/ BGM_EVENT0,
- /*0x19B*/ BGM_DEEPDEEP,
- /*0x19C*/ BGM_KACHI1,
- /*0x19D*/ BGM_TITLE3,
- /*0x19E*/ BGM_DEMO1,
- /*0x19F*/ BGM_GIRL_SUP,
- /*0x1A0*/ BGM_HAGESHII,
- /*0x1A1*/ BGM_KAKKOII,
- /*0x1A2*/ BGM_KAZANBAI,
- /*0x1A3*/ BGM_AQA_0,
- /*0x1A4*/ BGM_TSURETEK,
- /*0x1A5*/ BGM_BOY_SUP,
- /*0x1A6*/ BGM_RAINBOW,
- /*0x1A7*/ BGM_AYASII,
- /*0x1A8*/ BGM_KACHI4,
- /*0x1A9*/ BGM_ROPEWAY,
- /*0x1AA*/ BGM_CASINO,
- /*0x1AB*/ BGM_HIGHTOWN,
- /*0x1AC*/ BGM_SAFARI,
- BGM_C_ROAD,
- BGM_AJITO,
- BGM_M_BOAT,
- BGM_M_DUNGON,
- BGM_FINECITY,
- BGM_MACHUPI,
- BGM_P_SCHOOL,
- BGM_DENDOU,
- BGM_TONEKUSA,
- BGM_MABOROSI,
- BGM_CON_FAN,
- BGM_CONTEST0,
- BGM_MGM0,
- BGM_T_BATTLE,
- BGM_OOAME,
- BGM_HIDERI,
- BGM_RUNECITY,
- BGM_CON_K,
- BGM_EIKOU_R,
- BGM_KARAKURI,
- BGM_HUTAGO,
- BGM_SITENNOU,
- BGM_YAMA_EYE,
- BGM_CONLOBBY,
- BGM_INTER_V,
- BGM_DAIGO,
- BGM_THANKFOR,
- BGM_END,
- /*0x1C9*/ BGM_BATTLE_FRONTIER, // human-readable names start here because we don't know the actual filenames
- BGM_BATTLE_ARENA,
- BGM_ME_BATTLE_POINTS, // ME_ as in messagebox? Used for KINOMI (berries) and stuff above
- BGM_ME_MATCH_CALL,
- BGM_BATTLE_PYRAMID,
- BGM_BATTLE_PYRAMID_SUMMIT,
- BGM_BATTLE_PALACE,
- BGM_FANFA_RAYQUAZA,
- BGM_BATTLE_TOWER,
- BGM_ME_BATTLE_SYMBOL,
- BGM_BATTLE_DOME_TOURNAMENT,
- BGM_BATTLE_PIKE,
- BGM_BATTLE_FACTORY,
- BGM_BATTLE_LEGENDARY,
- BGM_BATTLE_FRONTIER_BRAIN,
- BGM_BATTLE_MEW,
- BGM_BATTLE_DOME, // end of the human-readable names
- /*0x1DA*/ BGM_BATTLE27, // wild
- BGM_BATTLE31, // aqua/magma grunt
- BGM_BATTLE20, // trainer
- BGM_BATTLE32, // gym leader
- BGM_BATTLE33, // champion
- BGM_BATTLE36, // regi
- BGM_BATTLE34, // weather trio
- BGM_BATTLE35, // rival
- BGM_BATTLE38, // elite four
- BGM_BATTLE30, // aqua/magma leader
- /*0x1E4*/ BGM_FRLG_FOLLOW_ME, // FR/LG names not known, human-readable again!
- BGM_FRLG_GAMECORNER,
- BGM_FRLG_ROCKET_HIDEOUT,
- BGM_FRLG_GYM,
- BGM_FRLG_JIGGLYPUFF,
- BGM_FRLG_OPENING,
- BGM_FRLG_TITLE,
- BGM_FRLG_CINNABAR_ISLAND,
- BGM_FRLG_LAVENDER_TOWN,
- BGM_FRLG_HEALING_TEST,
- BGM_FRLG_BICYCLE,
- BGM_FRLG_SUSPICIOUS_EYE,
- BGM_FRLG_GIRL_EYE,
- BGM_FRLG_BOY_EYE,
- BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME,
- BGM_FRLG_VIRIDIAN_FOREST,
- BGM_FRLG_MT_MOON,
- BGM_FRLG_POKEMON_MANSION,
- BGM_FRLG_CREDITS,
- BGM_FRLG_ROUTE_1,
- BGM_FRLG_ROUTE_24,
- BGM_FRLG_ROUTE_3,
- BGM_FRLG_ROUTE_11,
- BGM_FRLG_INDIGO_PLATEAU,
- BGM_FRLG_BATTLE_LEADER,
- BGM_FRLG_BATTLE_TRAINER,
- BGM_FRLG_BATTLE_WILD_POKEMON,
- BGM_FRLG_BATTLE_CHAMPION,
- BGM_FRLG_PALLET_TOWN,
- BGM_FRLG_OAK_LAB,
- BGM_FRLG_PROF_OAK,
- BGM_FRLG_POKEMON_CENTER,
- BGM_FRLG_SS_ANNE,
- BGM_FRLG_SURF,
- BGM_FRLG_POKEMON_TOWER,
- BGM_FRLG_SILPH,
- BGM_FRLG_CERULEAN_CITY,
- BGM_FRLG_CELADON_CITY,
- BGM_FRLG_KACHI_TRAINER, // KACHI used in RS test - victory
- BGM_FRLG_KACHI_WILD_POKEMON,
- BGM_FRLG_KACHI_LEADER,
- BGM_FRLG_VERMILION_CITY,
- BGM_FRLG_VIRIDIAN_CITY,
- BGM_FRLG_RIVAL,
- BGM_FRLG_RIVAL_POSTBATTLE,
- BGM_FRLG_ME_POKEDEX_EVAL,
- BGM_FRLG_ME_KEYITEM,
- BGM_FRLG_FANFA_POKEMON_CAUGHT,
- BGM_FRLG_FANFA_TRAINERCARD_PHOTO,
- BGM_FRLG_GAMEFREAK_LOGO,
- BGM_FRLG_CAUGHT_POKEMON,
- BGM_FRLG_GAME_EXPLANATION_START,
- BGM_FRLG_GAME_EXPLANATION_MIDDLE,
- BGM_FRLG_GAME_EXPLANATION_END,
- BGM_FRLG_POKEMON_JUMP,
- BGM_FRLG_UNION_ROOM,
- BGM_FRLG_POKEMON_NETWORK_CENTER,
- BGM_FRLG_MYSTERY_GIFT,
- BGM_FRLG_DODRIO_BERRY_PICK,
- BGM_FRLG_MT_EMBER,
- BGM_FRLG_TEACHY_TV_EPISODE,
- BGM_FRLG_SEVII_ISLANDS,
- BGM_FRLG_TANOBY_RUINS,
- BGM_FRLG_ISLAND_ONE,
- BGM_FRLG_ISLAND_FOUR,
- BGM_FRLG_ISLAND_SIX,
- BGM_FRLG_FLUTE,
- BGM_FRLG_BATTLE_DEOXYS,
- BGM_FRLG_BATTLE_MEWTWO,
- BGM_FRLG_BATTLE_LEGENDARY,
- BGM_FRLG_LEADER_EYE,
- BGM_FRLG_DEOXYS_EYE,
- BGM_FRLG_TRAINER_TOWER,
- BGM_FRLG_HALL_OF_FAME_PALLET_TOWN,
- /*0x22E*/BGM_FRLG_TEACHY_TV,
-};
-
-#endif // GUARD_SONGS_H
diff --git a/include/species.h b/include/species.h
deleted file mode 100644
index ac0797418..000000000
--- a/include/species.h
+++ /dev/null
@@ -1,454 +0,0 @@
-#ifndef GUARD_SPECIES_H
-#define GUARD_SPECIES_H
-
-enum
-{
- SPECIES_NONE, // 0x000
- SPECIES_BULBASAUR, // 0x001
- SPECIES_IVYSAUR, // 0x002
- SPECIES_VENUSAUR, // 0x003
- SPECIES_CHARMANDER, // 0x004
- SPECIES_CHARMELEON, // 0x005
- SPECIES_CHARIZARD, // 0x006
- SPECIES_SQUIRTLE, // 0x007
- SPECIES_WARTORTLE, // 0x008
- SPECIES_BLASTOISE, // 0x009
- SPECIES_CATERPIE, // 0x00a
- SPECIES_METAPOD, // 0x00b
- SPECIES_BUTTERFREE, // 0x00c
- SPECIES_WEEDLE, // 0x00d
- SPECIES_KAKUNA, // 0x00e
- SPECIES_BEEDRILL, // 0x00f
- SPECIES_PIDGEY, // 0x010
- SPECIES_PIDGEOTTO, // 0x011
- SPECIES_PIDGEOT, // 0x012
- SPECIES_RATTATA, // 0x013
- SPECIES_RATICATE, // 0x014
- SPECIES_SPEAROW, // 0x015
- SPECIES_FEAROW, // 0x016
- SPECIES_EKANS, // 0x017
- SPECIES_ARBOK, // 0x018
- SPECIES_PIKACHU, // 0x019
- SPECIES_RAICHU, // 0x01a
- SPECIES_SANDSHREW, // 0x01b
- SPECIES_SANDSLASH, // 0x01c
- SPECIES_NIDORAN_F, // 0x01d
- SPECIES_NIDORINA, // 0x01e
- SPECIES_NIDOQUEEN, // 0x01f
- SPECIES_NIDORAN_M, // 0x020
- SPECIES_NIDORINO, // 0x021
- SPECIES_NIDOKING, // 0x022
- SPECIES_CLEFAIRY, // 0x023
- SPECIES_CLEFABLE, // 0x024
- SPECIES_VULPIX, // 0x025
- SPECIES_NINETALES, // 0x026
- SPECIES_JIGGLYPUFF, // 0x027
- SPECIES_WIGGLYTUFF, // 0x028
- SPECIES_ZUBAT, // 0x029
- SPECIES_GOLBAT, // 0x02a
- SPECIES_ODDISH, // 0x02b
- SPECIES_GLOOM, // 0x02c
- SPECIES_VILEPLUME, // 0x02d
- SPECIES_PARAS, // 0x02e
- SPECIES_PARASECT, // 0x02f
- SPECIES_VENONAT, // 0x030
- SPECIES_VENOMOTH, // 0x031
- SPECIES_DIGLETT, // 0x032
- SPECIES_DUGTRIO, // 0x033
- SPECIES_MEOWTH, // 0x034
- SPECIES_PERSIAN, // 0x035
- SPECIES_PSYDUCK, // 0x036
- SPECIES_GOLDUCK, // 0x037
- SPECIES_MANKEY, // 0x038
- SPECIES_PRIMEAPE, // 0x039
- SPECIES_GROWLITHE, // 0x03a
- SPECIES_ARCANINE, // 0x03b
- SPECIES_POLIWAG, // 0x03c
- SPECIES_POLIWHIRL, // 0x03d
- SPECIES_POLIWRATH, // 0x03e
- SPECIES_ABRA, // 0x03f
- SPECIES_KADABRA, // 0x040
- SPECIES_ALAKAZAM, // 0x041
- SPECIES_MACHOP, // 0x042
- SPECIES_MACHOKE, // 0x043
- SPECIES_MACHAMP, // 0x044
- SPECIES_BELLSPROUT, // 0x045
- SPECIES_WEEPINBELL, // 0x046
- SPECIES_VICTREEBEL, // 0x047
- SPECIES_TENTACOOL, // 0x048
- SPECIES_TENTACRUEL, // 0x049
- SPECIES_GEODUDE, // 0x04a
- SPECIES_GRAVELER, // 0x04b
- SPECIES_GOLEM, // 0x04c
- SPECIES_PONYTA, // 0x04d
- SPECIES_RAPIDASH, // 0x04e
- SPECIES_SLOWPOKE, // 0x04f
- SPECIES_SLOWBRO, // 0x050
- SPECIES_MAGNEMITE, // 0x051
- SPECIES_MAGNETON, // 0x052
- SPECIES_FARFETCHD, // 0x053
- SPECIES_DODUO, // 0x054
- SPECIES_DODRIO, // 0x055
- SPECIES_SEEL, // 0x056
- SPECIES_DEWGONG, // 0x057
- SPECIES_GRIMER, // 0x058
- SPECIES_MUK, // 0x059
- SPECIES_SHELLDER, // 0x05a
- SPECIES_CLOYSTER, // 0x05b
- SPECIES_GASTLY, // 0x05c
- SPECIES_HAUNTER, // 0x05d
- SPECIES_GENGAR, // 0x05e
- SPECIES_ONIX, // 0x05f
- SPECIES_DROWZEE, // 0x060
- SPECIES_HYPNO, // 0x061
- SPECIES_KRABBY, // 0x062
- SPECIES_KINGLER, // 0x063
- SPECIES_VOLTORB, // 0x064
- SPECIES_ELECTRODE, // 0x065
- SPECIES_EXEGGCUTE, // 0x066
- SPECIES_EXEGGUTOR, // 0x067
- SPECIES_CUBONE, // 0x068
- SPECIES_MAROWAK, // 0x069
- SPECIES_HITMONLEE, // 0x06a
- SPECIES_HITMONCHAN, // 0x06b
- SPECIES_LICKITUNG, // 0x06c
- SPECIES_KOFFING, // 0x06d
- SPECIES_WEEZING, // 0x06e
- SPECIES_RHYHORN, // 0x06f
- SPECIES_RHYDON, // 0x070
- SPECIES_CHANSEY, // 0x071
- SPECIES_TANGELA, // 0x072
- SPECIES_KANGASKHAN, // 0x073
- SPECIES_HORSEA, // 0x074
- SPECIES_SEADRA, // 0x075
- SPECIES_GOLDEEN, // 0x076
- SPECIES_SEAKING, // 0x077
- SPECIES_STARYU, // 0x078
- SPECIES_STARMIE, // 0x079
- SPECIES_MR_MIME, // 0x07a
- SPECIES_SCYTHER, // 0x07b
- SPECIES_JYNX, // 0x07c
- SPECIES_ELECTABUZZ, // 0x07d
- SPECIES_MAGMAR, // 0x07e
- SPECIES_PINSIR, // 0x07f
- SPECIES_TAUROS, // 0x080
- SPECIES_MAGIKARP, // 0x081
- SPECIES_GYARADOS, // 0x082
- SPECIES_LAPRAS, // 0x083
- SPECIES_DITTO, // 0x084
- SPECIES_EEVEE, // 0x085
- SPECIES_VAPOREON, // 0x086
- SPECIES_JOLTEON, // 0x087
- SPECIES_FLAREON, // 0x088
- SPECIES_PORYGON, // 0x089
- SPECIES_OMANYTE, // 0x08a
- SPECIES_OMASTAR, // 0x08b
- SPECIES_KABUTO, // 0x08c
- SPECIES_KABUTOPS, // 0x08d
- SPECIES_AERODACTYL, // 0x08e
- SPECIES_SNORLAX, // 0x08f
- SPECIES_ARTICUNO, // 0x090
- SPECIES_ZAPDOS, // 0x091
- SPECIES_MOLTRES, // 0x092
- SPECIES_DRATINI, // 0x093
- SPECIES_DRAGONAIR, // 0x094
- SPECIES_DRAGONITE, // 0x095
- SPECIES_MEWTWO, // 0x096
- SPECIES_MEW, // 0x097
- SPECIES_CHIKORITA, // 0x098
- SPECIES_BAYLEEF, // 0x099
- SPECIES_MEGANIUM, // 0x09a
- SPECIES_CYNDAQUIL, // 0x09b
- SPECIES_QUILAVA, // 0x09c
- SPECIES_TYPHLOSION, // 0x09d
- SPECIES_TOTODILE, // 0x09e
- SPECIES_CROCONAW, // 0x09f
- SPECIES_FERALIGATR, // 0x0a0
- SPECIES_SENTRET, // 0x0a1
- SPECIES_FURRET, // 0x0a2
- SPECIES_HOOTHOOT, // 0x0a3
- SPECIES_NOCTOWL, // 0x0a4
- SPECIES_LEDYBA, // 0x0a5
- SPECIES_LEDIAN, // 0x0a6
- SPECIES_SPINARAK, // 0x0a7
- SPECIES_ARIADOS, // 0x0a8
- SPECIES_CROBAT, // 0x0a9
- SPECIES_CHINCHOU, // 0x0aa
- SPECIES_LANTURN, // 0x0ab
- SPECIES_PICHU, // 0x0ac
- SPECIES_CLEFFA, // 0x0ad
- SPECIES_IGGLYBUFF, // 0x0ae
- SPECIES_TOGEPI, // 0x0af
- SPECIES_TOGETIC, // 0x0b0
- SPECIES_NATU, // 0x0b1
- SPECIES_XATU, // 0x0b2
- SPECIES_MAREEP, // 0x0b3
- SPECIES_FLAAFFY, // 0x0b4
- SPECIES_AMPHAROS, // 0x0b5
- SPECIES_BELLOSSOM, // 0x0b6
- SPECIES_MARILL, // 0x0b7
- SPECIES_AZUMARILL, // 0x0b8
- SPECIES_SUDOWOODO, // 0x0b9
- SPECIES_POLITOED, // 0x0ba
- SPECIES_HOPPIP, // 0x0bb
- SPECIES_SKIPLOOM, // 0x0bc
- SPECIES_JUMPLUFF, // 0x0bd
- SPECIES_AIPOM, // 0x0be
- SPECIES_SUNKERN, // 0x0bf
- SPECIES_SUNFLORA, // 0x0c0
- SPECIES_YANMA, // 0x0c1
- SPECIES_WOOPER, // 0x0c2
- SPECIES_QUAGSIRE, // 0x0c3
- SPECIES_ESPEON, // 0x0c4
- SPECIES_UMBREON, // 0x0c5
- SPECIES_MURKROW, // 0x0c6
- SPECIES_SLOWKING, // 0x0c7
- SPECIES_MISDREAVUS, // 0x0c8
- SPECIES_UNOWN, // 0x0c9
- SPECIES_WOBBUFFET, // 0x0ca
- SPECIES_GIRAFARIG, // 0x0cb
- SPECIES_PINECO, // 0x0cc
- SPECIES_FORRETRESS, // 0x0cd
- SPECIES_DUNSPARCE, // 0x0ce
- SPECIES_GLIGAR, // 0x0cf
- SPECIES_STEELIX, // 0x0d0
- SPECIES_SNUBBULL, // 0x0d1
- SPECIES_GRANBULL, // 0x0d2
- SPECIES_QWILFISH, // 0x0d3
- SPECIES_SCIZOR, // 0x0d4
- SPECIES_SHUCKLE, // 0x0d5
- SPECIES_HERACROSS, // 0x0d6
- SPECIES_SNEASEL, // 0x0d7
- SPECIES_TEDDIURSA, // 0x0d8
- SPECIES_URSARING, // 0x0d9
- SPECIES_SLUGMA, // 0x0da
- SPECIES_MAGCARGO, // 0x0db
- SPECIES_SWINUB, // 0x0dc
- SPECIES_PILOSWINE, // 0x0dd
- SPECIES_CORSOLA, // 0x0de
- SPECIES_REMORAID, // 0x0df
- SPECIES_OCTILLERY, // 0x0e0
- SPECIES_DELIBIRD, // 0x0e1
- SPECIES_MANTINE, // 0x0e2
- SPECIES_SKARMORY, // 0x0e3
- SPECIES_HOUNDOUR, // 0x0e4
- SPECIES_HOUNDOOM, // 0x0e5
- SPECIES_KINGDRA, // 0x0e6
- SPECIES_PHANPY, // 0x0e7
- SPECIES_DONPHAN, // 0x0e8
- SPECIES_PORYGON2, // 0x0e9
- SPECIES_STANTLER, // 0x0ea
- SPECIES_SMEARGLE, // 0x0eb
- SPECIES_TYROGUE, // 0x0ec
- SPECIES_HITMONTOP, // 0x0ed
- SPECIES_SMOOCHUM, // 0x0ee
- SPECIES_ELEKID, // 0x0ef
- SPECIES_MAGBY, // 0x0f0
- SPECIES_MILTANK, // 0x0f1
- SPECIES_BLISSEY, // 0x0f2
- SPECIES_RAIKOU, // 0x0f3
- SPECIES_ENTEI, // 0x0f4
- SPECIES_SUICUNE, // 0x0f5
- SPECIES_LARVITAR, // 0x0f6
- SPECIES_PUPITAR, // 0x0f7
- SPECIES_TYRANITAR, // 0x0f8
- SPECIES_LUGIA, // 0x0f9
- SPECIES_HO_OH, // 0x0fa
- SPECIES_CELEBI, // 0x0fb
-
- SPECIES_OLD_UNOWN_B,
- SPECIES_OLD_UNOWN_C,
- SPECIES_OLD_UNOWN_D,
- SPECIES_OLD_UNOWN_E,
- SPECIES_OLD_UNOWN_F,
- SPECIES_OLD_UNOWN_G,
- SPECIES_OLD_UNOWN_H,
- SPECIES_OLD_UNOWN_I,
- SPECIES_OLD_UNOWN_J,
- SPECIES_OLD_UNOWN_K,
- SPECIES_OLD_UNOWN_L,
- SPECIES_OLD_UNOWN_M,
- SPECIES_OLD_UNOWN_N,
- SPECIES_OLD_UNOWN_O,
- SPECIES_OLD_UNOWN_P,
- SPECIES_OLD_UNOWN_Q,
- SPECIES_OLD_UNOWN_R,
- SPECIES_OLD_UNOWN_S,
- SPECIES_OLD_UNOWN_T,
- SPECIES_OLD_UNOWN_U,
- SPECIES_OLD_UNOWN_V,
- SPECIES_OLD_UNOWN_W,
- SPECIES_OLD_UNOWN_X,
- SPECIES_OLD_UNOWN_Y,
- SPECIES_OLD_UNOWN_Z,
-
- SPECIES_TREECKO, // 0x115
- SPECIES_GROVYLE, // 0x116
- SPECIES_SCEPTILE, // 0x117
- SPECIES_TORCHIC, // 0x118
- SPECIES_COMBUSKEN, // 0x119
- SPECIES_BLAZIKEN, // 0x11a
- SPECIES_MUDKIP, // 0x11b
- SPECIES_MARSHTOMP, // 0x11c
- SPECIES_SWAMPERT, // 0x11d
- SPECIES_POOCHYENA, // 0x11e
- SPECIES_MIGHTYENA, // 0x11f
- SPECIES_ZIGZAGOON, // 0x120
- SPECIES_LINOONE, // 0x121
- SPECIES_WURMPLE, // 0x122
- SPECIES_SILCOON, // 0x123
- SPECIES_BEAUTIFLY, // 0x124
- SPECIES_CASCOON, // 0x125
- SPECIES_DUSTOX, // 0x126
- SPECIES_LOTAD, // 0x127
- SPECIES_LOMBRE, // 0x128
- SPECIES_LUDICOLO, // 0x129
- SPECIES_SEEDOT, // 0x12a
- SPECIES_NUZLEAF, // 0x12b
- SPECIES_SHIFTRY, // 0x12c
- SPECIES_NINCADA, // 0x12d
- SPECIES_NINJASK, // 0x12e
- SPECIES_SHEDINJA, // 0x12f
- SPECIES_TAILLOW, // 0x130
- SPECIES_SWELLOW, // 0x131
- SPECIES_SHROOMISH, // 0x132
- SPECIES_BRELOOM, // 0x133
- SPECIES_SPINDA, // 0x134
- SPECIES_WINGULL, // 0x135
- SPECIES_PELIPPER, // 0x136
- SPECIES_SURSKIT, // 0x137
- SPECIES_MASQUERAIN, // 0x138
- SPECIES_WAILMER, // 0x139
- SPECIES_WAILORD, // 0x13a
- SPECIES_SKITTY, // 0x13b
- SPECIES_DELCATTY, // 0x13c
- SPECIES_KECLEON, // 0x13d
- SPECIES_BALTOY, // 0x13e
- SPECIES_CLAYDOL, // 0x13f
- SPECIES_NOSEPASS, // 0x140
- SPECIES_TORKOAL, // 0x141
- SPECIES_SABLEYE, // 0x142
- SPECIES_BARBOACH, // 0x143
- SPECIES_WHISCASH, // 0x144
- SPECIES_LUVDISC, // 0x145
- SPECIES_CORPHISH, // 0x146
- SPECIES_CRAWDAUNT, // 0x147
- SPECIES_FEEBAS, // 0x148
- SPECIES_MILOTIC, // 0x149
- SPECIES_CARVANHA, // 0x14a
- SPECIES_SHARPEDO, // 0x14b
- SPECIES_TRAPINCH, // 0x14c
- SPECIES_VIBRAVA, // 0x14d
- SPECIES_FLYGON, // 0x14e
- SPECIES_MAKUHITA, // 0x14f
- SPECIES_HARIYAMA, // 0x150
- SPECIES_ELECTRIKE, // 0x151
- SPECIES_MANECTRIC, // 0x152
- SPECIES_NUMEL, // 0x153
- SPECIES_CAMERUPT, // 0x154
- SPECIES_SPHEAL, // 0x155
- SPECIES_SEALEO, // 0x156
- SPECIES_WALREIN, // 0x157
- SPECIES_CACNEA, // 0x158
- SPECIES_CACTURNE, // 0x159
- SPECIES_SNORUNT, // 0x15a
- SPECIES_GLALIE, // 0x15b
- SPECIES_LUNATONE, // 0x15c
- SPECIES_SOLROCK, // 0x15d
- SPECIES_AZURILL, // 0x15e
- SPECIES_SPOINK, // 0x15f
- SPECIES_GRUMPIG, // 0x160
- SPECIES_PLUSLE, // 0x161
- SPECIES_MINUN, // 0x162
- SPECIES_MAWILE, // 0x163
- SPECIES_MEDITITE, // 0x164
- SPECIES_MEDICHAM, // 0x165
- SPECIES_SWABLU, // 0x166
- SPECIES_ALTARIA, // 0x167
- SPECIES_WYNAUT, // 0x168
- SPECIES_DUSKULL, // 0x169
- SPECIES_DUSCLOPS, // 0x16a
- SPECIES_ROSELIA, // 0x16b
- SPECIES_SLAKOTH, // 0x16c
- SPECIES_VIGOROTH, // 0x16d
- SPECIES_SLAKING, // 0x16e
- SPECIES_GULPIN, // 0x16f
- SPECIES_SWALOT, // 0x170
- SPECIES_TROPIUS, // 0x171
- SPECIES_WHISMUR, // 0x172
- SPECIES_LOUDRED, // 0x173
- SPECIES_EXPLOUD, // 0x174
- SPECIES_CLAMPERL, // 0x175
- SPECIES_HUNTAIL, // 0x176
- SPECIES_GOREBYSS, // 0x177
- SPECIES_ABSOL, // 0x178
- SPECIES_SHUPPET, // 0x179
- SPECIES_BANETTE, // 0x17a
- SPECIES_SEVIPER, // 0x17b
- SPECIES_ZANGOOSE, // 0x17c
- SPECIES_RELICANTH, // 0x17d
- SPECIES_ARON, // 0x17e
- SPECIES_LAIRON, // 0x17f
- SPECIES_AGGRON, // 0x180
- SPECIES_CASTFORM, // 0x181
- SPECIES_VOLBEAT, // 0x182
- SPECIES_ILLUMISE, // 0x183
- SPECIES_LILEEP, // 0x184
- SPECIES_CRADILY, // 0x185
- SPECIES_ANORITH, // 0x186
- SPECIES_ARMALDO, // 0x187
- SPECIES_RALTS, // 0x188
- SPECIES_KIRLIA, // 0x189
- SPECIES_GARDEVOIR, // 0x18a
- SPECIES_BAGON, // 0x18b
- SPECIES_SHELGON, // 0x18c
- SPECIES_SALAMENCE, // 0x18d
- SPECIES_BELDUM, // 0x18e
- SPECIES_METANG, // 0x18f
- SPECIES_METAGROSS, // 0x190
- SPECIES_REGIROCK, // 0x191
- SPECIES_REGICE, // 0x192
- SPECIES_REGISTEEL, // 0x193
- SPECIES_KYOGRE, // 0x194
- SPECIES_GROUDON, // 0x195
- SPECIES_RAYQUAZA, // 0x196
- SPECIES_LATIAS, // 0x197
- SPECIES_LATIOS, // 0x198
- SPECIES_JIRACHI, // 0x199
- SPECIES_DEOXYS, // 0x19a
- SPECIES_CHIMECHO, // 0x19b
- SPECIES_EGG, // 0x19c
-
- SPECIES_UNOWN_B,
- SPECIES_UNOWN_C,
- SPECIES_UNOWN_D,
- SPECIES_UNOWN_E,
- SPECIES_UNOWN_F,
- SPECIES_UNOWN_G,
- SPECIES_UNOWN_H,
- SPECIES_UNOWN_I,
- SPECIES_UNOWN_J,
- SPECIES_UNOWN_K,
- SPECIES_UNOWN_L,
- SPECIES_UNOWN_M,
- SPECIES_UNOWN_N,
- SPECIES_UNOWN_O,
- SPECIES_UNOWN_P,
- SPECIES_UNOWN_Q,
- SPECIES_UNOWN_R,
- SPECIES_UNOWN_S,
- SPECIES_UNOWN_T,
- SPECIES_UNOWN_U,
- SPECIES_UNOWN_V,
- SPECIES_UNOWN_W,
- SPECIES_UNOWN_X,
- SPECIES_UNOWN_Y,
- SPECIES_UNOWN_Z,
- SPECIES_UNOWN_EMARK,
- SPECIES_UNOWN_QMARK,
-};
-
-#define NUM_SPECIES SPECIES_EGG
-extern const u8 gSpeciesNames[][11];
-
-#endif // GUARD_SPECIES_H
diff --git a/include/sprite.h b/include/sprite.h
index 531314079..b5a1b6ae5 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -120,10 +120,6 @@ union AffineAnimCmd
{.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
#define AFFINEANIMCMD_END \
{.type = AFFINEANIMCMDTYPE_END}
-#define AFFINEANIMCMD_LOOP(_count) \
- {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}}
-#define AFFINEANIMCMD_JUMP(_target) \
- {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
struct AffineAnimState
{
@@ -195,14 +191,7 @@ struct Sprite
/*0x2D*/ u8 animLoopCounter;
// general purpose data fields
- /*0x2E*/ s16 data0;
- /*0x30*/ s16 data1;
- /*0x32*/ s16 data2;
- /*0x34*/ s16 data3;
- /*0x36*/ s16 data4;
- /*0x38*/ s16 data5;
- /*0x3A*/ s16 data6;
- /*0x3C*/ s16 data7;
+ /*0x2E*/ s16 data[8];
/*0x3E*/ u16 inUse:1; //1
u16 coordOffsetEnabled:1; //2
@@ -244,6 +233,7 @@ extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
extern struct Sprite gSprites[];
+extern struct OamMatrix gOamMatrices[];
void ResetSpriteData(void);
void AnimateSprites(void);
diff --git a/include/starter_choose.h b/include/starter_choose.h
new file mode 100644
index 000000000..61bc17735
--- /dev/null
+++ b/include/starter_choose.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_STARTER_CHOOSE_H
+#define GUARD_STARTER_CHOOSE_H
+
+u16 GetStarterPokemon(u16 chosenStarterId);
+void CB2_ChooseStarter(void);
+
+#endif // GUARD_STARTER_CHOOSE_H
diff --git a/include/strings.h b/include/strings.h
index 7ba979cdc..9c7f9e4f0 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1,45 +1,62 @@
#ifndef GUARD_STRINGS_H
#define GUARD_STRINGS_H
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-
extern const u8 gText_FromSpace[];
+
extern const u8 gText_Lv50[];
extern const u8 gText_OpenLevel[];
+
extern const u8 gText_Mom[];
extern const u8 gText_Dad[];
+
extern const u8 gText_Cool[];
extern const u8 gText_Beauty[];
extern const u8 gText_Cute[];
extern const u8 gText_Smart[];
extern const u8 gText_Tough[];
+
extern const u8 gText_Single[];
extern const u8 gText_Double[];
+
+extern const u8 gText_Spicy[];
+extern const u8 gText_Dry[];
+extern const u8 gText_Sweet[];
+extern const u8 gText_Bitter[];
+extern const u8 gText_Sour[];
+
+extern const u8 gText_StowCase[];
+extern const u8 gText_LvVar1[];
+
extern const u8 gText_Spicy2[];
extern const u8 gText_Dry2[];
extern const u8 gText_Sweet2[];
extern const u8 gText_Bitter2[];
extern const u8 gText_Sour2[];
+
extern const u8 gText_Excellent[];
extern const u8 gText_VeryGood[];
extern const u8 gText_Good[];
extern const u8 gText_SoSo[];
extern const u8 gText_Bad[];
extern const u8 gText_TheWorst[];
+
extern const u8 gText_Slots[];
extern const u8 gText_Roulette[];
extern const u8 gText_Jackpot[];
+
extern const u8 gText_First[];
extern const u8 gText_Second[];
extern const u8 gText_Third[];
+
extern const u8 gText_NoDecorations[];
extern const u8 gText_NoDecorationsInUse[];
+
extern const u8 gText_Exit[];
extern const u8 gText_Cancel[];
+
+extern const u8 gText_ThrowAwayVar1[];
+extern const u8 gText_Var1ThrownAway[];
+
extern const u8 gText_Color161Shadow161[];
extern const u8 gText_GoBackPrevMenu[];
extern const u8 gText_CantPlaceInRoom[];
@@ -56,12 +73,14 @@ extern const u8 gText_NoDecorationHere[];
extern const u8 gText_DecorationWillBeDiscarded[];
extern const u8 gText_CantThrowAwayInUse[];
extern const u8 gText_DecorationThrownAway[];
+
extern const u8 gText_Desk[];
extern const u8 gText_Chair[];
extern const u8 gText_Plant[];
extern const u8 gText_Ornament[];
extern const u8 gText_Mat[];
extern const u8 gText_Poster[];
+
extern const u8 gText_PutOutSelectedDecorItem[];
extern const u8 gText_StoreChosenDecorInPC[];
extern const u8 gText_ThrowAwayUnwantedDecors[];
@@ -70,6 +89,13 @@ extern const u8 gText_Cushion[];
extern const u8 gText_Decorate[];
extern const u8 gText_PutAway[];
extern const u8 gText_Toss2[];
+extern const u8 gText_Hoenn[];
+extern const u8 gText_Ferry[];
+extern const u8 gText_SecretBase[];
+extern const u8 gText_Hideout[];
+extern const u8 gText_FlyToWhere[];
+extern const u8 gText_PokemonLeague[];
+extern const u8 gText_PokemonCenter[];
extern const u8 gText_ApostropheSBase[];
extern const u8 gText_NoRegistry[];
extern const u8 gText_OkayToDeleteFromRegistry[];
@@ -77,5 +103,142 @@ extern const u8 gText_RegisteredDataDeleted[];
extern const u8 gUnknown_085EA79D[];
extern const u8 gText_MixingRecords[];
extern const u8 gText_RecordMixingComplete[];
+extern const u8 gText_EmptyString2[];
+extern const u8 gText_Confirm3[];
+extern const u8 gText_Cancel4[];
+extern const u8 gText_IsThisTheCorrectTime[];
+extern const u8 gText_PkmnFainted3[];
+extern const u8 gText_Coins[];
+extern const u8 gText_Draw[];
+extern const u8 gText_Loss[];
+extern const u8 gText_Win[];
+
+extern const u8 gText_Var1AteTheVar2[];
+extern const u8 gText_Var1HappilyAteVar2[];
+extern const u8 gText_Var1DisdainfullyAteVar2[];
+
+extern const u8 gText_RedPokeblock[];
+extern const u8 gText_BluePokeblock[];
+extern const u8 gText_PinkPokeblock[];
+extern const u8 gText_GreenPokeblock[];
+extern const u8 gText_YellowPokeblock[];
+extern const u8 gText_PurplePokeblock[];
+extern const u8 gText_IndigoPokeblock[];
+extern const u8 gText_BrownPokeblock[];
+extern const u8 gText_LiteBluePokeblock[];
+extern const u8 gText_OlivePokeblock[];
+extern const u8 gText_GrayPokeblock[];
+extern const u8 gText_BlackPokeblock[];
+extern const u8 gText_WhitePokeblock[];
+extern const u8 gText_GoldPokeblock[];
+
+extern const u8 gMenuText_Use[];
+extern const u8 gMenuText_Toss[];
+extern const u8 gMenuText_Give[];
+extern const u8 gMenuText_Give2[];
+
+extern const u8 gText_Cancel2[];
+
+extern const u8 gText_WithdrawPokemon[];
+extern const u8 gText_WithdrawMonDescription[];
+extern const u8 gText_DepositPokemon[];
+extern const u8 gText_DepositMonDescription[];
+extern const u8 gText_MovePokemon[];
+extern const u8 gText_MoveMonDescription[];
+extern const u8 gText_MoveItems[];
+extern const u8 gText_MoveItemsDescription[];
+extern const u8 gText_SeeYa[];
+extern const u8 gText_SeeYaDescription[];
+
+extern const u8 gText_EggNickname[];
+extern const u8 gText_Pokemon[];
+extern const u8 gText_InGameClockUsable[];
+
+// reset rtc screen texts
+extern const u8 gText_Day[];
+extern const u8 gText_Colon3[];
+extern const u8 gText_Confirm2[];
+extern const u8 gText_PresentTime[];
+extern const u8 gText_PreviousTime[];
+extern const u8 gText_ResetRTCConfirmCancel[];
+extern const u8 gText_NoSaveFileCantSetTime[];
+extern const u8 gText_PleaseResetTime[];
+extern const u8 gText_ClockHasBeenReset[];
+extern const u8 gText_SaveCompleted[];
+extern const u8 gText_SaveFailed[];
+
+// menu texts
+extern const u8 gText_MenuPokedex[];
+extern const u8 gText_MenuPokemon[];
+extern const u8 gText_MenuBag[];
+extern const u8 gText_MenuPokenav[];
+extern const u8 gText_MenuPlayer[];
+extern const u8 gText_MenuSave[];
+extern const u8 gText_MenuOption[];
+extern const u8 gText_MenuExit[];
+extern const u8 gText_MenuRetire[];
+extern const u8 gText_MenuRest[];
+extern const u8 gText_Floor1[];
+extern const u8 gText_Floor2[];
+extern const u8 gText_Floor3[];
+extern const u8 gText_Floor4[];
+extern const u8 gText_Floor5[];
+extern const u8 gText_Floor6[];
+extern const u8 gText_Floor7[];
+extern const u8 gText_Peak[];
+extern const u8 gText_SafariBallStock[];
+extern const u8 gText_BattlePyramidFloor[];
+
+// option menu texts
+extern const u8 gText_TextSpeedSlow[];
+extern const u8 gText_TextSpeedMid[];
+extern const u8 gText_TextSpeedFast[];
+extern const u8 gText_BattleSceneOn[];
+extern const u8 gText_BattleSceneOff[];
+extern const u8 gText_BattleStyleShift[];
+extern const u8 gText_BattleStyleSet[];
+extern const u8 gText_SoundMono[];
+extern const u8 gText_SoundStereo[];
+extern const u8 gText_FrameTypeNumber[];
+extern const u8 gText_FrameType[];
+extern const u8 gText_ButtonTypeNormal[];
+extern const u8 gText_ButtonTypeLR[];
+extern const u8 gText_ButtonTypeLEqualsA[];
+extern const u8 gText_Option[];
+extern const u8 gText_OptionMenu[];
+extern const u8 gText_TextSpeed[];
+extern const u8 gText_BattleScene[];
+extern const u8 gText_BattleStyle[];
+extern const u8 gText_Sound[];
+extern const u8 gText_Frame[];
+extern const u8 gText_OptionMenuCancel[];
+extern const u8 gText_ButtonMode[];
+
+extern const u8 gText_MaleSymbol[];
+extern const u8 gText_FemaleSymbol[];
+
+extern const u8 gText_SelectorArrow3[];
+extern const u8 gText_YesNo[];
+
+// mystery event menu text
+extern const u8 gText_EventSafelyLoaded[];
+extern const u8 gText_LoadErrorEndingSession[];
+extern const u8 gText_PressAToLoadEvent[];
+extern const u8 gText_LoadingEvent[];
+extern const u8 gText_DontRemoveCableTurnOff[];
+extern const u8 gText_LinkStandby2[];
+
+// berry tag screen text
+extern const u8 gBerryFirmnessString_VerySoft[];
+extern const u8 gBerryFirmnessString_Soft[];
+extern const u8 gBerryFirmnessString_Hard[];
+extern const u8 gBerryFirmnessString_VeryHard[];
+extern const u8 gBerryFirmnessString_SuperHard[];
+extern const u8 gText_BerryTag[];
+extern const u8 gText_UnkF908Var1Var2[];
+extern const u8 gText_SizeSlash[];
+extern const u8 gText_Var1DotVar2[];
+extern const u8 gText_ThreeMarks[];
+extern const u8 gText_FirmSlash[];
#endif //GUARD_STRINGS_H
diff --git a/include/text.h b/include/text.h
index 594661717..e073c3762 100644
--- a/include/text.h
+++ b/include/text.h
@@ -65,6 +65,7 @@
#define CHAR_x 0xEC
#define CHAR_y 0xED
#define CHAR_z 0xEE
+#define CHAR_SPECIAL_F7 0xF7
#define CHAR_SPECIAL_F9 0xF9
#define CHAR_COLON 0xF0
#define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog
@@ -74,6 +75,10 @@
#define CHAR_NEWLINE 0xFE
#define EOS 0xFF // end of string
+#define EXT_CTRL_CODE_COLOR 0x1
+#define EXT_CTRL_CODE_HIGHLIGHT 0x2
+#define EXT_CTRL_CODE_SHADOW 0x3
+
#define TEXT_COLOR_TRANSPARENT 0x0
#define TEXT_COLOR_WHITE 0x1
#define TEXT_COLOR_DARK_GREY 0x2
@@ -85,6 +90,8 @@
#define NUM_TEXT_PRINTERS 32
+#define TEXT_SPEED_FF 0xFF
+
struct TextPrinterSubStruct
{
u8 font_type:4; // 0x14
@@ -113,7 +120,7 @@ struct TextSubPrinter // TODO: Better name
u8 letterSpacing;
u8 lineSpacing;
u8 fontColor_l:4; // 0xC
- u8 fontColor_h:4;
+ u8 fgColor:4;
u8 bgColor:4;
u8 shadowColor:4;
};
@@ -146,7 +153,7 @@ struct FontInfo
u8 letterSpacing;
u8 lineSpacing;
u8 fontColor_l:4;
- u8 fontColor_h:4;
+ u8 fgColor:4;
u8 bgColor:4;
u8 shadowColor:4;
};
@@ -175,13 +182,6 @@ typedef struct {
extern TextFlags gTextFlags;
-struct __attribute__((packed)) TextColor
-{
- u8 fgColor;
- u8 bgColor;
- u8 shadowColor;
-};
-
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
diff --git a/include/text_window.h b/include/text_window.h
index 0cefeea8e..e6a753fcb 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -1,13 +1,18 @@
#ifndef GUARD_TEXT_WINDOW_H
#define GUARD_TEXT_WINDOW_H
+#define WINDOW_FRAMES_COUNT 20
+
struct TilesPal
{
- u32* tiles;
- u16* pal;
+ const u32 *tiles;
+ const u16 *pal;
};
-const struct TilesPal* sub_8098758(u8 id);
+extern const u32 gTextWindowFrame1_Gfx[];
+extern const u16 gTextWindowFrame1_Pal[];
+
+const struct TilesPal* GetWindowFrameTilesPal(u8 id);
void copy_textbox_border_tile_patterns_to_vram(u8 windowId, u16 destOffset, u8 palOffset);
void sub_809882C(u8 windowId, u16 destOffset, u8 palOffset);
void sub_80987D4(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset);
@@ -15,8 +20,8 @@ void box_border_load_tiles_and_pal(u8 windowId, u16 destOffset, u8 palOffset);
void sub_8098858(u8 windowId, u16 tileNum, u8 palNum);
void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum);
void rbox_fill_rectangle(u8 windowId);
-const u16* stdpal_get(u8 id);
-const u16* sub_8098C64(void);
+const u16 *stdpal_get(u8 id);
+const u16 *GetOverworldTextboxPalettePtr(void);
void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset);
#endif // GUARD_TEXT_WINDOW_H
diff --git a/include/time_events.h b/include/time_events.h
new file mode 100644
index 000000000..fd6d29f39
--- /dev/null
+++ b/include/time_events.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_TIME_EVENTS_H
+#define GUARD_TIME_EVENTS_H
+
+void UpdateMirageRnd(u16);
+u8 IsMirageIslandPresent(void);
+void UpdateBirchState(u16);
+
+#endif // GUARD_TIME_EVENTS_H
diff --git a/include/title_screen.h b/include/title_screen.h
new file mode 100644
index 000000000..b660792fc
--- /dev/null
+++ b/include/title_screen.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_TITLE_SCREEN_H
+#define GUARD_TITLE_SCREEN_H
+
+extern const u16 gUnknown_0853FF70[];
+
+void CB2_InitTitleScreen(void);
+
+#endif // GUARD_TITLE_SCREEN_H
diff --git a/include/trainer_classes.h b/include/trainer_classes.h
deleted file mode 100644
index e5e26b359..000000000
--- a/include/trainer_classes.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef GUARD_TRAINER_CLASSES_H
-#define GUARD_TRAINER_CLASSES_H
-
-enum
-{
- CLASS_PKMN_TRAINER0, // 0
- CLASS_PKMN_TRAINER1, // 1
- CLASS_HIKER, // 2
- CLASS_TEAM_AQUA, // 3
- CLASS_PKMN_BREEDER, // 4
- CLASS_COOLTRAINER, // 5
- CLASS_BIRDKEEPER, // 6
- CLASS_COLLECTOR, // 7
- CLASS_SWIMMER_MALE, // 8
- CLASS_TEAM_MAGMA, // 9
- CLASS_EXPERT, // 0xA
- CLASS_AQUA_ADMIN, // 0xB
- CLASS_BLACK_BELT, // 0xC
- CLASS_AQUA_LEADER, // 0xD
- CLASS_HEX_MANIAC, // 0xE
- CLASS_AROMA_LADY, // 0xF
- CLASS_RUIN_MANIAC, // 0x10
- CLASS_INTERVIEWER, // 0x11
- CLASS_TUBER_FEMALE, // 0x12
- CLASS_TUBER_MALE, // 0x13
- CLASS_LADY, // 0x14
- CLASS_BEAUTY, // 0x15
- CLASS_RICH_BOY, // 0x16
- CLASS_POKEMANIAC, // 0x17
- CLASS_GUITARIST, // 0x18
- CLASS_KINDLER, // 0x19
- CLASS_CAMPER, // 0x1A
- CLASS_PICKNICKER, // 0x1B
- CLASS_BUG_MANIAC, // 0x1C
- CLASS_PSYCHIC, // 0x1D
- CLASS_GENTLEMAN, // 0x1E
- CLASS_ELITE_FOUR, // 0x1F
- CLASS_LEADER, // 0x20
- CLASS_SCHOOL_KID, // 0x21
- CLASS_SCHOOL_SR_JR, // 0x22
- CLASS_WINSTRATE, // 0x23
- CLASS_POKE_FAN, // 0x24
- CLASS_YOUNGSTER, // 0x25
- CLASS_CHAMPION, // 0x26
- CLASS_FISHERMAN, // 0x27
- CLASS_TRIATHLETE, // 0x28
- CLASS_DRAGON_TAMER, // 0x29
- CLASS_NINJA_BOY, // 0x2A
- CLASS_BATTLE_GIRL, // 0x2B
- CLASS_PARASOL_LADY, // 0x2C
- CLASS_SWIMMER_FEMALE, // 0x2D
- CLASS_TWINS, // 0x2E
- CLASS_SAILOR, // 0x2F
- CLASS_COOLTRAINER_2, // 0x30
- CLASS_MAGMA_ADMIN, // 0x31
- CLASS_PKMN_TRAINER_RIVAL, // 0x32
- CLASS_BUG_CATCHER, // 0x33
- CLASS_PKMN_RANGER, // 0x34
- CLASS_MAGMA_LEADER, // 0x35
- CLASS_LASS, // 0x36
- CLASS_YOUNG_COUPLE, // 0x37
- CLASS_OLD_COUPLE, // 0x38
- CLASS_SIS_AND_BRO, // 0x39
- CLASS_SALON_MAIDEN, // 0x3A
- CLASS_DOME_ACE, // 0x3B
- CLASS_PALACE_MAVEN, // 0x3C
- CLASS_ARENA_TYCOON, // 0x3D
- CLASS_FACTORY_HEAD, // 0x3E
- CLASS_PIKE_QUEEN, // 0x3F
- CLASS_PYRAMID_KING, // 0x40
- CLASS_PKMN_TRAINER2, // 0x41
-};
-
-#endif // GUARD_TRAINER_CLASSES_H
diff --git a/include/trainer_front_sprites.h b/include/trainer_front_sprites.h
deleted file mode 100644
index 3259bec88..000000000
--- a/include/trainer_front_sprites.h
+++ /dev/null
@@ -1,101 +0,0 @@
-#ifndef GUARD_TRAINER_FRONT_SPRITES_H
-#define GUARD_TRAINER_FRONT_SPRITES_H
-
-enum
-{
- TRAINER_FRONT_PIC_HIKER,
- TRAINER_FRONT_PIC_AQUA_GRUNT_M,
- TRAINER_FRONT_PIC_PKMN_BREEDER_F,
- TRAINER_FRONT_PIC_COOLTRAINER_M,
- TRAINER_FRONT_PIC_BIRD_KEEPER,
- TRAINER_FRONT_PIC_COLLECTOR,
- TRAINER_FRONT_PIC_AQUA_GRUNT_F,
- TRAINER_FRONT_PIC_SWIMMER_M,
- TRAINER_FRONT_PIC_MAGMA_GRUNT_M,
- TRAINER_FRONT_PIC_EXPERT_M,
- TRAINER_FRONT_PIC_AQUA_ADMIN_M,
- TRAINER_FRONT_PIC_BLACK_BELT,
- TRAINER_FRONT_PIC_AQUA_ADMIN_F,
- TRAINER_FRONT_PIC_AQUA_LEADER,
- TRAINER_FRONT_PIC_HEX_MANIAC,
- TRAINER_FRONT_PIC_AROMA_LADY,
- TRAINER_FRONT_PIC_RUIN_MANIAC,
- TRAINER_FRONT_PIC_INTERVIEWER,
- TRAINER_FRONT_PIC_TUBER_F,
- TRAINER_FRONT_PIC_TUBER_M,
- TRAINER_FRONT_PIC_COOLTRAINER_F,
- TRAINER_FRONT_PIC_LADY,
- TRAINER_FRONT_PIC_BEAUTY,
- TRAINER_FRONT_PIC_RICH_BOY,
- TRAINER_FRONT_PIC_EXPERT_F,
- TRAINER_FRONT_PIC_POKE_MANIAC,
- TRAINER_FRONT_PIC_MAGMA_GRUNT_F,
- TRAINER_FRONT_PIC_GUITARIST,
- TRAINER_FRONT_PIC_KINDLER,
- TRAINER_FRONT_PIC_CAMPER,
- TRAINER_FRONT_PIC_PICNICKER,
- TRAINER_FRONT_PIC_BUG_MANIAC,
- TRAINER_FRONT_PIC_PKMN_BREEDER_M,
- TRAINER_FRONT_PIC_PSYCHIC_M,
- TRAINER_FRONT_PIC_PSYCHIC_F,
- TRAINER_FRONT_PIC_GENTLEMAN,
- TRAINER_FRONT_PIC_SIDNEY,
- TRAINER_FRONT_PIC_PHOEBE,
- TRAINER_FRONT_PIC_GLACIA,
- TRAINER_FRONT_PIC_DRAKE,
- TRAINER_FRONT_PIC_ROXANNE,
- TRAINER_FRONT_PIC_BRAWLY,
- TRAINER_FRONT_PIC_WATTSON,
- TRAINER_FRONT_PIC_FLANNERY,
- TRAINER_FRONT_PIC_NORMAN,
- TRAINER_FRONT_PIC_WINONA,
- TRAINER_FRONT_PIC_TATE_LIZA,
- TRAINER_FRONT_PIC_JUAN,
- TRAINER_FRONT_PIC_SCHOOL_KID_M,
- TRAINER_FRONT_PIC_SCHOOL_KID_F,
- TRAINER_FRONT_PIC_SR_JR,
- TRAINER_FRONT_PIC_POKÉFAN_M,
- TRAINER_FRONT_PIC_POKÉFAN_F,
- TRAINER_FRONT_PIC_YOUNGSTER,
- TRAINER_FRONT_PIC_WALLACE,
- TRAINER_FRONT_PIC_FISHERMAN,
- TRAINER_FRONT_PIC_TRIATHLETE_BIKER_M,
- TRAINER_FRONT_PIC_TRIATHLETE_BIKER_F,
- TRAINER_FRONT_PIC_TRIATHLETE_JOGGER_M,
- TRAINER_FRONT_PIC_TRIATHLETE_JOGGER_F,
- TRAINER_FRONT_PIC_TRIATHLETE_SWIMMER_M,
- TRAINER_FRONT_PIC_TRIATHLETE_SWIMMER_F,
- TRAINER_FRONT_PIC_DRAGON_TAMER,
- TRAINER_FRONT_PIC_NINJA_BOY,
- TRAINER_FRONT_PIC_BATTLE_GIRL,
- TRAINER_FRONT_PIC_PARASOL_LADY,
- TRAINER_FRONT_PIC_SWIMMER_F,
- TRAINER_FRONT_PIC_TWINS,
- TRAINER_FRONT_PIC_SAILOR,
- TRAINER_FRONT_PIC_MAGMA_ADMIN_M,
- TRAINER_FRONT_PIC_WALLY,
- TRAINER_FRONT_PIC_BRENDAN_E,
- TRAINER_FRONT_PIC_MAY_E,
- TRAINER_FRONT_PIC_BUG_CATCHER,
- TRAINER_FRONT_PIC_PKMN_RANGER_M,
- TRAINER_FRONT_PIC_PKMN_RANGER_F,
- TRAINER_FRONT_PIC_MAGMA_LEADER,
- TRAINER_FRONT_PIC_LASS,
- TRAINER_FRONT_PIC_YOUNG_COUPLE,
- TRAINER_FRONT_PIC_OLD_COUPLE,
- TRAINER_FRONT_PIC_SIS_AND_BRO,
- TRAINER_FRONT_PIC_STEVEN,
- TRAINER_FRONT_PIC_ANABEL,
- TRAINER_FRONT_PIC_TUCKER,
- TRAINER_FRONT_PIC_SPENSER,
- TRAINER_FRONT_PIC_GRETA,
- TRAINER_FRONT_PIC_NOLAND,
- TRAINER_FRONT_PIC_LUCY,
- TRAINER_FRONT_PIC_BRANDON,
- TRAINER_FRONT_PIC_RED,
- TRAINER_FRONT_PIC_LEAF,
- TRAINER_FRONT_PIC_BRENDAN_RS,
- TRAINER_FRONT_PIC_MAY_RS
-};
-
-#endif // GUARD_TRAINER_FRONT_SPRITES_H
diff --git a/include/trainer_ids.h b/include/trainer_ids.h
deleted file mode 100644
index 65c80187f..000000000
--- a/include/trainer_ids.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef GUARD_TRAINER_IDS_H
-#define GUARD_TRAINER_IDS_H
-
-#define NO_OF_TRAINERS 854
-#define TRAINER_ID_STEVEN 804
-
-#endif // GUARD_TRAINER_IDS_H
diff --git a/include/trainer_see.h b/include/trainer_see.h
index ab035d9f8..847380782 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -1,8 +1,30 @@
#ifndef GUARD_TRAINER_SEE_H
#define GUARD_TRAINER_SEE_H
-void sub_80B4578(struct MapObject *);
-u8 sub_80B47BC(void);
-void sub_8155D78(struct MapObject *);
+struct ApproachingTrainer
+{
+ u8 mapObjectId;
+ u8 radius; // plus 1
+ const u8 *trainerScriptPtr;
+ u8 taskId;
+};
-#endif //GUARD_TRAINER_SEE_H
+extern u16 gUnknown_03006080;
+extern u8 gUnknown_03006084[4];
+extern struct ApproachingTrainer gApproachingTrainers[2];
+extern u8 gNoOfApproachingTrainers;
+extern u8 gUnknown_030060AC;
+extern u8 gApproachingTrainerId;
+
+bool8 CheckForTrainersWantingBattle(void);
+void sub_80B4578(struct MapObject *var);
+void EndTrainerApproach(void);
+void sub_80B45D0(void);
+u8 FldEff_ExclamationMarkIcon1(void);
+u8 FldEff_ExclamationMarkIcon2(void);
+u8 FldEff_HeartIcon(void);
+u8 GetCurrentApproachingTrainerMapObjectId(void);
+u8 GetChosenApproachingTrainerMapObjectId(u8 arrayId);
+void sub_80B4808(void);
+
+#endif // GUARD_TRAINER_SEE_H
diff --git a/include/tv.h b/include/tv.h
index 9dc0f7719..e0f3e2b0d 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -15,5 +15,8 @@ void sub_80F14F8(TVShow *shows);
size_t sub_80EF370(int value);
void sub_80F1208(TVShow *dest);
void sub_80F0BB8(void);
+bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
+void SetPokemonAnglerSpecies(u16 species);
+void UpdateTVShowsPerDay(u16 days);
#endif //GUARD_TV_H
diff --git a/include/unk_text_util.h b/include/unk_text_util.h
new file mode 100644
index 000000000..72243a90e
--- /dev/null
+++ b/include/unk_text_util.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_UNK_TEXT_UTIL_H
+#define GUARD_UNK_TEXT_UTIL_H
+
+void UnkTextUtil_Reset(void);
+void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr);
+u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src);
+const u8 *UnkTextUtil_GetPtrI(u8 idx);
+
+#endif //GUARD_UNK_TEXT_UTIL_H
diff --git a/include/unk_transition.h b/include/unk_transition.h
new file mode 100644
index 000000000..a9caac419
--- /dev/null
+++ b/include/unk_transition.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_UNK_TRANSITION_H
+#define GUARD_UNK_TRANSITION_H
+
+void Phase2Task_34(u8 taskId);
+void Phase2Task_35(u8 taskId);
+void Phase2Task_36(u8 taskId);
+void Phase2Task_37(u8 taskId);
+void Phase2Task_38(u8 taskId);
+void Phase2Task_39(u8 taskId);
+void Phase2Task_40(u8 taskId);
+void Phase2Task_41(u8 taskId);
+
+#endif // GUARD_UNK_TRANSITION_H
diff --git a/include/unknown_task.h b/include/unknown_task.h
deleted file mode 100644
index 9c6968c30..000000000
--- a/include/unknown_task.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef GUARD_unknown_task_H
-#define GUARD_unknown_task_H
-
-// Exported type declarations
-struct UnknownTaskStruct
-{
- volatile void *dest;
- u32 control;
- u8 unk8;
- u8 unk9;
-};
-
-extern struct UnknownTaskStruct gUnknown_0831AC70;
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-void remove_some_task(void);
-void sub_80BA038(struct UnknownTaskStruct arg0);
-void sub_80BA0A8(void);
-
-#endif // GUARD_unknown_task_H
diff --git a/include/vars.h b/include/vars.h
deleted file mode 100644
index c097faff7..000000000
--- a/include/vars.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef GUARD_VARS_H
-#define GUARD_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_0x4010 0x4010
-#define VAR_0x4011 0x4011
-#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_STORAGE_UNKNOWN 0x4036
-#define VAR_POKELOT_PRIZE 0x4045
-#define VAR_NATIONAL_DEX 0x4046
-#define VAR_SEEDOT_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_LOTAD_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_PORTHOLE 0x40B4
-
-#define VAR_0x40BC 0x40BC
-#define VAR_0x40C2 0x40C2
-
-#define VAR_FRONTIER_FACILITY 0x40CF
-
-#define VAR_DAILY_SLOTS 0x40E6
-#define VAR_DAILY_WILDS 0x40E7
-#define VAR_DAILY_BLENDER 0x40E8
-#define VAR_DAILY_PLANTED_BERRIES 0x40E9
-#define VAR_DAILY_PICKED_BERRIES 0x40EA
-#define VAR_DAILY_ROULETTE 0x40EB
-#define VAR_0x40EC 0x40EC
-#define VAR_0x40ED 0x40ED
-#define VAR_0x40EE 0x40EE
-#define VAR_0x40EF 0x40EF
-#define VAR_0x40F0 0x40F0
-#define VAR_DAILY_BP 0x40F1
-
-#endif // GUARD_VARS_H
diff --git a/include/wallclock.h b/include/wallclock.h
new file mode 100644
index 000000000..48697c19f
--- /dev/null
+++ b/include/wallclock.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_WALLCLOCK_H
+#define GUARD_WALLCLOCK_H
+
+void Cb2_StartWallClock(void);
+
+#endif //GUARD_WALLCLOCK_H
diff --git a/include/wild_encounter.h b/include/wild_encounter.h
new file mode 100644
index 000000000..55bbaa7dd
--- /dev/null
+++ b/include/wild_encounter.h
@@ -0,0 +1,44 @@
+#ifndef GUARD_WILD_ENCOUNTER_H
+#define GUARD_WILD_ENCOUNTER_H
+
+#define LAND_WILD_COUNT 12
+#define WATER_WILD_COUNT 5
+#define ROCK_WILD_COUNT 5
+#define FISH_WILD_COUNT 10
+
+struct WildPokemon
+{
+ u8 minLevel;
+ u8 maxLevel;
+ u16 species;
+};
+
+struct WildPokemonInfo
+{
+ u8 encounterRate;
+ const struct WildPokemon *wildPokemon;
+};
+
+struct WildPokemonHeader
+{
+ u8 mapGroup;
+ u8 mapNum;
+ const struct WildPokemonInfo *landMonsInfo;
+ const struct WildPokemonInfo *waterMonsInfo;
+ const struct WildPokemonInfo *rockSmashMonsInfo;
+ const struct WildPokemonInfo *fishingMonsInfo;
+};
+
+extern const struct WildPokemonHeader gWildMonHeaders[];
+
+void DisableWildEncounters(bool8 disabled);
+bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavior);
+void ScrSpecial_RockSmashWildEncounter(void);
+bool8 SweetScentWildEncounter(void);
+bool8 DoesCurrentMapHaveFishingMons(void);
+void FishingWildEncounter(u8 rod);
+u16 GetLocalWildMon(bool8 *isWaterMon);
+u16 GetLocalWaterMon(void);
+bool8 UpdateRepelCounter(void);
+
+#endif // GUARD_WILD_ENCOUNTER_H
diff --git a/include/window.h b/include/window.h
index b630cd316..07c642a09 100644
--- a/include/window.h
+++ b/include/window.h
@@ -52,7 +52,7 @@ void PutWindowTilemap(u8 windowId);
void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette);
void ClearWindowTilemap(u8 windowId);
void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height);
-void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height);
+void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height);
void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight);
void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset);