code:
#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          (1 << 0)
#define BATTLE_TYPE_LINK            (1 << 1)
#define BATTLE_TYPE_IS_MASTER       (1 << 2) // In not-link battles, it's always set.
#define BATTLE_TYPE_TRAINER         (1 << 3)
#define BATTLE_TYPE_FIRST_BATTLE    (1 << 4)
#define BATTLE_TYPE_20              (1 << 5)
#define BATTLE_TYPE_MULTI           (1 << 6)
#define BATTLE_TYPE_SAFARI          (1 << 7)
#define BATTLE_TYPE_BATTLE_TOWER    (1 << 8)
#define BATTLE_TYPE_WALLY_TUTORIAL  (1 << 9)
#define BATTLE_TYPE_ROAMER          (1 << 10)
#define BATTLE_TYPE_EREADER_TRAINER (1 << 11)
#define BATTLE_TYPE_KYOGRE_GROUDON  (1 << 12)
#define BATTLE_TYPE_LEGENDARY       (1 << 13)
#define BATTLE_TYPE_REGI            (1 << 14)
#define BATTLE_TYPE_TWO_OPPONENTS   (1 << 15)
#define BATTLE_TYPE_DOME            (1 << 16)
#define BATTLE_TYPE_PALACE          (1 << 17)
#define BATTLE_TYPE_ARENA           (1 << 18)
#define BATTLE_TYPE_FACTORY         (1 << 19)
#define BATTLE_TYPE_PIKE            (1 << 20)
#define BATTLE_TYPE_PYRAMID         (1 << 21)
#define BATTLE_TYPE_INGAME_PARTNER  (1 << 22)
#define BATTLE_TYPE_x800000         (1 << 23)
#define BATTLE_TYPE_RECORDED        (1 << 24)
#define BATTLE_TYPE_x2000000        (1 << 25)
#define BATTLE_TYPE_TRAINER_HILL    (1 << 26)
#define BATTLE_TYPE_SECRET_BASE     (1 << 27)
#define BATTLE_TYPE_GROUDON         (1 << 28)
#define BATTLE_TYPE_KYOGRE          (1 << 29)
#define BATTLE_TYPE_RAYQUAZA        (1 << 30)
#define BATTLE_TYPE_x80000000       (1 << 31)
#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                  1
#define B_OUTCOME_LOST                 2
#define B_OUTCOME_DREW                 3
#define B_OUTCOME_RAN                  4
#define B_OUTCOME_PLAYER_TELEPORTED    5
#define B_OUTCOME_MON_FLED             6
#define B_OUTCOME_CAUGHT               7
#define B_OUTCOME_NO_SAFARI_BALLS      8
#define B_OUTCOME_FORFEITED            9
#define B_OUTCOME_MON_TELEPORTED       10
#define B_OUTCOME_LINK_BATTLE_RAN      (1 << 7) // 128

// Non-volatile status conditions
// These persist remain outside of battle and after switching out
#define STATUS1_NONE             0
#define STATUS1_SLEEP            (1 << 0 | 1 << 1 | 1 << 2) // First 3 bits (Number of turns to sleep)
#define STATUS1_SLEEP_TURN(num)  ((num) << 0) // Just for readability (or if rearranging statuses)
#define STATUS1_POISON           (1 << 3)
#define STATUS1_BURN             (1 << 4)
#define STATUS1_FREEZE           (1 << 5)
#define STATUS1_PARALYSIS        (1 << 6)
#define STATUS1_TOXIC_POISON     (1 << 7)
#define STATUS1_TOXIC_COUNTER    (1 << 8 | 1 << 9 | 1 << 10 | 1 << 11)
#define STATUS1_TOXIC_TURN(num)  ((num) << 8)
#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             (1 << 0 | 1 << 1 | 1 << 2)
#define STATUS2_CONFUSION_TURN(num)   ((num) << 0)
#define STATUS2_FLINCHED              (1 << 3)
#define STATUS2_UPROAR                (1 << 4 | 1 << 5 | 1 << 6)
#define STATUS2_UPROAR_TURN(num)      ((num) << 4)
#define STATUS2_UNUSED                (1 << 7)
#define STATUS2_BIDE                  (1 << 8 | 1 << 9)
#define STATUS2_BIDE_TURN(num)        (((num) << 8) & STATUS2_BIDE)
#define STATUS2_LOCK_CONFUSE          (1 << 10 | 1 << 11) // e.g. Thrash
#define STATUS2_LOCK_CONFUSE_TURN(num)((num) << 10)
#define STATUS2_MULTIPLETURNS         (1 << 12)
#define STATUS2_WRAPPED               (1 << 13 | 1 << 14 | 1 << 15)
#define STATUS2_WRAPPED_TURN(num)     ((num) << 13)
#define STATUS2_INFATUATION           (1 << 16 | 1 << 17 | 1 << 18 | 1 << 19)  // 4 bits, one for every battler
#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16)
#define STATUS2_FOCUS_ENERGY          (1 << 20)
#define STATUS2_TRANSFORMED           (1 << 21)
#define STATUS2_RECHARGE              (1 << 22)
#define STATUS2_RAGE                  (1 << 23)
#define STATUS2_SUBSTITUTE            (1 << 24)
#define STATUS2_DESTINY_BOND          (1 << 25)
#define STATUS2_ESCAPE_PREVENTION     (1 << 26)
#define STATUS2_NIGHTMARE             (1 << 27)
#define STATUS2_CURSED                (1 << 28)
#define STATUS2_FORESIGHT             (1 << 29)
#define STATUS2_DEFENSE_CURL          (1 << 30)
#define STATUS2_TORMENT               (1 << 31)

// Seems like per-battler statuses. Not quite sure how to categorize these
#define STATUS3_LEECHSEED_BATTLER       (1 << 0 | 1 << 1) // The battler to receive HP from Leech Seed
#define STATUS3_LEECHSEED               (1 << 2)
#define STATUS3_ALWAYS_HITS             (1 << 3 | 1 << 4)
#define STATUS3_ALWAYS_HITS_TURN(num)   (((num) << 3) & STATUS3_ALWAYS_HITS) // "Always Hits" is set as a 2 turn timer, i.e. next turn is the last turn when it's active
#define STATUS3_PERISH_SONG             (1 << 5)
#define STATUS3_ON_AIR                  (1 << 6)
#define STATUS3_UNDERGROUND             (1 << 7)
#define STATUS3_MINIMIZED               (1 << 8)
#define STATUS3_CHARGED_UP              (1 << 9)
#define STATUS3_ROOTED                  (1 << 10)
#define STATUS3_YAWN                    (1 << 11 | 1 << 12) // Number of turns to sleep
#define STATUS3_YAWN_TURN(num)          (((num) << 11) & STATUS3_YAWN)
#define STATUS3_IMPRISONED_OTHERS       (1 << 13)
#define STATUS3_GRUDGE                  (1 << 14)
#define STATUS3_CANT_SCORE_A_CRIT       (1 << 15)
#define STATUS3_MUDSPORT                (1 << 16)
#define STATUS3_WATERSPORT              (1 << 17)
#define STATUS3_UNDERWATER              (1 << 18)
#define STATUS3_INTIMIDATE_POKES        (1 << 19)
#define STATUS3_TRACE                   (1 << 20)
#define STATUS3_SEMI_INVULNERABLE       (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)

// Not really sure what a "hitmarker" is.
#define HITMARKER_x10                   (1 << 4)
#define HITMARKER_x20                   (1 << 5)
#define HITMARKER_DESTINYBOND           (1 << 6)
#define HITMARKER_NO_ANIMATIONS         (1 << 7)
#define HITMARKER_IGNORE_SUBSTITUTE     (1 << 8)
#define HITMARKER_NO_ATTACKSTRING       (1 << 9)
#define HITMARKER_ATTACKSTRING_PRINTED  (1 << 10)
#define HITMARKER_NO_PPDEDUCT           (1 << 11)
#define HITMARKER_SWAP_ATTACKER_TARGET  (1 << 12)
#define HITMARKER_IGNORE_SAFEGUARD      (1 << 13)
#define HITMARKER_SYNCHRONISE_EFFECT    (1 << 14)
#define HITMARKER_RUN                   (1 << 15)
#define HITMARKER_IGNORE_ON_AIR         (1 << 16)
#define HITMARKER_IGNORE_UNDERGROUND    (1 << 17)
#define HITMARKER_IGNORE_UNDERWATER     (1 << 18)
#define HITMARKER_UNABLE_TO_USE_MOVE    (1 << 19)
#define HITMARKER_x100000               (1 << 20)
#define HITMARKER_x200000               (1 << 21)
#define HITMARKER_x400000               (1 << 22)
#define HITMARKER_x800000               (1 << 23)
#define HITMARKER_GRUDGE                (1 << 24)
#define HITMARKER_OBEYS                 (1 << 25)
#define HITMARKER_x4000000              (1 << 26)
#define HITMARKER_CHARGING              (1 << 27)
#define HITMARKER_FAINTED(battler)      (gBitTable[battler] << 28)
#define HITMARKER_FAINTED2(battler)     ((1 << 28) << 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               1
#define MOVE_EFFECT_POISON              2
#define MOVE_EFFECT_BURN                3
#define MOVE_EFFECT_FREEZE              4
#define MOVE_EFFECT_PARALYSIS           5
#define MOVE_EFFECT_TOXIC               6
#define PRIMARY_STATUS_MOVE_EFFECT      MOVE_EFFECT_TOXIC // All above move effects apply primary status
#define MOVE_EFFECT_CONFUSION           7
#define MOVE_EFFECT_FLINCH              8
#define MOVE_EFFECT_TRI_ATTACK          9
#define MOVE_EFFECT_UPROAR              10
#define MOVE_EFFECT_PAYDAY              11
#define MOVE_EFFECT_CHARGING            12
#define MOVE_EFFECT_WRAP                13
#define MOVE_EFFECT_RECOIL_25           14
#define MOVE_EFFECT_ATK_PLUS_1          15
#define MOVE_EFFECT_DEF_PLUS_1          16
#define MOVE_EFFECT_SPD_PLUS_1          17
#define MOVE_EFFECT_SP_ATK_PLUS_1       18
#define MOVE_EFFECT_SP_DEF_PLUS_1       19
#define MOVE_EFFECT_ACC_PLUS_1          20
#define MOVE_EFFECT_EVS_PLUS_1          21
#define MOVE_EFFECT_ATK_MINUS_1         22
#define MOVE_EFFECT_DEF_MINUS_1         23
#define MOVE_EFFECT_SPD_MINUS_1         24
#define MOVE_EFFECT_SP_ATK_MINUS_1      25
#define MOVE_EFFECT_SP_DEF_MINUS_1      26
#define MOVE_EFFECT_ACC_MINUS_1         27
#define MOVE_EFFECT_EVS_MINUS_1         28
#define MOVE_EFFECT_RECHARGE            29
#define MOVE_EFFECT_RAGE                30
#define MOVE_EFFECT_STEAL_ITEM          31
#define MOVE_EFFECT_PREVENT_ESCAPE      32
#define MOVE_EFFECT_NIGHTMARE           33
#define MOVE_EFFECT_ALL_STATS_UP        34
#define MOVE_EFFECT_RAPIDSPIN           35
#define MOVE_EFFECT_REMOVE_PARALYSIS    36
#define MOVE_EFFECT_ATK_DEF_DOWN        37
#define MOVE_EFFECT_RECOIL_33           38
#define MOVE_EFFECT_ATK_PLUS_2          39
#define MOVE_EFFECT_DEF_PLUS_2          40
#define MOVE_EFFECT_SPD_PLUS_2          41
#define MOVE_EFFECT_SP_ATK_PLUS_2       42
#define MOVE_EFFECT_SP_DEF_PLUS_2       43
#define MOVE_EFFECT_ACC_PLUS_2          44
#define MOVE_EFFECT_EVS_PLUS_2          45
#define MOVE_EFFECT_ATK_MINUS_2         46
#define MOVE_EFFECT_DEF_MINUS_2         47
#define MOVE_EFFECT_SPD_MINUS_2         48
#define MOVE_EFFECT_SP_ATK_MINUS_2      49
#define MOVE_EFFECT_SP_DEF_MINUS_2      50
#define MOVE_EFFECT_ACC_MINUS_2         51
#define MOVE_EFFECT_EVS_MINUS_2         52
#define MOVE_EFFECT_THRASH              53
#define MOVE_EFFECT_KNOCK_OFF           54
#define MOVE_EFFECT_NOTHING_37          55
#define MOVE_EFFECT_NOTHING_38          56
#define MOVE_EFFECT_NOTHING_39          57
#define MOVE_EFFECT_NOTHING_3A          58
#define MOVE_EFFECT_SP_ATK_TWO_DOWN     59
#define NUM_MOVE_EFFECTS                60

#define MOVE_EFFECT_AFFECTS_USER        (1 << 6) // 64
#define MOVE_EFFECT_CERTAIN             (1 << 7) // 128

// Battle terrain defines for gBattleTerrain.
#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_MOUNTAIN     6
#define BATTLE_TERRAIN_CAVE         7
#define BATTLE_TERRAIN_BUILDING     8
#define BATTLE_TERRAIN_PLAIN        9

#endif // GUARD_CONSTANTS_BATTLE_H


code:
#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_TRY_TO_FAINT (1 << 1)
#define AI_SCRIPT_CHECK_VIABILITY (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

repo_name: Lunos/pokeemerald

license: mit


code:
#ifndef GUARD_CONSTANTS_BATTLE_ANIM_H
#define GUARD_CONSTANTS_BATTLE_ANIM_H

// Sprites start at 10000 and thus must be subtracted of 10000 to account for the true index.
#define GET_TRUE_SPRITE_INDEX(i) ((i - ANIM_SPRITES_START))

// Particle ids.
#define ANIM_SPRITES_START 10000

#define ANIM_TAG_BONE                       (ANIM_SPRITES_START + 0)
#define ANIM_TAG_SPARK                      (ANIM_SPRITES_START + 1)
#define ANIM_TAG_PENCIL                     (ANIM_SPRITES_START + 2)
#define ANIM_TAG_AIR_WAVE                   (ANIM_SPRITES_START + 3)
#define ANIM_TAG_ORB                        (ANIM_SPRITES_START + 4)
#define ANIM_TAG_SWORD                      (ANIM_SPRITES_START + 5)
#define ANIM_TAG_SEED                       (ANIM_SPRITES_START + 6)
#define ANIM_TAG_EXPLOSION_6                (ANIM_SPRITES_START + 7)
#define ANIM_TAG_PINK_ORB                   (ANIM_SPRITES_START + 8) // unused
#define ANIM_TAG_GUST                       (ANIM_SPRITES_START + 9)
#define ANIM_TAG_ICE_CUBE                   (ANIM_SPRITES_START + 10)
#define ANIM_TAG_SPARK_2                    (ANIM_SPRITES_START + 11)
#define ANIM_TAG_ORANGE                     (ANIM_SPRITES_START + 12) // unused
#define ANIM_TAG_YELLOW_BALL                (ANIM_SPRITES_START + 13)
#define ANIM_TAG_LOCK_ON                    (ANIM_SPRITES_START + 14)
#define ANIM_TAG_TIED_BAG                   (ANIM_SPRITES_START + 15)
#define ANIM_TAG_BLACK_SMOKE                (ANIM_SPRITES_START + 16)
#define ANIM_TAG_BLACK_BALL                 (ANIM_SPRITES_START + 17)
#define ANIM_TAG_CONVERSION                 (ANIM_SPRITES_START + 18)
#define ANIM_TAG_GLASS                      (ANIM_SPRITES_START + 19) // unused
#define ANIM_TAG_HORN_HIT                   (ANIM_SPRITES_START + 20)
#define ANIM_TAG_HIT                        (ANIM_SPRITES_START + 21)
#define ANIM_TAG_HIT_2                      (ANIM_SPRITES_START + 22)
#define ANIM_TAG_BLUE_SHARDS                (ANIM_SPRITES_START + 23) // unused
#define ANIM_TAG_CLOSING_EYE                (ANIM_SPRITES_START + 24) // unused
#define ANIM_TAG_WAVING_HAND                (ANIM_SPRITES_START + 25) // unused
#define ANIM_TAG_HIT_DUPLICATE              (ANIM_SPRITES_START + 26) // unused
#define ANIM_TAG_LEER                       (ANIM_SPRITES_START + 27)
#define ANIM_TAG_BLUE_BURST                 (ANIM_SPRITES_START + 28) // unused
#define ANIM_TAG_SMALL_EMBER                (ANIM_SPRITES_START + 29)
#define ANIM_TAG_GRAY_SMOKE                 (ANIM_SPRITES_START + 30)
#define ANIM_TAG_BLUE_STAR                  (ANIM_SPRITES_START + 31)
#define ANIM_TAG_BUBBLE_BURST               (ANIM_SPRITES_START + 32)
#define ANIM_TAG_FIRE                       (ANIM_SPRITES_START + 33)
#define ANIM_TAG_SPINNING_FIRE              (ANIM_SPRITES_START + 34) // unused
#define ANIM_TAG_FIRE_PLUME                 (ANIM_SPRITES_START + 35)
#define ANIM_TAG_LIGHTNING_2                (ANIM_SPRITES_START + 36) // unused
#define ANIM_TAG_LIGHTNING                  (ANIM_SPRITES_START + 37)
#define ANIM_TAG_CLAW_SLASH_2               (ANIM_SPRITES_START + 38) // unused
#define ANIM_TAG_CLAW_SLASH                 (ANIM_SPRITES_START + 39)
#define ANIM_TAG_SCRATCH_3                  (ANIM_SPRITES_START + 40) // unused
#define ANIM_TAG_SCRATCH_2                  (ANIM_SPRITES_START + 41) // unused
#define ANIM_TAG_BUBBLE_BURST_2             (ANIM_SPRITES_START + 42) // unused
#define ANIM_TAG_ICE_CHUNK                  (ANIM_SPRITES_START + 43)
#define ANIM_TAG_GLASS_2                    (ANIM_SPRITES_START + 44) // unused
#define ANIM_TAG_PINK_HEART_2               (ANIM_SPRITES_START + 45) // unused
#define ANIM_TAG_SAP_DRIP                   (ANIM_SPRITES_START + 46) // unused
#define ANIM_TAG_SAP_DRIP_2                 (ANIM_SPRITES_START + 47) // unused
#define ANIM_TAG_SPARKLE_1                  (ANIM_SPRITES_START + 48)
#define ANIM_TAG_SPARKLE_2                  (ANIM_SPRITES_START + 49)
#define ANIM_TAG_HUMANOID_FOOT              (ANIM_SPRITES_START + 50)
#define ANIM_TAG_MONSTER_FOOT               (ANIM_SPRITES_START + 51)
#define ANIM_TAG_HUMANOID_HAND              (ANIM_SPRITES_START + 52) // unused
#define ANIM_TAG_NOISE_LINE                 (ANIM_SPRITES_START + 53)
#define ANIM_TAG_YELLOW_UNK                 (ANIM_SPRITES_START + 54) // unused
#define ANIM_TAG_RED_FIST                   (ANIM_SPRITES_START + 55) // unused
#define ANIM_TAG_SLAM_HIT                   (ANIM_SPRITES_START + 56)
#define ANIM_TAG_RING                       (ANIM_SPRITES_START + 57) // unused
#define ANIM_TAG_ROCKS                      (ANIM_SPRITES_START + 58)
#define ANIM_TAG_Z                          (ANIM_SPRITES_START + 59) // unused
#define ANIM_TAG_YELLOW_UNK_2               (ANIM_SPRITES_START + 60) // unused
#define ANIM_TAG_AIR_SLASH                  (ANIM_SPRITES_START + 61) // unused
#define ANIM_TAG_SPINNING_GREEN_ORBS        (ANIM_SPRITES_START + 62) // unused
#define ANIM_TAG_LEAF                       (ANIM_SPRITES_START + 63)
#define ANIM_TAG_FINGER                     (ANIM_SPRITES_START + 64)
#define ANIM_TAG_POISON_POWDER              (ANIM_SPRITES_START + 65)
#define ANIM_TAG_BROWN_TRIANGLE             (ANIM_SPRITES_START + 66) // unused
#define ANIM_TAG_SLEEP_POWDER               (ANIM_SPRITES_START + 67)
#define ANIM_TAG_STUN_SPORE                 (ANIM_SPRITES_START + 68)
#define ANIM_TAG_POWDER                     (ANIM_SPRITES_START + 69) // unused
#define ANIM_TAG_SPARKLE_3                  (ANIM_SPRITES_START + 70)
#define ANIM_TAG_SPARKLE_4                  (ANIM_SPRITES_START + 71)
#define ANIM_TAG_MUSIC_NOTES                (ANIM_SPRITES_START + 72)
#define ANIM_TAG_DUCK                       (ANIM_SPRITES_START + 73)
#define ANIM_TAG_MUD_SAND                   (ANIM_SPRITES_START + 74)
#define ANIM_TAG_ALERT                      (ANIM_SPRITES_START + 75)
#define ANIM_TAG_BLUE_FLAMES                (ANIM_SPRITES_START + 76) // unused
#define ANIM_TAG_BLUE_FLAMES_2              (ANIM_SPRITES_START + 77) // unused
#define ANIM_TAG_SHOCK_4                    (ANIM_SPRITES_START + 78) // unused
#define ANIM_TAG_SHOCK                      (ANIM_SPRITES_START + 79)
#define ANIM_TAG_BELL_2                     (ANIM_SPRITES_START + 80) // unused
#define ANIM_TAG_PINK_GLOVE                 (ANIM_SPRITES_START + 81) // unused
#define ANIM_TAG_BLUE_LINES                 (ANIM_SPRITES_START + 82) // unused
#define ANIM_TAG_IMPACT_3                   (ANIM_SPRITES_START + 83) // unused
#define ANIM_TAG_IMPACT_2                   (ANIM_SPRITES_START + 84) // unused
#define ANIM_TAG_RETICLE                    (ANIM_SPRITES_START + 85) // unused
#define ANIM_TAG_BREATH                     (ANIM_SPRITES_START + 86)
#define ANIM_TAG_ANGER                      (ANIM_SPRITES_START + 87)
#define ANIM_TAG_SNOWBALL                   (ANIM_SPRITES_START + 88) // unused
#define ANIM_TAG_VINE                       (ANIM_SPRITES_START + 89) // unused
#define ANIM_TAG_SWORD_2                    (ANIM_SPRITES_START + 90) // unused
#define ANIM_TAG_CLAPPING                   (ANIM_SPRITES_START + 91) // unused
#define ANIM_TAG_RED_TUBE                   (ANIM_SPRITES_START + 92) // unused
#define ANIM_TAG_AMNESIA                    (ANIM_SPRITES_START + 93)
#define ANIM_TAG_STRING_2                   (ANIM_SPRITES_START + 94) // unused
#define ANIM_TAG_PENCIL_2                   (ANIM_SPRITES_START + 95) // unused
#define ANIM_TAG_PETAL                      (ANIM_SPRITES_START + 96) // unused
#define ANIM_TAG_BENT_SPOON                 (ANIM_SPRITES_START + 97)
#define ANIM_TAG_WEB                        (ANIM_SPRITES_START + 98) // unused
#define ANIM_TAG_MILK_BOTTLE                (ANIM_SPRITES_START + 99)
#define ANIM_TAG_COIN                       (ANIM_SPRITES_START + 100)
#define ANIM_TAG_CRACKED_EGG                (ANIM_SPRITES_START + 101) // unused
#define ANIM_TAG_HATCHED_EGG                (ANIM_SPRITES_START + 102) // unused
#define ANIM_TAG_FRESH_EGG                  (ANIM_SPRITES_START + 103) // unused
#define ANIM_TAG_FANGS                      (ANIM_SPRITES_START + 104) // unused
#define ANIM_TAG_EXPLOSION_2                (ANIM_SPRITES_START + 105) // unused
#define ANIM_TAG_EXPLOSION_3                (ANIM_SPRITES_START + 106) // unused
#define ANIM_TAG_WATER_DROPLET              (ANIM_SPRITES_START + 107) // unused
#define ANIM_TAG_WATER_DROPLET_2            (ANIM_SPRITES_START + 108) // unused
#define ANIM_TAG_SEED_2                     (ANIM_SPRITES_START + 109) // unused
#define ANIM_TAG_SPROUT                     (ANIM_SPRITES_START + 110) // unused
#define ANIM_TAG_RED_WAND                   (ANIM_SPRITES_START + 111) // unused
#define ANIM_TAG_PURPLE_GREEN_UNK           (ANIM_SPRITES_START + 112) // unused
#define ANIM_TAG_WATER_COLUMN               (ANIM_SPRITES_START + 113) // unused
#define ANIM_TAG_MUD_UNK                    (ANIM_SPRITES_START + 114) // unused
#define ANIM_TAG_RAIN_DROPS                 (ANIM_SPRITES_START + 115)
#define ANIM_TAG_FURY_SWIPES                (ANIM_SPRITES_START + 116) // unused
#define ANIM_TAG_VINE_2                     (ANIM_SPRITES_START + 117) // unused
#define ANIM_TAG_TEETH                      (ANIM_SPRITES_START + 118) // unused
#define ANIM_TAG_BONE_2                     (ANIM_SPRITES_START + 119) // unused
#define ANIM_TAG_WHITE_BAG                  (ANIM_SPRITES_START + 120) // unused
#define ANIM_TAG_UNKNOWN                    (ANIM_SPRITES_START + 121) // unused
#define ANIM_TAG_PURPLE_CORAL               (ANIM_SPRITES_START + 122) // unused
#define ANIM_TAG_PURPLE_DROPLET             (ANIM_SPRITES_START + 123) // unused
#define ANIM_TAG_SHOCK_2                    (ANIM_SPRITES_START + 124) // unused
#define ANIM_TAG_CLOSING_EYE_2              (ANIM_SPRITES_START + 125) // unused
#define ANIM_TAG_METAL_BALL                 (ANIM_SPRITES_START + 126) // unused
#define ANIM_TAG_MONSTER_DOLL               (ANIM_SPRITES_START + 127) // unused
#define ANIM_TAG_WHIRLWIND                  (ANIM_SPRITES_START + 128) // unused
#define ANIM_TAG_WHIRLWIND_2                (ANIM_SPRITES_START + 129) // unused
#define ANIM_TAG_EXPLOSION_4                (ANIM_SPRITES_START + 130) // unused
#define ANIM_TAG_EXPLOSION_5                (ANIM_SPRITES_START + 131) // unused
#define ANIM_TAG_TONGUE                     (ANIM_SPRITES_START + 132) // unused
#define ANIM_TAG_SMOKE                      (ANIM_SPRITES_START + 133) // unused
#define ANIM_TAG_SMOKE_2                    (ANIM_SPRITES_START + 134) // unused
#define ANIM_TAG_IMPACT                     (ANIM_SPRITES_START + 135)
#define ANIM_TAG_CIRCLE_IMPACT              (ANIM_SPRITES_START + 136)
#define ANIM_TAG_SCRATCH                    (ANIM_SPRITES_START + 137)
#define ANIM_TAG_CUT                        (ANIM_SPRITES_START + 138)
#define ANIM_TAG_SHARP_TEETH                (ANIM_SPRITES_START + 139)
#define ANIM_TAG_RAINBOW_RINGS              (ANIM_SPRITES_START + 140)
#define ANIM_TAG_ICE_CRYSTALS               (ANIM_SPRITES_START + 141)
#define ANIM_TAG_ICE_SPIKES                 (ANIM_SPRITES_START + 142)
#define ANIM_TAG_HANDS_AND_FEET             (ANIM_SPRITES_START + 143)
#define ANIM_TAG_MIST_CLOUD                 (ANIM_SPRITES_START + 144)
#define ANIM_TAG_CLAMP                      (ANIM_SPRITES_START + 145)
#define ANIM_TAG_BUBBLE                     (ANIM_SPRITES_START + 146)
#define ANIM_TAG_ORBS                       (ANIM_SPRITES_START + 147)
#define ANIM_TAG_WATER_IMPACT               (ANIM_SPRITES_START + 148)
#define ANIM_TAG_WATER_ORB                  (ANIM_SPRITES_START + 149)
#define ANIM_TAG_POISON_BUBBLE              (ANIM_SPRITES_START + 150)
#define ANIM_TAG_TOXIC_BUBBLE               (ANIM_SPRITES_START + 151)
#define ANIM_TAG_SPIKES                     (ANIM_SPRITES_START + 152)
#define ANIM_TAG_HORN_HIT_2                 (ANIM_SPRITES_START + 153)
#define ANIM_TAG_AIR_WAVE_2                 (ANIM_SPRITES_START + 154)
#define ANIM_TAG_SMALL_BUBBLES              (ANIM_SPRITES_START + 155)
#define ANIM_TAG_ROUND_SHADOW               (ANIM_SPRITES_START + 156)
#define ANIM_TAG_SUNLIGHT                   (ANIM_SPRITES_START + 157)
#define ANIM_TAG_SPORE                      (ANIM_SPRITES_START + 158)
#define ANIM_TAG_FLOWER                     (ANIM_SPRITES_START + 159)
#define ANIM_TAG_RAZOR_LEAF                 (ANIM_SPRITES_START + 160)
#define ANIM_TAG_NEEDLE                     (ANIM_SPRITES_START + 161)
#define ANIM_TAG_WHIRLWIND_LINES            (ANIM_SPRITES_START + 162)
#define ANIM_TAG_GOLD_RING                  (ANIM_SPRITES_START + 163)
#define ANIM_TAG_PURPLE_RING                (ANIM_SPRITES_START + 164)
#define ANIM_TAG_BLUE_RING                  (ANIM_SPRITES_START + 165)
#define ANIM_TAG_GREEN_LIGHT_WALL           (ANIM_SPRITES_START + 166)
#define ANIM_TAG_BLUE_LIGHT_WALL            (ANIM_SPRITES_START + 167)
#define ANIM_TAG_RED_LIGHT_WALL             (ANIM_SPRITES_START + 168)
#define ANIM_TAG_GRAY_LIGHT_WALL            (ANIM_SPRITES_START + 169)
#define ANIM_TAG_ORANGE_LIGHT_WALL          (ANIM_SPRITES_START + 170)
#define ANIM_TAG_BLACK_BALL_2               (ANIM_SPRITES_START + 171)
#define ANIM_TAG_PURPLE_GAS_CLOUD           (ANIM_SPRITES_START + 172)
#define ANIM_TAG_SPARK_H                    (ANIM_SPRITES_START + 173)
#define ANIM_TAG_YELLOW_STAR                (ANIM_SPRITES_START + 174)
#define ANIM_TAG_LARGE_FRESH_EGG            (ANIM_SPRITES_START + 175)
#define ANIM_TAG_SHADOW_BALL                (ANIM_SPRITES_START + 176)
#define ANIM_TAG_LICK                       (ANIM_SPRITES_START + 177)
#define ANIM_TAG_VOID_LINES                 (ANIM_SPRITES_START + 178)
#define ANIM_TAG_STRING                     (ANIM_SPRITES_START + 179)
#define ANIM_TAG_WEB_THREAD                 (ANIM_SPRITES_START + 180)
#define ANIM_TAG_SPIDER_WEB                 (ANIM_SPRITES_START + 181)
#define ANIM_TAG_LIGHTBULB                  (ANIM_SPRITES_START + 182) // unused
#define ANIM_TAG_SLASH                      (ANIM_SPRITES_START + 183)
#define ANIM_TAG_FOCUS_ENERGY               (ANIM_SPRITES_START + 184)
#define ANIM_TAG_SPHERE_TO_CUBE             (ANIM_SPRITES_START + 185)
#define ANIM_TAG_TENDRILS                   (ANIM_SPRITES_START + 186)
#define ANIM_TAG_EYE                        (ANIM_SPRITES_START + 187)
#define ANIM_TAG_WHITE_SHADOW               (ANIM_SPRITES_START + 188)
#define ANIM_TAG_TEAL_ALERT                 (ANIM_SPRITES_START + 189)
#define ANIM_TAG_OPENING_EYE                (ANIM_SPRITES_START + 190)
#define ANIM_TAG_ROUND_WHITE_HALO           (ANIM_SPRITES_START + 191)
#define ANIM_TAG_FANG_ATTACK                (ANIM_SPRITES_START + 192)
#define ANIM_TAG_PURPLE_HAND_OUTLINE        (ANIM_SPRITES_START + 193)
#define ANIM_TAG_MOON                       (ANIM_SPRITES_START + 194)
#define ANIM_TAG_GREEN_SPARKLE              (ANIM_SPRITES_START + 195)
#define ANIM_TAG_SPIRAL                     (ANIM_SPRITES_START + 196)
#define ANIM_TAG_SNORE_Z                    (ANIM_SPRITES_START + 197)
#define ANIM_TAG_EXPLOSION                  (ANIM_SPRITES_START + 198)
#define ANIM_TAG_NAIL                       (ANIM_SPRITES_START + 199)
#define ANIM_TAG_GHOSTLY_SPIRIT             (ANIM_SPRITES_START + 200)
#define ANIM_TAG_WARM_ROCK                  (ANIM_SPRITES_START + 201)
#define ANIM_TAG_BREAKING_EGG               (ANIM_SPRITES_START + 202)
#define ANIM_TAG_THIN_RING                  (ANIM_SPRITES_START + 203)
#define ANIM_TAG_PUNCH_IMPACT               (ANIM_SPRITES_START + 204) // unused
#define ANIM_TAG_BELL                       (ANIM_SPRITES_START + 205)
#define ANIM_TAG_MUSIC_NOTES_2              (ANIM_SPRITES_START + 206)
#define ANIM_TAG_SPEED_DUST                 (ANIM_SPRITES_START + 207)
#define ANIM_TAG_TORN_METAL                 (ANIM_SPRITES_START + 208)
#define ANIM_TAG_THOUGHT_BUBBLE             (ANIM_SPRITES_START + 209)
#define ANIM_TAG_MAGENTA_HEART              (ANIM_SPRITES_START + 210)
#define ANIM_TAG_ELECTRIC_ORBS              (ANIM_SPRITES_START + 211)
#define ANIM_TAG_CIRCLE_OF_LIGHT            (ANIM_SPRITES_START + 212)
#define ANIM_TAG_ELECTRICITY                (ANIM_SPRITES_START + 213)
#define ANIM_TAG_FINGER_2                   (ANIM_SPRITES_START + 214)
#define ANIM_TAG_MOVEMENT_WAVES             (ANIM_SPRITES_START + 215)
#define ANIM_TAG_RED_HEART                  (ANIM_SPRITES_START + 216)
#define ANIM_TAG_RED_ORB                    (ANIM_SPRITES_START + 217)
#define ANIM_TAG_EYE_SPARKLE                (ANIM_SPRITES_START + 218)
#define ANIM_TAG_PINK_HEART                 (ANIM_SPRITES_START + 219)
#define ANIM_TAG_ANGEL                      (ANIM_SPRITES_START + 220)
#define ANIM_TAG_DEVIL                      (ANIM_SPRITES_START + 221)
#define ANIM_TAG_SWIPE                      (ANIM_SPRITES_START + 222)
#define ANIM_TAG_ROOTS                      (ANIM_SPRITES_START + 223)
#define ANIM_TAG_ITEM_BAG                   (ANIM_SPRITES_START + 224)
#define ANIM_TAG_JAGGED_MUSIC_NOTE          (ANIM_SPRITES_START + 225)
#define ANIM_TAG_POKEBALL                   (ANIM_SPRITES_START + 226)
#define ANIM_TAG_SPOTLIGHT                  (ANIM_SPRITES_START + 227)
#define ANIM_TAG_LETTER_Z                   (ANIM_SPRITES_START + 228)
#define ANIM_TAG_RAPID_SPIN                 (ANIM_SPRITES_START + 229)
#define ANIM_TAG_TRI_ATTACK_TRIANGLE        (ANIM_SPRITES_START + 230)
#define ANIM_TAG_WISP_ORB                   (ANIM_SPRITES_START + 231)
#define ANIM_TAG_WISP_FIRE                  (ANIM_SPRITES_START + 232)
#define ANIM_TAG_GOLD_STARS                 (ANIM_SPRITES_START + 233)
#define ANIM_TAG_ECLIPSING_ORB              (ANIM_SPRITES_START + 234)
#define ANIM_TAG_GRAY_ORB                   (ANIM_SPRITES_START + 235)
#define ANIM_TAG_BLUE_ORB                   (ANIM_SPRITES_START + 236)
#define ANIM_TAG_RED_ORB_2                  (ANIM_SPRITES_START + 237)
#define ANIM_TAG_PINK_PETAL                 (ANIM_SPRITES_START + 238)
#define ANIM_TAG_PAIN_SPLIT                 (ANIM_SPRITES_START + 239)
#define ANIM_TAG_CONFETTI                   (ANIM_SPRITES_START + 240)
#define ANIM_TAG_GREEN_STAR                 (ANIM_SPRITES_START + 241)
#define ANIM_TAG_PINK_CLOUD                 (ANIM_SPRITES_START + 242)
#define ANIM_TAG_SWEAT_DROP                 (ANIM_SPRITES_START + 243)
#define ANIM_TAG_GUARD_RING                 (ANIM_SPRITES_START + 244)
#define ANIM_TAG_PURPLE_SCRATCH             (ANIM_SPRITES_START + 245)
#define ANIM_TAG_PURPLE_SWIPE               (ANIM_SPRITES_START + 246)
#define ANIM_TAG_TAG_HAND                   (ANIM_SPRITES_START + 247)
#define ANIM_TAG_SMALL_RED_EYE              (ANIM_SPRITES_START + 248)
#define ANIM_TAG_HOLLOW_ORB                 (ANIM_SPRITES_START + 249)
#define ANIM_TAG_X_SIGN                     (ANIM_SPRITES_START + 250)
#define ANIM_TAG_BLUEGREEN_ORB              (ANIM_SPRITES_START + 251)
#define ANIM_TAG_PAW_PRINT                  (ANIM_SPRITES_START + 252)
#define ANIM_TAG_PURPLE_FLAME               (ANIM_SPRITES_START + 253)
#define ANIM_TAG_RED_BALL                   (ANIM_SPRITES_START + 254)
#define ANIM_TAG_SMELLINGSALT_EFFECT        (ANIM_SPRITES_START + 255)
#define ANIM_TAG_METEOR                     (ANIM_SPRITES_START + 256)
#define ANIM_TAG_FLAT_ROCK                  (ANIM_SPRITES_START + 257)
#define ANIM_TAG_MAGNIFYING_GLASS           (ANIM_SPRITES_START + 258)
#define ANIM_TAG_BROWN_ORB                  (ANIM_SPRITES_START + 259)
#define ANIM_TAG_METAL_SOUND_WAVES          (ANIM_SPRITES_START + 260)
#define ANIM_TAG_FLYING_DIRT                (ANIM_SPRITES_START + 261)
#define ANIM_TAG_ICICLE_SPEAR               (ANIM_SPRITES_START + 262)
#define ANIM_TAG_HAIL                       (ANIM_SPRITES_START + 263)
#define ANIM_TAG_GLOWY_RED_ORB              (ANIM_SPRITES_START + 264)
#define ANIM_TAG_GLOWY_GREEN_ORB            (ANIM_SPRITES_START + 265)
#define ANIM_TAG_GREEN_SPIKE                (ANIM_SPRITES_START + 266)
#define ANIM_TAG_WHITE_CIRCLE_OF_LIGHT      (ANIM_SPRITES_START + 267)
#define ANIM_TAG_GLOWY_BLUE_ORB             (ANIM_SPRITES_START + 268)
#define ANIM_TAG_POKEBLOCK                  (ANIM_SPRITES_START + 269)
#define ANIM_TAG_WHITE_FEATHER              (ANIM_SPRITES_START + 270)
#define ANIM_TAG_SPARKLE_6                  (ANIM_SPRITES_START + 271)
#define ANIM_TAG_SPLASH                     (ANIM_SPRITES_START + 272)
#define ANIM_TAG_SWEAT_BEAD                 (ANIM_SPRITES_START + 273)
#define ANIM_TAG_GEM_1                      (ANIM_SPRITES_START + 274) // unused
#define ANIM_TAG_GEM_2                      (ANIM_SPRITES_START + 275) // unused
#define ANIM_TAG_GEM_3                      (ANIM_SPRITES_START + 276) // unused
#define ANIM_TAG_SLAM_HIT_2                 (ANIM_SPRITES_START + 277)
#define ANIM_TAG_RECYCLE                    (ANIM_SPRITES_START + 278)
#define ANIM_TAG_RED_PARTICLES              (ANIM_SPRITES_START + 279) // unused
#define ANIM_TAG_PROTECT                    (ANIM_SPRITES_START + 280)
#define ANIM_TAG_DIRT_MOUND                 (ANIM_SPRITES_START + 281)
#define ANIM_TAG_SHOCK_3                    (ANIM_SPRITES_START + 282)
#define ANIM_TAG_WEATHER_BALL               (ANIM_SPRITES_START + 283)
#define ANIM_TAG_BIRD                       (ANIM_SPRITES_START + 284)
#define ANIM_TAG_CROSS_IMPACT               (ANIM_SPRITES_START + 285)
#define ANIM_TAG_SLASH_2                    (ANIM_SPRITES_START + 286)
#define ANIM_TAG_WHIP_HIT                   (ANIM_SPRITES_START + 287)
#define ANIM_TAG_BLUE_RING_2                (ANIM_SPRITES_START + 288)

// battlers
#define ANIM_ATTACKER    0
#define ANIM_TARGET      1
#define ANIM_ATK_PARTNER 2
#define ANIM_DEF_PARTNER 3

// stereo panning constants [0-255]
//
//          0
//         .  .
//      .        .
// 192 .          . 63
//     .          .
//      .        .
//         .  .
//          127
//
#define SOUND_PAN_ATTACKER -64
#define SOUND_PAN_TARGET    63

// 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_IN_AIR 17
#define BG_SKY 18
#define BG_SKY_CONTESTS 19
#define BG_AURORA 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_POKEBLOCK_THROW          0x4
#define B_ANIM_ITEM_KNOCKOFF            0x5
#define B_ANIM_TURN_TRAP                0x6
#define B_ANIM_HELD_ITEM_EFFECT         0x7
#define B_ANIM_SMOKEBALL_ESCAPE         0x8
#define B_ANIM_FOCUS_BAND               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_FOCUS_PUNCH_SETUP        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_BALL_THROW_WITH_TRAINER  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

// Tasks with return values often assign them to gBattleAnimArgs[7].
#define ARG_RET_ID 7

// Trapping Wrap-like moves end turn animation.
#define TRAP_ANIM_BIND 0
#define TRAP_ANIM_WRAP 0
#define TRAP_ANIM_FIRE_SPIN 1
#define TRAP_ANIM_WHIRLPOOL 2
#define TRAP_ANIM_CLAMP 3
#define TRAP_ANIM_SAND_TOMB 4

// Weather defines for battle animation scripts.
#define ANIM_WEATHER_NONE 0
#define ANIM_WEATHER_SUN 1
#define ANIM_WEATHER_RAIN 2
#define ANIM_WEATHER_SANDSTORM 3
#define ANIM_WEATHER_HAIL 4

// Battle mon back animations.
#define BACK_ANIM_NONE                         0x00
#define BACK_ANIM_H_SLIDE_QUICK                0x01
#define BACK_ANIM_H_SLIDE                      0x02
#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1    0x03
#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2    0x04
#define BACK_ANIM_SHRINK_GROW_1                0x05
#define BACK_ANIM_GROW_1                       0x06
#define BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE 0x07
#define BACK_ANIM_HORIZONTAL_SHAKE             0x08
#define BACK_ANIM_VERTICAL_SHAKE               0x09
#define BACK_ANIM_V_SHAKE_WITH_H_SLIDE         0x0a
#define BACK_ANIM_VERTICAL_STRETCH             0x0b
#define BACK_ANIM_HORIZONTAL_STRETCH           0x0c
#define BACK_ANIM_GROW_2                       0x0d
#define BACK_ANIM_V_SHAKE_WITH_PAUSE           0x0e
#define BACK_ANIM_CIRCLE_MOVE_CLOCKWISE        0x0f
#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL  0x10
#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE  0x11
#define BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE    0x12
#define BACK_ANIM_DIP_RIGHT_SIDE               0x13
#define BACK_ANIM_SHRINK_GROW_2                0x14
#define BACK_ANIM_JOLT_RIGHT                   0x15
#define BACK_ANIM_FLASH_YELLOW_WITH_SHAKE      0x16
#define BACK_ANIM_FADE_RED_WITH_SHAKE          0x17
#define BACK_ANIM_FADE_GREEN_WITH_SHAKE        0x18
#define BACK_ANIM_FADE_BLUE_WITH_SHAKE         0x19

#endif // GUARD_CONSTANTS_BATTLE_ANIM_H


code:
#ifndef GUARD_CONSTANTS_BATTLE_ARENA_H
#define GUARD_CONSTANTS_BATTLE_ARENA_H

#define BATTLE_ARENA_FUNC_INIT              0
#define BATTLE_ARENA_FUNC_GET_DATA          1
#define BATTLE_ARENA_FUNC_SET_DATA          2
#define BATTLE_ARENA_FUNC_SAVE              3
#define BATTLE_ARENA_FUNC_SET_PRIZE         4
#define BATTLE_ARENA_FUNC_GIVE_PRIZE        5
#define BATTLE_ARENA_FUNC_GET_TRAINER_NAME  6

#define ARENA_DATA_PRIZE              0
#define ARENA_DATA_WIN_STREAK         1
#define ARENA_DATA_WIN_STREAK_ACTIVE  2

#define ARENA_CATEGORY_MIND  0
#define ARENA_CATEGORY_SKILL 1
#define ARENA_CATEGORY_BODY  2

#endif //GUARD_CONSTANTS_BATTLE_ARENA_H


code:
#ifndef GUARD_CONSTANTS_BATTLE_DOME_H
#define GUARD_CONSTANTS_BATTLE_DOME_H

#define DOME_ROUND1        0
#define DOME_ROUND2        1
#define DOME_SEMIFINAL     2
#define DOME_FINAL         3
#define DOME_ROUNDS_COUNT  4

//#define DOME_TOURNAMENT_TRAINERS_COUNT 16 -- defined in global
#define DOME_TOURNAMENT_MATCHES_COUNT  DOME_TOURNAMENT_TRAINERS_COUNT - 1

#define DOME_BATTLE_PARTY_SIZE  2

#define DOME_PLAYER_WON_MATCH  1
#define DOME_PLAYER_LOST_MATCH 2
#define DOME_PLAYER_RETIRED    9

#define BATTLE_DOME_FUNC_INIT                       0
#define BATTLE_DOME_FUNC_GET_DATA                   1
#define BATTLE_DOME_FUNC_SET_DATA                   2
#define BATTLE_DOME_FUNC_GET_ROUND_TEXT             3
#define BATTLE_DOME_FUNC_GET_OPPONENT_NAME          4
#define BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY        5
#define BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO         6
#define BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE          7
#define BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE     8
#define BATTLE_DOME_FUNC_SET_OPPONENT_ID            9
#define BATTLE_DOME_FUNC_SET_OPPONENT_GFX           10
#define BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE   11
#define BATTLE_DOME_FUNC_RESOLVE_WINNERS            12
#define BATTLE_DOME_FUNC_SAVE                       13
#define BATTLE_DOME_FUNC_INCREMENT_STREAK           14
#define BATTLE_DOME_FUNC_SET_TRAINERS               15
#define BATTLE_DOME_FUNC_RESET_SKETCH               16
#define BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS         17
#define BATTLE_DOME_FUNC_REDUCE_PARTY               18
#define BATTLE_DOME_FUNC_COMPARE_SEEDS              19
#define BATTLE_DOME_FUNC_GET_WINNER_NAME            20
#define BATTLE_DOME_FUNC_INIT_RESULTS_TREE          21
#define BATTLE_DOME_FUNC_INIT_TRAINERS              22

#define DOME_DATA_WIN_STREAK              0
#define DOME_DATA_WIN_STREAK_ACTIVE       1
#define DOME_DATA_ATTEMPTED_SINGLES_50    2
#define DOME_DATA_ATTEMPTED_SINGLES_OPEN  3
#define DOME_DATA_HAS_WON_SINGLES_50      4
#define DOME_DATA_HAS_WON_SINGLES_OPEN    5
#define DOME_DATA_ATTEMPTED_CHALLENGE     6
#define DOME_DATA_HAS_WON_CHALLENGE       7
#define DOME_DATA_SELECTED_MONS           8
#define DOME_DATA_PREV_TOURNEY_TYPE       9

// ID for Exit/Cancel on the tourney tree
#define TOURNEY_TREE_CLOSE_BUTTON  31

// Input IDs on the tourney tree
#define TOURNEY_TREE_SELECTED_CLOSE   0
#define TOURNEY_TREE_NO_SELECTION     1
#define TOURNEY_TREE_SELECTED_TRAINER 2
#define TOURNEY_TREE_SELECTED_MATCH   3

// Modes for showing the tourney tree info card
#define INFOCARD_NEXT_OPPONENT  0
#define INFOCARD_TRAINER        1
#define INFOCARD_MATCH          2

// Input IDs for the info cards
#define INFOCARD_INPUT_NONE      0
#define TRAINERCARD_INPUT_UP     1
#define TRAINERCARD_INPUT_DOWN   2
#define TRAINERCARD_INPUT_LEFT   3
#define TRAINERCARD_INPUT_RIGHT  4
#define MATCHCARD_INPUT_UP       5
#define MATCHCARD_INPUT_DOWN     6
#define MATCHCARD_INPUT_LEFT     7
#define MATCHCARD_INPUT_RIGHT    8
#define INFOCARD_INPUT_AB        9

#define CARD_ALTERNATE_SLOT (1 << 0) // When set, uses an alternate slot to store the incoming card sprites
#define MOVE_CARD_RIGHT     (1 << 1)
#define MOVE_CARD_DOWN      (1 << 2)
#define MOVE_CARD_LEFT      (1 << 3)
#define MOVE_CARD_UP        (1 << 4)
#define MOVE_CARD           (MOVE_CARD_RIGHT | MOVE_CARD_DOWN | MOVE_CARD_LEFT | MOVE_CARD_UP)

// Text IDs for sBattleDomeWinTexts
#define DOME_TEXT_NO_WINNER_YET     0
#define DOME_TEXT_WON_USING_MOVE    1
#define DOME_TEXT_CHAMP_USING_MOVE  2
#define DOME_TEXT_WON_ON_FORFEIT    3
#define DOME_TEXT_CHAMP_ON_FORFEIT  4
#define DOME_TEXT_WON_NO_MOVES      5
#define DOME_TEXT_CHAMP_NO_MOVES    6

// Offsets/start positions within sBattleDomeOpponentStatsTexts
#define DOME_TEXT_TWO_GOOD_STATS   0
#define DOME_TEXT_ONE_GOOD_STAT    15
#define DOME_TEXT_TWO_BAD_STATS    21
#define DOME_TEXT_ONE_BAD_STAT     36
#define DOME_TEXT_WELL_BALANCED    42
#define DOME_TEXT_HP    0
#define DOME_TEXT_ATK   5
#define DOME_TEXT_DEF   9
#define DOME_TEXT_SPEED 12
#define DOME_TEXT_SPATK 14

// Move point indexes for sBattleStyleMovePoints[][], to determine Battle Dome trainers battle styles
#define MOVE_POINTS_COMBO      0   // Moves that work well in combination (e.g. Rain Dance + Hydro Pump)
#define MOVE_POINTS_STAT_RAISE 1
#define MOVE_POINTS_STAT_LOWER 2
#define MOVE_POINTS_RARE       3   // Uncommon moves. Mostly arbitrary
#define MOVE_POINTS_HEAL       4
#define MOVE_POINTS_RISKY      5
#define MOVE_POINTS_STATUS     6
#define MOVE_POINTS_DMG        7
#define MOVE_POINTS_DEF        8   // Defensive moves, like Amnesia, Light Screen, or accuracy-lowers
#define MOVE_POINTS_ACCURATE   9
#define MOVE_POINTS_POWERFUL   10  // Most of the moves that are >= 100 power
#define MOVE_POINTS_POPULAR    11  // Group seems arbitrary. All using it are TM/HMs, but its only 11/58
#define MOVE_POINTS_LUCK       12
#define MOVE_POINTS_STRONG     13  // Most of the moves that are >= 90 power
#define MOVE_POINTS_LOW_PP     14
#define MOVE_POINTS_EFFECT     15  // Moves with additional effects
#define NUM_MOVE_POINT_TYPES   16

// Battle style IDs for sBattleDomeOpponentStyleTexts
#define DOME_BATTLE_STYLE_RISKY           0
#define DOME_BATTLE_STYLE_STALL           1
#define DOME_BATTLE_STYLE_VARIED          2
#define DOME_BATTLE_STYLE_COMBO_HIGH      3
#define DOME_BATTLE_STYLE_RARE_MOVES      4
#define DOME_BATTLE_STYLE_RARE_MOVE       5
#define DOME_BATTLE_STYLE_HP              6
#define DOME_BATTLE_STYLE_STORE_POWER     7
#define DOME_BATTLE_STYLE_ENFEEBLE_LOW    8
#define DOME_BATTLE_STYLE_LUCK            9
#define DOME_BATTLE_STYLE_REGAL           10
#define DOME_BATTLE_STYLE_LOW_PP          11
#define DOME_BATTLE_STYLE_STATUS_ATK      12
#define DOME_BATTLE_STYLE_ENDURE          13
#define DOME_BATTLE_STYLE_STATUS          14
#define DOME_BATTLE_STYLE_STRAIGHTFORWARD 15
#define DOME_BATTLE_STYLE_AGGRESSIVE      16
#define DOME_BATTLE_STYLE_DEF             17
#define DOME_BATTLE_STYLE_ENFEEBLE_HIGH   18
#define DOME_BATTLE_STYLE_POPULAR_POWER   19
#define DOME_BATTLE_STYLE_COMBO_LOW       20
#define DOME_BATTLE_STYLE_ACCURATE        21
#define DOME_BATTLE_STYLE_POWERFUL        22
#define DOME_BATTLE_STYLE_ATK_OVER_DEF    23
#define DOME_BATTLE_STYLE_DEF_OVER_ATK    24
#define DOME_BATTLE_STYLE_POPULAR_STRONG  25
#define DOME_BATTLE_STYLE_EFFECTS         26
#define DOME_BATTLE_STYLE_BALANCED        27
#define DOME_BATTLE_STYLE_UNUSED1         28
#define DOME_BATTLE_STYLE_UNUSED2         29
#define DOME_BATTLE_STYLE_UNUSED3         30
#define DOME_BATTLE_STYLE_UNUSED4         31
#define NUM_BATTLE_STYLES                 32

#endif //GUARD_CONSTANTS_BATTLE_DOME_H


code:
#ifndef GUARD_CONSTANTS_BATTLE_FACTORY_H
#define GUARD_CONSTANTS_BATTLE_FACTORY_H

#define FACTORY_STYLE_NONE           0
#define FACTORY_STYLE_PREPARATION    1
#define FACTORY_STYLE_SLOW_STEADY    2
#define FACTORY_STYLE_ENDURANCE      3
#define FACTORY_STYLE_HIGH_RISK      4
#define FACTORY_STYLE_WEAKENING      5
#define FACTORY_STYLE_UNPREDICTABLE  6
#define FACTORY_STYLE_WEATHER        7
#define FACTORY_NUM_STYLES           8

#define BATTLE_FACTORY_FUNC_INIT                    0
#define BATTLE_FACTORY_FUNC_GET_DATA                1
#define BATTLE_FACTORY_FUNC_SET_DATA                2
#define BATTLE_FACTORY_FUNC_SAVE                    3
#define BATTLE_FACTORY_FUNC_NULL                    4
#define BATTLE_FACTORY_FUNC_NULL2                   5
#define BATTLE_FACTORY_FUNC_SELECT_RENT_MONS        6
#define BATTLE_FACTORY_FUNC_SWAP_RENT_MONS          7
#define BATTLE_FACTORY_FUNC_SET_SWAPPED             8
#define BATTLE_FACTORY_FUNC_SET_OPPONENT_MONS       9
#define BATTLE_FACTORY_FUNC_SET_PARTIES             10
#define BATTLE_FACTORY_FUNC_SET_OPPONENT_GFX        11
#define BATTLE_FACTORY_FUNC_GENERATE_OPPONENT_MONS  12
#define BATTLE_FACTORY_FUNC_GENERATE_RENTAL_MONS    13
#define BATTLE_FACTORY_FUNC_GET_OPPONENT_MON_TYPE   14
#define BATTLE_FACTORY_FUNC_GET_OPPONENT_STYLE      15
#define BATTLE_FACTORY_FUNC_RESET_HELD_ITEMS        16

#define FACTORY_DATA_WIN_STREAK         1
#define FACTORY_DATA_WIN_STREAK_ACTIVE  2
#define FACTORY_DATA_WIN_STREAK_SWAPS   3

#endif // GUARD_CONSTANTS_BATTLE_FACTORY_H


code:
#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_H
#define GUARD_CONSTANTS_BATTLE_FRONTIER_H

#define FRONTIER_CHALLENGE(facility, mode) ((facility << 8) + mode)

// Battle Frontier facility ids.
#define FRONTIER_FACILITY_TOWER    0
#define FRONTIER_FACILITY_DOME     1
#define FRONTIER_FACILITY_PALACE   2  // also Verdanturf Tent
#define FRONTIER_FACILITY_ARENA    3  // also Fallarbor Tent
#define FRONTIER_FACILITY_FACTORY  4  // also Slateport Tent
#define FRONTIER_FACILITY_PIKE     5
#define FRONTIER_FACILITY_PYRAMID  6
#define NUM_FRONTIER_FACILITIES    7
// VAR_FRONTIER_FACILITY is re-used for the below facilities as well
#define FACILITY_LINK_CONTEST      7
#define FACILITY_UNION_ROOM        8
#define FACILITY_MULTI_OR_EREADER  9  // Direct Corner multi battles, multi battle with Steven, and e-Reader battles

// Battle Frontier lvl modes.
#define FRONTIER_LVL_50   0
#define FRONTIER_LVL_OPEN 1
#define FRONTIER_LVL_TENT 2

// Battle Frontier battle modes.
#define FRONTIER_MODE_SINGLES      0
#define FRONTIER_MODE_DOUBLES      1
#define FRONTIER_MODE_MULTIS       2
#define FRONTIER_MODE_LINK_MULTIS  3
#define FRONTIER_MODE_COUNT        4

// Challenge Statuses
#define CHALLENGE_STATUS_SAVING   1
#define CHALLENGE_STATUS_PAUSED   2
#define CHALLENGE_STATUS_WON      3
#define CHALLENGE_STATUS_LOST     4

// Special trainer battles.
#define SPECIAL_BATTLE_TOWER 0
#define SPECIAL_BATTLE_SECRET_BASE 1
#define SPECIAL_BATTLE_EREADER 2
#define SPECIAL_BATTLE_DOME 3
#define SPECIAL_BATTLE_PALACE 4
#define SPECIAL_BATTLE_ARENA 5
#define SPECIAL_BATTLE_FACTORY 6
#define SPECIAL_BATTLE_PIKE_SINGLE 7
#define SPECIAL_BATTLE_STEVEN 8
#define SPECIAL_BATTLE_PIKE_DOUBLE 9
#define SPECIAL_BATTLE_PYRAMID 10

#define MAX_BATTLE_FRONTIER_POINTS 9999
#define MAX_STREAK 9999

// These sets of facility ids would be redundant if the order was consistent
// The order is important for this set so that all the non-link records can be continuous
#define RANKING_HALL_BATTLE_TOWER_SINGLES   0
#define RANKING_HALL_BATTLE_TOWER_DOUBLES   1
#define RANKING_HALL_BATTLE_TOWER_MULTIS    2
#define RANKING_HALL_BATTLE_DOME            3
#define RANKING_HALL_BATTLE_PALACE          4
#define RANKING_HALL_BATTLE_ARENA           5
#define RANKING_HALL_BATTLE_FACTORY         6
#define RANKING_HALL_BATTLE_PIKE            7
#define RANKING_HALL_BATTLE_PYRAMID         8
#define RANKING_HALL_BATTLE_TOWER_LINK      9

#define FRONTIER_MANIAC_BATTLE_TOWER_SINGLES   0
#define FRONTIER_MANIAC_BATTLE_TOWER_DOUBLES   1
#define FRONTIER_MANIAC_BATTLE_TOWER_MULTIS    2
#define FRONTIER_MANIAC_BATTLE_TOWER_LINK      3
#define FRONTIER_MANIAC_BATTLE_DOME            4
#define FRONTIER_MANIAC_BATTLE_FACTORY         5
#define FRONTIER_MANIAC_BATTLE_PALACE          6
#define FRONTIER_MANIAC_BATTLE_ARENA           7
#define FRONTIER_MANIAC_BATTLE_PIKE            8
#define FRONTIER_MANIAC_BATTLE_PYRAMID         9
#define FRONTIER_MANIAC_FACILITY_COUNT        10

#define FRONTIER_MANIAC_MESSAGE_COUNT 3

// Frontier Gambler
#define FRONTIER_GAMBLER_WAITING     0
#define FRONTIER_GAMBLER_PLACED_BET  1
#define FRONTIER_GAMBLER_WON         2
#define FRONTIER_GAMBLER_LOST        3

#define FRONTIER_GAMBLER_BET_5      0
#define FRONTIER_GAMBLER_BET_10     1
#define FRONTIER_GAMBLER_BET_15     2
#define FRONTIER_GAMBLER_BET_CANCEL 3

#define FRONTIER_GAMBLER_CHALLENGE_COUNT 12

#define EXCHANGE_CORNER_DECOR1_CLERK     0
#define EXCHANGE_CORNER_DECOR2_CLERK     1
#define EXCHANGE_CORNER_VITAMIN_CLERK    2
#define EXCHANGE_CORNER_HOLD_ITEM_CLERK  3

#define F_EV_SPREAD_HP         (1 << 0)
#define F_EV_SPREAD_ATTACK     (1 << 1)
#define F_EV_SPREAD_DEFENSE    (1 << 2)
#define F_EV_SPREAD_SPEED      (1 << 3)
#define F_EV_SPREAD_SP_ATTACK  (1 << 4)
#define F_EV_SPREAD_SP_DEFENSE (1 << 5)

#define BATTLE_FRONTIER_ITEM_NONE           0
#define BATTLE_FRONTIER_ITEM_KINGS_ROCK     1
#define BATTLE_FRONTIER_ITEM_SITRUS_BERRY   2
#define BATTLE_FRONTIER_ITEM_ORAN_BERRY     3
#define BATTLE_FRONTIER_ITEM_CHESTO_BERRY   4
#define BATTLE_FRONTIER_ITEM_HARD_STONE     5
#define BATTLE_FRONTIER_ITEM_FOCUS_BAND     6
#define BATTLE_FRONTIER_ITEM_PERSIM_BERRY   7
#define BATTLE_FRONTIER_ITEM_MIRACLE_SEED   8
#define BATTLE_FRONTIER_ITEM_BERRY_JUICE    9
#define BATTLE_FRONTIER_ITEM_MACHO_BRACE    10
#define BATTLE_FRONTIER_ITEM_SILVER_POWDER  11
#define BATTLE_FRONTIER_ITEM_CHERI_BERRY    12
#define BATTLE_FRONTIER_ITEM_BLACK_GLASSES  13
#define BATTLE_FRONTIER_ITEM_BLACK_BELT     14
#define BATTLE_FRONTIER_ITEM_SOUL_DEW       15
#define BATTLE_FRONTIER_ITEM_CHOICE_BAND    16
#define BATTLE_FRONTIER_ITEM_MAGNET         17
#define BATTLE_FRONTIER_ITEM_SILK_SCARF     18
#define BATTLE_FRONTIER_ITEM_WHITE_HERB     19
#define BATTLE_FRONTIER_ITEM_DEEP_SEA_SCALE 20
#define BATTLE_FRONTIER_ITEM_DEEP_SEA_TOOTH 21
#define BATTLE_FRONTIER_ITEM_MYSTIC_WATER   22
#define BATTLE_FRONTIER_ITEM_SHARP_BEAK     23
#define BATTLE_FRONTIER_ITEM_QUICK_CLAW     24
#define BATTLE_FRONTIER_ITEM_LEFTOVERS      25
#define BATTLE_FRONTIER_ITEM_RAWST_BERRY    26
#define BATTLE_FRONTIER_ITEM_LIGHT_BALL     27
#define BATTLE_FRONTIER_ITEM_POISON_BARB    28
#define BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE 29
#define BATTLE_FRONTIER_ITEM_ASPEAR_BERRY   30
#define BATTLE_FRONTIER_ITEM_SPELL_TAG      31
#define BATTLE_FRONTIER_ITEM_BRIGHT_POWDER  32
#define BATTLE_FRONTIER_ITEM_LEPPA_BERRY    33
#define BATTLE_FRONTIER_ITEM_SCOPE_LENS     34
#define BATTLE_FRONTIER_ITEM_TWISTED_SPOON  35
#define BATTLE_FRONTIER_ITEM_METAL_COAT     36
#define BATTLE_FRONTIER_ITEM_MENTAL_HERB    37
#define BATTLE_FRONTIER_ITEM_CHARCOAL       38
#define BATTLE_FRONTIER_ITEM_PECHA_BERRY    39
#define BATTLE_FRONTIER_ITEM_SOFT_SAND      40
#define BATTLE_FRONTIER_ITEM_LUM_BERRY      41
#define BATTLE_FRONTIER_ITEM_DRAGON_SCALE   42
#define BATTLE_FRONTIER_ITEM_DRAGON_FANG    43
#define BATTLE_FRONTIER_ITEM_IAPAPA_BERRY   44
#define BATTLE_FRONTIER_ITEM_WIKI_BERRY     45
#define BATTLE_FRONTIER_ITEM_SEA_INCENSE    46
#define BATTLE_FRONTIER_ITEM_SHELL_BELL     47
#define BATTLE_FRONTIER_ITEM_SALAC_BERRY    48
#define BATTLE_FRONTIER_ITEM_LANSAT_BERRY   49
#define BATTLE_FRONTIER_ITEM_APICOT_BERRY   50
#define BATTLE_FRONTIER_ITEM_STARF_BERRY    51
#define BATTLE_FRONTIER_ITEM_LIECHI_BERRY   52
#define BATTLE_FRONTIER_ITEM_STICK          53
#define BATTLE_FRONTIER_ITEM_LAX_INCENSE    54
#define BATTLE_FRONTIER_ITEM_AGUAV_BERRY    55
#define BATTLE_FRONTIER_ITEM_FIGY_BERRY     56
#define BATTLE_FRONTIER_ITEM_THICK_CLUB     57
#define BATTLE_FRONTIER_ITEM_MAGO_BERRY     58
#define BATTLE_FRONTIER_ITEM_METAL_POWDER   59
#define BATTLE_FRONTIER_ITEM_PETAYA_BERRY   60
#define BATTLE_FRONTIER_ITEM_LUCKY_PUNCH    61
#define BATTLE_FRONTIER_ITEM_GANLON_BERRY   62

#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H


code:
#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H
#define GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H

#define FRONTIER_MON_SUNKERN        0
#define FRONTIER_MON_AZURILL        1
#define FRONTIER_MON_CATERPIE       2
#define FRONTIER_MON_WEEDLE         3
#define FRONTIER_MON_WURMPLE        4
#define FRONTIER_MON_RALTS          5
#define FRONTIER_MON_MAGIKARP       6
#define FRONTIER_MON_FEEBAS         7
#define FRONTIER_MON_METAPOD        8
#define FRONTIER_MON_KAKUNA         9
#define FRONTIER_MON_PICHU          10
#define FRONTIER_MON_SILCOON        11
#define FRONTIER_MON_CASCOON        12
#define FRONTIER_MON_IGGLYBUFF      13
#define FRONTIER_MON_WOOPER         14
#define FRONTIER_MON_TYROGUE        15
#define FRONTIER_MON_SENTRET        16
#define FRONTIER_MON_CLEFFA         17
#define FRONTIER_MON_SEEDOT         18
#define FRONTIER_MON_LOTAD          19
#define FRONTIER_MON_POOCHYENA      20
#define FRONTIER_MON_SHEDINJA       21
#define FRONTIER_MON_MAKUHITA       22
#define FRONTIER_MON_WHISMUR        23
#define FRONTIER_MON_ZIGZAGOON      24
#define FRONTIER_MON_ZUBAT          25
#define FRONTIER_MON_TOGEPI         26
#define FRONTIER_MON_SPINARAK       27
#define FRONTIER_MON_MARILL         28
#define FRONTIER_MON_HOPPIP         29
#define FRONTIER_MON_SLUGMA         30
#define FRONTIER_MON_SWINUB         31
#define FRONTIER_MON_SMEARGLE       32
#define FRONTIER_MON_PIDGEY         33
#define FRONTIER_MON_RATTATA        34
#define FRONTIER_MON_WYNAUT         35
#define FRONTIER_MON_SKITTY         36
#define FRONTIER_MON_SPEAROW        37
#define FRONTIER_MON_HOOTHOOT       38
#define FRONTIER_MON_DIGLETT        39
#define FRONTIER_MON_LEDYBA         40
#define FRONTIER_MON_NINCADA        41
#define FRONTIER_MON_SURSKIT        42
#define FRONTIER_MON_JIGGLYPUFF     43
#define FRONTIER_MON_TAILLOW        44
#define FRONTIER_MON_WINGULL        45
#define FRONTIER_MON_NIDORAN_M      46
#define FRONTIER_MON_NIDORAN_F      47
#define FRONTIER_MON_KIRLIA         48
#define FRONTIER_MON_MAREEP         49
#define FRONTIER_MON_MEDITITE       50
#define FRONTIER_MON_SLAKOTH        51
#define FRONTIER_MON_PARAS          52
#define FRONTIER_MON_EKANS          53
#define FRONTIER_MON_DITTO          54
#define FRONTIER_MON_BARBOACH       55
#define FRONTIER_MON_MEOWTH         56
#define FRONTIER_MON_PINECO         57
#define FRONTIER_MON_TRAPINCH       58
#define FRONTIER_MON_SPHEAL         59
#define FRONTIER_MON_HORSEA         60
#define FRONTIER_MON_SHROOMISH      61
#define FRONTIER_MON_SHUPPET        62
#define FRONTIER_MON_DUSKULL        63
#define FRONTIER_MON_ELECTRIKE      64
#define FRONTIER_MON_VULPIX         65
#define FRONTIER_MON_PIKACHU        66
#define FRONTIER_MON_SANDSHREW      67
#define FRONTIER_MON_POLIWAG        68
#define FRONTIER_MON_BELLSPROUT     69
#define FRONTIER_MON_GEODUDE        70
#define FRONTIER_MON_DRATINI        71
#define FRONTIER_MON_SNUBBULL       72
#define FRONTIER_MON_REMORAID       73
#define FRONTIER_MON_LARVITAR       74
#define FRONTIER_MON_BALTOY         75
#define FRONTIER_MON_SNORUNT        76
#define FRONTIER_MON_BAGON          77
#define FRONTIER_MON_BELDUM         78
#define FRONTIER_MON_GULPIN         79
#define FRONTIER_MON_VENONAT        80
#define FRONTIER_MON_MANKEY         81
#define FRONTIER_MON_MACHOP         82
#define FRONTIER_MON_SHELLDER       83
#define FRONTIER_MON_SMOOCHUM       84
#define FRONTIER_MON_NUMEL          85
#define FRONTIER_MON_CARVANHA       86
#define FRONTIER_MON_CORPHISH       87
#define FRONTIER_MON_CHARMANDER     88
#define FRONTIER_MON_CYNDAQUIL      89
#define FRONTIER_MON_ABRA           90
#define FRONTIER_MON_DODUO          91
#define FRONTIER_MON_GASTLY         92
#define FRONTIER_MON_SWABLU         93
#define FRONTIER_MON_TREECKO        94
#define FRONTIER_MON_TORCHIC        95
#define FRONTIER_MON_MUDKIP         96
#define FRONTIER_MON_SQUIRTLE       97
#define FRONTIER_MON_TOTODILE       98
#define FRONTIER_MON_SLOWPOKE       99
#define FRONTIER_MON_BULBASAUR      100
#define FRONTIER_MON_CHIKORITA      101
#define FRONTIER_MON_ODDISH         102
#define FRONTIER_MON_PSYDUCK        103
#define FRONTIER_MON_CUBONE         104
#define FRONTIER_MON_GOLDEEN        105
#define FRONTIER_MON_NATU           106
#define FRONTIER_MON_CLEFAIRY       107
#define FRONTIER_MON_MAGNEMITE      108
#define FRONTIER_MON_SEEL           109
#define FRONTIER_MON_GRIMER         110
#define FRONTIER_MON_KRABBY         111
#define FRONTIER_MON_EXEGGCUTE      112
#define FRONTIER_MON_EEVEE          113
#define FRONTIER_MON_DROWZEE        114
#define FRONTIER_MON_VOLTORB        115
#define FRONTIER_MON_CHINCHOU       116
#define FRONTIER_MON_TEDDIURSA      117
#define FRONTIER_MON_DELIBIRD       118
#define FRONTIER_MON_HOUNDOUR       119
#define FRONTIER_MON_PHANPY         120
#define FRONTIER_MON_SPOINK         121
#define FRONTIER_MON_ARON           122
#define FRONTIER_MON_LUVDISC        123
#define FRONTIER_MON_TENTACOOL      124
#define FRONTIER_MON_CACNEA         125
#define FRONTIER_MON_UNOWN          126
#define FRONTIER_MON_KOFFING        127
#define FRONTIER_MON_STARYU         128
#define FRONTIER_MON_SKIPLOOM       129
#define FRONTIER_MON_NUZLEAF        130
#define FRONTIER_MON_LOMBRE         131
#define FRONTIER_MON_VIBRAVA        132
#define FRONTIER_MON_RHYHORN        133
#define FRONTIER_MON_CLAMPERL       134
#define FRONTIER_MON_PIDGEOTTO      135
#define FRONTIER_MON_GROWLITHE      136
#define FRONTIER_MON_FARFETCHD      137
#define FRONTIER_MON_OMANYTE        138
#define FRONTIER_MON_KABUTO         139
#define FRONTIER_MON_LILEEP         140
#define FRONTIER_MON_ANORITH        141
#define FRONTIER_MON_AIPOM          142
#define FRONTIER_MON_ELEKID         143
#define FRONTIER_MON_LOUDRED        144
#define FRONTIER_MON_SPINDA         145
#define FRONTIER_MON_NIDORINA       146
#define FRONTIER_MON_NIDORINO       147
#define FRONTIER_MON_FLAAFFY        148
#define FRONTIER_MON_MAGBY          149
#define FRONTIER_MON_NOSEPASS       150
#define FRONTIER_MON_CORSOLA        151
#define FRONTIER_MON_MAWILE         152
#define FRONTIER_MON_BUTTERFREE     153
#define FRONTIER_MON_BEEDRILL       154
#define FRONTIER_MON_POLIWHIRL      155
#define FRONTIER_MON_ONIX           156
#define FRONTIER_MON_BEAUTIFLY      157
#define FRONTIER_MON_DUSTOX         158
#define FRONTIER_MON_LEDIAN         159
#define FRONTIER_MON_ARIADOS        160
#define FRONTIER_MON_YANMA          161

#define FRONTIER_MON_DELCATTY_1     162
#define FRONTIER_MON_SABLEYE_1      163
#define FRONTIER_MON_LICKITUNG_1    164
#define FRONTIER_MON_WEEPINBELL_1   165
#define FRONTIER_MON_GRAVELER_1     166
#define FRONTIER_MON_GLOOM_1        167
#define FRONTIER_MON_PORYGON_1      168
#define FRONTIER_MON_KADABRA_1      169
#define FRONTIER_MON_WAILMER_1      170
#define FRONTIER_MON_ROSELIA_1      171
#define FRONTIER_MON_VOLBEAT_1      172
#define FRONTIER_MON_ILLUMISE_1     173
#define FRONTIER_MON_IVYSAUR_1      174
#define FRONTIER_MON_CHARMELEON_1   175
#define FRONTIER_MON_WARTORTLE_1    176
#define FRONTIER_MON_PARASECT_1     177
#define FRONTIER_MON_MACHOKE_1      178
#define FRONTIER_MON_HAUNTER_1      179
#define FRONTIER_MON_BAYLEEF_1      180
#define FRONTIER_MON_QUILAVA_1      181
#define FRONTIER_MON_CROCONAW_1     182
#define FRONTIER_MON_TOGETIC_1      183
#define FRONTIER_MON_MURKROW_1      184
#define FRONTIER_MON_WOBBUFFET_1    185
#define FRONTIER_MON_PLUSLE_1       186
#define FRONTIER_MON_MINUN_1        187
#define FRONTIER_MON_GROVYLE_1      188
#define FRONTIER_MON_COMBUSKEN_1    189
#define FRONTIER_MON_MARSHTOMP_1    190
#define FRONTIER_MON_PONYTA_1       191
#define FRONTIER_MON_AZUMARILL_1    192
#define FRONTIER_MON_SUDOWOODO_1    193
#define FRONTIER_MON_MAGCARGO_1     194
#define FRONTIER_MON_PUPITAR_1      195
#define FRONTIER_MON_SEALEO_1       196
#define FRONTIER_MON_RATICATE_1     197
#define FRONTIER_MON_MASQUERAIN_1   198
#define FRONTIER_MON_FURRET_1       199
#define FRONTIER_MON_DUNSPARCE_1    200
#define FRONTIER_MON_DRAGONAIR_1    201
#define FRONTIER_MON_MIGHTYENA_1    202
#define FRONTIER_MON_LINOONE_1      203
#define FRONTIER_MON_CASTFORM_1     204
#define FRONTIER_MON_SHELGON_1      205
#define FRONTIER_MON_METANG_1       206
#define FRONTIER_MON_WIGGLYTUFF_1   207
#define FRONTIER_MON_SUNFLORA_1     208
#define FRONTIER_MON_CHIMECHO_1     209
#define FRONTIER_MON_GLIGAR_1       210
#define FRONTIER_MON_QWILFISH_1     211
#define FRONTIER_MON_SNEASEL_1      212
#define FRONTIER_MON_PELIPPER_1     213
#define FRONTIER_MON_SWELLOW_1      214
#define FRONTIER_MON_LAIRON_1       215
#define FRONTIER_MON_TANGELA_1      216
#define FRONTIER_MON_ARBOK_1        217
#define FRONTIER_MON_PERSIAN_1      218
#define FRONTIER_MON_SEADRA_1       219
#define FRONTIER_MON_KECLEON_1      220
#define FRONTIER_MON_VIGOROTH_1     221
#define FRONTIER_MON_LUNATONE_1     222
#define FRONTIER_MON_SOLROCK_1      223
#define FRONTIER_MON_NOCTOWL_1      224
#define FRONTIER_MON_SANDSLASH_1    225
#define FRONTIER_MON_VENOMOTH_1     226
#define FRONTIER_MON_CHANSEY_1      227
#define FRONTIER_MON_SEAKING_1      228
#define FRONTIER_MON_JUMPLUFF_1     229
#define FRONTIER_MON_PILOSWINE_1    230
#define FRONTIER_MON_GOLBAT_1       231
#define FRONTIER_MON_PRIMEAPE_1     232
#define FRONTIER_MON_HITMONLEE_1    233
#define FRONTIER_MON_HITMONCHAN_1   234
#define FRONTIER_MON_GIRAFARIG_1    235
#define FRONTIER_MON_HITMONTOP_1    236
#define FRONTIER_MON_BANETTE_1      237
#define FRONTIER_MON_NINJASK_1      238
#define FRONTIER_MON_SEVIPER_1      239
#define FRONTIER_MON_ZANGOOSE_1     240
#define FRONTIER_MON_CAMERUPT_1     241
#define FRONTIER_MON_SHARPEDO_1     242
#define FRONTIER_MON_TROPIUS_1      243
#define FRONTIER_MON_MAGNETON_1     244
#define FRONTIER_MON_MANTINE_1      245
#define FRONTIER_MON_STANTLER_1     246
#define FRONTIER_MON_ABSOL_1        247
#define FRONTIER_MON_SWALOT_1       248
#define FRONTIER_MON_CRAWDAUNT_1    249
#define FRONTIER_MON_PIDGEOT_1      250
#define FRONTIER_MON_GRUMPIG_1      251
#define FRONTIER_MON_TORKOAL_1      252
#define FRONTIER_MON_KINGLER_1      253
#define FRONTIER_MON_CACTURNE_1     254
#define FRONTIER_MON_BELLOSSOM_1    255
#define FRONTIER_MON_OCTILLERY_1    256
#define FRONTIER_MON_HUNTAIL_1      257
#define FRONTIER_MON_GOREBYSS_1     258
#define FRONTIER_MON_RELICANTH_1    259
#define FRONTIER_MON_OMASTAR_1      260
#define FRONTIER_MON_KABUTOPS_1     261
#define FRONTIER_MON_POLIWRATH_1    262
#define FRONTIER_MON_SCYTHER_1      263
#define FRONTIER_MON_PINSIR_1       264
#define FRONTIER_MON_POLITOED_1     265
#define FRONTIER_MON_CLOYSTER_1     266

#define FRONTIER_MON_DELCATTY_2     267
#define FRONTIER_MON_SABLEYE_2      268
#define FRONTIER_MON_LICKITUNG_2    269
#define FRONTIER_MON_WEEPINBELL_2   270
#define FRONTIER_MON_GRAVELER_2     271
#define FRONTIER_MON_GLOOM_2        272
#define FRONTIER_MON_PORYGON_2      273
#define FRONTIER_MON_KADABRA_2      274
#define FRONTIER_MON_WAILMER_2      275
#define FRONTIER_MON_ROSELIA_2      276
#define FRONTIER_MON_VOLBEAT_2      277
#define FRONTIER_MON_ILLUMISE_2     278
#define FRONTIER_MON_IVYSAUR_2      279
#define FRONTIER_MON_CHARMELEON_2   280
#define FRONTIER_MON_WARTORTLE_2    281
#define FRONTIER_MON_PARASECT_2     282
#define FRONTIER_MON_MACHOKE_2      283
#define FRONTIER_MON_HAUNTER_2      284
#define FRONTIER_MON_BAYLEEF_2      285
#define FRONTIER_MON_QUILAVA_2      286
#define FRONTIER_MON_CROCONAW_2     287
#define FRONTIER_MON_TOGETIC_2      288
#define FRONTIER_MON_MURKROW_2      289
#define FRONTIER_MON_WOBBUFFET_2    290
#define FRONTIER_MON_PLUSLE_2       291
#define FRONTIER_MON_MINUN_2        292
#define FRONTIER_MON_GROVYLE_2      293
#define FRONTIER_MON_COMBUSKEN_2    294
#define FRONTIER_MON_MARSHTOMP_2    295
#define FRONTIER_MON_PONYTA_2       296
#define FRONTIER_MON_AZUMARILL_2    297
#define FRONTIER_MON_SUDOWOODO_2    298
#define FRONTIER_MON_MAGCARGO_2     299
#define FRONTIER_MON_PUPITAR_2      300
#define FRONTIER_MON_SEALEO_2       301
#define FRONTIER_MON_RATICATE_2     302
#define FRONTIER_MON_MASQUERAIN_2   303
#define FRONTIER_MON_FURRET_2       304
#define FRONTIER_MON_DUNSPARCE_2    305
#define FRONTIER_MON_DRAGONAIR_2    306
#define FRONTIER_MON_MIGHTYENA_2    307
#define FRONTIER_MON_LINOONE_2      308
#define FRONTIER_MON_CASTFORM_2     309
#define FRONTIER_MON_SHELGON_2      310
#define FRONTIER_MON_METANG_2       311
#define FRONTIER_MON_WIGGLYTUFF_2   312
#define FRONTIER_MON_SUNFLORA_2     313
#define FRONTIER_MON_CHIMECHO_2     314
#define FRONTIER_MON_GLIGAR_2       315
#define FRONTIER_MON_QWILFISH_2     316
#define FRONTIER_MON_SNEASEL_2      317
#define FRONTIER_MON_PELIPPER_2     318
#define FRONTIER_MON_SWELLOW_2      319
#define FRONTIER_MON_LAIRON_2       320
#define FRONTIER_MON_TANGELA_2      321
#define FRONTIER_MON_ARBOK_2        322
#define FRONTIER_MON_PERSIAN_2      323
#define FRONTIER_MON_SEADRA_2       324
#define FRONTIER_MON_KECLEON_2      325
#define FRONTIER_MON_VIGOROTH_2     326
#define FRONTIER_MON_LUNATONE_2     327
#define FRONTIER_MON_SOLROCK_2      328
#define FRONTIER_MON_NOCTOWL_2      329
#define FRONTIER_MON_SANDSLASH_2    330
#define FRONTIER_MON_VENOMOTH_2     331
#define FRONTIER_MON_CHANSEY_2      332
#define FRONTIER_MON_SEAKING_2      333
#define FRONTIER_MON_JUMPLUFF_2     334
#define FRONTIER_MON_PILOSWINE_2    335
#define FRONTIER_MON_GOLBAT_2       336
#define FRONTIER_MON_PRIMEAPE_2     337
#define FRONTIER_MON_HITMONLEE_2    338
#define FRONTIER_MON_HITMONCHAN_2   339
#define FRONTIER_MON_GIRAFARIG_2    340
#define FRONTIER_MON_HITMONTOP_2    341
#define FRONTIER_MON_BANETTE_2      342
#define FRONTIER_MON_NINJASK_2      343
#define FRONTIER_MON_SEVIPER_2      344
#define FRONTIER_MON_ZANGOOSE_2     345
#define FRONTIER_MON_CAMERUPT_2     346
#define FRONTIER_MON_SHARPEDO_2     347
#define FRONTIER_MON_TROPIUS_2      348
#define FRONTIER_MON_MAGNETON_2     349
#define FRONTIER_MON_MANTINE_2      350
#define FRONTIER_MON_STANTLER_2     351
#define FRONTIER_MON_ABSOL_2        352
#define FRONTIER_MON_SWALOT_2       353
#define FRONTIER_MON_CRAWDAUNT_2    354
#define FRONTIER_MON_PIDGEOT_2      355
#define FRONTIER_MON_GRUMPIG_2      356
#define FRONTIER_MON_TORKOAL_2      357
#define FRONTIER_MON_KINGLER_2      358
#define FRONTIER_MON_CACTURNE_2     359
#define FRONTIER_MON_BELLOSSOM_2    360
#define FRONTIER_MON_OCTILLERY_2    361
#define FRONTIER_MON_HUNTAIL_2      362
#define FRONTIER_MON_GOREBYSS_2     363
#define FRONTIER_MON_RELICANTH_2    364
#define FRONTIER_MON_OMASTAR_2      365
#define FRONTIER_MON_KABUTOPS_2     366
#define FRONTIER_MON_POLIWRATH_2    367
#define FRONTIER_MON_SCYTHER_2      368
#define FRONTIER_MON_PINSIR_2       369
#define FRONTIER_MON_POLITOED_2     370
#define FRONTIER_MON_CLOYSTER_2     371

#define FRONTIER_MON_DUGTRIO_1      372
#define FRONTIER_MON_MEDICHAM_1     373
#define FRONTIER_MON_MISDREAVUS_1   374
#define FRONTIER_MON_FEAROW_1       375
#define FRONTIER_MON_GRANBULL_1     376
#define FRONTIER_MON_JYNX_1         377
#define FRONTIER_MON_DUSCLOPS_1     378
#define FRONTIER_MON_DODRIO_1       379
#define FRONTIER_MON_MR_MIME_1      380
#define FRONTIER_MON_LANTURN_1      381
#define FRONTIER_MON_BRELOOM_1      382
#define FRONTIER_MON_FORRETRESS_1   383
#define FRONTIER_MON_WHISCASH_1     384
#define FRONTIER_MON_XATU_1         385
#define FRONTIER_MON_SKARMORY_1     386
#define FRONTIER_MON_MAROWAK_1      387
#define FRONTIER_MON_QUAGSIRE_1     388
#define FRONTIER_MON_CLEFABLE_1     389
#define FRONTIER_MON_HARIYAMA_1     390
#define FRONTIER_MON_RAICHU_1       391
#define FRONTIER_MON_DEWGONG_1      392
#define FRONTIER_MON_MANECTRIC_1    393
#define FRONTIER_MON_VILEPLUME_1    394
#define FRONTIER_MON_VICTREEBEL_1   395
#define FRONTIER_MON_ELECTRODE_1    396
#define FRONTIER_MON_EXPLOUD_1      397
#define FRONTIER_MON_SHIFTRY_1      398
#define FRONTIER_MON_GLALIE_1       399
#define FRONTIER_MON_LUDICOLO_1     400
#define FRONTIER_MON_HYPNO_1        401
#define FRONTIER_MON_GOLEM_1        402
#define FRONTIER_MON_RHYDON_1       403
#define FRONTIER_MON_ALAKAZAM_1     404
#define FRONTIER_MON_WEEZING_1      405
#define FRONTIER_MON_KANGASKHAN_1   406
#define FRONTIER_MON_ELECTABUZZ_1   407
#define FRONTIER_MON_TAUROS_1       408
#define FRONTIER_MON_SLOWBRO_1      409
#define FRONTIER_MON_SLOWKING_1     410
#define FRONTIER_MON_MILTANK_1      411
#define FRONTIER_MON_ALTARIA_1      412
#define FRONTIER_MON_NIDOQUEEN_1    413
#define FRONTIER_MON_NIDOKING_1     414
#define FRONTIER_MON_MAGMAR_1       415
#define FRONTIER_MON_CRADILY_1      416
#define FRONTIER_MON_ARMALDO_1      417
#define FRONTIER_MON_GOLDUCK_1      418
#define FRONTIER_MON_RAPIDASH_1     419
#define FRONTIER_MON_MUK_1          420
#define FRONTIER_MON_GENGAR_1       421
#define FRONTIER_MON_AMPHAROS_1     422
#define FRONTIER_MON_SCIZOR_1       423
#define FRONTIER_MON_HERACROSS_1    424
#define FRONTIER_MON_URSARING_1     425
#define FRONTIER_MON_HOUNDOOM_1     426
#define FRONTIER_MON_DONPHAN_1      427
#define FRONTIER_MON_CLAYDOL_1      428
#define FRONTIER_MON_WAILORD_1      429
#define FRONTIER_MON_NINETALES_1    430
#define FRONTIER_MON_MACHAMP_1      431
#define FRONTIER_MON_SHUCKLE_1      432
#define FRONTIER_MON_STEELIX_1      433
#define FRONTIER_MON_TENTACRUEL_1   434
#define FRONTIER_MON_AERODACTYL_1   435
#define FRONTIER_MON_PORYGON2_1     436
#define FRONTIER_MON_GARDEVOIR_1    437
#define FRONTIER_MON_EXEGGUTOR_1    438
#define FRONTIER_MON_STARMIE_1      439
#define FRONTIER_MON_FLYGON_1       440
#define FRONTIER_MON_VENUSAUR_1     441
#define FRONTIER_MON_VAPOREON_1     442
#define FRONTIER_MON_JOLTEON_1      443
#define FRONTIER_MON_FLAREON_1      444
#define FRONTIER_MON_MEGANIUM_1     445
#define FRONTIER_MON_ESPEON_1       446
#define FRONTIER_MON_UMBREON_1      447
#define FRONTIER_MON_BLASTOISE_1    448
#define FRONTIER_MON_FERALIGATR_1   449
#define FRONTIER_MON_AGGRON_1       450
#define FRONTIER_MON_BLAZIKEN_1     451
#define FRONTIER_MON_WALREIN_1      452
#define FRONTIER_MON_SCEPTILE_1     453
#define FRONTIER_MON_CHARIZARD_1    454
#define FRONTIER_MON_TYPHLOSION_1   455
#define FRONTIER_MON_LAPRAS_1       456
#define FRONTIER_MON_CROBAT_1       457
#define FRONTIER_MON_SWAMPERT_1     458
#define FRONTIER_MON_GYARADOS_1     459
#define FRONTIER_MON_SNORLAX_1      460
#define FRONTIER_MON_KINGDRA_1      461
#define FRONTIER_MON_BLISSEY_1      462
#define FRONTIER_MON_MILOTIC_1      463
#define FRONTIER_MON_ARCANINE_1     464
#define FRONTIER_MON_SALAMENCE_1    465
#define FRONTIER_MON_METAGROSS_1    466
#define FRONTIER_MON_SLAKING_1      467

#define FRONTIER_MON_DUGTRIO_2      468
#define FRONTIER_MON_MEDICHAM_2     469
#define FRONTIER_MON_MAROWAK_2      470
#define FRONTIER_MON_QUAGSIRE_2     471
#define FRONTIER_MON_MISDREAVUS_2   472
#define FRONTIER_MON_FEAROW_2       473
#define FRONTIER_MON_GRANBULL_2     474
#define FRONTIER_MON_JYNX_2         475
#define FRONTIER_MON_DUSCLOPS_2     476
#define FRONTIER_MON_DODRIO_2       477
#define FRONTIER_MON_MR_MIME_2      478
#define FRONTIER_MON_LANTURN_2      479
#define FRONTIER_MON_BRELOOM_2      480
#define FRONTIER_MON_FORRETRESS_2   481
#define FRONTIER_MON_SKARMORY_2     482
#define FRONTIER_MON_WHISCASH_2     483
#define FRONTIER_MON_XATU_2         484
#define FRONTIER_MON_CLEFABLE_2     485
#define FRONTIER_MON_HARIYAMA_2     486
#define FRONTIER_MON_RAICHU_2       487
#define FRONTIER_MON_DEWGONG_2      488
#define FRONTIER_MON_MANECTRIC_2    489
#define FRONTIER_MON_VILEPLUME_2    490
#define FRONTIER_MON_VICTREEBEL_2   491
#define FRONTIER_MON_ELECTRODE_2    492
#define FRONTIER_MON_EXPLOUD_2      493
#define FRONTIER_MON_SHIFTRY_2      494
#define FRONTIER_MON_GLALIE_2       495
#define FRONTIER_MON_LUDICOLO_2     496
#define FRONTIER_MON_HYPNO_2        497
#define FRONTIER_MON_GOLEM_2        498
#define FRONTIER_MON_RHYDON_2       499
#define FRONTIER_MON_ALAKAZAM_2     500
#define FRONTIER_MON_WEEZING_2      501
#define FRONTIER_MON_KANGASKHAN_2   502
#define FRONTIER_MON_ELECTABUZZ_2   503
#define FRONTIER_MON_TAUROS_2       504
#define FRONTIER_MON_SLOWBRO_2      505
#define FRONTIER_MON_SLOWKING_2     506
#define FRONTIER_MON_MILTANK_2      507
#define FRONTIER_MON_ALTARIA_2      508
#define FRONTIER_MON_NIDOQUEEN_2    509
#define FRONTIER_MON_NIDOKING_2     510
#define FRONTIER_MON_MAGMAR_2       511
#define FRONTIER_MON_CRADILY_2      512
#define FRONTIER_MON_ARMALDO_2      513
#define FRONTIER_MON_GOLDUCK_2      514
#define FRONTIER_MON_RAPIDASH_2     515
#define FRONTIER_MON_MUK_2          516
#define FRONTIER_MON_GENGAR_2       517
#define FRONTIER_MON_AMPHAROS_2     518
#define FRONTIER_MON_SCIZOR_2       519
#define FRONTIER_MON_HERACROSS_2    520
#define FRONTIER_MON_URSARING_2     521
#define FRONTIER_MON_HOUNDOOM_2     522
#define FRONTIER_MON_DONPHAN_2      523
#define FRONTIER_MON_CLAYDOL_2      524
#define FRONTIER_MON_WAILORD_2      525
#define FRONTIER_MON_NINETALES_2    526
#define FRONTIER_MON_MACHAMP_2      527
#define FRONTIER_MON_SHUCKLE_2      528
#define FRONTIER_MON_STEELIX_2      529
#define FRONTIER_MON_TENTACRUEL_2   530
#define FRONTIER_MON_AERODACTYL_2   531
#define FRONTIER_MON_PORYGON2_2     532
#define FRONTIER_MON_GARDEVOIR_2    533
#define FRONTIER_MON_EXEGGUTOR_2    534
#define FRONTIER_MON_STARMIE_2      535
#define FRONTIER_MON_FLYGON_2       536
#define FRONTIER_MON_VENUSAUR_2     537
#define FRONTIER_MON_VAPOREON_2     538
#define FRONTIER_MON_JOLTEON_2      539
#define FRONTIER_MON_FLAREON_2      540
#define FRONTIER_MON_MEGANIUM_2     541
#define FRONTIER_MON_ESPEON_2       542
#define FRONTIER_MON_UMBREON_2      543
#define FRONTIER_MON_BLASTOISE_2    544
#define FRONTIER_MON_FERALIGATR_2   545
#define FRONTIER_MON_AGGRON_2       546
#define FRONTIER_MON_BLAZIKEN_2     547
#define FRONTIER_MON_WALREIN_2      548
#define FRONTIER_MON_SCEPTILE_2     549
#define FRONTIER_MON_CHARIZARD_2    550
#define FRONTIER_MON_TYPHLOSION_2   551
#define FRONTIER_MON_LAPRAS_2       552
#define FRONTIER_MON_CROBAT_2       553
#define FRONTIER_MON_SWAMPERT_2     554
#define FRONTIER_MON_GYARADOS_2     555
#define FRONTIER_MON_SNORLAX_2      556
#define FRONTIER_MON_KINGDRA_2      557
#define FRONTIER_MON_BLISSEY_2      558
#define FRONTIER_MON_MILOTIC_2      559
#define FRONTIER_MON_ARCANINE_2     560
#define FRONTIER_MON_SALAMENCE_2    561
#define FRONTIER_MON_METAGROSS_2    562
#define FRONTIER_MON_SLAKING_2      563

#define FRONTIER_MON_DUGTRIO_3      564
#define FRONTIER_MON_MEDICHAM_3     565
#define FRONTIER_MON_MISDREAVUS_3   566
#define FRONTIER_MON_FEAROW_3       567
#define FRONTIER_MON_GRANBULL_3     568
#define FRONTIER_MON_JYNX_3         569
#define FRONTIER_MON_DUSCLOPS_3     570
#define FRONTIER_MON_DODRIO_3       571
#define FRONTIER_MON_MR_MIME_3      572
#define FRONTIER_MON_LANTURN_3      573
#define FRONTIER_MON_BRELOOM_3      574
#define FRONTIER_MON_FORRETRESS_3   575
#define FRONTIER_MON_WHISCASH_3     576
#define FRONTIER_MON_XATU_3         577
#define FRONTIER_MON_SKARMORY_3     578
#define FRONTIER_MON_MAROWAK_3      579
#define FRONTIER_MON_QUAGSIRE_3     580
#define FRONTIER_MON_CLEFABLE_3     581
#define FRONTIER_MON_HARIYAMA_3     582
#define FRONTIER_MON_RAICHU_3       583
#define FRONTIER_MON_DEWGONG_3      584
#define FRONTIER_MON_MANECTRIC_3    585
#define FRONTIER_MON_VILEPLUME_3    586
#define FRONTIER_MON_VICTREEBEL_3   587
#define FRONTIER_MON_ELECTRODE_3    588
#define FRONTIER_MON_EXPLOUD_3      589
#define FRONTIER_MON_SHIFTRY_3      590
#define FRONTIER_MON_GLALIE_3       591
#define FRONTIER_MON_LUDICOLO_3     592
#define FRONTIER_MON_HYPNO_3        593
#define FRONTIER_MON_GOLEM_3        594
#define FRONTIER_MON_RHYDON_3       595
#define FRONTIER_MON_ALAKAZAM_3     596
#define FRONTIER_MON_WEEZING_3      597
#define FRONTIER_MON_KANGASKHAN_3   598
#define FRONTIER_MON_ELECTABUZZ_3   599
#define FRONTIER_MON_TAUROS_3       600
#define FRONTIER_MON_SLOWBRO_3      601
#define FRONTIER_MON_SLOWKING_3     602
#define FRONTIER_MON_MILTANK_3      603
#define FRONTIER_MON_ALTARIA_3      604
#define FRONTIER_MON_NIDOQUEEN_3    605
#define FRONTIER_MON_NIDOKING_3     606
#define FRONTIER_MON_MAGMAR_3       607
#define FRONTIER_MON_CRADILY_3      608
#define FRONTIER_MON_ARMALDO_3      609
#define FRONTIER_MON_GOLDUCK_3      610
#define FRONTIER_MON_RAPIDASH_3     611
#define FRONTIER_MON_MUK_3          612
#define FRONTIER_MON_GENGAR_3       613
#define FRONTIER_MON_AMPHAROS_3     614
#define FRONTIER_MON_SCIZOR_3       615
#define FRONTIER_MON_HERACROSS_3    616
#define FRONTIER_MON_URSARING_3     617
#define FRONTIER_MON_HOUNDOOM_3     618
#define FRONTIER_MON_DONPHAN_3      619
#define FRONTIER_MON_CLAYDOL_3      620
#define FRONTIER_MON_WAILORD_3      621
#define FRONTIER_MON_NINETALES_3    622
#define FRONTIER_MON_MACHAMP_3      623
#define FRONTIER_MON_SHUCKLE_3      624
#define FRONTIER_MON_STEELIX_3      625
#define FRONTIER_MON_TENTACRUEL_3   626
#define FRONTIER_MON_AERODACTYL_3   627
#define FRONTIER_MON_PORYGON2_3     628
#define FRONTIER_MON_GARDEVOIR_3    629
#define FRONTIER_MON_EXEGGUTOR_3    630
#define FRONTIER_MON_STARMIE_3      631
#define FRONTIER_MON_FLYGON_3       632
#define FRONTIER_MON_VENUSAUR_3     633
#define FRONTIER_MON_VAPOREON_3     634
#define FRONTIER_MON_JOLTEON_3      635
#define FRONTIER_MON_FLAREON_3      636
#define FRONTIER_MON_MEGANIUM_3     637
#define FRONTIER_MON_ESPEON_3       638
#define FRONTIER_MON_UMBREON_3      639
#define FRONTIER_MON_BLASTOISE_3    640
#define FRONTIER_MON_FERALIGATR_3   641
#define FRONTIER_MON_AGGRON_3       642
#define FRONTIER_MON_BLAZIKEN_3     643
#define FRONTIER_MON_WALREIN_3      644
#define FRONTIER_MON_SCEPTILE_3     645
#define FRONTIER_MON_CHARIZARD_3    646
#define FRONTIER_MON_TYPHLOSION_3   647
#define FRONTIER_MON_LAPRAS_3       648
#define FRONTIER_MON_CROBAT_3       649
#define FRONTIER_MON_SWAMPERT_3     650
#define FRONTIER_MON_GYARADOS_3     651
#define FRONTIER_MON_SNORLAX_3      652
#define FRONTIER_MON_KINGDRA_3      653
#define FRONTIER_MON_BLISSEY_3      654
#define FRONTIER_MON_MILOTIC_3      655
#define FRONTIER_MON_ARCANINE_3     656
#define FRONTIER_MON_SALAMENCE_3    657
#define FRONTIER_MON_METAGROSS_3    658
#define FRONTIER_MON_SLAKING_3      659

#define FRONTIER_MON_DUGTRIO_4      660
#define FRONTIER_MON_MEDICHAM_4     661
#define FRONTIER_MON_MISDREAVUS_4   662
#define FRONTIER_MON_FEAROW_4       663
#define FRONTIER_MON_GRANBULL_4     664
#define FRONTIER_MON_JYNX_4         665
#define FRONTIER_MON_DUSCLOPS_4     666
#define FRONTIER_MON_DODRIO_4       667
#define FRONTIER_MON_MR_MIME_4      668
#define FRONTIER_MON_LANTURN_4      669
#define FRONTIER_MON_BRELOOM_4      670
#define FRONTIER_MON_FORRETRESS_4   671
#define FRONTIER_MON_WHISCASH_4     672
#define FRONTIER_MON_XATU_4         673
#define FRONTIER_MON_SKARMORY_4     674
#define FRONTIER_MON_MAROWAK_4      675
#define FRONTIER_MON_QUAGSIRE_4     676
#define FRONTIER_MON_CLEFABLE_4     677
#define FRONTIER_MON_HARIYAMA_4     678
#define FRONTIER_MON_RAICHU_4       679
#define FRONTIER_MON_DEWGONG_4      680
#define FRONTIER_MON_MANECTRIC_4    681
#define FRONTIER_MON_VILEPLUME_4    682
#define FRONTIER_MON_VICTREEBEL_4   683
#define FRONTIER_MON_ELECTRODE_4    684
#define FRONTIER_MON_EXPLOUD_4      685
#define FRONTIER_MON_SHIFTRY_4      686
#define FRONTIER_MON_GLALIE_4       687
#define FRONTIER_MON_LUDICOLO_4     688
#define FRONTIER_MON_HYPNO_4        689
#define FRONTIER_MON_GOLEM_4        690
#define FRONTIER_MON_RHYDON_4       691
#define FRONTIER_MON_ALAKAZAM_4     692
#define FRONTIER_MON_WEEZING_4      693
#define FRONTIER_MON_KANGASKHAN_4   694
#define FRONTIER_MON_ELECTABUZZ_4   695
#define FRONTIER_MON_TAUROS_4       696
#define FRONTIER_MON_SLOWBRO_4      697
#define FRONTIER_MON_SLOWKING_4     698
#define FRONTIER_MON_MILTANK_4      699
#define FRONTIER_MON_ALTARIA_4      700
#define FRONTIER_MON_NIDOQUEEN_4    701
#define FRONTIER_MON_NIDOKING_4     702
#define FRONTIER_MON_MAGMAR_4       703
#define FRONTIER_MON_CRADILY_4      704
#define FRONTIER_MON_ARMALDO_4      705
#define FRONTIER_MON_GOLDUCK_4      706
#define FRONTIER_MON_RAPIDASH_4     707
#define FRONTIER_MON_MUK_4          708
#define FRONTIER_MON_GENGAR_4       709
#define FRONTIER_MON_AMPHAROS_4     710
#define FRONTIER_MON_SCIZOR_4       711
#define FRONTIER_MON_HERACROSS_4    712
#define FRONTIER_MON_URSARING_4     713
#define FRONTIER_MON_HOUNDOOM_4     714
#define FRONTIER_MON_DONPHAN_4      715
#define FRONTIER_MON_CLAYDOL_4      716
#define FRONTIER_MON_WAILORD_4      717
#define FRONTIER_MON_NINETALES_4    718
#define FRONTIER_MON_MACHAMP_4      719
#define FRONTIER_MON_SHUCKLE_4      720
#define FRONTIER_MON_STEELIX_4      721
#define FRONTIER_MON_TENTACRUEL_4   722
#define FRONTIER_MON_AERODACTYL_4   723
#define FRONTIER_MON_PORYGON2_4     724
#define FRONTIER_MON_GARDEVOIR_4    725
#define FRONTIER_MON_EXEGGUTOR_4    726
#define FRONTIER_MON_STARMIE_4      727
#define FRONTIER_MON_FLYGON_4       728
#define FRONTIER_MON_VENUSAUR_4     729
#define FRONTIER_MON_VAPOREON_4     730
#define FRONTIER_MON_JOLTEON_4      731
#define FRONTIER_MON_FLAREON_4      732
#define FRONTIER_MON_MEGANIUM_4     733
#define FRONTIER_MON_ESPEON_4       734
#define FRONTIER_MON_UMBREON_4      735
#define FRONTIER_MON_BLASTOISE_4    736
#define FRONTIER_MON_FERALIGATR_4   737
#define FRONTIER_MON_AGGRON_4       738
#define FRONTIER_MON_BLAZIKEN_4     739
#define FRONTIER_MON_WALREIN_4      740
#define FRONTIER_MON_SCEPTILE_4     741
#define FRONTIER_MON_CHARIZARD_4    742
#define FRONTIER_MON_TYPHLOSION_4   743
#define FRONTIER_MON_LAPRAS_4       744
#define FRONTIER_MON_CROBAT_4       745
#define FRONTIER_MON_SWAMPERT_4     746
#define FRONTIER_MON_GYARADOS_4     747
#define FRONTIER_MON_SNORLAX_4      748
#define FRONTIER_MON_KINGDRA_4      749
#define FRONTIER_MON_BLISSEY_4      750
#define FRONTIER_MON_MILOTIC_4      751
#define FRONTIER_MON_ARCANINE_4     752
#define FRONTIER_MON_SALAMENCE_4    753
#define FRONTIER_MON_METAGROSS_4    754
#define FRONTIER_MON_SLAKING_4      755

#define FRONTIER_MON_ARTICUNO_1     756
#define FRONTIER_MON_ZAPDOS_1       757
#define FRONTIER_MON_MOLTRES_1      758
#define FRONTIER_MON_RAIKOU_1       759
#define FRONTIER_MON_ENTEI_1        760
#define FRONTIER_MON_SUICUNE_1      761
#define FRONTIER_MON_REGIROCK_1     762
#define FRONTIER_MON_REGICE_1       763
#define FRONTIER_MON_REGISTEEL_1    764
#define FRONTIER_MON_LATIAS_1       765
#define FRONTIER_MON_LATIOS_1       766
#define FRONTIER_MON_ARTICUNO_2     767
#define FRONTIER_MON_ZAPDOS_2       768
#define FRONTIER_MON_MOLTRES_2      769
#define FRONTIER_MON_RAIKOU_2       770
#define FRONTIER_MON_ENTEI_2        771
#define FRONTIER_MON_SUICUNE_2      772
#define FRONTIER_MON_REGIROCK_2     773
#define FRONTIER_MON_REGICE_2       774
#define FRONTIER_MON_REGISTEEL_2    775
#define FRONTIER_MON_LATIAS_2       776
#define FRONTIER_MON_LATIOS_2       777
#define FRONTIER_MON_ARTICUNO_3     778
#define FRONTIER_MON_ZAPDOS_3       779
#define FRONTIER_MON_MOLTRES_3      780
#define FRONTIER_MON_RAIKOU_3       781
#define FRONTIER_MON_ENTEI_3        782
#define FRONTIER_MON_SUICUNE_3      783
#define FRONTIER_MON_REGIROCK_3     784
#define FRONTIER_MON_REGICE_3       785
#define FRONTIER_MON_REGISTEEL_3    786
#define FRONTIER_MON_LATIAS_3       787
#define FRONTIER_MON_LATIOS_3       788
#define FRONTIER_MON_ARTICUNO_4     789
#define FRONTIER_MON_ZAPDOS_4       790
#define FRONTIER_MON_MOLTRES_4      791
#define FRONTIER_MON_RAIKOU_4       792
#define FRONTIER_MON_ENTEI_4        793
#define FRONTIER_MON_SUICUNE_4      794
#define FRONTIER_MON_REGIROCK_4     795
#define FRONTIER_MON_REGICE_4       796
#define FRONTIER_MON_REGISTEEL_4    797
#define FRONTIER_MON_LATIAS_4       798
#define FRONTIER_MON_LATIOS_4       799
#define FRONTIER_MON_GENGAR_5       800
#define FRONTIER_MON_GENGAR_6       801
#define FRONTIER_MON_GENGAR_7       802
#define FRONTIER_MON_GENGAR_8       803
#define FRONTIER_MON_URSARING_5     804
#define FRONTIER_MON_URSARING_6     805
#define FRONTIER_MON_URSARING_7     806
#define FRONTIER_MON_URSARING_8     807
#define FRONTIER_MON_MACHAMP_5      808
#define FRONTIER_MON_MACHAMP_6      809
#define FRONTIER_MON_MACHAMP_7      810
#define FRONTIER_MON_MACHAMP_8      811
#define FRONTIER_MON_GARDEVOIR_5    812
#define FRONTIER_MON_GARDEVOIR_6    813
#define FRONTIER_MON_GARDEVOIR_7    814
#define FRONTIER_MON_GARDEVOIR_8    815
#define FRONTIER_MON_STARMIE_5      816
#define FRONTIER_MON_STARMIE_6      817
#define FRONTIER_MON_STARMIE_7      818
#define FRONTIER_MON_STARMIE_8      819
#define FRONTIER_MON_LAPRAS_5       820
#define FRONTIER_MON_LAPRAS_6       821
#define FRONTIER_MON_LAPRAS_7       822
#define FRONTIER_MON_LAPRAS_8       823
#define FRONTIER_MON_SNORLAX_5      824
#define FRONTIER_MON_SNORLAX_6      825
#define FRONTIER_MON_SNORLAX_7      826
#define FRONTIER_MON_SNORLAX_8      827
#define FRONTIER_MON_SALAMENCE_5    828
#define FRONTIER_MON_SALAMENCE_6    829
#define FRONTIER_MON_SALAMENCE_7    830
#define FRONTIER_MON_SALAMENCE_8    831
#define FRONTIER_MON_METAGROSS_5    832
#define FRONTIER_MON_METAGROSS_6    833
#define FRONTIER_MON_METAGROSS_7    834
#define FRONTIER_MON_METAGROSS_8    835
#define FRONTIER_MON_REGIROCK_5     836
#define FRONTIER_MON_REGIROCK_6     837
#define FRONTIER_MON_REGICE_5       838
#define FRONTIER_MON_REGICE_6       839
#define FRONTIER_MON_REGISTEEL_5    840
#define FRONTIER_MON_REGISTEEL_6    841
#define FRONTIER_MON_LATIAS_5       842
#define FRONTIER_MON_LATIAS_6       843
#define FRONTIER_MON_LATIAS_7       844
#define FRONTIER_MON_LATIAS_8       845
#define FRONTIER_MON_LATIOS_5       846
#define FRONTIER_MON_LATIOS_6       847
#define FRONTIER_MON_LATIOS_7       848
#define FRONTIER_MON_LATIOS_8       849

#define FRONTIER_MONS_HIGH_TIER     849 // Mons above this point can only appear > level 50

#define FRONTIER_MON_DRAGONITE_1    850
#define FRONTIER_MON_DRAGONITE_2    851
#define FRONTIER_MON_DRAGONITE_3    852
#define FRONTIER_MON_DRAGONITE_4    853
#define FRONTIER_MON_DRAGONITE_5    854
#define FRONTIER_MON_DRAGONITE_6    855
#define FRONTIER_MON_DRAGONITE_7    856
#define FRONTIER_MON_DRAGONITE_8    857
#define FRONTIER_MON_DRAGONITE_9    858
#define FRONTIER_MON_DRAGONITE_10   859
#define FRONTIER_MON_TYRANITAR_1    860
#define FRONTIER_MON_TYRANITAR_2    861
#define FRONTIER_MON_TYRANITAR_3    862
#define FRONTIER_MON_TYRANITAR_4    863
#define FRONTIER_MON_TYRANITAR_5    864
#define FRONTIER_MON_TYRANITAR_6    865
#define FRONTIER_MON_TYRANITAR_7    866
#define FRONTIER_MON_TYRANITAR_8    867
#define FRONTIER_MON_TYRANITAR_9    868
#define FRONTIER_MON_TYRANITAR_10   869
#define FRONTIER_MON_ARTICUNO_5     870
#define FRONTIER_MON_ARTICUNO_6     871
#define FRONTIER_MON_ZAPDOS_5       872
#define FRONTIER_MON_ZAPDOS_6       873
#define FRONTIER_MON_MOLTRES_5      874
#define FRONTIER_MON_MOLTRES_6      875
#define FRONTIER_MON_RAIKOU_5       876
#define FRONTIER_MON_RAIKOU_6       877
#define FRONTIER_MON_ENTEI_5        878
#define FRONTIER_MON_ENTEI_6        879
#define FRONTIER_MON_SUICUNE_5      880
#define FRONTIER_MON_SUICUNE_6      881

#define NUM_FRONTIER_MONS           882

#endif //GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H