#ifndef PMDSKY_ENUMS_H #define PMDSKY_ENUMS_H #define NUM_TACTICS TACTIC_NONE + 1 // There are 3 independent teams that the player can control, depending on the game mode enum team_id { TEAM_MAIN = 0, // main team (GAME_MODE_NORMAL) TEAM_SPECIAL_EPISODE = 1, // team during a special episode (GAME_MODE_SPECIAL_EPISODE) TEAM_RESCUE = 2, // team during a Pelipper Island rescue (GAME_MODE_RESCUE) }; // Tactic ID. These are usually encoded as bitvectors. enum tactic_id { TACTIC_LETS_GO_TOGETHER = 0, TACTIC_YOU_GO_THE_OTHER_WAY = 1, TACTIC_GO_AFTER_FOES = 2, TACTIC_AVOID_THE_FIRST_HIT = 3, TACTIC_ALL_FOR_ONE = 4, TACTIC_GROUP_SAFETY = 5, TACTIC_AVOID_TROUBLE = 6, TACTIC_BE_PATIENT = 7, TACTIC_KEEP_YOUR_DISTANCE = 8, TACTIC_WAIT_THERE = 9, TACTIC_GET_AWAY_FROM_HERE = 10, TACTIC_NONE = 11, // used as an empty placeholder in menus (and maybe other things). }; // AI objective that controls how an AI acts in the moment. // These were probably taken from Rescue Team; need to confirm validity in Explorers. enum ai_objective { AI_UNKNOWN = 0, AI_CHASE_TARGET = 1, AI_CHASE_REMEMBERED_TARGET = 2, // Chase a target using a previous position AI_ROAM = 3, // Roam hallways AI_LEAVE_ROOM = 4, // Get out of a room AI_RUN_AWAY = 5, AI_STAND_STILL = 6, AI_TAKE_ITEM = 7, }; // Move ID enum move_id { MOVE_NOTHING = 0, MOVE_IRON_TAIL = 1, MOVE_ICE_BALL = 2, MOVE_YAWN = 3, MOVE_LOVELY_KISS = 4, MOVE_NIGHTMARE = 5, MOVE_MORNING_SUN = 6, MOVE_VITAL_THROW = 7, MOVE_DIG = 8, MOVE_THRASH = 9, MOVE_SWEET_SCENT = 10, MOVE_CHARM = 11, MOVE_RAIN_DANCE = 12, MOVE_CONFUSE_RAY = 13, MOVE_HAIL = 14, MOVE_AROMATHERAPY = 15, MOVE_BUBBLE = 16, MOVE_ENCORE = 17, MOVE_CUT = 18, MOVE_RAGE = 19, MOVE_SUPER_FANG = 20, MOVE_PAIN_SPLIT = 21, MOVE_TORMENT = 22, MOVE_STRING_SHOT = 23, MOVE_SWAGGER = 24, MOVE_SNORE = 25, MOVE_HEAL_BELL = 26, MOVE_SCREECH = 27, MOVE_ROCK_THROW = 28, MOVE_ROCK_SMASH = 29, MOVE_ROCK_SLIDE = 30, MOVE_WEATHER_BALL = 31, MOVE_WHIRLPOOL = 32, MOVE_FAKE_TEARS = 33, MOVE_SING = 34, MOVE_SPITE = 35, MOVE_AIR_CUTTER = 36, MOVE_SMOKESCREEN = 37, MOVE_PURSUIT = 38, MOVE_DOUBLESLAP = 39, MOVE_MIRROR_MOVE = 40, MOVE_OVERHEAT = 41, MOVE_AURORA_BEAM = 42, MOVE_MEMENTO = 43, MOVE_OCTAZOOKA = 44, MOVE_FLATTER = 45, MOVE_ASTONISH = 46, MOVE_WILL_O_WISP = 47, MOVE_RETURN = 48, MOVE_GRUDGE = 49, MOVE_STRENGTH = 50, MOVE_COUNTER = 51, MOVE_FLAME_WHEEL = 52, MOVE_FLAMETHROWER = 53, MOVE_ODOR_SLEUTH = 54, MOVE_SHARPEN = 55, MOVE_DOUBLE_TEAM = 56, MOVE_GUST = 57, MOVE_HARDEN = 58, MOVE_DISABLE = 59, MOVE_RAZOR_WIND = 60, MOVE_BIDE = 61, MOVE_CRUNCH = 62, MOVE_BITE = 63, MOVE_THUNDER = 64, MOVE_THUNDERPUNCH = 65, MOVE_ENDEAVOR = 66, MOVE_FACADE = 67, MOVE_KARATE_CHOP = 68, MOVE_CLAMP = 69, MOVE_WITHDRAW = 70, MOVE_CONSTRICT = 71, MOVE_BRICK_BREAK = 72, MOVE_ROCK_TOMB = 73, MOVE_FOCUS_ENERGY = 74, MOVE_FOCUS_PUNCH = 75, MOVE_GIGA_DRAIN = 76, MOVE_REVERSAL = 77, MOVE_SMELLINGSALT = 78, MOVE_SPORE = 79, MOVE_LEECH_LIFE = 80, MOVE_SLASH = 81, MOVE_SILVER_WIND = 82, MOVE_METAL_SOUND = 83, MOVE_GRASSWHISTLE = 84, MOVE_TICKLE = 85, MOVE_SPIDER_WEB = 86, MOVE_CRABHAMMER = 87, MOVE_HAZE = 88, MOVE_MEAN_LOOK = 89, MOVE_CROSS_CHOP = 90, MOVE_OUTRAGE = 91, MOVE_LOW_KICK = 92, MOVE_ANCIENTPOWER = 93, MOVE_SYNTHESIS = 94, MOVE_AGILITY = 95, MOVE_RAPID_SPIN = 96, MOVE_ICY_WIND = 97, MOVE_MIND_READER = 98, MOVE_COSMIC_POWER = 99, MOVE_SKY_ATTACK = 100, MOVE_POWDER_SNOW = 101, MOVE_FOLLOW_ME = 102, MOVE_METEOR_MASH = 103, MOVE_ENDURE = 104, MOVE_ROLLOUT = 105, MOVE_SCARY_FACE = 106, MOVE_PSYBEAM = 107, MOVE_PSYWAVE = 108, MOVE_PSYCHIC = 109, MOVE_PSYCHO_BOOST = 110, MOVE_HYPNOSIS = 111, MOVE_UPROAR = 112, MOVE_WATER_SPOUT = 113, MOVE_SIGNAL_BEAM = 114, MOVE_PSYCH_UP = 115, MOVE_SUBMISSION = 116, MOVE_RECOVER = 117, MOVE_EARTHQUAKE = 118, MOVE_NATURE_POWER = 119, MOVE_LICK = 120, MOVE_FLAIL = 121, MOVE_TAIL_WHIP = 122, MOVE_SELFDESTRUCT = 123, MOVE_STUN_SPORE = 124, MOVE_BIND = 125, MOVE_SHADOW_PUNCH = 126, MOVE_SHADOW_BALL = 127, MOVE_CHARGE = 128, MOVE_THUNDERBOLT = 129, MOVE_MIST = 130, MOVE_FISSURE = 131, MOVE_EXTREMESPEED = 132, MOVE_EXTRASENSORY = 133, MOVE_SAFEGUARD = 134, MOVE_ABSORB = 135, MOVE_SKY_UPPERCUT = 136, MOVE_SKILL_SWAP = 137, MOVE_SKETCH = 138, MOVE_HEADBUTT = 139, MOVE_DOUBLE_EDGE = 140, MOVE_SANDSTORM = 141, MOVE_SAND_ATTACK = 142, MOVE_SAND_TOMB = 143, MOVE_SPARK = 144, MOVE_SWIFT = 145, MOVE_KINESIS = 146, MOVE_SMOG = 147, MOVE_GROWTH = 148, MOVE_SACRED_FIRE = 149, MOVE_SHEER_COLD = 150, MOVE_SOLARBEAM = 151, MOVE_SONICBOOM = 152, MOVE_FLY = 153, MOVE_TACKLE = 154, MOVE_EXPLOSION = 155, MOVE_DIVE = 156, MOVE_FIRE_BLAST = 157, MOVE_WATERFALL = 158, MOVE_MUDDY_WATER = 159, MOVE_STOCKPILE = 160, MOVE_SLAM = 161, MOVE_TWISTER = 162, MOVE_BULLET_SEED = 163, MOVE_TWINEEDLE = 164, MOVE_SOFTBOILED = 165, MOVE_EGG_BOMB = 166, MOVE_FAINT_ATTACK = 167, MOVE_BARRAGE = 168, MOVE_MINIMIZE = 169, MOVE_SEISMIC_TOSS = 170, MOVE_SUPERSONIC = 171, MOVE_TAUNT = 172, MOVE_MOONLIGHT = 173, MOVE_PECK = 174, MOVE_ARM_THRUST = 175, MOVE_HORN_ATTACK = 176, MOVE_HORN_DRILL = 177, MOVE_WING_ATTACK = 178, MOVE_AERIAL_ACE = 179, MOVE_ICICLE_SPEAR = 180, MOVE_SWORDS_DANCE = 181, MOVE_VINE_WHIP = 182, MOVE_CONVERSION = 183, MOVE_CONVERSION_2 = 184, MOVE_HELPING_HAND = 185, MOVE_IRON_DEFENSE = 186, MOVE_TELEPORT = 187, MOVE_THUNDERSHOCK = 188, MOVE_SHOCK_WAVE = 189, MOVE_QUICK_ATTACK = 190, MOVE_SWEET_KISS = 191, MOVE_THUNDER_WAVE = 192, MOVE_ZAP_CANNON = 193, MOVE_BLOCK = 194, MOVE_HOWL = 195, MOVE_POISON_GAS = 196, MOVE_TOXIC = 197, MOVE_POISON_FANG = 198, MOVE_POISONPOWDER = 199, MOVE_POISON_STING = 200, MOVE_SPIKE_CANNON = 201, MOVE_ACID_ARMOR = 202, MOVE_TAKE_DOWN = 203, MOVE_JUMP_KICK = 204, MOVE_BOUNCE = 205, MOVE_HI_JUMP_KICK = 206, MOVE_TRI_ATTACK = 207, MOVE_DRAGON_CLAW = 208, MOVE_TRICK = 209, MOVE_TRIPLE_KICK = 210, MOVE_DRILL_PECK = 211, MOVE_MUD_SPORT = 212, MOVE_MUD_SLAP = 213, MOVE_THIEF = 214, MOVE_AMNESIA = 215, MOVE_NIGHT_SHADE = 216, MOVE_GROWL = 217, MOVE_SLACK_OFF = 218, MOVE_SURF = 219, MOVE_ROLE_PLAY = 220, MOVE_NEEDLE_ARM = 221, MOVE_DOUBLE_KICK = 222, MOVE_SUNNY_DAY = 223, MOVE_LEER = 224, MOVE_WISH = 225, MOVE_FAKE_OUT = 226, MOVE_SLEEP_TALK = 227, MOVE_PAY_DAY = 228, MOVE_ASSIST = 229, MOVE_HEAT_WAVE = 230, MOVE_SLEEP_POWDER = 231, MOVE_REST = 232, MOVE_INGRAIN = 233, MOVE_CONFUSION = 234, MOVE_BODY_SLAM = 235, MOVE_SWALLOW = 236, MOVE_CURSE = 237, MOVE_FRENZY_PLANT = 238, MOVE_HYDRO_CANNON = 239, MOVE_HYDRO_PUMP = 240, MOVE_HYPER_VOICE = 241, MOVE_HYPER_BEAM = 242, MOVE_SUPERPOWER = 243, MOVE_STEEL_WING = 244, MOVE_SPIT_UP = 245, MOVE_DYNAMICPUNCH = 246, MOVE_GUILLOTINE = 247, MOVE_VICEGRIP = 248, MOVE_KNOCK_OFF = 249, MOVE_POUND = 250, MOVE_RAZOR_LEAF = 251, MOVE_BATON_PASS = 252, MOVE_PETAL_DANCE = 253, MOVE_SPLASH = 254, MOVE_BUBBLEBEAM = 255, MOVE_DOOM_DESIRE = 256, MOVE_BELLY_DRUM = 257, MOVE_BARRIER = 258, MOVE_LIGHT_SCREEN = 259, MOVE_SCRATCH = 260, MOVE_HYPER_FANG = 261, MOVE_EMBER = 262, MOVE_SECRET_POWER = 263, MOVE_DIZZY_PUNCH = 264, MOVE_BULK_UP = 265, MOVE_IMPRISON = 266, MOVE_FEATHERDANCE = 267, MOVE_WHIRLWIND = 268, MOVE_BEAT_UP = 269, MOVE_BLIZZARD = 270, MOVE_STOMP = 271, MOVE_BLAST_BURN = 272, MOVE_FLASH = 273, MOVE_TEETER_DANCE = 274, MOVE_CRUSH_CLAW = 275, MOVE_BLAZE_KICK = 276, MOVE_PRESENT = 277, MOVE_ERUPTION = 278, MOVE_SLUDGE = 279, MOVE_SLUDGE_BOMB = 280, MOVE_GLARE = 281, MOVE_TRANSFORM = 282, MOVE_POISON_TAIL = 283, MOVE_ROAR = 284, MOVE_BONE_RUSH = 285, MOVE_CAMOUFLAGE = 286, MOVE_COVET = 287, MOVE_TAIL_GLOW = 288, MOVE_BONE_CLUB = 289, MOVE_BONEMERANG = 290, MOVE_FIRE_SPIN = 291, MOVE_FIRE_PUNCH = 292, MOVE_PERISH_SONG = 293, MOVE_WRAP = 294, MOVE_SPIKES = 295, MOVE_MAGNITUDE = 296, MOVE_MAGICAL_LEAF = 297, MOVE_MAGIC_COAT = 298, MOVE_MUD_SHOT = 299, MOVE_MACH_PUNCH = 300, MOVE_PROTECT = 301, MOVE_DEFENSE_CURL = 302, MOVE_ROLLING_KICK = 303, MOVE_SUBSTITUTE = 304, MOVE_DETECT = 305, MOVE_PIN_MISSILE = 306, MOVE_WATER_SPORT = 307, MOVE_WATER_GUN = 308, MOVE_MIST_BALL = 309, MOVE_WATER_PULSE = 310, MOVE_FURY_ATTACK = 311, MOVE_FURY_SWIPES = 312, MOVE_DESTINY_BOND = 313, MOVE_FALSE_SWIPE = 314, MOVE_FORESIGHT = 315, MOVE_MIRROR_COAT = 316, MOVE_FUTURE_SIGHT = 317, MOVE_MILK_DRINK = 318, MOVE_CALM_MIND = 319, MOVE_MEGA_DRAIN = 320, MOVE_MEGA_KICK = 321, MOVE_MEGA_PUNCH = 322, MOVE_MEGAHORN = 323, MOVE_HIDDEN_POWER = 324, MOVE_METAL_CLAW = 325, MOVE_ATTRACT = 326, MOVE_MIMIC = 327, MOVE_FRUSTRATION = 328, MOVE_LEECH_SEED = 329, MOVE_METRONOME = 330, MOVE_DREAM_EATER = 331, MOVE_ACID = 332, MOVE_MEDITATE = 333, MOVE_SNATCH = 334, MOVE_LUSTER_PURGE = 335, MOVE_LEAF_BLADE = 336, MOVE_RECYCLE = 337, MOVE_REFLECT = 338, MOVE_REFRESH = 339, MOVE_REVENGE = 340, MOVE_DRAGON_RAGE = 341, MOVE_DRAGONBREATH = 342, MOVE_DRAGON_DANCE = 343, MOVE_ICE_PUNCH = 344, MOVE_ICE_BEAM = 345, MOVE_FURY_CUTTER = 346, MOVE_COMET_PUNCH = 347, MOVE_SKULL_BASH = 348, MOVE_LOCK_ON = 349, MOVE_ROCK_BLAST = 350, MOVE_COTTON_SPORE = 351, MOVE_STRUGGLE = 352, MOVE_AEROBLAST = 353, MOVE_VOLT_TACKLE = 354, MOVE_REGULAR_ATTACK = 355, MOVE_IS_WATCHING = 356, MOVE_BIDE_UNLEASH = 357, MOVE_REVENGE_UNLEASH = 358, MOVE_AVALANCHE_UNLEASH = 359, MOVE_WIDE_SLASH = 360, MOVE_UNNAMED_0x169 = 361, MOVE_UNNAMED_0x16A = 362, MOVE_SEE_TRAP = 363, MOVE_TAKEAWAY = 364, MOVE_REBOUND = 365, MOVE_BLOOP_SLASH = 366, MOVE_SWITCHER = 367, MOVE_BLOWBACK = 368, MOVE_WARP = 369, MOVE_TRANSFER = 370, MOVE_SLOW_DOWN = 371, MOVE_SPEED_BOOST = 372, MOVE_SEARCHLIGHT = 373, MOVE_PETRIFY = 374, MOVE_STAY_AWAY = 375, MOVE_POUNCE = 376, MOVE_TRAWL = 377, MOVE_CLEANSE = 378, MOVE_OBSERVER = 379, MOVE_DECOY_MAKER = 380, MOVE_SIESTA = 381, MOVE_TOTTER = 382, MOVE_TWO_EDGE = 383, MOVE_NO_MOVE = 384, MOVE_ESCAPE = 385, MOVE_SCAN = 386, MOVE_POWER_EARS = 387, MOVE_DROUGHT = 388, MOVE_TRAP_BUSTER = 389, MOVE_WILD_CALL = 390, MOVE_INVISIFY = 391, MOVE_ONE_SHOT = 392, MOVE_HP_GAUGE = 393, MOVE_VACUUM_CUT = 394, MOVE_REVIVER = 395, MOVE_SHOCKER = 396, MOVE_ECHO = 397, MOVE_FAMISH = 398, MOVE_ONE_ROOM = 399, MOVE_FILL_IN = 400, MOVE_TRAPPER = 401, MOVE_POSSESS = 402, MOVE_ITEMIZE = 403, MOVE_TAG_0x194 = 404, MOVE_PROJECTILE = 405, MOVE_HURL = 406, MOVE_MOBILE = 407, MOVE_ITEM_TOSS = 408, MOVE_SEE_STAIRS = 409, MOVE_LONG_TOSS = 410, MOVE_TAG_0x19B = 411, MOVE_PIERCE = 412, MOVE_TAG_0x19D = 413, MOVE_TAG_0x19E = 414, MOVE_TAG_0x19F = 415, MOVE_TAG_0x1A0 = 416, MOVE_TAG_0x1A1 = 417, MOVE_TAG_0x1A2 = 418, MOVE_TAG_0x1A3 = 419, MOVE_TAG_0x1A4 = 420, MOVE_TAG_0x1A5 = 421, MOVE_TAG_0x1A6 = 422, MOVE_TAG_0x1A7 = 423, MOVE_TAG_0x1A8 = 424, MOVE_TAG_0x1A9 = 425, MOVE_TAG_0x1AA = 426, MOVE_TAG_0x1AB = 427, MOVE_TAG_0x1AC = 428, MOVE_TAG_0x1AD = 429, MOVE_HAMMER_ARM = 430, MOVE_IRON_HEAD = 431, MOVE_AQUA_JET = 432, MOVE_AQUA_TAIL = 433, MOVE_AQUA_RING = 434, MOVE_SPACIAL_REND = 435, MOVE_DARK_PULSE = 436, MOVE_OMINOUS_WIND = 437, MOVE_GASTRO_ACID = 438, MOVE_HEALING_WISH = 439, MOVE_CLOSE_COMBAT = 440, MOVE_WOOD_HAMMER = 441, MOVE_AIR_SLASH = 442, MOVE_ENERGY_BALL = 443, MOVE_TAILWIND = 444, MOVE_PUNISHMENT = 445, MOVE_CHATTER = 446, MOVE_LUCKY_CHANT = 447, MOVE_GUARD_SWAP = 448, MOVE_HEAL_ORDER = 449, MOVE_HEAL_BLOCK = 450, MOVE_SHADOW_SNEAK = 451, MOVE_THUNDER_FANG = 452, MOVE_ROCK_WRECKER = 453, MOVE_FOCUS_BLAST = 454, MOVE_GIGA_IMPACT = 455, MOVE_DEFOG = 456, MOVE_TRUMP_CARD = 457, MOVE_GRASS_KNOT = 458, MOVE_CROSS_POISON = 459, MOVE_ATTACK_ORDER = 460, MOVE_ICE_FANG = 461, MOVE_ICE_SHARD = 462, MOVE_PSYCHO_CUT = 463, MOVE_PSYCHO_SHIFT = 464, MOVE_ME_FIRST = 465, MOVE_EMBARGO = 466, MOVE_JUDGMENT = 467, MOVE_SEED_FLARE = 468, MOVE_BRINE = 469, MOVE_X_SCISSOR = 470, MOVE_NATURAL_GIFT = 471, MOVE_PAYBACK = 472, MOVE_ZEN_HEADBUTT = 473, MOVE_WRING_OUT = 474, MOVE_GYRO_BALL = 475, MOVE_SHADOW_CLAW = 476, MOVE_SHADOW_FORCE = 477, MOVE_GRAVITY = 478, MOVE_VACUUM_WAVE = 479, MOVE_STEALTH_ROCK = 480, MOVE_STONE_EDGE = 481, MOVE_SWITCHEROO = 482, MOVE_DARK_VOID = 483, MOVE_EARTH_POWER = 484, MOVE_GUNK_SHOT = 485, MOVE_SEED_BOMB = 486, MOVE_DOUBLE_HIT = 487, MOVE_ASSURANCE = 488, MOVE_CHARGE_BEAM = 489, MOVE_PLUCK = 490, MOVE_NIGHT_SLASH = 491, MOVE_ACUPRESSURE = 492, MOVE_MAGNET_RISE = 493, MOVE_ROAR_OF_TIME = 494, MOVE_POISON_JAB = 495, MOVE_TOXIC_SPIKES = 496, MOVE_LAST_RESORT = 497, MOVE_DRAGON_RUSH = 498, MOVE_TRICK_ROOM = 499, MOVE_DRAIN_PUNCH = 500, MOVE_MUD_BOMB = 501, MOVE_U_TURN = 502, MOVE_FLING = 503, MOVE_WORRY_SEED = 504, MOVE_CRUSH_GRIP = 505, MOVE_HEART_SWAP = 506, MOVE_FORCE_PALM = 507, MOVE_AURA_SPHERE = 508, MOVE_ROOST = 509, MOVE_BULLET_PUNCH = 510, MOVE_POWER_WHIP = 511, MOVE_POWER_GEM = 512, MOVE_POWER_SWAP = 513, MOVE_POWER_TRICK = 514, MOVE_SUCKER_PUNCH = 515, MOVE_FEINT = 516, MOVE_FLARE_BLITZ = 517, MOVE_BRAVE_BIRD = 518, MOVE_LAVA_PLUME = 519, MOVE_DEFEND_ORDER = 520, MOVE_DISCHARGE = 521, MOVE_FIRE_FANG = 522, MOVE_MAGNET_BOMB = 523, MOVE_MAGMA_STORM = 524, MOVE_COPYCAT = 525, MOVE_LUNAR_DANCE = 526, MOVE_MIRROR_SHOT = 527, MOVE_MIRACLE_EYE = 528, MOVE_BUG_BITE = 529, MOVE_BUG_BUZZ = 530, MOVE_WAKE_UP_SLAP = 531, MOVE_METAL_BURST = 532, MOVE_HEAD_SMASH = 533, MOVE_CAPTIVATE = 534, MOVE_AVALANCHE = 535, MOVE_FLASH_CANNON = 536, MOVE_LEAF_STORM = 537, MOVE_DRACO_METEOR = 538, MOVE_DRAGON_PULSE = 539, MOVE_ROCK_POLISH = 540, MOVE_ROCK_CLIMB = 541, MOVE_NASTY_PLOT = 542, MOVE_TAG_0x21F = 543, MOVE_TAG_0x220 = 544, MOVE_TAG_0x221 = 545, MOVE_TAG_0x222 = 546, MOVE_TAG_0x223 = 547, MOVE_TAG_0x224 = 548, MOVE_TAG_0x225 = 549, MOVE_TAG_0x226 = 550, MOVE_TAG_0x227 = 551, MOVE_TAG_0x228 = 552, MOVE_TAG_0x229 = 553, MOVE_TAG_0x22A = 554, MOVE_TAG_0x22B = 555, MOVE_TAG_0x22C = 556, MOVE_TAG_0x22D = 557, MOVE_TAG_0x22E = 558, }; // Affects the chance of items spawning on each tile in a Kecleon Shop // The chances (in %) of each tile (in a 3x3 area at the center of the shop) // having an item are listed below. enum shop_item_positions { // 30 30 30 // 100 100 30 // 30 30 30 SHOP_POSITION_0 = 0, // 30 30 30 // 100 30 30 // 30 100 30 SHOP_POSITION_1 = 1, // 30 30 30 // 100 30 30 // 30 30 100 SHOP_POSITION_2 = 2, // 100 30 30 // 30 30 100 // 30 30 30 SHOP_POSITION_3 = 3, // 100 30 100 // 30 30 30 // 30 30 30 SHOP_POSITION_4 = 4, // 30 30 30 // 30 30 100 // 100 30 30 SHOP_POSITION_5 = 5, // 30 30 30 // 100 30 100 // 30 30 30 // The rest of the entries all have the same layout SHOP_POSITION_6 = 6, SHOP_POSITION_7 = 7, SHOP_POSITION_8 = 8, SHOP_POSITION_9 = 9, SHOP_POSITION_A = 10, SHOP_POSITION_B = 11, SHOP_POSITION_C = 12, SHOP_POSITION_D = 13, SHOP_POSITION_E = 14, SHOP_POSITION_F = 15, }; // Ability ID enum ability_id { ABILITY_UNKNOWN = 0, ABILITY_STENCH = 1, ABILITY_THICK_FAT = 2, ABILITY_RAIN_DISH = 3, ABILITY_DRIZZLE = 4, ABILITY_ARENA_TRAP = 5, ABILITY_INTIMIDATE = 6, ABILITY_ROCK_HEAD = 7, ABILITY_AIR_LOCK = 8, ABILITY_HYPER_CUTTER = 9, ABILITY_SHADOW_TAG = 10, ABILITY_SPEED_BOOST = 11, ABILITY_BATTLE_ARMOR = 12, ABILITY_STURDY = 13, ABILITY_SUCTION_CUPS = 14, ABILITY_CLEAR_BODY = 15, ABILITY_TORRENT = 16, ABILITY_GUTS = 17, ABILITY_ROUGH_SKIN = 18, ABILITY_SHELL_ARMOR = 19, ABILITY_NATURAL_CURE = 20, ABILITY_DAMP = 21, ABILITY_LIMBER = 22, ABILITY_MAGNET_PULL = 23, ABILITY_WHITE_SMOKE = 24, ABILITY_SYNCHRONIZE = 25, ABILITY_OVERGROW = 26, ABILITY_SWIFT_SWIM = 27, ABILITY_SAND_STREAM = 28, ABILITY_SAND_VEIL = 29, ABILITY_KEEN_EYE = 30, ABILITY_INNER_FOCUS = 31, ABILITY_STATIC = 32, ABILITY_SHED_SKIN = 33, ABILITY_HUGE_POWER = 34, ABILITY_VOLT_ABSORB = 35, ABILITY_WATER_ABSORB = 36, ABILITY_FORECAST = 37, ABILITY_SERENE_GRACE = 38, ABILITY_POISON_POINT = 39, ABILITY_TRACE = 40, ABILITY_OBLIVIOUS = 41, ABILITY_TRUANT = 42, ABILITY_RUN_AWAY = 43, ABILITY_STICKY_HOLD = 44, ABILITY_CLOUD_NINE = 45, ABILITY_ILLUMINATE = 46, ABILITY_EARLY_BIRD = 47, ABILITY_HUSTLE = 48, ABILITY_DROUGHT = 49, ABILITY_LIGHTNINGROD = 50, ABILITY_COMPOUNDEYES = 51, ABILITY_MARVEL_SCALE = 52, ABILITY_WONDER_GUARD = 53, ABILITY_INSOMNIA = 54, ABILITY_LEVITATE = 55, ABILITY_PLUS = 56, ABILITY_PRESSURE = 57, ABILITY_LIQUID_OOZE = 58, ABILITY_COLOR_CHANGE = 59, ABILITY_SOUNDPROOF = 60, ABILITY_EFFECT_SPORE = 61, ABILITY_FLAME_BODY = 62, ABILITY_MINUS = 63, ABILITY_OWN_TEMPO = 64, ABILITY_MAGMA_ARMOR = 65, ABILITY_WATER_VEIL = 66, ABILITY_SWARM = 67, ABILITY_CUTE_CHARM = 68, ABILITY_IMMUNITY = 69, ABILITY_BLAZE = 70, ABILITY_PICKUP = 71, ABILITY_FLASH_FIRE = 72, ABILITY_VITAL_SPIRIT = 73, ABILITY_CHLOROPHYLL = 74, ABILITY_PURE_POWER = 75, ABILITY_SHIELD_DUST = 76, ABILITY_ICE_BODY = 77, ABILITY_STALL = 78, ABILITY_ANGER_POINT = 79, ABILITY_TINTED_LENS = 80, ABILITY_HYDRATION = 81, ABILITY_FRISK = 82, ABILITY_MOLD_BREAKER = 83, ABILITY_UNBURDEN = 84, ABILITY_DRY_SKIN = 85, ABILITY_ANTICIPATION = 86, ABILITY_SCRAPPY = 87, ABILITY_SUPER_LUCK = 88, ABILITY_GLUTTONY = 89, ABILITY_SOLAR_POWER = 90, ABILITY_SKILL_LINK = 91, ABILITY_RECKLESS = 92, ABILITY_SNIPER = 93, ABILITY_SLOW_START = 94, ABILITY_HEATPROOF = 95, ABILITY_DOWNLOAD = 96, ABILITY_SIMPLE = 97, ABILITY_TANGLED_FEET = 98, ABILITY_ADAPTABILITY = 99, ABILITY_TECHNICIAN = 100, ABILITY_IRON_FIST = 101, ABILITY_MOTOR_DRIVE = 102, ABILITY_UNAWARE = 103, ABILITY_RIVALRY = 104, ABILITY_BAD_DREAMS = 105, ABILITY_NO_GUARD = 106, ABILITY_NORMALIZE = 107, ABILITY_SOLID_ROCK = 108, ABILITY_QUICK_FEET = 109, ABILITY_FILTER = 110, ABILITY_KLUTZ = 111, ABILITY_STEADFAST = 112, ABILITY_FLOWER_GIFT = 113, ABILITY_POISON_HEAL = 114, ABILITY_MAGIC_GUARD = 115, ABILITY_MULTITYPE = 116, // Named "$$$" in game in NA/EU ABILITY_HONEY_GATHER = 117, ABILITY_AFTERMATH = 118, ABILITY_SNOW_CLOAK = 119, ABILITY_SNOW_WARNING = 120, ABILITY_FOREWARN = 121, ABILITY_STORM_DRAIN = 122, ABILITY_LEAF_GUARD = 123, }; // Dungeon ID. // Each "section" of what we would normally consider "one dungeon" has its own ID. Many of the // later dungeon IDs are not actual dungeons, and are used for the "Joined at" field for teammates enum dungeon_id { DUNGEON_TEST_DUNGEON = 0, DUNGEON_BEACH_CAVE = 1, DUNGEON_BEACH_CAVE_PIT = 2, DUNGEON_DRENCHED_BLUFF = 3, DUNGEON_MT_BRISTLE = 4, DUNGEON_MT_BRISTLE_PEAK = 5, DUNGEON_WATERFALL_CAVE = 6, DUNGEON_APPLE_WOODS = 7, DUNGEON_CRAGGY_COAST = 8, DUNGEON_SIDE_PATH = 9, DUNGEON_MT_HORN = 10, DUNGEON_ROCK_PATH = 11, DUNGEON_FOGGY_FOREST = 12, DUNGEON_FOREST_PATH = 13, DUNGEON_STEAM_CAVE = 14, DUNGEON_UPPER_STEAM_CAVE = 15, DUNGEON_STEAM_CAVE_PEAK = 16, DUNGEON_AMP_PLAINS = 17, DUNGEON_FAR_AMP_PLAINS = 18, DUNGEON_AMP_CLEARING = 19, DUNGEON_NORTHERN_DESERT = 20, DUNGEON_QUICKSAND_CAVE = 21, DUNGEON_QUICKSAND_PIT = 22, DUNGEON_UNDERGROUND_LAKE = 23, DUNGEON_CRYSTAL_CAVE = 24, DUNGEON_CRYSTAL_CROSSING = 25, DUNGEON_CRYSTAL_LAKE = 26, DUNGEON_CHASM_CAVE = 27, DUNGEON_DARK_HILL = 28, DUNGEON_SEALED_RUIN = 29, DUNGEON_DEEP_SEALED_RUIN = 30, DUNGEON_SEALED_RUIN_PIT = 31, DUNGEON_DUSK_FOREST = 32, DUNGEON_DEEP_DUSK_FOREST = 33, DUNGEON_TREESHROUD_FOREST = 34, DUNGEON_BRINE_CAVE = 35, DUNGEON_LOWER_BRINE_CAVE = 36, DUNGEON_BRINE_CAVE_PIT = 37, DUNGEON_HIDDEN_LAND = 38, DUNGEON_HIDDEN_HIGHLAND = 39, DUNGEON_OLD_RUINS = 40, DUNGEON_TEMPORAL_TOWER = 41, DUNGEON_TEMPORAL_SPIRE = 42, DUNGEON_TEMPORAL_PINNACLE = 43, DUNGEON_MYSTIFYING_FOREST = 44, DUNGEON_MYSTIFYING_FOREST_CLEARING = 45, DUNGEON_BLIZZARD_ISLAND = 46, DUNGEON_CREVICE_CAVE = 47, DUNGEON_LOWER_CREVICE_CAVE = 48, DUNGEON_CREVICE_CAVE_PIT = 49, DUNGEON_SURROUNDED_SEA = 50, DUNGEON_MIRACLE_SEA = 51, DUNGEON_DEEP_MIRACLE_SEA = 52, DUNGEON_MIRACLE_SEABED = 53, DUNGEON_ICE_AEGIS_CAVE = 54, DUNGEON_REGICE_CHAMBER = 55, DUNGEON_ROCK_AEGIS_CAVE = 56, DUNGEON_REGIROCK_CHAMBER = 57, DUNGEON_STEEL_AEGIS_CAVE = 58, DUNGEON_REGISTEEL_CHAMBER = 59, DUNGEON_AEGIS_CAVE_PIT = 60, DUNGEON_REGIGIGAS_CHAMBER = 61, DUNGEON_MT_TRAVAIL = 62, DUNGEON_THE_NIGHTMARE = 63, DUNGEON_SPACIAL_RIFT = 64, DUNGEON_DEEP_SPACIAL_RIFT = 65, DUNGEON_SPACIAL_RIFT_BOTTOM = 66, DUNGEON_DARK_CRATER = 67, DUNGEON_DEEP_DARK_CRATER = 68, DUNGEON_DARK_CRATER_PIT = 69, DUNGEON_CONCEALED_RUINS = 70, DUNGEON_DEEP_CONCEALED_RUINS = 71, DUNGEON_MARINE_RESORT = 72, DUNGEON_BOTTOMLESS_SEA = 73, DUNGEON_BOTTOMLESS_SEA_DEPTHS = 74, DUNGEON_SHIMMER_DESERT = 75, DUNGEON_SHIMMER_DESERT_PIT = 76, DUNGEON_MT_AVALANCHE = 77, DUNGEON_MT_AVALANCHE_PEAK = 78, DUNGEON_GIANT_VOLCANO = 79, DUNGEON_GIANT_VOLCANO_PEAK = 80, DUNGEON_WORLD_ABYSS = 81, DUNGEON_WORLD_ABYSS_PIT = 82, DUNGEON_SKY_STAIRWAY = 83, DUNGEON_SKY_STAIRWAY_APEX = 84, DUNGEON_MYSTERY_JUNGLE = 85, DUNGEON_DEEP_MYSTERY_JUNGLE = 86, DUNGEON_SERENITY_RIVER = 87, DUNGEON_LANDSLIDE_CAVE = 88, DUNGEON_LUSH_PRAIRIE = 89, DUNGEON_TINY_MEADOW = 90, DUNGEON_LABYRINTH_CAVE = 91, DUNGEON_ORAN_FOREST = 92, DUNGEON_LAKE_AFAR = 93, DUNGEON_HAPPY_OUTLOOK = 94, DUNGEON_MY_MISTRAL = 95, DUNGEON_SHIMMER_HILL = 96, DUNGEON_LOST_WILDERNESS = 97, DUNGEON_MIDNIGHT_FOREST = 98, DUNGEON_ZERO_ISLE_NORTH = 99, DUNGEON_ZERO_ISLE_EAST = 100, DUNGEON_ZERO_ISLE_WEST = 101, DUNGEON_ZERO_ISLE_SOUTH = 102, DUNGEON_ZERO_ISLE_CENTER = 103, DUNGEON_DESTINY_TOWER = 104, DUNGEON_DUMMY_0x69 = 105, DUNGEON_DUMMY_0x6A = 106, DUNGEON_OBLIVION_FOREST = 107, DUNGEON_TREACHEROUS_WATERS = 108, DUNGEON_SOUTHEASTERN_ISLANDS = 109, DUNGEON_INFERNO_CAVE = 110, DUNGEON_1ST_STATION_PASS = 111, DUNGEON_2ND_STATION_PASS = 112, DUNGEON_3RD_STATION_PASS = 113, DUNGEON_4TH_STATION_PASS = 114, DUNGEON_5TH_STATION_PASS = 115, DUNGEON_6TH_STATION_PASS = 116, DUNGEON_7TH_STATION_PASS = 117, DUNGEON_8TH_STATION_PASS = 118, DUNGEON_9TH_STATION_PASS = 119, DUNGEON_SKY_PEAK_SUMMIT_PASS = 120, DUNGEON_5TH_STATION_CLEARING = 121, DUNGEON_SKY_PEAK_SUMMIT = 122, DUNGEON_STAR_CAVE_SE1 = 123, DUNGEON_DEEP_STAR_CAVE = 124, DUNGEON_DEEP_STAR_CAVE_TEAM_ROGUE = 125, DUNGEON_STAR_CAVE_DEPTHS = 126, DUNGEON_STAR_CAVE_PIT = 127, DUNGEON_MURKY_FOREST = 128, DUNGEON_EASTERN_CAVE = 129, DUNGEON_FORTUNE_RAVINE = 130, DUNGEON_FORTUNE_RAVINE_DEPTHS = 131, DUNGEON_FORTUNE_RAVINE_PIT = 132, DUNGEON_BARREN_VALLEY = 133, DUNGEON_DEEP_BARREN_VALLEY = 134, DUNGEON_BARREN_VALLEY_CLEARING = 135, DUNGEON_DARK_WASTELAND = 136, DUNGEON_TEMPORAL_TOWER_SE5 = 137, DUNGEON_TEMPORAL_SPIRE_SE5 = 138, DUNGEON_DUSK_FOREST_SE5 = 139, DUNGEON_BLACK_SWAMP = 140, DUNGEON_SPACIAL_CLIFFS = 141, DUNGEON_DARK_ICE_MOUNTAIN = 142, DUNGEON_DARK_ICE_MOUNTAIN_PEAK = 143, DUNGEON_DARK_ICE_MOUNTAIN_PINNACLE = 144, DUNGEON_ICICLE_FOREST = 145, DUNGEON_VAST_ICE_MOUNTAIN = 146, DUNGEON_VAST_ICE_MOUNTAIN_PEAK = 147, DUNGEON_VAST_ICE_MOUNTAIN_PINNACLE = 148, DUNGEON_SOUTHERN_JUNGLE = 149, DUNGEON_BOULDER_QUARRY = 150, DUNGEON_DEEP_BOULDER_QUARRY = 151, DUNGEON_BOULDER_QUARRY_CLEARING = 152, DUNGEON_RIGHT_CAVE_PATH = 153, DUNGEON_LEFT_CAVE_PATH = 154, DUNGEON_LIMESTONE_CAVERN = 155, DUNGEON_DEEP_LIMESTONE_CAVERN = 156, DUNGEON_LIMESTONE_CAVERN_DEPTHS = 157, DUNGEON_SPRING_CAVE = 158, DUNGEON_UPPER_SPRING_CAVE_HAUNTER = 159, DUNGEON_UPPER_SPRING_CAVE = 160, DUNGEON_MIDDLE_SPRING_CAVE = 161, DUNGEON_LOWER_SPRING_CAVE = 162, DUNGEON_SPRING_CAVE_DEPTHS = 163, DUNGEON_SPRING_CAVE_PIT = 164, DUNGEON_LITTLE_PLAINS = 165, DUNGEON_MT_CLEAR = 166, DUNGEON_CHALLENGE_RIVER = 167, DUNGEON_TRIAL_FOREST = 168, DUNGEON_GUIDING_SEA = 169, DUNGEON_HIDDEN_SHOPKEEPER_VILLAGE = 170, DUNGEON_DUMMY_0xAB = 171, DUNGEON_DUMMY_0xAC = 172, DUNGEON_DUMMY_0xAD = 173, DUNGEON_STAR_CAVE = 174, DUNGEON_SHAYMIN_VILLAGE = 175, DUNGEON_ARMALDOS_SHELTER = 176, DUNGEON_LUMINOUS_SPRING = 177, DUNGEON_HOT_SPRING = 178, DUNGEON_RESCUE = 179, DUNGEON_NORMAL_FLY_MAZE = 180, DUNGEON_DARK_FIRE_MAZE = 181, DUNGEON_ROCK_WATER_MAZE = 182, DUNGEON_GRASS_MAZE = 183, DUNGEON_ELEC_STEEL_MAZE = 184, DUNGEON_ICE_GROUND_MAZE = 185, DUNGEON_FIGHT_PSYCH_MAZE = 186, DUNGEON_POISON_BUG_MAZE = 187, DUNGEON_DRAGON_MAZE = 188, DUNGEON_GHOST_MAZE = 189, DUNGEON_EXPLORER_MAZE = 190, DUNGEON_FINAL_MAZE = 191, DUNGEON_DOJO_0xC0 = 192, DUNGEON_DOJO_0xC1 = 193, DUNGEON_DOJO_0xC2 = 194, DUNGEON_DOJO_0xC3 = 195, DUNGEON_DOJO_0xC4 = 196, DUNGEON_DOJO_0xC5 = 197, DUNGEON_DOJO_0xC6 = 198, DUNGEON_DOJO_0xC7 = 199, DUNGEON_DOJO_0xC8 = 200, DUNGEON_DOJO_0xC9 = 201, DUNGEON_DOJO_0xCA = 202, DUNGEON_DOJO_0xCB = 203, DUNGEON_DOJO_0xCC = 204, DUNGEON_DOJO_0xCD = 205, DUNGEON_DOJO_0xCE = 206, DUNGEON_DOJO_0xCF = 207, DUNGEON_DOJO_0xD0 = 208, DUNGEON_DOJO_0xD1 = 209, DUNGEON_DOJO_0xD2 = 210, DUNGEON_DOJO_0xD3 = 211, DUNGEON_RESCUE_DUNGEON = 212, DUNGEON_BASE = 213, DUNGEON_JOINED_AT_QUESTION_MARKS = 214, // Joined at ??? DUNGEON_BEACH = 215, DUNGEON_JOINED_AT_UNKNOWN = 216, DUNGEON_JOINED_AT_BIDOOF = 217, DUNGEON_JOINED_AT_GROVYLE = 218, DUNGEON_JOINED_AT_CELEBI = 219, DUNGEON_JOINED_AT_CHATOT = 220, DUNGEON_JOINED_AT_CRESSELIA = 221, // As a guest member during the story DUNGEON_DUMMY_0xDE = 222, DUNGEON_DUMMY_0xDF = 223, DUNGEON_DUMMY_0xE0 = 224, DUNGEON_DUMMY_0xE1 = 225, DUNGEON_DUMMY_0xE2 = 226, DUNGEON_DUMMY_0xE3 = 227, DUNGEON_DUMMY_0xE4 = 228, DUNGEON_DUMMY_0xE5 = 229, DUNGEON_DUMMY_0xE6 = 230, DUNGEON_DUMMY_0xE7 = 231, DUNGEON_DUMMY_0xE8 = 232, DUNGEON_DUMMY_0xE9 = 233, DUNGEON_DUMMY_0xEA = 234, DUNGEON_DUMMY_0xEB = 235, DUNGEON_DUMMY_0xEC = 236, DUNGEON_DUMMY_0xED = 237, DUNGEON_DUMMY_0xEE = 238, DUNGEON_DUMMY_0xEF = 239, DUNGEON_DUMMY_0xF0 = 240, DUNGEON_JOINED_AT_MANAPHY_RECRUITED = 241, // When recruited DUNGEON_JOINED_AT_CRESSELIA_RECRUITED = 242, // When recruited DUNGEON_JOINED_AT_SHAYMIN_LAND_RECRUITED = 243, // When recruited DUNGEON_DUMMY_0xF4 = 244, DUNGEON_DUMMY_0xF5 = 245, DUNGEON_DUMMY_0xF6 = 246, DUNGEON_TREASURE_TOWN_0xF7 = 247, DUNGEON_TREASURE_TOWN_0xF8 = 248, DUNGEON_OUTSIDE = 249, DUNGEON_CLIENT = 250, DUNGEON_DUMMY_0xFB = 251, DUNGEON_DUMMY_0xFC = 252, DUNGEON_DUMMY_0xFD = 253, DUNGEON_DUMMY_0xFE = 254, DUNGEON_DUMMY_0xFF = 255, }; // Dungeon index. // This is identical to enum dungeon_id up to ID 212, then there are 8 cases where they differ. // The 8 remaining entries from 212 onwards aren't in this enum because they haven't been identified yet. // This enum only has 212 entries, compared to 255 entries in enum dungeon_id. // See DUNGEON_SWAP_ID_TABLE for the index -> ID mapping. enum dungeon_idx { DUNGEON_TEST_DUNGEON_IDX = 0, DUNGEON_BEACH_CAVE_IDX = 1, DUNGEON_BEACH_CAVE_PIT_IDX = 2, DUNGEON_DRENCHED_BLUFF_IDX = 3, DUNGEON_MT_BRISTLE_IDX = 4, DUNGEON_MT_BRISTLE_PEAK_IDX = 5, DUNGEON_WATERFALL_CAVE_IDX = 6, DUNGEON_APPLE_WOODS_IDX = 7, DUNGEON_CRAGGY_COAST_IDX = 8, DUNGEON_SIDE_PATH_IDX = 9, DUNGEON_MT_HORN_IDX = 10, DUNGEON_ROCK_PATH_IDX = 11, DUNGEON_FOGGY_FOREST_IDX = 12, DUNGEON_FOREST_PATH_IDX = 13, DUNGEON_STEAM_CAVE_IDX = 14, DUNGEON_UPPER_STEAM_CAVE_IDX = 15, DUNGEON_STEAM_CAVE_PEAK_IDX = 16, DUNGEON_AMP_PLAINS_IDX = 17, DUNGEON_FAR_AMP_PLAINS_IDX = 18, DUNGEON_AMP_CLEARING_IDX = 19, DUNGEON_NORTHERN_DESERT_IDX = 20, DUNGEON_QUICKSAND_CAVE_IDX = 21, DUNGEON_QUICKSAND_PIT_IDX = 22, DUNGEON_UNDERGROUND_LAKE_IDX = 23, DUNGEON_CRYSTAL_CAVE_IDX = 24, DUNGEON_CRYSTAL_CROSSING_IDX = 25, DUNGEON_CRYSTAL_LAKE_IDX = 26, DUNGEON_CHASM_CAVE_IDX = 27, DUNGEON_DARK_HILL_IDX = 28, DUNGEON_SEALED_RUIN_IDX = 29, DUNGEON_DEEP_SEALED_RUIN_IDX = 30, DUNGEON_SEALED_RUIN_PIT_IDX = 31, DUNGEON_DUSK_FOREST_IDX = 32, DUNGEON_DEEP_DUSK_FOREST_IDX = 33, DUNGEON_TREESHROUD_FOREST_IDX = 34, DUNGEON_BRINE_CAVE_IDX = 35, DUNGEON_LOWER_BRINE_CAVE_IDX = 36, DUNGEON_BRINE_CAVE_PIT_IDX = 37, DUNGEON_HIDDEN_LAND_IDX = 38, DUNGEON_HIDDEN_HIGHLAND_IDX = 39, DUNGEON_OLD_RUINS_IDX = 40, DUNGEON_TEMPORAL_TOWER_IDX = 41, DUNGEON_TEMPORAL_SPIRE_IDX = 42, DUNGEON_TEMPORAL_PINNACLE_IDX = 43, DUNGEON_MYSTIFYING_FOREST_IDX = 44, DUNGEON_MYSTIFYING_FOREST_CLEARING_IDX = 45, DUNGEON_BLIZZARD_ISLAND_IDX = 46, DUNGEON_CREVICE_CAVE_IDX = 47, DUNGEON_LOWER_CREVICE_CAVE_IDX = 48, DUNGEON_CREVICE_CAVE_PIT_IDX = 49, DUNGEON_SURROUNDED_SEA_IDX = 50, DUNGEON_MIRACLE_SEA_IDX = 51, DUNGEON_DEEP_MIRACLE_SEA_IDX = 52, DUNGEON_MIRACLE_SEABED_IDX = 53, DUNGEON_ICE_AEGIS_CAVE_IDX = 54, DUNGEON_REGICE_CHAMBER_IDX = 55, DUNGEON_ROCK_AEGIS_CAVE_IDX = 56, DUNGEON_REGIROCK_CHAMBER_IDX = 57, DUNGEON_STEEL_AEGIS_CAVE_IDX = 58, DUNGEON_REGISTEEL_CHAMBER_IDX = 59, DUNGEON_AEGIS_CAVE_PIT_IDX = 60, DUNGEON_REGIGIGAS_CHAMBER_IDX = 61, DUNGEON_MT_TRAVAIL_IDX = 62, DUNGEON_THE_NIGHTMARE_IDX = 63, DUNGEON_SPACIAL_RIFT_IDX = 64, DUNGEON_DEEP_SPACIAL_RIFT_IDX = 65, DUNGEON_SPACIAL_RIFT_BOTTOM_IDX = 66, DUNGEON_DARK_CRATER_IDX = 67, DUNGEON_DEEP_DARK_CRATER_IDX = 68, DUNGEON_DARK_CRATER_PIT_IDX = 69, DUNGEON_CONCEALED_RUINS_IDX = 70, DUNGEON_DEEP_CONCEALED_RUINS_IDX = 71, DUNGEON_MARINE_RESORT_IDX = 72, DUNGEON_BOTTOMLESS_SEA_IDX = 73, DUNGEON_BOTTOMLESS_SEA_DEPTHS_IDX = 74, DUNGEON_SHIMMER_DESERT_IDX = 75, DUNGEON_SHIMMER_DESERT_PIT_IDX = 76, DUNGEON_MT_AVALANCHE_IDX = 77, DUNGEON_MT_AVALANCHE_PEAK_IDX = 78, DUNGEON_GIANT_VOLCANO_IDX = 79, DUNGEON_GIANT_VOLCANO_PEAK_IDX = 80, DUNGEON_WORLD_ABYSS_IDX = 81, DUNGEON_WORLD_ABYSS_PIT_IDX = 82, DUNGEON_SKY_STAIRWAY_IDX = 83, DUNGEON_SKY_STAIRWAY_APEX_IDX = 84, DUNGEON_MYSTERY_JUNGLE_IDX = 85, DUNGEON_DEEP_MYSTERY_JUNGLE_IDX = 86, DUNGEON_SERENITY_RIVER_IDX = 87, DUNGEON_LANDSLIDE_CAVE_IDX = 88, DUNGEON_LUSH_PRAIRIE_IDX = 89, DUNGEON_TINY_MEADOW_IDX = 90, DUNGEON_LABYRINTH_CAVE_IDX = 91, DUNGEON_ORAN_FOREST_IDX = 92, DUNGEON_LAKE_AFAR_IDX = 93, DUNGEON_HAPPY_OUTLOOK_IDX = 94, DUNGEON_MY_MISTRAL_IDX = 95, DUNGEON_SHIMMER_HILL_IDX = 96, DUNGEON_LOST_WILDERNESS_IDX = 97, DUNGEON_MIDNIGHT_FOREST_IDX = 98, DUNGEON_ZERO_ISLE_NORTH_IDX = 99, DUNGEON_ZERO_ISLE_EAST_IDX = 100, DUNGEON_ZERO_ISLE_WEST_IDX = 101, DUNGEON_ZERO_ISLE_SOUTH_IDX = 102, DUNGEON_ZERO_ISLE_CENTER_IDX = 103, DUNGEON_DESTINY_TOWER_IDX = 104, DUNGEON_DUMMY_0x69_IDX = 105, DUNGEON_DUMMY_0x6A_IDX = 106, DUNGEON_OBLIVION_FOREST_IDX = 107, DUNGEON_TREACHEROUS_WATERS_IDX = 108, DUNGEON_SOUTHEASTERN_ISLANDS_IDX = 109, DUNGEON_INFERNO_CAVE_IDX = 110, DUNGEON_1ST_STATION_PASS_IDX = 111, DUNGEON_2ND_STATION_PASS_IDX = 112, DUNGEON_3RD_STATION_PASS_IDX = 113, DUNGEON_4TH_STATION_PASS_IDX = 114, DUNGEON_5TH_STATION_PASS_IDX = 115, DUNGEON_6TH_STATION_PASS_IDX = 116, DUNGEON_7TH_STATION_PASS_IDX = 117, DUNGEON_8TH_STATION_PASS_IDX = 118, DUNGEON_9TH_STATION_PASS_IDX = 119, DUNGEON_SKY_PEAK_SUMMIT_PASS_IDX = 120, DUNGEON_5TH_STATION_CLEARING_IDX = 121, DUNGEON_SKY_PEAK_SUMMIT_IDX = 122, DUNGEON_STAR_CAVE_SE1_IDX = 123, DUNGEON_DEEP_STAR_CAVE_IDX = 124, DUNGEON_DEEP_STAR_CAVE_TEAM_ROGUE_IDX = 125, DUNGEON_STAR_CAVE_DEPTHS_IDX = 126, DUNGEON_STAR_CAVE_PIT_IDX = 127, DUNGEON_MURKY_FOREST_IDX = 128, DUNGEON_EASTERN_CAVE_IDX = 129, DUNGEON_FORTUNE_RAVINE_IDX = 130, DUNGEON_FORTUNE_RAVINE_DEPTHS_IDX = 131, DUNGEON_FORTUNE_RAVINE_PIT_IDX = 132, DUNGEON_BARREN_VALLEY_IDX = 133, DUNGEON_DEEP_BARREN_VALLEY_IDX = 134, DUNGEON_BARREN_VALLEY_CLEARING_IDX = 135, DUNGEON_DARK_WASTELAND_IDX = 136, DUNGEON_TEMPORAL_TOWER_SE5_IDX = 137, DUNGEON_TEMPORAL_SPIRE_SE5_IDX = 138, DUNGEON_DUSK_FOREST_SE5_IDX = 139, DUNGEON_BLACK_SWAMP_IDX = 140, DUNGEON_SPACIAL_CLIFFS_IDX = 141, DUNGEON_DARK_ICE_MOUNTAIN_IDX = 142, DUNGEON_DARK_ICE_MOUNTAIN_PEAK_IDX = 143, DUNGEON_DARK_ICE_MOUNTAIN_PINNACLE_IDX = 144, DUNGEON_ICICLE_FOREST_IDX = 145, DUNGEON_VAST_ICE_MOUNTAIN_IDX = 146, DUNGEON_VAST_ICE_MOUNTAIN_PEAK_IDX = 147, DUNGEON_VAST_ICE_MOUNTAIN_PINNACLE_IDX = 148, DUNGEON_SOUTHERN_JUNGLE_IDX = 149, DUNGEON_BOULDER_QUARRY_IDX = 150, DUNGEON_DEEP_BOULDER_QUARRY_IDX = 151, DUNGEON_BOULDER_QUARRY_CLEARING_IDX = 152, DUNGEON_RIGHT_CAVE_PATH_IDX = 153, DUNGEON_LEFT_CAVE_PATH_IDX = 154, DUNGEON_LIMESTONE_CAVERN_IDX = 155, DUNGEON_DEEP_LIMESTONE_CAVERN_IDX = 156, DUNGEON_LIMESTONE_CAVERN_DEPTHS_IDX = 157, DUNGEON_SPRING_CAVE_IDX = 158, DUNGEON_UPPER_SPRING_CAVE_HAUNTER_IDX = 159, DUNGEON_UPPER_SPRING_CAVE_IDX = 160, DUNGEON_MIDDLE_SPRING_CAVE_IDX = 161, DUNGEON_LOWER_SPRING_CAVE_IDX = 162, DUNGEON_SPRING_CAVE_DEPTHS_IDX = 163, DUNGEON_SPRING_CAVE_PIT_IDX = 164, DUNGEON_LITTLE_PLAINS_IDX = 165, DUNGEON_MT_CLEAR_IDX = 166, DUNGEON_CHALLENGE_RIVER_IDX = 167, DUNGEON_TRIAL_FOREST_IDX = 168, DUNGEON_GUIDING_SEA_IDX = 169, DUNGEON_HIDDEN_SHOPKEEPER_VILLAGE_IDX = 170, DUNGEON_DUMMY_0xAB_IDX = 171, DUNGEON_DUMMY_0xAC_IDX = 172, DUNGEON_DUMMY_0xAD_IDX = 173, DUNGEON_STAR_CAVE_IDX = 174, DUNGEON_SHAYMIN_VILLAGE_IDX = 175, DUNGEON_ARMALDOS_SHELTER_IDX = 176, DUNGEON_LUMINOUS_SPRING_IDX = 177, DUNGEON_HOT_SPRING_IDX = 178, DUNGEON_RESCUE_IDX = 179, DUNGEON_NORMAL_FLY_MAZE_IDX = 180, DUNGEON_DARK_FIRE_MAZE_IDX = 181, DUNGEON_ROCK_WATER_MAZE_IDX = 182, DUNGEON_GRASS_MAZE_IDX = 183, DUNGEON_ELEC_STEEL_MAZE_IDX = 184, DUNGEON_ICE_GROUND_MAZE_IDX = 185, DUNGEON_FIGHT_PSYCH_MAZE_IDX = 186, DUNGEON_POISON_BUG_MAZE_IDX = 187, DUNGEON_DRAGON_MAZE_IDX = 188, DUNGEON_GHOST_MAZE_IDX = 189, DUNGEON_EXPLORER_MAZE_IDX = 190, DUNGEON_FINAL_MAZE_IDX = 191, DUNGEON_DOJO_0xC0_IDX = 192, DUNGEON_DOJO_0xC1_IDX = 193, DUNGEON_DOJO_0xC2_IDX = 194, DUNGEON_DOJO_0xC3_IDX = 195, DUNGEON_DOJO_0xC4_IDX = 196, DUNGEON_DOJO_0xC5_IDX = 197, DUNGEON_DOJO_0xC6_IDX = 198, DUNGEON_DOJO_0xC7_IDX = 199, DUNGEON_DOJO_0xC8_IDX = 200, DUNGEON_DOJO_0xC9_IDX = 201, DUNGEON_DOJO_0xCA_IDX = 202, DUNGEON_DOJO_0xCB_IDX = 203, DUNGEON_DOJO_0xCC_IDX = 204, DUNGEON_DOJO_0xCD_IDX = 205, DUNGEON_DOJO_0xCE_IDX = 206, DUNGEON_DOJO_0xCF_IDX = 207, DUNGEON_DOJO_0xD0_IDX = 208, DUNGEON_DOJO_0xD1_IDX = 209, DUNGEON_DOJO_0xD2_IDX = 210, DUNGEON_DOJO_0xD3_IDX = 211 }; // Dungeon group ID. // This is more in line with what we would think of as a "whole dungeon". // A single dungeon group might encompass multiple dungeon IDs. enum dungeon_group_id { DGROUP_TEST_DUNGEON = 0, DGROUP_BEACH_CAVE = 1, DGROUP_DRENCHED_BLUFF = 2, DGROUP_MT_BRISTLE = 3, DGROUP_WATERFALL_CAVE = 4, DGROUP_APPLE_WOODS = 5, DGROUP_CRAGGY_COAST = 6, DGROUP_SIDE_PATH = 7, DGROUP_MT_HORN = 8, DGROUP_ROCK_PATH = 9, DGROUP_FOGGY_FOREST = 10, DGROUP_FOREST_PATH = 11, DGROUP_STEAM_CAVE = 12, DGROUP_AMP_PLAINS = 13, DGROUP_NORTHERN_DESERT = 14, DGROUP_QUICKSAND_CAVE = 15, DGROUP_CRYSTAL_CAVE = 16, DGROUP_CRYSTAL_CROSSING = 17, DGROUP_CHASM_CAVE = 18, DGROUP_DARK_HILL = 19, DGROUP_SEALED_RUIN = 20, DGROUP_DUSK_FOREST = 21, DGROUP_DEEP_DUSK_FOREST = 22, DGROUP_TREESHROUD_FOREST = 23, DGROUP_BRINE_CAVE = 24, DGROUP_HIDDEN_LAND = 25, DGROUP_TEMPORAL_TOWER = 26, DGROUP_MYSTIFYING_FOREST = 27, DGROUP_MIDNIGHT_FOREST = 28, DGROUP_LAKE_AFAR = 29, DGROUP_MT_MISTRAL = 30, DGROUP_SHIMMER_HILL = 31, DGROUP_BOTTOMLESS_SEA = 32, DGROUP_SURROUNDED_SEA = 33, DGROUP_MIRACLE_SEA = 34, DGROUP_CONCEALED_RUINS = 35, DGROUP_LOST_WILDERNESS = 36, DGROUP_MYSTERY_JUNGLE = 37, DGROUP_HAPPY_OUTLOOK = 38, DGROUP_SERENITY_RIVER = 39, DGROUP_LANDSLIDE_CAVE = 40, DGROUP_BLIZZARD_ISLAND = 41, DGROUP_SHIMMER_DESERT = 42, DGROUP_CREVICE_CAVE = 43, DGROUP_MT_AVALANCHE = 44, DGROUP_GIANT_VOLCANO = 45, DGROUP_WORLD_ABYSS = 46, DGROUP_LUSH_PRAIRIE = 47, DGROUP_TINY_MEADOW = 48, DGROUP_LABYRINTH_CAVE = 49, DGROUP_ORAN_FOREST = 50, DGROUP_SKY_STAIRWAY = 51, DGROUP_AEGIS_CAVE = 52, DGROUP_MAROWAK_DOJO = 53, DGROUP_DARK_CRATER = 54, DGROUP_MARINE_RESORT = 55, DGROUP_MT_TRAVAIL = 56, DGROUP_THE_NIGHTMARE = 57, DGROUP_SPACIAL_RIFT = 58, DGROUP_ZERO_ISLE_NORTH = 59, DGROUP_ZERO_ISLE_WEST = 60, DGROUP_ZERO_ISLE_EAST = 61, DGROUP_ZERO_ISLE_SOUTH = 62, DGROUP_RESCUE = 63, DGROUP_ZERO_ISLE_CENTER = 64, DGROUP_DESTINY_TOWER = 65, DGROUP_DUMMY_0x42 = 66, DGROUP_DUMMY_0x43 = 67, DGROUP_OBLIVION_FOREST = 68, DGROUP_TREACHEROUS_WATERS = 69, DGROUP_SOUTHEASTERN_ISLANDS = 70, DGROUP_INFERNO_CAVE = 71, DGROUP_SKY_PEAK = 72, DGROUP_STAR_CAVE_SE1 = 73, DGROUP_MURKY_FOREST = 74, DGROUP_EASTERN_CAVE = 75, DGROUP_FORTUNE_RAVINE = 76, DGROUP_BARREN_VALLEY = 77, DGROUP_DARK_WASTELAND = 78, DGROUP_TEMPORAL_TOWER_SE5 = 79, DGROUP_DUSK_FOREST_SE5 = 80, DGROUP_SPACIAL_CLIFFS = 81, DGROUP_DARK_ICE_MOUNTAIN = 82, DGROUP_ICICLE_FOREST = 83, DGROUP_VAST_ICE_MOUNTAIN = 84, DGROUP_SOUTHERN_JUNGLE = 85, DGROUP_BOULDER_QUARRY = 86, DGROUP_RIGHT_CAVE_PATH = 87, DGROUP_LEFT_CAVE_PATH = 88, DGROUP_LIMESTONE_CAVERN = 89, DGROUP_SPRING_CAVE = 90, DGROUP_STAR_CAVE = 91, DGROUP_LITTLE_PLAINS = 92, DGROUP_MT_CLEAR = 93, DGROUP_CHALLENGE_RIVER = 94, DGROUP_TRIAL_FOREST = 95, DGROUP_GUIDING_SEA = 96, DGROUP_HIDDEN_SHOPKEEPER_VILLAGE = 97, DGROUP_DUMMY_0x62 = 98, DGROUP_DUMMY_0x63 = 99, }; // Controls whether the loop that runs until the current floor ends should continue // iterating or not and why enum floor_loop_status { FLOOR_LOOP_CONTINUE = 0, // The floor loop keeps executing as normal FLOOR_LOOP_LEADER_FAINTED = 1, // The floor loop exits because the leader fainted FLOOR_LOOP_NEXT_FLOOR = 2, // The floor loop exits because the floor is over }; // Type IDx enum type_id { TYPE_NONE = 0, TYPE_NORMAL = 1, TYPE_FIRE = 2, TYPE_WATER = 3, TYPE_GRASS = 4, TYPE_ELECTRIC = 5, TYPE_ICE = 6, TYPE_FIGHTING = 7, TYPE_POISON = 8, TYPE_GROUND = 9, TYPE_FLYING = 10, TYPE_PSYCHIC = 11, TYPE_BUG = 12, TYPE_ROCK = 13, TYPE_GHOST = 14, TYPE_DRAGON = 15, TYPE_DARK = 16, TYPE_STEEL = 17, TYPE_NEUTRAL = 18, }; #define NUM_TYPES TYPE_NEUTRAL // Modes related to shopkeeper behavior enum shopkeeper_mode { SHOPKEEPER_MODE_NORMAL = 0, SHOPKEEPER_MODE_SHOPKEEPER = 1, SHOPKEEPER_MODE_ATTACK_ENEMIES = 2, SHOPKEEPER_MODE_ATTACK_TEAM = 3, }; #define NUM_SPECIES 600 #define MONSTER_GENDER_ID_OFFSET NUM_SPECIES // Some macro shenanigans to define the monster secondary gender labels neatly. #define _MONSTER_ID_GENDERED(name, base_value) \ MONSTER_##name = base_value, MONSTER_##name##_SECONDARY = base_value + MONSTER_GENDER_ID_OFFSET // Monster ID. Add 600 to the base value to get secondary genders (typically female). enum monster_id { _MONSTER_ID_GENDERED(NONE, 0), _MONSTER_ID_GENDERED(BULBASAUR, 1), _MONSTER_ID_GENDERED(IVYSAUR, 2), _MONSTER_ID_GENDERED(VENUSAUR, 3), _MONSTER_ID_GENDERED(CHARMANDER, 4), _MONSTER_ID_GENDERED(CHARMELEON, 5), _MONSTER_ID_GENDERED(CHARIZARD, 6), _MONSTER_ID_GENDERED(SQUIRTLE, 7), _MONSTER_ID_GENDERED(WARTORTLE, 8), _MONSTER_ID_GENDERED(BLASTOISE, 9), _MONSTER_ID_GENDERED(CATERPIE, 10), _MONSTER_ID_GENDERED(METAPOD, 11), _MONSTER_ID_GENDERED(BUTTERFREE, 12), _MONSTER_ID_GENDERED(WEEDLE, 13), _MONSTER_ID_GENDERED(KAKUNA, 14), _MONSTER_ID_GENDERED(BEEDRILL, 15), _MONSTER_ID_GENDERED(PIDGEY, 16), _MONSTER_ID_GENDERED(PIDGEOTTO, 17), _MONSTER_ID_GENDERED(PIDGEOT, 18), _MONSTER_ID_GENDERED(RATTATA, 19), _MONSTER_ID_GENDERED(RATICATE, 20), _MONSTER_ID_GENDERED(SPEAROW, 21), _MONSTER_ID_GENDERED(FEAROW, 22), _MONSTER_ID_GENDERED(EKANS, 23), _MONSTER_ID_GENDERED(ARBOK, 24), _MONSTER_ID_GENDERED(PIKACHU, 25), _MONSTER_ID_GENDERED(RAICHU, 26), _MONSTER_ID_GENDERED(SANDSHREW, 27), _MONSTER_ID_GENDERED(SANDSLASH, 28), _MONSTER_ID_GENDERED(NIDORAN_F, 29), _MONSTER_ID_GENDERED(NIDORINA, 30), _MONSTER_ID_GENDERED(NIDOQUEEN, 31), _MONSTER_ID_GENDERED(NIDORAN_M, 32), _MONSTER_ID_GENDERED(NIDORINO, 33), _MONSTER_ID_GENDERED(NIDOKING, 34), _MONSTER_ID_GENDERED(CLEFAIRY, 35), _MONSTER_ID_GENDERED(CLEFABLE, 36), _MONSTER_ID_GENDERED(VULPIX, 37), _MONSTER_ID_GENDERED(NINETALES, 38), _MONSTER_ID_GENDERED(JIGGLYPUFF, 39), _MONSTER_ID_GENDERED(WIGGLYTUFF, 40), _MONSTER_ID_GENDERED(ZUBAT, 41), _MONSTER_ID_GENDERED(GOLBAT, 42), _MONSTER_ID_GENDERED(ODDISH, 43), _MONSTER_ID_GENDERED(GLOOM, 44), _MONSTER_ID_GENDERED(VILEPLUME, 45), _MONSTER_ID_GENDERED(PARAS, 46), _MONSTER_ID_GENDERED(PARASECT, 47), _MONSTER_ID_GENDERED(VENONAT, 48), _MONSTER_ID_GENDERED(VENOMOTH, 49), _MONSTER_ID_GENDERED(DIGLETT, 50), _MONSTER_ID_GENDERED(DUGTRIO, 51), _MONSTER_ID_GENDERED(MEOWTH, 52), _MONSTER_ID_GENDERED(PERSIAN, 53), _MONSTER_ID_GENDERED(PSYDUCK, 54), _MONSTER_ID_GENDERED(GOLDUCK, 55), _MONSTER_ID_GENDERED(MANKEY, 56), _MONSTER_ID_GENDERED(PRIMEAPE, 57), _MONSTER_ID_GENDERED(GROWLITHE, 58), _MONSTER_ID_GENDERED(ARCANINE, 59), _MONSTER_ID_GENDERED(POLIWAG, 60), _MONSTER_ID_GENDERED(POLIWHIRL, 61), _MONSTER_ID_GENDERED(POLIWRATH, 62), _MONSTER_ID_GENDERED(ABRA, 63), _MONSTER_ID_GENDERED(KADABRA, 64), _MONSTER_ID_GENDERED(ALAKAZAM, 65), _MONSTER_ID_GENDERED(MACHOP, 66), _MONSTER_ID_GENDERED(MACHOKE, 67), _MONSTER_ID_GENDERED(MACHAMP, 68), _MONSTER_ID_GENDERED(BELLSPROUT, 69), _MONSTER_ID_GENDERED(WEEPINBELL, 70), _MONSTER_ID_GENDERED(VICTREEBEL, 71), _MONSTER_ID_GENDERED(TENTACOOL, 72), _MONSTER_ID_GENDERED(TENTACRUEL, 73), _MONSTER_ID_GENDERED(GEODUDE, 74), _MONSTER_ID_GENDERED(GRAVELER, 75), _MONSTER_ID_GENDERED(GOLEM, 76), _MONSTER_ID_GENDERED(PONYTA, 77), _MONSTER_ID_GENDERED(RAPIDASH, 78), _MONSTER_ID_GENDERED(SLOWPOKE, 79), _MONSTER_ID_GENDERED(SLOWBRO, 80), _MONSTER_ID_GENDERED(MAGNEMITE, 81), _MONSTER_ID_GENDERED(MAGNETON, 82), _MONSTER_ID_GENDERED(FARFETCHD, 83), _MONSTER_ID_GENDERED(DODUO, 84), _MONSTER_ID_GENDERED(DODRIO, 85), _MONSTER_ID_GENDERED(SEEL, 86), _MONSTER_ID_GENDERED(DEWGONG, 87), _MONSTER_ID_GENDERED(GRIMER, 88), _MONSTER_ID_GENDERED(MUK, 89), _MONSTER_ID_GENDERED(SHELLDER, 90), _MONSTER_ID_GENDERED(CLOYSTER, 91), _MONSTER_ID_GENDERED(GASTLY, 92), _MONSTER_ID_GENDERED(HAUNTER, 93), _MONSTER_ID_GENDERED(GENGAR, 94), _MONSTER_ID_GENDERED(ONIX, 95), _MONSTER_ID_GENDERED(DROWZEE, 96), _MONSTER_ID_GENDERED(HYPNO, 97), _MONSTER_ID_GENDERED(KRABBY, 98), _MONSTER_ID_GENDERED(KINGLER, 99), _MONSTER_ID_GENDERED(VOLTORB, 100), _MONSTER_ID_GENDERED(ELECTRODE, 101), _MONSTER_ID_GENDERED(EXEGGCUTE, 102), _MONSTER_ID_GENDERED(EXEGGUTOR, 103), _MONSTER_ID_GENDERED(CUBONE, 104), _MONSTER_ID_GENDERED(MAROWAK, 105), _MONSTER_ID_GENDERED(HITMONLEE, 106), _MONSTER_ID_GENDERED(HITMONCHAN, 107), _MONSTER_ID_GENDERED(LICKITUNG, 108), _MONSTER_ID_GENDERED(KOFFING, 109), _MONSTER_ID_GENDERED(WEEZING, 110), _MONSTER_ID_GENDERED(RHYHORN, 111), _MONSTER_ID_GENDERED(RHYDON, 112), _MONSTER_ID_GENDERED(CHANSEY, 113), _MONSTER_ID_GENDERED(TANGELA, 114), _MONSTER_ID_GENDERED(KANGASKHAN, 115), _MONSTER_ID_GENDERED(HORSEA, 116), _MONSTER_ID_GENDERED(SEADRA, 117), _MONSTER_ID_GENDERED(GOLDEEN, 118), _MONSTER_ID_GENDERED(SEAKING, 119), _MONSTER_ID_GENDERED(STARYU, 120), _MONSTER_ID_GENDERED(STARMIE, 121), _MONSTER_ID_GENDERED(MR_MIME, 122), _MONSTER_ID_GENDERED(SCYTHER, 123), _MONSTER_ID_GENDERED(JYNX, 124), _MONSTER_ID_GENDERED(ELECTABUZZ, 125), _MONSTER_ID_GENDERED(MAGMAR, 126), _MONSTER_ID_GENDERED(PINSIR, 127), _MONSTER_ID_GENDERED(TAUROS, 128), _MONSTER_ID_GENDERED(MAGIKARP, 129), _MONSTER_ID_GENDERED(GYARADOS, 130), _MONSTER_ID_GENDERED(LAPRAS, 131), _MONSTER_ID_GENDERED(DITTO, 132), _MONSTER_ID_GENDERED(EEVEE, 133), _MONSTER_ID_GENDERED(VAPOREON, 134), _MONSTER_ID_GENDERED(JOLTEON, 135), _MONSTER_ID_GENDERED(FLAREON, 136), _MONSTER_ID_GENDERED(PORYGON, 137), _MONSTER_ID_GENDERED(OMANYTE, 138), _MONSTER_ID_GENDERED(OMASTAR, 139), _MONSTER_ID_GENDERED(KABUTO, 140), _MONSTER_ID_GENDERED(KABUTOPS, 141), _MONSTER_ID_GENDERED(AERODACTYL, 142), _MONSTER_ID_GENDERED(SNORLAX, 143), _MONSTER_ID_GENDERED(ARTICUNO, 144), _MONSTER_ID_GENDERED(ZAPDOS, 145), _MONSTER_ID_GENDERED(MOLTRES, 146), _MONSTER_ID_GENDERED(DRATINI, 147), _MONSTER_ID_GENDERED(DRAGONAIR, 148), _MONSTER_ID_GENDERED(DRAGONITE, 149), _MONSTER_ID_GENDERED(MEWTWO, 150), _MONSTER_ID_GENDERED(MEW, 151), _MONSTER_ID_GENDERED(CHIKORITA, 152), _MONSTER_ID_GENDERED(BAYLEEF, 153), _MONSTER_ID_GENDERED(MEGANIUM, 154), _MONSTER_ID_GENDERED(CYNDAQUIL, 155), _MONSTER_ID_GENDERED(QUILAVA, 156), _MONSTER_ID_GENDERED(TYPHLOSION, 157), _MONSTER_ID_GENDERED(TOTODILE, 158), _MONSTER_ID_GENDERED(CROCONAW, 159), _MONSTER_ID_GENDERED(FERALIGATR, 160), _MONSTER_ID_GENDERED(SENTRET, 161), _MONSTER_ID_GENDERED(FURRET, 162), _MONSTER_ID_GENDERED(HOOTHOOT, 163), _MONSTER_ID_GENDERED(NOCTOWL, 164), _MONSTER_ID_GENDERED(LEDYBA, 165), _MONSTER_ID_GENDERED(LEDIAN, 166), _MONSTER_ID_GENDERED(SPINARAK, 167), _MONSTER_ID_GENDERED(ARIADOS, 168), _MONSTER_ID_GENDERED(CROBAT, 169), _MONSTER_ID_GENDERED(CHINCHOU, 170), _MONSTER_ID_GENDERED(LANTURN, 171), _MONSTER_ID_GENDERED(PICHU, 172), _MONSTER_ID_GENDERED(CLEFFA, 173), _MONSTER_ID_GENDERED(IGGLYBUFF, 174), _MONSTER_ID_GENDERED(TOGEPI, 175), _MONSTER_ID_GENDERED(TOGETIC, 176), _MONSTER_ID_GENDERED(NATU, 177), _MONSTER_ID_GENDERED(XATU, 178), _MONSTER_ID_GENDERED(MAREEP, 179), _MONSTER_ID_GENDERED(FLAAFFY, 180), _MONSTER_ID_GENDERED(AMPHAROS, 181), _MONSTER_ID_GENDERED(BELLOSSOM, 182), _MONSTER_ID_GENDERED(MARILL, 183), _MONSTER_ID_GENDERED(AZUMARILL, 184), _MONSTER_ID_GENDERED(SUDOWOODO, 185), _MONSTER_ID_GENDERED(POLITOED, 186), _MONSTER_ID_GENDERED(HOPPIP, 187), _MONSTER_ID_GENDERED(SKIPLOOM, 188), _MONSTER_ID_GENDERED(JUMPLUFF, 189), _MONSTER_ID_GENDERED(AIPOM, 190), _MONSTER_ID_GENDERED(SUNKERN, 191), _MONSTER_ID_GENDERED(SUNFLORA, 192), _MONSTER_ID_GENDERED(YANMA, 193), _MONSTER_ID_GENDERED(WOOPER, 194), _MONSTER_ID_GENDERED(QUAGSIRE, 195), _MONSTER_ID_GENDERED(ESPEON, 196), _MONSTER_ID_GENDERED(UMBREON, 197), _MONSTER_ID_GENDERED(MURKROW, 198), _MONSTER_ID_GENDERED(SLOWKING, 199), _MONSTER_ID_GENDERED(MISDREAVUS, 200), _MONSTER_ID_GENDERED(UNOWN_A, 201), _MONSTER_ID_GENDERED(UNOWN_B, 202), _MONSTER_ID_GENDERED(UNOWN_C, 203), _MONSTER_ID_GENDERED(UNOWN_D, 204), _MONSTER_ID_GENDERED(UNOWN_E, 205), _MONSTER_ID_GENDERED(UNOWN_F, 206), _MONSTER_ID_GENDERED(UNOWN_G, 207), _MONSTER_ID_GENDERED(UNOWN_H, 208), _MONSTER_ID_GENDERED(UNOWN_I, 209), _MONSTER_ID_GENDERED(UNOWN_J, 210), _MONSTER_ID_GENDERED(UNOWN_K, 211), _MONSTER_ID_GENDERED(UNOWN_L, 212), _MONSTER_ID_GENDERED(UNOWN_M, 213), _MONSTER_ID_GENDERED(UNOWN_N, 214), _MONSTER_ID_GENDERED(UNOWN_O, 215), _MONSTER_ID_GENDERED(UNOWN_P, 216), _MONSTER_ID_GENDERED(UNOWN_Q, 217), _MONSTER_ID_GENDERED(UNOWN_R, 218), _MONSTER_ID_GENDERED(UNOWN_S, 219), _MONSTER_ID_GENDERED(UNOWN_T, 220), _MONSTER_ID_GENDERED(UNOWN_U, 221), _MONSTER_ID_GENDERED(UNOWN_V, 222), _MONSTER_ID_GENDERED(UNOWN_W, 223), _MONSTER_ID_GENDERED(UNOWN_X, 224), _MONSTER_ID_GENDERED(UNOWN_Y, 225), _MONSTER_ID_GENDERED(UNOWN_Z, 226), _MONSTER_ID_GENDERED(UNOWN_EXCLAMATION, 227), _MONSTER_ID_GENDERED(UNOWN_QUESTION, 228), _MONSTER_ID_GENDERED(WOBBUFFET, 229), _MONSTER_ID_GENDERED(GIRAFARIG, 230), _MONSTER_ID_GENDERED(PINECO, 231), _MONSTER_ID_GENDERED(FORRETRESS, 232), _MONSTER_ID_GENDERED(DUNSPARCE, 233), _MONSTER_ID_GENDERED(GLIGAR, 234), _MONSTER_ID_GENDERED(STEELIX, 235), _MONSTER_ID_GENDERED(SNUBBULL, 236), _MONSTER_ID_GENDERED(GRANBULL, 237), _MONSTER_ID_GENDERED(QWILFISH, 238), _MONSTER_ID_GENDERED(SCIZOR, 239), _MONSTER_ID_GENDERED(SHUCKLE, 240), _MONSTER_ID_GENDERED(HERACROSS, 241), _MONSTER_ID_GENDERED(SNEASEL, 242), _MONSTER_ID_GENDERED(TEDDIURSA, 243), _MONSTER_ID_GENDERED(URSARING, 244), _MONSTER_ID_GENDERED(SLUGMA, 245), _MONSTER_ID_GENDERED(MAGCARGO, 246), _MONSTER_ID_GENDERED(SWINUB, 247), _MONSTER_ID_GENDERED(PILOSWINE, 248), _MONSTER_ID_GENDERED(CORSOLA, 249), _MONSTER_ID_GENDERED(REMORAID, 250), _MONSTER_ID_GENDERED(OCTILLERY, 251), _MONSTER_ID_GENDERED(DELIBIRD, 252), _MONSTER_ID_GENDERED(MANTINE, 253), _MONSTER_ID_GENDERED(SKARMORY, 254), _MONSTER_ID_GENDERED(HOUNDOUR, 255), _MONSTER_ID_GENDERED(HOUNDOOM, 256), _MONSTER_ID_GENDERED(KINGDRA, 257), _MONSTER_ID_GENDERED(PHANPY, 258), _MONSTER_ID_GENDERED(DONPHAN, 259), _MONSTER_ID_GENDERED(PORYGON2, 260), _MONSTER_ID_GENDERED(STANTLER, 261), _MONSTER_ID_GENDERED(SMEARGLE, 262), _MONSTER_ID_GENDERED(TYROGUE, 263), _MONSTER_ID_GENDERED(HITMONTOP, 264), _MONSTER_ID_GENDERED(SMOOCHUM, 265), _MONSTER_ID_GENDERED(ELEKID, 266), _MONSTER_ID_GENDERED(MAGBY, 267), _MONSTER_ID_GENDERED(MILTANK, 268), _MONSTER_ID_GENDERED(BLISSEY, 269), _MONSTER_ID_GENDERED(RAIKOU, 270), _MONSTER_ID_GENDERED(ENTEI, 271), _MONSTER_ID_GENDERED(SUICUNE, 272), _MONSTER_ID_GENDERED(LARVITAR, 273), _MONSTER_ID_GENDERED(PUPITAR, 274), _MONSTER_ID_GENDERED(TYRANITAR, 275), _MONSTER_ID_GENDERED(LUGIA, 276), _MONSTER_ID_GENDERED(HO_OH, 277), _MONSTER_ID_GENDERED(CELEBI, 278), _MONSTER_ID_GENDERED(SHINY_CELEBI, 279), _MONSTER_ID_GENDERED(TREECKO, 280), _MONSTER_ID_GENDERED(GROVYLE, 281), _MONSTER_ID_GENDERED(SCEPTILE, 282), _MONSTER_ID_GENDERED(TORCHIC, 283), _MONSTER_ID_GENDERED(COMBUSKEN, 284), _MONSTER_ID_GENDERED(BLAZIKEN, 285), _MONSTER_ID_GENDERED(MUDKIP, 286), _MONSTER_ID_GENDERED(MARSHTOMP, 287), _MONSTER_ID_GENDERED(SWAMPERT, 288), _MONSTER_ID_GENDERED(POOCHYENA, 289), _MONSTER_ID_GENDERED(MIGHTYENA, 290), _MONSTER_ID_GENDERED(ZIGZAGOON, 291), _MONSTER_ID_GENDERED(LINOONE, 292), _MONSTER_ID_GENDERED(WURMPLE, 293), _MONSTER_ID_GENDERED(SILCOON, 294), _MONSTER_ID_GENDERED(BEAUTIFLY, 295), _MONSTER_ID_GENDERED(CASCOON, 296), _MONSTER_ID_GENDERED(DUSTOX, 297), _MONSTER_ID_GENDERED(LOTAD, 298), _MONSTER_ID_GENDERED(LOMBRE, 299), _MONSTER_ID_GENDERED(LUDICOLO, 300), _MONSTER_ID_GENDERED(SEEDOT, 301), _MONSTER_ID_GENDERED(NUZLEAF, 302), _MONSTER_ID_GENDERED(SHIFTRY, 303), _MONSTER_ID_GENDERED(TAILLOW, 304), _MONSTER_ID_GENDERED(SWELLOW, 305), _MONSTER_ID_GENDERED(WINGULL, 306), _MONSTER_ID_GENDERED(PELIPPER, 307), _MONSTER_ID_GENDERED(RALTS, 308), _MONSTER_ID_GENDERED(KIRLIA, 309), _MONSTER_ID_GENDERED(GARDEVOIR, 310), _MONSTER_ID_GENDERED(SURSKIT, 311), _MONSTER_ID_GENDERED(MASQUERAIN, 312), _MONSTER_ID_GENDERED(SHROOMISH, 313), _MONSTER_ID_GENDERED(BRELOOM, 314), _MONSTER_ID_GENDERED(SLAKOTH, 315), _MONSTER_ID_GENDERED(VIGOROTH, 316), _MONSTER_ID_GENDERED(SLAKING, 317), _MONSTER_ID_GENDERED(NINCADA, 318), _MONSTER_ID_GENDERED(NINJASK, 319), _MONSTER_ID_GENDERED(SHEDINJA, 320), _MONSTER_ID_GENDERED(WHISMUR, 321), _MONSTER_ID_GENDERED(LOUDRED, 322), _MONSTER_ID_GENDERED(EXPLOUD, 323), _MONSTER_ID_GENDERED(MAKUHITA, 324), _MONSTER_ID_GENDERED(HARIYAMA, 325), _MONSTER_ID_GENDERED(AZURILL, 326), _MONSTER_ID_GENDERED(NOSEPASS, 327), _MONSTER_ID_GENDERED(SKITTY, 328), _MONSTER_ID_GENDERED(DELCATTY, 329), _MONSTER_ID_GENDERED(SABLEYE, 330), _MONSTER_ID_GENDERED(MAWILE, 331), _MONSTER_ID_GENDERED(ARON, 332), _MONSTER_ID_GENDERED(LAIRON, 333), _MONSTER_ID_GENDERED(AGGRON, 334), _MONSTER_ID_GENDERED(MEDITITE, 335), _MONSTER_ID_GENDERED(MEDICHAM, 336), _MONSTER_ID_GENDERED(ELECTRIKE, 337), _MONSTER_ID_GENDERED(MANECTRIC, 338), _MONSTER_ID_GENDERED(PLUSLE, 339), _MONSTER_ID_GENDERED(MINUN, 340), _MONSTER_ID_GENDERED(VOLBEAT, 341), _MONSTER_ID_GENDERED(ILLUMISE, 342), _MONSTER_ID_GENDERED(ROSELIA, 343), _MONSTER_ID_GENDERED(GULPIN, 344), _MONSTER_ID_GENDERED(SWALOT, 345), _MONSTER_ID_GENDERED(CARVANHA, 346), _MONSTER_ID_GENDERED(SHARPEDO, 347), _MONSTER_ID_GENDERED(WAILMER, 348), _MONSTER_ID_GENDERED(WAILORD, 349), _MONSTER_ID_GENDERED(NUMEL, 350), _MONSTER_ID_GENDERED(CAMERUPT, 351), _MONSTER_ID_GENDERED(TORKOAL, 352), _MONSTER_ID_GENDERED(SPOINK, 353), _MONSTER_ID_GENDERED(GRUMPIG, 354), _MONSTER_ID_GENDERED(SPINDA, 355), _MONSTER_ID_GENDERED(TRAPINCH, 356), _MONSTER_ID_GENDERED(VIBRAVA, 357), _MONSTER_ID_GENDERED(FLYGON, 358), _MONSTER_ID_GENDERED(CACNEA, 359), _MONSTER_ID_GENDERED(CACTURNE, 360), _MONSTER_ID_GENDERED(SWABLU, 361), _MONSTER_ID_GENDERED(ALTARIA, 362), _MONSTER_ID_GENDERED(ZANGOOSE, 363), _MONSTER_ID_GENDERED(SEVIPER, 364), _MONSTER_ID_GENDERED(LUNATONE, 365), _MONSTER_ID_GENDERED(SOLROCK, 366), _MONSTER_ID_GENDERED(BARBOACH, 367), _MONSTER_ID_GENDERED(WHISCASH, 368), _MONSTER_ID_GENDERED(CORPHISH, 369), _MONSTER_ID_GENDERED(CRAWDAUNT, 370), _MONSTER_ID_GENDERED(BALTOY, 371), _MONSTER_ID_GENDERED(CLAYDOL, 372), _MONSTER_ID_GENDERED(LILEEP, 373), _MONSTER_ID_GENDERED(CRADILY, 374), _MONSTER_ID_GENDERED(ANORITH, 375), _MONSTER_ID_GENDERED(ARMALDO, 376), _MONSTER_ID_GENDERED(FEEBAS, 377), _MONSTER_ID_GENDERED(MILOTIC, 378), _MONSTER_ID_GENDERED(CASTFORM_NORMAL, 379), _MONSTER_ID_GENDERED(CASTFORM_SNOWY, 380), _MONSTER_ID_GENDERED(CASTFORM_SUNNY, 381), _MONSTER_ID_GENDERED(CASTFORM_RAINY, 382), _MONSTER_ID_GENDERED(KECLEON, 383), _MONSTER_ID_GENDERED(PURPLE_KECLEON, 384), _MONSTER_ID_GENDERED(SHUPPET, 385), _MONSTER_ID_GENDERED(BANETTE, 386), _MONSTER_ID_GENDERED(DUSKULL, 387), _MONSTER_ID_GENDERED(DUSCLOPS, 388), _MONSTER_ID_GENDERED(TROPIUS, 389), _MONSTER_ID_GENDERED(CHIMECHO, 390), _MONSTER_ID_GENDERED(ABSOL, 391), _MONSTER_ID_GENDERED(WYNAUT, 392), _MONSTER_ID_GENDERED(SNORUNT, 393), _MONSTER_ID_GENDERED(GLALIE, 394), _MONSTER_ID_GENDERED(SPHEAL, 395), _MONSTER_ID_GENDERED(SEALEO, 396), _MONSTER_ID_GENDERED(WALREIN, 397), _MONSTER_ID_GENDERED(CLAMPERL, 398), _MONSTER_ID_GENDERED(HUNTAIL, 399), _MONSTER_ID_GENDERED(GOREBYSS, 400), _MONSTER_ID_GENDERED(RELICANTH, 401), _MONSTER_ID_GENDERED(LUVDISC, 402), _MONSTER_ID_GENDERED(BAGON, 403), _MONSTER_ID_GENDERED(SHELGON, 404), _MONSTER_ID_GENDERED(SALAMENCE, 405), _MONSTER_ID_GENDERED(BELDUM, 406), _MONSTER_ID_GENDERED(METANG, 407), _MONSTER_ID_GENDERED(METAGROSS, 408), _MONSTER_ID_GENDERED(REGIROCK, 409), _MONSTER_ID_GENDERED(REGICE, 410), _MONSTER_ID_GENDERED(REGISTEEL, 411), _MONSTER_ID_GENDERED(LATIAS, 412), _MONSTER_ID_GENDERED(LATIOS, 413), _MONSTER_ID_GENDERED(KYOGRE, 414), _MONSTER_ID_GENDERED(GROUDON, 415), _MONSTER_ID_GENDERED(RAYQUAZA, 416), _MONSTER_ID_GENDERED(JIRACHI, 417), _MONSTER_ID_GENDERED(DEOXYS_NORMAL, 418), _MONSTER_ID_GENDERED(DEOXYS_ATTACK, 419), _MONSTER_ID_GENDERED(DEOXYS_DEFENSE, 420), _MONSTER_ID_GENDERED(DEOXYS_SPEED, 421), _MONSTER_ID_GENDERED(TURTWIG, 422), _MONSTER_ID_GENDERED(GROTLE, 423), _MONSTER_ID_GENDERED(TORTERRA, 424), _MONSTER_ID_GENDERED(CHIMCHAR, 425), _MONSTER_ID_GENDERED(MONFERNO, 426), _MONSTER_ID_GENDERED(INFERNAPE, 427), _MONSTER_ID_GENDERED(PIPLUP, 428), _MONSTER_ID_GENDERED(PRINPLUP, 429), _MONSTER_ID_GENDERED(EMPOLEON, 430), _MONSTER_ID_GENDERED(STARLY, 431), _MONSTER_ID_GENDERED(STARAVIA, 432), _MONSTER_ID_GENDERED(STARAPTOR, 433), _MONSTER_ID_GENDERED(BIDOOF, 434), _MONSTER_ID_GENDERED(BIBAREL, 435), _MONSTER_ID_GENDERED(KRICKETOT, 436), _MONSTER_ID_GENDERED(KRICKETUNE, 437), _MONSTER_ID_GENDERED(SHINX, 438), _MONSTER_ID_GENDERED(LUXIO, 439), _MONSTER_ID_GENDERED(LUXRAY, 440), _MONSTER_ID_GENDERED(BUDEW, 441), _MONSTER_ID_GENDERED(ROSERADE, 442), _MONSTER_ID_GENDERED(CRANIDOS, 443), _MONSTER_ID_GENDERED(RAMPARDOS, 444), _MONSTER_ID_GENDERED(SHIELDON, 445), _MONSTER_ID_GENDERED(BASTIODON, 446), _MONSTER_ID_GENDERED(BURMY_SANDY, 447), _MONSTER_ID_GENDERED(BURMY_PLANT, 448), _MONSTER_ID_GENDERED(BURMY_TRASH, 449), _MONSTER_ID_GENDERED(WORMADAM_SANDY, 450), _MONSTER_ID_GENDERED(WORMADAM_PLANT, 451), _MONSTER_ID_GENDERED(WORMADAM_TRASH, 452), _MONSTER_ID_GENDERED(MOTHIM, 453), _MONSTER_ID_GENDERED(COMBEE, 454), _MONSTER_ID_GENDERED(VESPIQUEN, 455), _MONSTER_ID_GENDERED(PACHIRISU, 456), _MONSTER_ID_GENDERED(BUIZEL, 457), _MONSTER_ID_GENDERED(FLOATZEL, 458), _MONSTER_ID_GENDERED(CHERUBI, 459), _MONSTER_ID_GENDERED(CHERRIM_OVERCAST, 460), _MONSTER_ID_GENDERED(CHERRIM_SUNSHINE, 461), _MONSTER_ID_GENDERED(SHELLOS_EAST, 462), _MONSTER_ID_GENDERED(SHELLOS_WEST, 463), _MONSTER_ID_GENDERED(GASTRODON_EAST, 464), _MONSTER_ID_GENDERED(GASTRODON_WEST, 465), _MONSTER_ID_GENDERED(AMBIPOM, 466), _MONSTER_ID_GENDERED(DRIFLOON, 467), _MONSTER_ID_GENDERED(DRIFBLIM, 468), _MONSTER_ID_GENDERED(BUNEARY, 469), _MONSTER_ID_GENDERED(LOPUNNY, 470), _MONSTER_ID_GENDERED(MISMAGIUS, 471), _MONSTER_ID_GENDERED(HONCHKROW, 472), _MONSTER_ID_GENDERED(GLAMEOW, 473), _MONSTER_ID_GENDERED(PURUGLY, 474), _MONSTER_ID_GENDERED(CHINGLING, 475), _MONSTER_ID_GENDERED(STUNKY, 476), _MONSTER_ID_GENDERED(SKUNTANK, 477), _MONSTER_ID_GENDERED(BRONZOR, 478), _MONSTER_ID_GENDERED(BRONZONG, 479), _MONSTER_ID_GENDERED(BONSLY, 480), _MONSTER_ID_GENDERED(MIME_JR, 481), _MONSTER_ID_GENDERED(HAPPINY, 482), _MONSTER_ID_GENDERED(CHATOT, 483), _MONSTER_ID_GENDERED(SPIRITOMB, 484), _MONSTER_ID_GENDERED(GIBLE, 485), _MONSTER_ID_GENDERED(GABITE, 486), _MONSTER_ID_GENDERED(GARCHOMP, 487), _MONSTER_ID_GENDERED(MUNCHLAX, 488), _MONSTER_ID_GENDERED(RIOLU, 489), _MONSTER_ID_GENDERED(LUCARIO, 490), _MONSTER_ID_GENDERED(HIPPOPOTAS, 491), _MONSTER_ID_GENDERED(HIPPOWDON, 492), _MONSTER_ID_GENDERED(SKORUPI, 493), _MONSTER_ID_GENDERED(DRAPION, 494), _MONSTER_ID_GENDERED(CROAGUNK, 495), _MONSTER_ID_GENDERED(TOXICROAK, 496), _MONSTER_ID_GENDERED(CARNIVINE, 497), _MONSTER_ID_GENDERED(FINNEON, 498), _MONSTER_ID_GENDERED(LUMINEON, 499), _MONSTER_ID_GENDERED(MANTYKE, 500), _MONSTER_ID_GENDERED(SNOVER, 501), _MONSTER_ID_GENDERED(ABOMASNOW, 502), _MONSTER_ID_GENDERED(WEAVILE, 503), _MONSTER_ID_GENDERED(MAGNEZONE, 504), _MONSTER_ID_GENDERED(LICKILICKY, 505), _MONSTER_ID_GENDERED(RHYPERIOR, 506), _MONSTER_ID_GENDERED(TANGROWTH, 507), _MONSTER_ID_GENDERED(ELECTIVIRE, 508), _MONSTER_ID_GENDERED(MAGMORTAR, 509), _MONSTER_ID_GENDERED(TOGEKISS, 510), _MONSTER_ID_GENDERED(YANMEGA, 511), _MONSTER_ID_GENDERED(LEAFEON, 512), _MONSTER_ID_GENDERED(GLACEON, 513), _MONSTER_ID_GENDERED(GLISCOR, 514), _MONSTER_ID_GENDERED(MAMOSWINE, 515), _MONSTER_ID_GENDERED(PORYGON_Z, 516), _MONSTER_ID_GENDERED(GALLADE, 517), _MONSTER_ID_GENDERED(PROBOPASS, 518), _MONSTER_ID_GENDERED(DUSKNOIR, 519), _MONSTER_ID_GENDERED(FROSLASS, 520), _MONSTER_ID_GENDERED(ROTOM, 521), _MONSTER_ID_GENDERED(UXIE, 522), _MONSTER_ID_GENDERED(MESPRIT, 523), _MONSTER_ID_GENDERED(AZELF, 524), _MONSTER_ID_GENDERED(DIALGA, 525), _MONSTER_ID_GENDERED(PALKIA, 526), _MONSTER_ID_GENDERED(HEATRAN, 527), _MONSTER_ID_GENDERED(REGIGIGAS, 528), _MONSTER_ID_GENDERED(GIRATINA_ALTERED, 529), _MONSTER_ID_GENDERED(CRESSELIA, 530), _MONSTER_ID_GENDERED(PHIONE, 531), _MONSTER_ID_GENDERED(MANAPHY, 532), _MONSTER_ID_GENDERED(DARKRAI, 533), _MONSTER_ID_GENDERED(SHAYMIN_LAND, 534), _MONSTER_ID_GENDERED(SHAYMIN_SKY, 535), _MONSTER_ID_GENDERED(GIRATINA_ORIGIN, 536), _MONSTER_ID_GENDERED(UNNAMED_0x219, 537), _MONSTER_ID_GENDERED(UNNAMED_0x21A, 538), _MONSTER_ID_GENDERED(UNNAMED_0x21B, 539), _MONSTER_ID_GENDERED(UNNAMED_0x21C, 540), _MONSTER_ID_GENDERED(UNNAMED_0x21D, 541), _MONSTER_ID_GENDERED(UNNAMED_0x21E, 542), _MONSTER_ID_GENDERED(UNNAMED_0x21F, 543), _MONSTER_ID_GENDERED(UNNAMED_0x220, 544), _MONSTER_ID_GENDERED(UNNAMED_0x221, 545), _MONSTER_ID_GENDERED(UNNAMED_0x222, 546), _MONSTER_ID_GENDERED(UNNAMED_0x223, 547), _MONSTER_ID_GENDERED(UNNAMED_0x224, 548), _MONSTER_ID_GENDERED(UNNAMED_0x225, 549), _MONSTER_ID_GENDERED(UNNAMED_0x226, 550), _MONSTER_ID_GENDERED(UNNAMED_0x227, 551), _MONSTER_ID_GENDERED(PRIMAL_DIALGA, 552), _MONSTER_ID_GENDERED(DECOY, 553), _MONSTER_ID_GENDERED(STATUE, 554), MONSTER_WIGGLYTUFF_STORY = 555, MONSTER_REGIGIGAS_STORY = 556, MONSTER_BRONZONG_STORY = 557, MONSTER_HITMONLEE_STORY = 558, MONSTER_CHIMECHO_STORY = 559, MONSTER_WIGGLYTUFF_STORY_2 = 560, MONSTER_UXIE_STORY = 561, MONSTER_AZELF_STORY = 562, MONSTER_MESPRIT_STORY = 563, MONSTER_SUNFLORA_STORY = 564, MONSTER_DIGLETT_STORY = 565, MONSTER_DUGTRIO_STORY = 566, MONSTER_CORPHISH_STORY = 567, MONSTER_LOUDRED_STORY = 568, MONSTER_BIDOOF_STORY = 569, MONSTER_CHATOT_STORY = 570, MONSTER_GROVYLE_STORY = 571, MONSTER_DUSKNOIR_STORY = 572, MONSTER_SABLEYE_STORY = 573, MONSTER_DARKRAI_STORY = 574, MONSTER_MAMA = 575, MONSTER_GROVYLE_STORY_2 = 576, MONSTER_DUSKNOIR_STORY_2 = 577, MONSTER_DUSKNOIR_STORY_3 = 578, MONSTER_SENTRET_DITTO = 579, MONSTER_BELLOSSOM_DITTO = 580, MONSTER_RESERVE_27 = 581, MONSTER_RESERVE_28 = 582, MONSTER_RESERVE_29 = 583, MONSTER_RESERVE_30 = 584, MONSTER_RESERVE_31 = 585, MONSTER_RESERVE_32 = 586, MONSTER_RESERVE_33 = 587, MONSTER_RESERVE_34 = 588, MONSTER_RESERVE_35 = 589, MONSTER_RESERVE_36 = 590, MONSTER_RESERVE_37 = 591, MONSTER_RESERVE_38 = 592, MONSTER_RESERVE_39 = 593, MONSTER_RESERVE_40 = 594, MONSTER_RESERVE_41 = 595, MONSTER_RESERVE_42 = 596, MONSTER_RESERVE_43 = 597, MONSTER_RESERVE_44 = 598, MONSTER_RESERVE_45 = 599, }; #undef _MONSTER_ID_GENDERED // Actions that a monster can take on its turn enum action { ACTION_NOTHING = 0, // 0x0 // 0x1: Pass turn. Enemies will print the "is watching carefully" message when performing this // action ACTION_PASS_TURN = 1, ACTION_WALK = 2, // 0x2: Walk ACTION_UNK_3 = 3, ACTION_UNK_4 = 4, ACTION_UNK_5 = 5, ACTION_NEXT = 6, // 0x6: Switch to next Pokémon when viewing moves ACTION_PREVIOUS = 7, // 0x7: Switch to previous Pokémon when viewing moves ACTION_PLACE_ITEM = 8, // 0x8: Place an item on the floor ACTION_PICK_UP_PLAYER = 9, // 0x9: Pick up an item from the floor (player) ACTION_UNK_A = 10, ACTION_THROW_ITEM_PLAYER = 11, // 0xB: Throw an item ACTION_CHECK_ITEM_DESCRIPTION = 12, // 0xC: Check the description of an item ACTION_EAT_BERRY_SEED_DRINK = 13, // 0xD: Each a berry or seed, or drink something ACTION_EAT_GUMMI = 14, // 0xE: Eat a gummi ACTION_UNK_F = 15, ACTION_USE_TM = 16, // 0x10: Use a TM ACTION_UNK_11 = 17, ACTION_USE_ITEM = 18, // 0x12: Use an item ACTION_TALK_FIELD = 19, // 0x13: Talk to a teammate by facing them and pressing A ACTION_USE_MOVE_PLAYER = 20, // 0x14: Use a move (player) ACTION_USE_MOVE_AI = 21, // 0x15: Use a move (AI) ACTION_UNK_16 = 22, ACTION_STRUGGLE = 23, // 0x17: Use Struggle ACTION_UNK_18 = 24, ACTION_CHECK_MOVES = 25, // 0x19: Check the list of moves ACTION_CHANGE_TACTICS = 26, // 0x1A: Change a teammate's tactic ACTION_CHECK_SUMMARY = 27, // 0x1B: Check a pokémon's summary ACTION_TALK_MENU = 28, // 0x1C: Talk to a teammate by using the in-menu option ACTION_UNK_1D = 29, ACTION_SET_MOVE = 30, // 0x1E: Set a move ACTION_SWITCH_MOVE = 31, // 0x1F: Switch a move on or off ACTION_UNK_20 = 32, ACTION_UNK_21 = 33, ACTION_UNK_22 = 34, ACTION_EAT_AI = 35, // 0x23: Eat item (AI) ACTION_THROW_ITEM_AI = 36, // 0x24: Throw an item (AI) ACTION_UNK_25 = 37, ACTION_USE_STAIRS = 38, // 0x26: Use the stairs ACTION_THROW_STRAIGHT_PLAYER = 39, // 0x27: Throw a straight-line item (player) ACTION_UNK_28 = 40, ACTION_UNK_29 = 41, ACTION_UNK_2A = 42, ACTION_QUICKSAVE = 43, // 0x2B: Quicksave ACTION_USE_LINK_BOX = 44, // 0x2C: Use a Link Box ACTION_UNK_2D = 45, ACTION_GIVE_UP = 46, // 0x2E: Give up ACTION_UNK_2F = 47, ACTION_VIEW_IQ = 48, // 0x30: Open the IQ skills menu ACTION_USE_ORB = 49, // 0x31: Use an orb ACTION_REGULAR_ATTACK = 50, // 0x32: Regular Attack ACTION_UNSET_MOVE = 51, // 0x33: Unset a move ACTION_SEND_HOME = 52, // 0x34: Send a pokémon home ACTION_UNK_35 = 53, ACTION_GIVE_ITEM = 54, // 0X36: Give held item ACTION_TAKE_ITEM = 55, // 0x37: Take a held item ACTION_UNK_38 = 56, // 0x39: had second thoughts! - Used as a failsafe when trying to take an illegal // action ACTION_SECOND_THOUGHTS = 57, ACTION_SWAP_ITEM = 58, // 0x3A: Swapping an item ACTION_CHANGE_LEADER = 59, // 0x3B: Change the team's leader ACTION_SET_ITEM = 60, // 0x3C: Set item ACTION_UNSET_ITEM = 61, // 0x3D: Unset item ACTION_UNK_3E = 62, ACTION_PICK_UP_AI = 63, // 0x3F: Pick up an item (AI) ACTION_UNK_40 = 64, ACTION_THROW_ARC_PLAYER = 65, // 0x41: Throw a Gravelerock or a similar item (player) ACTION_PAD = 0xffff, // To force the enum on 16 bits }; // Behavior type of NPC monsters enum monster_behavior { BEHAVIOR_NORMAL_ENEMY_0x0 = 0, BEHAVIOR_OUTLAW = 1, BEHAVIOR_HIDDEN_OUTLAW = 2, BEHAVIOR_FLEEING_OUTLAW = 3, BEHAVIOR_OUTLAW_TEAM_LEADER = 4, BEHAVIOR_OUTLAW_TEAM_MINION = 5, BEHAVIOR_FIXED_ENEMY = 6, BEHAVIOR_RESCUE_TARGET = 7, BEHAVIOR_WANDERING_ENEMY_0x8 = 8, BEHAVIOR_NORMAL_ENEMY_0x9 = 9, BEHAVIOR_ALLY = 10, BEHAVIOR_EXPLORER_MAZE_1 = 11, BEHAVIOR_EXPLORER_MAZE_2 = 12, BEHAVIOR_EXPLORER_MAZE_3 = 13, BEHAVIOR_EXPLORER_MAZE_4 = 14, BEHAVIOR_INVALID = 15, BEHAVIOR_SECRET_BAZAAR_KIRLIA = 16, BEHAVIOR_SECRET_BAZAAR_MIME_JR = 17, BEHAVIOR_SECRET_BAZAAR_SWALOT = 18, BEHAVIOR_SECRET_BAZAAR_LICKILICKY = 19, BEHAVIOR_SECRET_BAZAAR_SHEDINJA = 20, BEHAVIOR_WANDERING_ENEMY_0x15 = 21, }; // Music/song IDs. Some background SFX are also stored as "songs". enum music_id { MUSIC_NONE_0x0 = 0, MUSIC_POKEMON_EXPLORATION_TEAM_THEME = 1, MUSIC_TOP_MENU_THEME = 2, MUSIC_MAROWAK_DOJO = 3, MUSIC_THE_GATEKEEPERS = 4, MUSIC_JOB_CLEAR = 5, MUSIC_WELCOME_TO_THE_WORLD_OF_POKEMON = 6, MUSIC_WIGGLYTUFFS_GUILD = 7, MUSIC_WIGGLYTUFFS_GUILD_REMIX = 8, MUSIC_TREASURE_TOWN = 9, MUSIC_DO_YOUR_BEST_AS_ALWAYS = 10, MUSIC_MONSTER_HOUSE = 11, MUSIC_KECLEONS_SHOP = 12, MUSIC_OUTLAW = 13, MUSIC_IN_THE_DEPTHS_OF_THE_PIT = 14, MUSIC_BOSS_BATTLE = 15, MUSIC_DIALGAS_FIGHT_TO_THE_FINISH = 16, MUSIC_BATTLE_AGAINST_DUSKNOIR = 17, MUSIC_DEFY_THE_LEGENDS = 18, MUSIC_MISSION_FAILURE = 19, MUSIC_MISSION_SUCCESS = 20, MUSIC_BEACH_CAVE = 21, MUSIC_DRENCHED_BLUFF = 22, MUSIC_MT_BRISTLE = 23, MUSIC_WATERFALL_CAVE = 24, MUSIC_APPLE_WOODS = 25, MUSIC_CRAGGY_COAST = 26, MUSIC_CAVE_AND_SIDE_PATH = 27, MUSIC_MT_HORN = 28, MUSIC_FOGGY_FOREST = 29, MUSIC_STEAM_CAVE = 30, MUSIC_UPPER_STEAM_CAVE = 31, MUSIC_AMP_PLAINS = 32, MUSIC_FAR_AMP_PLAINS = 33, MUSIC_NORTHERN_DESERT = 34, MUSIC_QUICKSAND_CAVE = 35, MUSIC_QUICKSAND_PIT = 36, MUSIC_CRYSTAL_CAVE = 37, MUSIC_CRYSTAL_CROSSING = 38, MUSIC_CHASM_CAVE = 39, MUSIC_DARK_HILL = 40, MUSIC_SEALED_RUIN = 41, MUSIC_DEEP_SEALED_RUIN = 42, MUSIC_DUSK_FOREST = 43, MUSIC_DEEP_DUSK_FOREST = 44, MUSIC_RANDOM_DUNGEON_THEME_2 = 45, MUSIC_BRINE_CAVE = 46, MUSIC_LOWER_BRINE_CAVE = 47, MUSIC_HIDDEN_LAND = 48, MUSIC_HIDDEN_HIGHLAND = 49, MUSIC_TEMPORAL_TOWER = 50, MUSIC_TEMPORAL_SPIRE = 51, MUSIC_MYSTIFYING_FOREST = 52, MUSIC_BLIZZARD_ISLAND_RESCUE_TEAM_MEDLEY = 53, MUSIC_SURROUNDED_SEA = 54, MUSIC_RANDOM_DUNGEON_THEME_1 = 55, MUSIC_AEGIS_CAVE = 56, MUSIC_CONCEALED_RUINS = 57, MUSIC_MT_TRAVAIL = 58, MUSIC_IN_THE_NIGHTMARE = 59, MUSIC_MIRACLE_SEA = 60, MUSIC_TREESHROUD_FOREST = 61, MUSIC_DARK_CRATER = 62, MUSIC_DEEP_DARK_CRATER = 63, MUSIC_INTRO_ALTERNATE_UNUSED = 64, MUSIC_PERFECT_SENTRY_DUTY = 65, MUSIC_GOOD_SENTRY_DUTY = 66, MUSIC_DECENT_SENTRY_DUTY = 67, MUSIC_FAILED_SENTRY_DUTY = 68, MUSIC_ON_THE_BEACH_AT_DUSK = 69, MUSIC_GOODNIGHT = 70, MUSIC_GOODNIGHT_ALTERNATE_UNUSED = 71, MUSIC_AT_THE_END_OF_THE_DAY = 72, MUSIC_GUILDMASTER_WIGGLYTUFF = 73, MUSIC_GROWING_ANXIETY = 74, MUSIC_THE_POWER_OF_DARKNESS = 75, MUSIC_OH_NO = 76, MUSIC_TIME_GEAR = 77, MUSIC_TIME_GEAR_REMIX = 78, MUSIC_I_SAW_SOMETHING_AGAIN = 79, MUSIC_IN_THE_FUTURE = 80, MUSIC_PLANETS_PARALYSIS = 81, MUSIC_THROUGH_THE_SEA_OF_TIME = 82, MUSIC_IN_THE_HANDS_OF_FATE = 83, MUSIC_TIME_RESTORED = 84, MUSIC_DONT_EVER_FORGET = 85, MUSIC_A_WISH_FOR_PEACE = 86, MUSIC_ON_THE_BEACH_AT_DUSK_INTRO_ONLY = 87, MUSIC_MEMORIES_RETURNED = 88, MUSIC_ENDING_THEME_INTRO = 89, MUSIC_ENDING_THEME = 90, MUSIC_EPILOGUE_THEME = 91, MUSIC_TITLE_THEME_ALTERNATE_1_UNUSED = 92, MUSIC_TITLE_THEME_ALTERNATE_2_UNUSED = 93, MUSIC_MURKY_FOREST = 94, MUSIC_SKY_PEAK_CAVE = 95, MUSIC_SOUTHERN_JUNGLE = 96, MUSIC_SKY_PEAK_COAST = 97, MUSIC_SPRING_CAVE = 98, MUSIC_LOWER_SPRING_CAVE = 99, MUSIC_OCEAN_SFX = 100, MUSIC_THUNDERSTORM_SFX = 101, MUSIC_THUNDERSTORM_MUFFLED_SFX = 102, MUSIC_RUMBLING_SFX = 103, MUSIC_RUMBLING_LOUDER_SFX = 104, MUSIC_RUMBLING_LOUDEST_SFX = 105, MUSIC_RUNNING_HOT_WATER_SFX = 106, MUSIC_TEMPORAL_PINNACLE_SFX = 107, MUSIC_TEMPORAL_PINNACLE = 108, MUSIC_NULL_0x6D = 109, MUSIC_HEAVY_FOOTSTEPS_SFX = 110, MUSIC_SINGLE_TONE_RINGING_SFX = 111, MUSIC_ELECTRICITY_SFX_1 = 112, MUSIC_ELECTRICITY_SFX_2 = 113, MUSIC_ELECTRICITY_SFX_3 = 114, MUSIC_FIRE_CRACKLING_SFX_1 = 115, MUSIC_FIRE_CRACKLING_SFX_2 = 116, MUSIC_RELIC_FRAGMENT_SFX = 117, MUSIC_RAINBOW_STONESHIP_SFX = 118, MUSIC_RAINBOW_STONESHIP_PREPARING_SFX = 119, MUSIC_HUMMING_SFX = 120, MUSIC_HAVE_TO_GET_HOME = 121, MUSIC_FARTHER_AWAY = 122, MUSIC_PALKIAS_ONSLAUGHT = 123, MUSIC_NONE_0x7C = 124, MUSIC_WATERFALL_SFX = 125, MUSIC_EATING_SFX = 126, MUSIC_OMINOUS_STRING_NOTE_SFX = 127, MUSIC_FLOOD_SFX = 128, MUSIC_PELIPPER_ISLAND = 129, MUSIC_TITLE_THEME = 130, MUSIC_HEARTWARMING = 131, MUSIC_DOWN_A_DARK_PATH = 132, MUSIC_RISING_FEAR = 133, MUSIC_TEAM_SKULL = 134, MUSIC_SYMPATHY = 135, MUSIC_BEYOND_THE_DREAM = 136, MUSIC_AIR_OF_UNEASE = 137, MUSIC_ONE_FOR_ALL = 138, MUSIC__ALL_FOR_ONE = 139, MUSIC_BOULDER_QUARRY = 140, MUSIC_SPRING_CAVE_DEPTHS = 141, MUSIC_STAR_CAVE = 142, MUSIC_DEEP_STAR_CAVE = 143, MUSIC_LIMESTONE_CAVE = 144, MUSIC_DEEP_LIMESTONE_CAVE = 145, MUSIC_RANDOM_DUNGEON_THEME_3 = 146, MUSIC_FORTUNE_RAVINE = 147, MUSIC_FORTUNE_RAVINE_DEPTHS = 148, MUSIC_BARREN_VALLEY = 149, MUSIC_DARK_WASTELAND = 150, MUSIC_SPACIAL_CLIFFS = 151, MUSIC_DARK_ICE_MOUNTAIN = 152, MUSIC_ICICLE_FOREST = 153, MUSIC_VAST_ICE_MOUNTAIN = 154, MUSIC_VAST_ICE_MOUNTAIN_PEAK = 155, MUSIC_SKY_PEAK_FOREST = 156, MUSIC_SKY_PEAK_PRAIRIE = 157, MUSIC_SKY_PEAK_SNOWFIELD = 158, MUSIC_SKY_PEAK_FINAL_PASS = 159, MUSIC_SPINDAS_CAFE = 160, MUSIC_LUDICOLO_DANCE = 161, MUSIC_ILLUSION_STONE_CHAMBER = 162, MUSIC_IT_CANT_BE = 163, MUSIC_DEFEND_GLOBE = 164, MUSIC_DEFEND_GLOBE_ENDING = 165, MUSIC_TEAM_CHARMS_THEME = 166, MUSIC_HERE_COMES_TEAM_CHARM = 167, MUSIC_FOR_A_NEW_LIFE = 168, MUSIC_LIVING_SPIRIT = 169, MUSIC_PROUD_ACCOMPLISHMENT = 170, MUSIC_IN_THE_MORNING_SUN = 171, MUSIC_A_NEW_WORLD = 172, MUSIC_THOUGHTS_FOR_FRIENDS = 173, MUSIC_LIFE_GOES_ON_ENDING = 174, MUSIC_ITS_NOT_A_MIRACLE = 175, MUSIC_A_MESSAGE_ON_THE_WIND = 176, MUSIC_A_FUN_EXPLORATION = 177, MUSIC_SHAYMIN_VILLAGE = 178, MUSIC_TEAM_CHARMS_THEME_INTRO_ONLY = 179, MUSIC_RUMBLING_SFX_4 = 180, MUSIC_RUMBLING_SFX_5 = 181, MUSIC_OCEAN_MUFFLED_SFX = 182, MUSIC_WIND_SFX_1 = 183, MUSIC_LIMESTONE_CAVERN_DEPTHS_SFX = 184, MUSIC_FIRE_CRACKLING_SFX_3 = 185, MUSIC_SKY_PEAK_8TH_STATION_CLEARING_SFX = 186, MUSIC_WIND_AND_RAIN_SFX = 187, MUSIC_VAST_ICE_MOUNTAIN_PINNACLE_SFX = 188, MUSIC_SPRING_CAVE_SFX = 189, MUSIC_WIND_SFX_2 = 190, MUSIC_SOUTHERN_JUNGLE_EXIT_SFX = 191, MUSIC_BOULDER_QUARRY_CLEARING_SFX = 192, MUSIC_WATERFALL_CAVE_VISION_SFX = 193, MUSIC_WIND_SFX_3 = 194, MUSIC_NULL_0xC2 = 195, MUSIC_NULL_0xC3 = 196, MUSIC_NULL_0xC4 = 197, MUSIC_NULL_0xC5 = 198, MUSIC_NULL_0xC6 = 199, MUSIC_TEAM_CHARMS_THEME_ALTERNATE_1_UNUSED = 200, MUSIC_TEAM_CHARM_JINGLE = 201, MUSIC_TEAM_CHARMS_THEME_ALTERNATE_2_UNUSED = 202, MUSIC_NONE_0x3E7 = 999, }; // Status IDs // While there seems to be a global status order, this enum isn't used exactly that way in // practice. See the comments for struct status. enum status_id { STATUS_NONE = 0, // Called "-" internally STATUS_SLEEP = 1, STATUS_SLEEPLESS = 2, // Won't get sleepy STATUS_NIGHTMARE = 3, // Caught in a nightmare STATUS_YAWNING = 4, STATUS_NAPPING = 5, STATUS_LOW_HP = 6, // Low HP! Situation critical! STATUS_BURN = 7, // Burned STATUS_POISONED = 8, STATUS_BADLY_POISONED = 9, STATUS_PARALYSIS = 10, // Paralyzed STATUS_IDENTIFYING = 11, STATUS_FROZEN = 12, STATUS_SHADOW_HOLD = 13, // Immobilized STATUS_WRAP = 14, // Wrapped around foe STATUS_WRAPPED = 15, // Wrapped by foe STATUS_INGRAIN = 16, // Using Ingrain STATUS_PETRIFIED = 17, STATUS_CONSTRICTION = 18, // Being squeezed STATUS_FAMISHED = 19, // About to drop from hunger STATUS_CRINGE = 20, // Cringing STATUS_CONFUSED = 21, STATUS_PAUSED = 22, // Pausing STATUS_COWERING = 23, STATUS_TAUNTED = 24, STATUS_ENCORE = 25, // Afflicted with Encore STATUS_INFATUATED = 26, STATUS_DOUBLE_SPEED = 27, // Sped up STATUS_BIDE = 28, // Biding STATUS_SOLARBEAM = 29, // Charging SolarBeam STATUS_SKY_ATTACK = 30, // Charging Sky Attack STATUS_RAZOR_WIND = 31, // Charging Razor Wind STATUS_FOCUS_PUNCH = 32, // Charging Focus Punch STATUS_SKULL_BASH = 33, // Charging Skull Bash STATUS_FLYING = 34, // Flying high up STATUS_BOUNCING = 35, STATUS_DIVING = 36, // Hiding underwater STATUS_DIGGING = 37, // Burrowing underground STATUS_CHARGING = 38, // Using Charge STATUS_ENRAGED = 39, // Shaking with rage STATUS_SHADOW_FORCE = 40, // Hiding among shadows STATUS_HALF_SPEED = 41, // Slowed down STATUS_REFLECT = 42, // Protected by Reflect STATUS_SAFEGUARD = 43, // Protected by Safeguard STATUS_LIGHT_SCREEN = 44, // Protected by Light Screen STATUS_COUNTER = 45, // Ready to counter STATUS_MAGIC_COAT = 46, // Protected by Magic Coat STATUS_WISH = 47, // Making a wish STATUS_PROTECT = 48, // Protecting itself STATUS_MIRROR_COAT = 49, // Protected by Mirror Coat STATUS_ENDURING = 50, // Set to endure STATUS_MINI_COUNTER = 51, // Ready to deliver mini counters STATUS_MIRROR_MOVE = 52, // Using Mirror Move STATUS_CONVERSION2 = 53, // Alt Using Conversion 2 STATUS_VITAL_THROW = 54, // Ready to use Vital Throw STATUS_MIST = 55, // Protected by Mist STATUS_METAL_BURST = 56, // Protected by Metal Burst STATUS_AQUA_RING = 57, // Cloaked by Aqua Ring STATUS_LUCKY_CHANT = 58, // Lucky Chant in effect STATUS_WEAKENED = 59, STATUS_CURSED = 60, STATUS_DECOY = 61, STATUS_SNATCH = 62, // Ready to snatch moves STATUS_GASTRO_ACID = 63, // Drenched with Gastro Acid STATUS_HEAL_BLOCK = 64, // Prevented from healing STATUS_EMBARGO = 65, // Under Embargo STATUS_HUNGRY_PAL = 66, // Immobilized by hunger STATUS_LEECH_SEED = 67, // Afflicted with Leech Seed STATUS_DESTINY_BOND = 68, // Using Destiny Bond STATUS_POWERED_UP = 69, STATUS_SURE_SHOT = 70, // Total accuracy for moves STATUS_WHIFFER = 71, // Afflicted with Smokescreen STATUS_SET_DAMAGE = 72, // Inflicts set damage STATUS_FOCUS_ENERGY = 73, // Enhanced critical-hit rate STATUS_UNNAMED_0x4A = 74, // Called "-" internally STATUS_LONG_TOSS = 75, // Throws thrown items far STATUS_PIERCE = 76, // Pierces walls w/ thrown items STATUS_UNNAMED_0x4D = 77, STATUS_INVISIBLE = 78, STATUS_TRANSFORMED = 79, // Transformed Pokemon STATUS_MOBILE = 80, // Travel anywhere STATUS_SLIP = 81, // Walk on water STATUS_UNNAMED_0x52 = 82, STATUS_BLINKER = 83, // Blinded STATUS_CROSS_EYED = 84, // Hallucinating STATUS_EYEDROPS = 85, // Seeing the unseeable STATUS_DROPEYE = 86, // Poor vision STATUS_UNNAMED_0x57 = 87, STATUS_MUZZLED = 88, // Unable to use its mouth STATUS_UNNAMED_0x59 = 89, STATUS_MIRACLE_EYE = 90, // Exposed by Miracle Eye STATUS_UNNAMED_0x5B = 91, STATUS_MAGNET_RISE = 92, // Levitating with Magnet Rise STATUS_STOCKPILING = 93, STATUS_POWER_EARS = 94, // Can locate other Pokemon STATUS_SCANNING = 95, // Can locate items STATUS_GRUDGE = 96, // Bearing a grudge STATUS_EXPOSED = 97, // Exposed to sight STATUS_TERRIFIED = 98, STATUS_PERISH_SONG = 99, // Received Perish Song STATUS_DOUBLED_ATTACK = 100, // Has sped-up attacks STATUS_STAIR_SPOTTER = 101, // Can locate stairs }; enum status_sleep_id { STATUS_SLEEP_NONE = 0, STATUS_SLEEP_SLEEP = 1, STATUS_SLEEP_SLEEPLESS = 2, STATUS_SLEEP_NIGHTMARE = 3, STATUS_SLEEP_YAWNING = 4, STATUS_SLEEP_NAPPING = 5, }; enum status_burn_id { STATUS_BURN_NONE = 0, STATUS_BURN_BURN = 1, STATUS_BURN_POISONED = 2, STATUS_BURN_BADLY_POISONED = 3, STATUS_BURN_PARALYSIS = 4, }; enum status_frozen_id { STATUS_FROZEN_NONE = 0, STATUS_FROZEN_FROZEN = 1, STATUS_FROZEN_SHADOW_HOLD = 2, STATUS_FROZEN_WRAP = 3, STATUS_FROZEN_WRAPPED = 4, STATUS_FROZEN_INGRAIN = 5, STATUS_FROZEN_PETRIFIED = 6, STATUS_FROZEN_CONSTRICTION = 7, }; enum status_cringe_id { STATUS_CRINGE_NONE = 0, STATUS_CRINGE_CRINGE = 1, STATUS_CRINGE_CONFUSED = 2, STATUS_CRINGE_PAUSED = 3, STATUS_CRINGE_COWERING = 4, STATUS_CRINGE_TAUNTED = 5, STATUS_CRINGE_ENCORE = 6, STATUS_CRINGE_INFATUATED = 7, }; enum status_two_turn_id { STATUS_TWO_TURN_NONE = 0, STATUS_TWO_TURN_BIDE = 1, STATUS_TWO_TURN_SOLARBEAM = 2, STATUS_TWO_TURN_SKY_ATTACK = 3, STATUS_TWO_TURN_RAZOR_WIND = 4, STATUS_TWO_TURN_FOCUS_PUNCH = 5, STATUS_TWO_TURN_SKULL_BASH = 6, STATUS_TWO_TURN_FLYING = 7, STATUS_TWO_TURN_BOUNCING = 8, STATUS_TWO_TURN_DIVING = 9, STATUS_TWO_TURN_DIGGING = 10, STATUS_TWO_TURN_CHARGING = 11, STATUS_TWO_TURN_ENRAGED = 12, STATUS_TWO_TURN_SHADOW_FORCE = 13, }; enum status_reflect_id { STATUS_REFLECT_NONE = 0, STATUS_REFLECT_REFLECT = 1, STATUS_REFLECT_SAFEGUARD = 2, STATUS_REFLECT_LIGHT_SCREEN = 3, STATUS_REFLECT_COUNTER = 4, STATUS_REFLECT_MAGIC_COAT = 5, STATUS_REFLECT_WISH = 6, STATUS_REFLECT_PROTECT = 7, STATUS_REFLECT_MIRROR_COAT = 8, STATUS_REFLECT_ENDURING = 9, STATUS_REFLECT_MINI_COUNTER = 10, STATUS_REFLECT_MIRROR_MOVE = 11, STATUS_REFLECT_CONVERSION2 = 12, STATUS_REFLECT_VITAL_THROW = 13, STATUS_REFLECT_MIST = 14, STATUS_REFLECT_METAL_BURST = 15, STATUS_REFLECT_AQUA_RING = 16, STATUS_REFLECT_LUCKY_CHANT = 17, }; enum status_curse_id { STATUS_CURSE_NONE = 0, STATUS_CURSE_CURSED = 1, STATUS_CURSE_DECOY = 2, STATUS_CURSE_SNATCH = 3, STATUS_CURSE_GASTRO_ACID = 4, STATUS_CURSE_HEAL_BLOCK = 5, STATUS_CURSE_EMBARGO = 6, }; enum status_leech_seed_id { STATUS_LEECH_SEED_NONE = 0, STATUS_LEECH_SEED_LEECH_SEED = 1, STATUS_LEECH_SEED_DESTINY_BOND = 2, }; enum status_sure_shot_id { STATUS_SURE_SHOT_NONE = 0, STATUS_SURE_SHOT_SURE_SHOT = 1, STATUS_SURE_SHOT_WHIFFER = 2, STATUS_SURE_SHOT_SET_DAMAGE = 3, STATUS_SURE_SHOT_FOCUS_ENERGY = 4, }; enum status_long_toss_id { STATUS_LONG_TOSS_NONE = 0, STATUS_LONG_TOSS_LONG_TOSS = 1, STATUS_LONG_TOSS_PIERCE = 2 }; enum status_invisible_id { STATUS_INVISIBLE_NONE = 0, STATUS_INVISIBLE_INVISIBLE = 1, STATUS_INVISIBLE_TRANSFORMED = 2, STATUS_INVISIBLE_MOBILE = 3, STATUS_INVISIBLE_SLIP = 4, }; enum status_blinker_id { STATUS_BLINKER_NONE = 0, STATUS_BLINKER_BLINKER = 1, STATUS_BLINKER_CROSS_EYED = 2, STATUS_BLINKER_EYEDROPS = 3, STATUS_BLINKER_DROPEYE = 4, }; // Fixed room ID. Fixed rooms can be full floor layouts, like most end-of-dungeon boss chambers, // multi-room layouts in the case of Treasure Memos, or single rooms within a larger floor layout // like with key chambers. enum fixed_room_id { FIXED_NONE = 0, FIXED_BEACH_CAVE_PIT = 1, FIXED_MT_BRISTLE_PEAK = 2, FIXED_STEAM_CAVE_PEAK = 3, FIXED_AMP_CLEARING = 4, FIXED_UNDERGROUND_LAKE = 5, FIXED_CRYSTAL_LAKE = 6, FIXED_SEALED_RUIN_PIT = 7, FIXED_BRINE_CAVE_PIT = 8, FIXED_OLD_RUINS = 9, FIXED_TEMPORAL_PINNACLE = 10, FIXED_MYSTIFYING_FOREST_CLEARING = 11, FIXED_CREVICE_CAVE_PIT = 12, FIXED_MIRACLE_SEABED = 13, FIXED_REGICE_CHAMBER = 14, FIXED_REGIROCK_CHAMBER = 15, FIXED_REGISTEEL_CHAMBER = 16, FIXED_REGIGIGAS_CHAMBER = 17, FIXED_SPACIAL_RIFT_BOTTOM = 18, FIXED_DARK_CRATER_PIT = 19, FIXED_GIANT_VOLCANO_PEAK = 20, FIXED_SHIMMER_DESERT_PIT = 21, FIXED_MT_AVALANCHE_PEAK = 22, FIXED_BOTTOMLESS_SEA_DEPTHS = 23, FIXED_WORLD_ABYSS_PIT = 24, FIXED_DEEP_MYSTERY_JUNGLE = 25, FIXED_SKY_STAIRWAY_APEX = 26, FIXED_EMPTY_OCTAGON = 27, FIXED_SKY_PEAK_5TH_STATION_CLEARING = 28, FIXED_SKY_PEAK_SUMMIT = 29, FIXED_DEEP_STAR_CAVE_SE1 = 30, FIXED_STAR_CAVE_PIT_SE1 = 31, FIXED_FORTUNE_RAVINE_PIT = 32, FIXED_BARREN_VALLEY_CLEARING = 33, FIXED_BLACK_SWAMP = 34, FIXED_DARK_ICE_MOUNTAIN_PINNACLE = 35, FIXED_VAST_ICE_MOUNTAIN_PINNACLE = 36, FIXED_BOULDER_QUARRY_CLEARING = 37, FIXED_LIMESTONE_CAVERN_DEPTHS = 38, FIXED_UPPER_SPRING_CAVE = 39, FIXED_MIDDLE_SPRING_CAVE = 40, FIXED_SPRING_CAVE_PIT = 41, FIXED_DEEP_STAR_CAVE = 42, FIXED_BARREN_VALLEY_CLEARING_REVISIT = 43, FIXED_UNUSED_0x2C = 44, FIXED_UNUSED_0x2D = 45, FIXED_UNUSED_0x2E = 46, FIXED_UNUSED_0x2F = 47, FIXED_UNUSED_0x30 = 48, FIXED_UNUSED_0x31 = 49, FIXED_UNUSED_0x32 = 50, FIXED_UNUSED_0x33 = 51, FIXED_UNUSED_0x34 = 52, FIXED_UNUSED_0x35 = 53, FIXED_UNUSED_0x36 = 54, FIXED_UNUSED_0x37 = 55, FIXED_UNUSED_0x38 = 56, FIXED_UNUSED_0x39 = 57, FIXED_UNUSED_0x3A = 58, FIXED_UNUSED_0x3B = 59, FIXED_UNUSED_0x3C = 60, FIXED_UNUSED_0x3D = 61, FIXED_UNUSED_0x3E = 62, FIXED_TEST = 63, FIXED_EMPTY_RECTANGLE = 64, FIXED_BEACH_CAVE_PIT_REVISIT = 65, FIXED_MT_BRISTLE_PEAK_REVISIT = 66, FIXED_STEAM_CAVE_PEAK_REVISIT = 67, FIXED_AMP_CLEARING_REVISIT = 68, FIXED_UNDERGROUND_LAKE_REVISIT = 69, FIXED_CRYSTAL_LAKE_REVISIT = 70, FIXED_SEALED_RUIN_PIT_REVISIT = 71, FIXED_BRINE_CAVE_PIT_REVISIT = 72, FIXED_OLD_RUINS_REVISIT = 73, FIXED_TEMPORAL_PINNACLE_REVISIT = 74, FIXED_REGIGIGAS_CHAMBER_REVISIT = 75, FIXED_SPACIAL_RIFT_BOTTOM_REVISIT = 76, FIXED_DARK_CRATER_PIT_REVISIT = 77, FIXED_UNUSED_0x4E = 78, FIXED_UNUSED_0x4F = 79, FIXED_LABYRINTH_CAVE = 80, FIXED_ZERO_ISLE_NORTH = 81, FIXED_ZERO_ISLE_EAST = 82, FIXED_ZERO_ISLE_WEST = 83, FIXED_ZERO_ISLE_SOUTH = 84, FIXED_ORAN_FOREST = 85, FIXED_MARINE_RESORT = 86, FIXED_SERENITY_RIVER = 87, FIXED_LANDSLIDE_CAVE = 88, FIXED_LUSH_PRAIRIE = 89, FIXED_TINY_MEADOW = 90, FIXED_SURROUNDED_SEA = 91, FIXED_CONCEALED_RUINS = 92, FIXED_LAKE_AFAR = 93, FIXED_HAPPY_OUTLOOK = 94, FIXED_MT_MISTRAL = 95, FIXED_SHIMMER_HILL = 96, FIXED_LOST_WILDERNESS = 97, FIXED_MIDNIGHT_FOREST = 98, FIXED_ZERO_ISLE_CENTER = 99, FIXED_OBLIVION_FOREST = 100, FIXED_TREACHEROUS_WATERS = 101, FIXED_SOUTHEASTERN_ISLANDS = 102, FIXED_INFERNO_CAVE = 103, FIXED_MIDNIGHT_FOREST_COPY = 104, FIXED_UNUSED_0x69 = 105, FIXED_UNUSED_0x6A = 106, FIXED_UNUSED_0x6B = 107, FIXED_UNUSED_0x6C = 108, FIXED_UNUSED_0x6D = 109, FIXED_SUBSTITUTE_ROOM = 110, FIXED_GOLDEN_CHAMBER = 111, FIXED_SECRET_BAZAAR = 112, FIXED_SECRET_ROOM = 113, FIXED_TREASURE_MEMO_0 = 114, FIXED_TREASURE_MEMO_1 = 115, FIXED_TREASURE_MEMO_2 = 116, FIXED_TREASURE_MEMO_3 = 117, FIXED_TREASURE_MEMO_4 = 118, FIXED_TREASURE_MEMO_5 = 119, FIXED_TREASURE_MEMO_6 = 120, FIXED_TREASURE_MEMO_7 = 121, FIXED_TREASURE_MEMO_8 = 122, FIXED_TREASURE_MEMO_9 = 123, FIXED_TREASURE_MEMO_10 = 124, FIXED_TREASURE_MEMO_11 = 125, FIXED_TREASURE_MEMO_12 = 126, FIXED_TREASURE_MEMO_13 = 127, FIXED_TREASURE_MEMO_14 = 128, FIXED_TREASURE_MEMO_15 = 129, FIXED_TREASURE_MEMO_16 = 130, FIXED_TREASURE_MEMO_17 = 131, FIXED_TREASURE_MEMO_18 = 132, FIXED_TREASURE_MEMO_19 = 133, FIXED_TREASURE_MEMO_20 = 134, FIXED_TREASURE_MEMO_21 = 135, FIXED_TREASURE_MEMO_22 = 136, FIXED_TREASURE_MEMO_23 = 137, FIXED_TREASURE_MEMO_24 = 138, FIXED_TREASURE_MEMO_25 = 139, FIXED_TREASURE_MEMO_26 = 140, FIXED_TREASURE_MEMO_27 = 141, FIXED_TREASURE_MEMO_28 = 142, FIXED_TREASURE_MEMO_29 = 143, FIXED_TREASURE_MEMO_30 = 144, FIXED_MEWTWO_CHALLENGE_FLOOR = 145, FIXED_ENTEI_CHALLENGE_FLOOR = 146, FIXED_RAIKOU_CHALLENGE_FLOOR = 147, FIXED_SUICUNE_CHALLENGE_FLOOR = 148, FIXED_STAR_CAVE_PIT = 149, FIXED_CHALLENGE_LETTER_FLOOR_1 = 150, FIXED_CHALLENGE_LETTER_FLOOR_2 = 151, FIXED_CHALLENGE_LETTER_FLOOR_3 = 152, FIXED_CHALLENGE_LETTER_FLOOR_4 = 153, FIXED_CHALLENGE_LETTER_FLOOR_5 = 154, FIXED_UNUSED_0x9B = 155, FIXED_UNUSED_0x9C = 156, FIXED_UNUSED_0x9D = 157, FIXED_UNUSED_0x9E = 158, FIXED_UNUSED_0x9F = 159, FIXED_OUTLAW_TEAM_FLOOR_1 = 160, FIXED_OUTLAW_TEAM_FLOOR_2 = 161, FIXED_OUTLAW_TEAM_FLOOR_3 = 162, FIXED_OUTLAW_TEAM_FLOOR_4 = 163, FIXED_OUTLAW_TEAM_FLOOR_5 = 164, FIXED_SEALED_CHAMBER = 165, FIXED_UNUSED_0xA6 = 166, FIXED_UNUSED_0xA7 = 167, FIXED_UNUSED_0xA8 = 168, FIXED_UNUSED_0xA9 = 169, FIXED_CLEAR_SILK_CHAMBER = 170, FIXED_ORANGE_SILK_CHAMBER = 171, FIXED_GREEN_SILK_CHAMBER = 172, FIXED_IRON_SILK_CHAMBER = 173, FIXED_JOY_SEED_CHAMBER_6X = 174, FIXED_FRIEND_BOW_CHAMBER = 175, FIXED_PINK_SILK_CHAMBER = 176, FIXED_GRAY_SILK_CHAMBER = 177, FIXED_PURPLE_SILK_CHAMBER = 178, FIXED_JOY_SEED_CHAMBER_1X = 179, FIXED_ROYAL_SILK_CHAMBER = 180, FIXED_MIRACLE_CHEST_CHAMBER = 181, FIXED_BROWN_SILK_CHAMBER = 182, FIXED_SKY_SILK_CHAMBER = 183, FIXED_GOLD_SILK_CHAMBER = 184, FIXED_BLACK_SILK_CHAMBER = 185, FIXED_JOY_SEED_CHAMBER_2X = 186, FIXED_WONDER_GUMMI_CHAMBER = 187, FIXED_ITEM_CHAMBER_1 = 188, FIXED_ITEM_CHAMBER_2 = 189, FIXED_WONDER_CHEST_CHAMBER = 190, FIXED_RED_SILK_CHAMBER = 191, FIXED_BLUE_SILK_CHAMBER = 192, FIXED_GRASS_SILK_CHAMBER = 193, FIXED_YELLOW_SILK_CHAMBER = 194, FIXED_REVIVER_SEED_CHAMBER_1 = 195, FIXED_REVIVER_SEED_CHAMBER_2 = 196, FIXED_EMPTY_SEALED_CHAMBER = 197, FIXED_UNUSED_0xC6 = 198, FIXED_UNUSED_0xC7 = 199, FIXED_UNUSED_0xC8 = 200, FIXED_UNUSED_0xC9 = 201, FIXED_UNUSED_0xCA = 202, FIXED_UNUSED_0xCB = 203, FIXED_UNUSED_0xCC = 204, FIXED_UNUSED_0xCD = 205, FIXED_UNUSED_0xCE = 206, FIXED_UNUSED_0xCF = 207, FIXED_UNUSED_0xD0 = 208, FIXED_UNUSED_0xD1 = 209, FIXED_UNUSED_0xD2 = 210, FIXED_UNUSED_0xD3 = 211, FIXED_UNUSED_0xD4 = 212, FIXED_UNUSED_0xD5 = 213, FIXED_UNUSED_0xD6 = 214, FIXED_UNUSED_0xD7 = 215, FIXED_UNUSED_0xD8 = 216, FIXED_UNUSED_0xD9 = 217, FIXED_UNUSED_0xDA = 218, FIXED_UNUSED_0xDB = 219, FIXED_LEGENDARY_EXCLUSIVE_CHAMBER_1 = 220, FIXED_LEGENDARY_EXCLUSIVE_CHAMBER_2 = 221, FIXED_LEGENDARY_EXCLUSIVE_CHAMBER_3 = 222, FIXED_LEGENDARY_EXCLUSIVE_CHAMBER_4 = 223, FIXED_LEGENDARY_EXCLUSIVE_CHAMBER_5 = 224, FIXED_LEGENDARY_EXCLUSIVE_CHAMBER_6 = 225, FIXED_LEGENDARY_EXCLUSIVE_CHAMBER_7 = 226, FIXED_LEGENDARY_EXCLUSIVE_CHAMBER_8 = 227, FIXED_LEGENDARY_EXCLUSIVE_CHAMBER_9 = 228, FIXED_LEGENDARY_EXCLUSIVE_CHAMBER_10 = 229, FIXED_UNUSED_0xE6 = 230, FIXED_UNUSED_0xE7 = 231, FIXED_UNUSED_0xE8 = 232, FIXED_UNUSED_0xE9 = 233, FIXED_UNUSED_0xEA = 234, FIXED_UNUSED_0xEB = 235, FIXED_UNUSED_0xEC = 236, FIXED_UNUSED_0xED = 237, FIXED_UNUSED_0xEE = 238, FIXED_UNUSED_0xEF = 239, FIXED_UNUSED_0xF0 = 240, FIXED_UNUSED_0xF1 = 241, FIXED_UNUSED_0xF2 = 242, FIXED_UNUSED_0xF3 = 243, FIXED_UNUSED_0xF4 = 244, FIXED_UNUSED_0xF5 = 245, FIXED_UNUSED_0xF6 = 246, FIXED_UNUSED_0xF7 = 247, FIXED_UNUSED_0xF8 = 248, FIXED_UNUSED_0xF9 = 249, FIXED_UNUSED_0xFA = 250, FIXED_UNUSED_0xFB = 251, FIXED_UNUSED_0xFC = 252, FIXED_UNUSED_0xFD = 253, FIXED_UNUSED_0xFE = 254, FIXED_UNUSED_0xFF = 255, }; // The cause of a monster taking damage, not including the move case. // These codes should all be greater than any move ID. // Some of the values are used as faint reasons or on the "The Last Outing" screen // rather than as damage sources. enum damage_source_non_move { DAMAGE_SOURCE_TRANSFORM_FRIEND = 563, // "was transformed into a friend" DAMAGE_SOURCE_NOT_BEFRIENDED = 564, // "left without being befriended" DAMAGE_SOURCE_DEBUG_ATTACK = 565, DAMAGE_SOURCE_JUMP_KICK = 566, DAMAGE_SOURCE_HI_JUMP_KICK = 567, DAMAGE_SOURCE_DESTINY_BOND = 568, DAMAGE_SOURCE_SLUDGE = 569, DAMAGE_SOURCE_POWERFUL_MOVE_1 = 570, DAMAGE_SOURCE_POWERFUL_MOVE_2 = 571, DAMAGE_SOURCE_RECOIL = 572, DAMAGE_SOURCE_SPLASH = 573, DAMAGE_SOURCE_ENERGY = 574, // "an enemy's pent-up energy" DAMAGE_SOURCE_POWERFUL_MOVE_3 = 575, DAMAGE_SOURCE_POWERFUL_MOVE_4 = 576, DAMAGE_SOURCE_POWERFUL_MOVE_5 = 577, DAMAGE_SOURCE_POWERFUL_MOVE_6 = 578, DAMAGE_SOURCE_POWERFUL_MOVE_7 = 579, DAMAGE_SOURCE_POWERFUL_MOVE_8 = 580, DAMAGE_SOURCE_SPIKES = 581, DAMAGE_SOURCE_DEBUG_DAMAGE = 582, DAMAGE_SOURCE_BURN = 583, DAMAGE_SOURCE_CONSTRICTION = 584, DAMAGE_SOURCE_POISON = 585, DAMAGE_SOURCE_WRAP = 586, DAMAGE_SOURCE_CURSE = 587, DAMAGE_SOURCE_LEECH_SEED = 588, DAMAGE_SOURCE_PERISH_SONG = 589, DAMAGE_SOURCE_NIGHTMARE = 590, DAMAGE_SOURCE_THROWN_ROCK = 591, DAMAGE_SOURCE_HUNGER = 592, DAMAGE_SOURCE_EXPLODED = 593, // I think this one is only used for the monster that explodes. // Other monsters that are hit by the explosion use // DAMAGE_SOURCE_EXPLOSION. DAMAGE_SOURCE_CHESTNUT_TRAP = 594, DAMAGE_SOURCE_TRAP = 595, DAMAGE_SOURCE_PITFALL_TRAP = 596, DAMAGE_SOURCE_BLAST_SEED = 597, DAMAGE_SOURCE_THROWN_ITEM = 598, DAMAGE_SOURCE_TRANSFORM_ITEM = 599, DAMAGE_SOURCE_KNOCKED_FLYING = 600, DAMAGE_SOURCE_FLYING_MONSTER = 601, DAMAGE_SOURCE_GAVE_UP = 602, // "gave up the exploration" DAMAGE_SOURCE_DELETED = 603, // "was deleted for the sake of an event" DAMAGE_SOURCE_WENT_AWAY = 604, // "went away" DAMAGE_SOURCE_UNSEEN_FORCE = 605, DAMAGE_SOURCE_PARTNER_FAINTED = 606, // "returned with the fallen partner" DAMAGE_SOURCE_WEATHER = 607, DAMAGE_SOURCE_POSSESS = 608, DAMAGE_SOURCE_CLIENT_FAINTED = 609, // "failed to protect the client Pokémon" DAMAGE_SOURCE_ITEM_ORB = 610, DAMAGE_SOURCE_ITEM_NON_ORB = 611, DAMAGE_SOURCE_UNK612 = 612, // "-" DAMAGE_SOURCE_ESCORT_FAINTED = 613, // "failed to escort the client Pokémon" DAMAGE_SOURCE_OTHER_MONSTER_FAINTED = 614, // "returned with the fallen [string:2]" DAMAGE_SOURCE_BIDOOF_FAINTED = 615, DAMAGE_SOURCE_GROVYLE_FAINTED = 616, DAMAGE_SOURCE_CELEBI_FAINTED = 617, DAMAGE_SOURCE_CHATOT_FAINTED = 618, DAMAGE_SOURCE_CRESSELIA_FAINTED = 619, DAMAGE_SOURCE_TOXIC_SPIKES = 620, DAMAGE_SOURCE_STEALTH_ROCK = 621, DAMAGE_SOURCE_BAD_DREAMS = 622, DAMAGE_SOURCE_EXPLOSION = 623, DAMAGE_SOURCE_OREN_BERRY = 624, DAMAGE_SOURCE_DUMMY_625 = 625, DAMAGE_SOURCE_DUMMY_626 = 626, DAMAGE_SOURCE_DUMMY_627 = 627, DAMAGE_SOURCE_DUMMY_628 = 628, DAMAGE_SOURCE_DUMMY_629 = 629, DAMAGE_SOURCE_DUMMY_630 = 630, DAMAGE_SOURCE_DUMMY_631 = 631, DAMAGE_SOURCE_DUMMY_632 = 632, DAMAGE_SOURCE_ESCAPE = 633, // "Escaped in the middle of exploration" DAMAGE_SOURCE_DUNGEON_CLEAR = 634, // "cleared the dungeon" DAMAGE_SOURCE_RESCUE_SUCCESS = 635, // "succeeded in the rescue mission" DAMAGE_SOURCE_MISSION_COMPLETE = 636, // "completed a mission! Impressive!" DAMAGE_SOURCE_BEFRIEND_MEW = 637, // "befriended [CS:N]Mew[CR]!" }; union damage_source { enum move_id move; enum damage_source_non_move other; }; // Weather ID enum weather_id { WEATHER_CLEAR = 0, WEATHER_SUNNY = 1, WEATHER_SANDSTORM = 2, WEATHER_CLOUDY = 3, WEATHER_RAIN = 4, WEATHER_HAIL = 5, WEATHER_FOG = 6, WEATHER_SNOW = 7, WEATHER_RANDOM = 8, }; // Floor layout type during floor generation enum floor_layout { LAYOUT_LARGE = 0, LAYOUT_SMALL = 1, LAYOUT_ONE_ROOM_MONSTER_HOUSE = 2, LAYOUT_OUTER_RING = 3, LAYOUT_CROSSROADS = 4, LAYOUT_TWO_ROOMS_WITH_MONSTER_HOUSE = 5, LAYOUT_LINE = 6, LAYOUT_CROSS = 7, LAYOUT_LARGE_0x8 = 8, LAYOUT_BEETLE = 9, LAYOUT_OUTER_ROOMS = 10, LAYOUT_MEDIUM = 11, LAYOUT_UNUSED_0xC = 12, LAYOUT_UNUSED_0xD = 13, LAYOUT_UNUSED_0xE = 14, LAYOUT_UNUSED_0xF = 15, }; // Trap ID enum trap_id { TRAP_NULL_TRAP = 0, TRAP_MUD_TRAP = 1, TRAP_STICKY_TRAP = 2, TRAP_GRIMY_TRAP = 3, TRAP_SUMMON_TRAP = 4, TRAP_PITFALL_TRAP = 5, TRAP_WARP_TRAP = 6, TRAP_GUST_TRAP = 7, TRAP_SPIN_TRAP = 8, TRAP_SLUMBER_TRAP = 9, TRAP_SLOW_TRAP = 10, TRAP_SEAL_TRAP = 11, TRAP_POISON_TRAP = 12, TRAP_SELFDESTRUCT_TRAP = 13, TRAP_EXPLOSION_TRAP = 14, TRAP_PP_ZERO_TRAP = 15, TRAP_CHESTNUT_TRAP = 16, TRAP_WONDER_TILE = 17, TRAP_POKEMON_TRAP = 18, TRAP_SPIKED_TILE = 19, TRAP_STEALTH_ROCK = 20, TRAP_TOXIC_SPIKES = 21, TRAP_TRIP_TRAP = 22, TRAP_RANDOM_TRAP = 23, TRAP_GRUDGE_TRAP = 24, // Used in fixed room data to indicate that a trap shouldn't be placed on the current tile // Also used to indicate a random non-wonder tile trap should be selected instead during play TRAP_NONE = 25, TRAP_0x1A = 26, TRAP_0x1B = 27, TRAP_0x1C = 28, TRAP_0x1D = 29, TRAP_0x1E = 30, TRAP_0x1F = 31, // Behaves identically to a normal pitfall trap, but uses the sprite where the grate is // already broken. TRAP_PITFALL_TRAP becomes this one when something falls through. TRAP_BROKEN_PITFALL_TRAP = 32, }; // The type of hidden stairs (i.e. where it leads), if present enum hidden_stairs_type { HIDDEN_STAIRS_NONE = 0, HIDDEN_STAIRS_SECRET_BAZAAR = 1, HIDDEN_STAIRS_SECRET_ROOM = 2, HIDDEN_STAIRS_RANDOM_SECRET_BAZAAR_OR_SECRET_ROOM = 255, HIDDEN_STAIRS_PADDING = 0xffffffff, }; // Used to determine which version of a dungeon to load. enum game_id { GAME_SKY = 0, GAME_TIME = 1, GAME_DARKNESS = 2, GAME_PADDING = 0xffffffff, }; // Objective while in a dungeon enum dungeon_objective { OBJECTIVE_STORY = 0, // This dungeon visit is part of the story OBJECTIVE_NORMAL = 1, OBJECTIVE_RESCUE = 2, // Rescuing another player OBJECTIVE_UNK_GAME_MODE_5 = 3, // $GAME_MODE == 5 when entering the dungeon }; // Move category enum move_category { CATEGORY_PHYSICAL = 0, CATEGORY_SPECIAL = 1, CATEGORY_STATUS = 2, CATEGORY_NONE = 3, // this is a guess }; enum type_matchup { MATCHUP_IMMUNE = 0, MATCHUP_NOT_VERY_EFFECTIVE = 1, MATCHUP_NEUTRAL = 2, MATCHUP_SUPER_EFFECTIVE = 3, }; // List of reasons why you can get forcefully kicked out of a dungeon enum forced_loss_reason { FORCED_LOSS_NONE = 0, // You don't have to get kicked out of the dungeon FORCED_LOSS_PARTNER_FAINTED = 1, // Your partner fainted (before postgame) FORCED_LOSS_CLIENT_FAINTED = 2, // Your client fainted FORCED_LOSS_ESCORT_FAINTED = 3, // The client you had to escort fainted // "Your client [name:0] couldn't join you. Let's return to Treasure Town." FORCED_LOSS_CLIENT_CANT_JOIN = 4, FORCED_LOSS_PADDING = 0xffffffff, }; // IQ skill ID. These are usually encoded as bitvectors. enum iq_skill_id { IQ_NONE = 0, IQ_TYPE_ADVANTAGE_MASTER = 1, IQ_ITEM_CATCHER = 2, IQ_COURSE_CHECKER = 3, IQ_SURE_HIT_ATTACKER = 4, IQ_QUICK_DODGER = 5, IQ_PP_CHECKER = 6, IQ_NONTRAITOR = 7, IQ_STATUS_CHECKER = 8, IQ_EXP_GO_GETTER = 9, IQ_EFFICIENCY_EXPERT = 10, IQ_WEAK_TYPE_PICKER = 11, IQ_ALL_TERRAIN_HIKER = 12, IQ_ABSOLUTE_MOVER = 13, IQ_TRAP_AVOIDER = 14, IQ_HOUSE_AVOIDER = 15, IQ_ENERGY_SAVER = 16, IQ_NONSLEEPER = 17, IQ_SELF_CURER = 18, IQ_TRAP_SEER = 19, IQ_LAVA_EVADER = 20, IQ_DEDICATED_TRAVELER = 21, IQ_ITEM_MASTER = 22, IQ_EXCLUSIVE_MOVE_USER = 23, IQ_ESCAPIST = 24, IQ_LOCK_PICKER = 25, IQ_STAIR_SENSOR = 26, IQ_COIN_WATCHER = 27, IQ_EXP_ELITE = 28, IQ_SHARPSHOOTER = 29, IQ_FAST_FRIEND = 30, IQ_PP_SAVER = 31, IQ_BODYGUARD = 32, IQ_CAUTIOUS_CREEPER = 33, IQ_AGGRESSOR = 34, IQ_DEFENDER = 35, IQ_INTIMIDATOR = 36, IQ_SURVIVALIST = 37, IQ_TRAP_BUSTER = 38, IQ_COUNTER_HITTER = 39, IQ_EXTRA_STRIKER = 40, IQ_HIT_AND_RUNNER = 41, IQ_PARRY_EXPERT = 42, IQ_QUICK_STRIKER = 43, IQ_NO_CHARGER = 44, IQ_WARY_FIGHTER = 45, IQ_GAP_PROBER = 46, IQ_POWER_PITCHER = 47, IQ_CONCENTRATOR = 48, IQ_COUNTER_BASHER = 49, IQ_CHEERLEADER = 50, IQ_NATURE_GIFTER = 51, IQ_WISE_HEALER = 52, IQ_QUICK_HEALER = 53, IQ_ACUTE_SNIFFER = 54, IQ_DEEP_BREATHER = 55, IQ_BRICK_TOUGH = 56, IQ_MULTITALENT = 57, IQ_TIME_TRIPPER = 58, IQ_ERRATIC_PLAYER = 59, IQ_PRACTICE_SWINGER = 60, IQ_NO_DEFEATIST = 61, IQ_HAGGLER = 62, IQ_CLUTCH_PERFORMER = 63, IQ_CRITICAL_DODGER = 64, IQ_MAP_SURVEYOR = 65, IQ_PIERCE_HURLER = 66, IQ_COLLECTOR = 67, IQ_TRUE_POWERIST = 68, IQ_NONE_2 = 255, }; enum movement_flag { MOVEMENT_FLAG_SWAPPING_PLACES = 1 << 5, MOVEMENT_FLAG_WALKING = 1 << 9, MOVEMENT_FLAG_UNK_14 = 1 << 14, MOVEMENT_FLAG_SWAPPING_PLACES_PETRIFIED_ALLY = 1 << 15, // Set if the Pokémon is petrified and the leader cures them by swapping places. }; // Mobility types for monsters enum mobility_type { MOBILITY_NORMAL = 0, // This is unused within the monster data in monster.md, but is probably used in dungeons // with a meaning that's dependent on what the secondary terrain type is // (either MOBILITY_LAVA or MOBILITY_WATER). MOBILITY_SECONDARY = 1, MOBILITY_HOVERING = 2, MOBILITY_INTANGIBLE = 3, MOBILITY_LAVA = 4, MOBILITY_WATER = 5, NUM_MOBILITY_TYPES }; enum wan_source_type { WAN_SOURCE_NULL = 0, WAN_SOURCE_FILE = 1, // Directly loaded from a .wan WAN_SOURCE_PACK = 2, // Loaded from a pack file }; enum pack_file_id { PACK_ARCHIVE_MONSTER = 0, PACK_ARCHIVE_M_ATTACK = 1, PACK_ARCHIVE_M_GROUND = 2, PACK_ARCHIVE_EFFECT = 3, PACK_ARCHIVE_DUNGEON = 4, PACK_ARCHIVE_M_LEVEL = 5, }; enum dungeon_restriction_flags { DUNGEON_ASCENDS = 1 << 0, // 0 if dungeon goes down, 1 if it goes up ENEMIES_CAN_EVOLVE = 1 << 1, GRANT_XP = 1 << 2, // when defeating enemies ALLOW_RECRUITING = 1 << 3, RESET_TEAM_LEVEL_TO_1 = 1 << 4, // when entering KEEP_MONEY_ON_ENTRY = 1 << 5, // 0 if money is lost when entering ALLOW_LEADER_CHANGE = 1 << 6, NO_SAVE_ON_ENTRY = 1 << 7, DISABLE_IQ_SKILLS = 1 << 8, TRAPS_STAY_HIDDEN_ON_ATTACK = 1 << 9, // true if traps remain invisible when attacked / item-thrown ENEMIES_DROP_CHESTS = 1 << 10 // Remaining flags are unused }; enum script_var_type { VARTYPE_NONE = 0, VARTYPE_BIT = 1, // VARTYPE_STRING is an array of characters, and implementation-wise are treated exactly the // same way as VARTYPE_UINT8 VARTYPE_STRING = 2, VARTYPE_UINT8 = 3, VARTYPE_INT8 = 4, VARTYPE_UINT16 = 5, VARTYPE_INT16 = 6, VARTYPE_UINT32 = 7, VARTYPE_INT32 = 8, VARTYPE_SPECIAL = 9, // This dummy value ensures compilation that matches the original assembly. // Without it, the compiler reads the enum using ldrb instead of ldrsh VARTYPE_DUMMY_PADDING = 256 }; // Predefined variables available to the script engine. // Also see struct script_var_value_table, where the corresponding values for these variables are // stored. // TODO: replace raw address references with actual symbol names enum script_var_id { // Its only purpose is to be checked at [NA]0x204C448, which compares the saved value to the // default value in the script variable table (which is 1 in base game). If the values are not // equal, then the save file is treated as corrupted, which thus gets deleted. VAR_VERSION = 0, // Seemingly unused? VAR_CONDITION = 1, // Two indexed values determined via the Top Menu. These are referenced by Unionall for general // control flow. // To be a bit more specific, the first coroutine run after the Top Menu is EVENT_DIVIDE, which // checks for these indexed values. In doing so, the game knows when to load scripts from // maingame, a Special Episode, or Rescue mode. VAR_SCENARIO_SELECT = 2, // Two indexed values used for maingame story progression. Typically, the first value represents // the chapter, and the second represents a subsection of that chapter. // This is referenced everywhere in maingame scripts and Unionall. It's especially notable in // deciding which NPCs to spawn in certain overworld sections, deciding which cutscene to load // after a dungeon loss, and various other control flow purposes. Used EXTENSIVELY in // EVENT_DIVIDE and other related coroutines. VAR_SCENARIO_MAIN = 3, // Two indexed values used for Special Episode story progression. Very similar to SCENARIO_MAIN, // but used on a much smaller scale. VAR_SCENARIO_SIDE = 4, VAR_SCENARIO_SUB1 = 5, VAR_SCENARIO_SUB2 = 6, VAR_SCENARIO_SUB3 = 7, VAR_SCENARIO_SUB4 = 8, VAR_SCENARIO_SUB5 = 9, VAR_SCENARIO_SUB6 = 10, VAR_SCENARIO_SUB7 = 11, VAR_SCENARIO_SUB8 = 12, // Three bitflags used in Special Episode 2. They're initialized to 0 when Special Episode 2 // begins and set to 1 when Igglybuff talks to each of his neighbors (Wooper, Smoochum, and // Budew) at the start of the Special Episode. VAR_SIDE02_TALK = 13, // Three bitflags used in Special Episode 4. They're initialized to 0 when Special Episode 4 // begins and set to 1 upon exiting the Limestone Cavern paths. VAR_SIDE06_ROOM = 14, // A bitflag used in Special Episode 5. It's initialized to 0 when Special Episode 5 begins and // is set to 1 after losing to the Barren Valley Clearing boss. VAR_SIDE08_BOSS2ND = 15, // A bitflag used in Special Episode 1. It's initialized to 0 when Special Episode 1 begins and // is set to 1 after losing to the Deep Star Cave boss. VAR_SIDE01_BOSS2ND = 16, // 128 bitflags used across maingame and Special Episodes. They all serve a variety of purposes, // but some of the most notable ones include: // 3: The player lost in a dungeon (SCENARIO) // 4: The player lost in a dungeon (REQUEST) // 6: The game was saved // 7: Overworld save // 8: Cutscene save // 10: Job day // 11: Sentry Duty day VAR_SCENARIO_MAIN_BIT_FLAG = 17, // 256 bitflags used across maingame for a variety of purposes. These are mostly used for // Treasure Town shopkeeper NPCs to make sure they don't repeat the same intro text before they // open their hard-coded menu. VAR_SCENARIO_TALK_BIT_FLAG = 18, // Despite the name, this is one integer! This controls a wide variety of game functions, such // as bag size, Treasure Box spawns, and spawn threshold (i.e. enemies can only spawn when this // variable is greater than or equal to a certain value). // Also see GetScenarioBalance. VAR_SCENARIO_BALANCE_FLAG = 19, // This shares the same features as SCENARIO_BALANCE_FLAG and actually takes priority over it in // maingame if this is greater than or equal to 0. Nevertheless, we're fairly certain this is // unused in the base game. // Also see GetScenarioBalance. VAR_SCENARIO_BALANCE_DEBUG = 20, // The following 3 variables are used in the Crystal Cave overworld puzzle when a crystal // changes color. VAR_CRYSTAL_COLOR_01 = 21, VAR_CRYSTAL_COLOR_02 = 22, VAR_CRYSTAL_COLOR_03 = 23, // Used to identify a cutscene save in the maingame. While SCENARIO_MAIN_BIT_FLAG[6] and // SCENARIO_MAIN_BIT_FLAG[8] together identify that the game has been saved mid-cutscene, this // integer marks which part of the game the cutscene save happened in. VAR_COMPULSORY_SAVE_POINT = 24, // Used to identify a cutscene save in a Special Episode. Acts very similar to // COMPULSORY_SAVE_POINT. VAR_COMPULSORY_SAVE_POINT_SIDE = 25, // Backup storage for two SCENARIO_SELECT values per game mode. // When restoring, values for the current game mode are copied back into SCENARIO_SELECT. // Layout (grouped by value then mode): Value1: modes 2-5; Value2: modes 2-5. VAR_SCENARIO_SELECT_BACKUP = 26, // Backup storage for SCENARIO_MAIN_BIT_FLAG each game mode. // When restoring, values for the current game mode are copied back into SCENARIO_MAIN_BIT_FLAG. // Layout (grouped by mode then value): Mode 2: 128 bits; Mode 3: 128 bits etc VAR_SCENARIO_MAIN_BIT_FLAG_BACKUP = 27, // The Level ID (see the version-dependent script_level_id_* enums) that the player is in in the // overworld. VAR_GROUND_ENTER = 28, // Set to 0 in Unionall, in the coroutine EVENT_FORMATION. Doesn't seem to update when // transitioning to other maps in the overworld, so its true purpose is a bit unknown. VAR_GROUND_ENTER_LINK = 29, // The Level ID that the player just arrived from. Notoriously relied upon in Enter00 scripts to // determine where the player and partner actors should spawn if a map has multiple // entrances/exits. VAR_GROUND_GETOUT = 30, // The Level ID of the currently loaded background. Typically, this shares the same value as // GROUND_ENTER, but you could have an instance where you load LEVEL_P01P01A's Enter00 script // and have it display LEVEL_P01P03A's background. VAR_GROUND_MAP = 31, // The World Map Marker ID that determines where the player appears on the Top Screen when // selecting "Map and team" in the overworld. VAR_GROUND_PLACE = 32, // The backup version of GROUND_ENTER saved in the function EventFlagBackup. VAR_GROUND_ENTER_BACKUP = 33, // The backup version of GROUND_ENTER_LINK saved in the function EventFlagBackup. VAR_GROUND_ENTER_LINK_BACKUP = 34, // The backup version of GROUND_GETOUT saved in the function EventFlagBackup. VAR_GROUND_GETOUT_BACKUP = 35, // The backup version of GROUND_MAP saved in the function EventFlagBackup. VAR_GROUND_MAP_BACKUP = 36, // The backup version of GROUND_PLACE saved in the function EventFlagBackup. VAR_GROUND_PLACE_BACKUP = 37, // The ID of the dungeon chosen from the crossroads menu. Definitely set in various places, but // for sure at [NA]0x22E1DC8 and [NA]0x22DDA78. VAR_DUNGEON_SELECT = 38, // The ID of the dungeon being entered...sorta. It gets set in various places, and when the // dungeon being entered has its mode set to DMODE_OPEN or DMODE_CLOSED (please see // DUNGEON_ENTER_MODE for an explanation of dungeon modes), this matches the value of // DUNGEON_SELECT. However, other dungeon modes result in it being set to 215 (written at // [NA]0x204E848) or even 214 (written at [NA]0x204E8BC, checked at [NA]0x204F1D0). // Also, be sure to check out [NA]0x22E8A58 and [NA]0x22DDA88. VAR_DUNGEON_ENTER = 39, // The "mode" of the dungeon being entered. Each dungeon has an associated "dungeon mode", which // if you're familiar with ExplorerScript, you'll know as DMODE_OPEN, DMODE_CLOSED, // DMODE_REQUEST, and DMODE_OPEN_AND_REQUEST. This variable stores the dungeon mode, but this is // in fact represented by other variables as well. // This determines which coroutine to run upon reloading Unionall after a dungeon. DMODE_OPEN // and DMODE_CLOSED will make the game start from GETOUT_SCENARIO_DUNGEON, while the other two // will result in GETOUT_REQUEST_DUNGEON being run. // These modes will also determine if the specified dungeon appears in the crossroads menu. // DMODE_OPEN will make the dungeon appear at the crossroads with an exclamation mark next to // its name. DMODE_OPEN_AND_REQUEST will make the dungeon visible in the menu, but that's it. // Any other modes will not show the dungeon in the menu. VAR_DUNGEON_ENTER_MODE = 40, // The ID of the dungeon being entered. VAR_DUNGEON_ENTER_INDEX = 41, // A counter of how many dungeons the player has entered. Incremented by one when a dungeon is // exited, regardless of win/loss. VAR_DUNGEON_ENTER_FREQUENCY = 42, // The result of the dungeon being exited. 8 is a success and anything else is a failure (10 is // when the Escape Orb is used). This is somewhat similar to GROUND_START_MODE, but also gets // set to different values in the crossroads menu. Mid-dungeon, this is also the ID of the // dungeon. VAR_DUNGEON_RESULT = 43, // The mode set upon entering ground mode. This is set after starting a new game or loading a // save, but it's also most notable for being checked in Unionall's GETOUT coroutines to see if // the player won or lost in a dungeon. 8 is a success and anything else is a failure (10 is // when the Escape Orb is used). // It's a bit unknown how this is used outside of exiting dungeons. VAR_GROUND_START_MODE = 44, // The backup version of DUNGEON_ENTER_BACKUP, which is NOT saved in the function // EventFlagBackup... VAR_DUNGEON_ENTER_BACKUP = 45, // The backup version of DUNGEON_ENTER_MODE saved in the function EventFlagBackup. VAR_DUNGEON_ENTER_MODE_BACKUP = 46, // The backup version of DUNGEON_ENTER_INDEX saved in the function EventFlagBackup. VAR_DUNGEON_ENTER_INDEX_BACKUP = 47, // The backup version of DUNGEON_ENTER_FREQUENCY saved in the function EventFlagBackup. VAR_DUNGEON_ENTER_FREQUENCY_BACKUP = 48, // The backup version of DUNGEON_RESULT saved in the function EventFlagBackup. VAR_DUNGEON_RESULT_BACKUP = 49, // The backup version of GROUND_START_MODE saved in the function EventFlagBackup. VAR_GROUND_START_MODE_BACKUP = 50, // The number of Job Requests cleared in a single day. In the base game, Unionall relies on this // to decide when to progress the story. // One notable read is at [NA]0x22E6D34, which gets this variable's value and checks if it's // less than 100. If so, it increments it by one. VAR_REQUEST_CLEAR_COUNT = 51, // Handles how the player actor (ACTOR_PLAYER and possibly other related actors) will display. // 0: Species of Chimecho Assembly entry 0 // 1: Species of Chimecho Assembly entry 1 // 2: Nothing // 3: Species of the current party leader // 4: Species of ACTOR_ATTENDANT_BIPPA // 5: Species of ACTOR_ATTENDANT_PUPURIN // 6: Species of ACTOR_ATTENDANT_KIMAWARI // 7: Species of ACTOR_ATTENDANT_FUTURE // 8: Species of ACTOR_ATTENDANT_CHARMS // 9+: Nothing // Checked at [NA]0x20650E8 and [NA]0x2065188. VAR_PLAYER_KIND = 52, // Handles how the partner actor (ACTOR_ATTENDANT1 and possibly other related actors) will // display. It also notably is checked in the Unionall coroutine TALK_ATTENDANT (when you press // R to talk to the partner). // 0: Nothing // 1: Species of Chimecho Assembly entry 0 // 2: Species of Chimecho Assembly entry 1 // 3: Nothing // 4: Species of the current party leader // 5-9: Nothing // 10: Species of ACTOR_ATTENDANT_MANAFI (who moves incredibly slowly) // Checked at [NA]0x20651BC and [NA]0x22F7EEC. VAR_ATTENDANT1_KIND = 53, // Handles how the second partner actor (ACTOR_ATTENDANT2 and possibly other related actors) // will display. If this variable is 10, then ACTOR_ATTENDANT2 will be the species of // ACTOR_ATTENDANT_MANAFI. Anything else is nothing. // Checked at [NA]0x20651CC. VAR_ATTENDANT2_KIND = 54, // The backup version of PLAYER_KIND saved in the function EventFlagBackup. VAR_PLAYER_KIND_BACKUP = 55, // The backup version of ATTENDANT1_KIND, saved in the function EventFlagBackup. VAR_ATTENDANT1_KIND_BACKUP = 56, // The backup version of ATTENDANT2_KIND, saved in the function EventFlagBackup. VAR_ATTENDANT2_KIND_BACKUP = 57, VAR_FRIEND_SUM = 58, VAR_UNIT_SUM = 59, // The amount of money the player has on hand. // TODO: This is probably backed by MONEY_CARRIED? Need to confirm. VAR_CARRY_GOLD = 60, // The amount of money stored in Duskull Bank. // TODO: This is probably backed by MONEY_STORED? Need to confirm. VAR_BANK_GOLD = 61, // The species ID of the initial starter. Saved at [NA]0x2048868, which is done by the special // process INIT_MAIN_TEAM_AFTER_QUIZ. // This remains unchanged even if Chimecho Assembly entry 0 is modified in any way. VAR_HERO_FIRST_KIND = 62, // The name of the initial starter. Saved at [NA]0x2048878, which is done by the special process // INIT_MAIN_TEAM_AFTER_QUIZ. // This remains unchanged even if Chimecho Assembly entry 0 is modified in any way. VAR_HERO_FIRST_NAME = 63, // The species ID of the initial partner. Saved at [NA]0x20488D8, which is done by the special // process INIT_MAIN_TEAM_AFTER_QUIZ. // This remains unchanged even if Chimecho Assembly entry 1 is modified in any way. VAR_PARTNER_FIRST_KIND = 64, // The name of the initial partner. Saved at [NA]0x20488E8, which is done by the special process // INIT_MAIN_TEAM_AFTER_QUIZ. // This remains unchanged even if Chimecho Assembly entry 1 is modified in any way. VAR_PARTNER_FIRST_NAME = 65, // The "talk kind" of the initial starter, typically used in scripts where the player speaks; // see enum talk_kind (4, 5). This is most likely done to differentiate speech patterns between // genders (this probably has a purpose in Japanese, just not in English). // Saved at [NA]0x204893C, which is done by the special process INIT_MAIN_TEAM_AFTER_QUIZ. This // remains unchanged even if Chimecho Assembly entry 0 is modified in any way. VAR_HERO_TALK_KIND = 66, // The "talk kind" of the initial partner, typically used in scripts where the partner speaks to // differentiate speech patterns; see enum talk_kind (1, 2, 3). Unlike HERO_TALK_KIND, there's // actually a table that maps starters to certain talk kinds ([NA]0x209CCE4). Each entry // consists of a talk kind and a species ID. // Saved at [NA]0x204897C, which is done by the special process INIT_MAIN_TEAM_AFTER_QUIZ. This // remains unchanged even if Chimecho Assembly entry 1 is modified in any way. VAR_PARTNER_TALK_KIND = 67, // Determines which species the actor ACTOR_RANDOM_REQUEST_NPC03 will appear as. Saved at // [NA]0x2065BA4. // True to its name, this variable is randomly generated in the function [NA]0x205EB5C, which is // called within GenerateDailyMissions. There also seems to be an exception where the game // doesn't generate the species randomly (for Magnemite, maybe). VAR_RANDOM_REQUEST_NPC03_KIND = 68, // The value of the word at [NA]0x20AFF28. Saved at [NA]0x2048990, which is done by the special // process INIT_MAIN_TEAM_AFTER_QUIZ. Changing the variable doesn't seem to do much, so its true // purpose is unknown. VAR_CONFIG_COLOR_KIND = 69, // Its purpose is unknown, but it's initialized to 0 at [NA]0x204B0E4. VAR_ROM_VARIATION = 70, // The language determined by the NDS firmware. Notably checked in some scripts to display // different backgrounds or objects, such as in the intro. // 0: Japanese // 1: English // 2: French // 3: German // 4: Italian // 5: Spanish VAR_LANGUAGE_TYPE = 71, // A value to distinguish the type of game being played; see enum game_mode and the GAME_MODE // data symbol. This mainly differentiates between maingame and Special Episodes, and the game // checks for this value in numerous places (not necessarily in scripts) to differentiate // maingame versus Special Episode behavior. This can include whether to display the green // window color, initializing the current party upon a new game/episode, and many other tasks. // The function [NA]0x204B018 sets GAME_MODE to a new value, which gets called in various places // within the function [NA]0x2065D1C. It seems dependent on the status code returned by // ReadSaveHeader. VAR_GAME_MODE = 72, // Used to distinguish which Special Episode is currently being played; see enum // special_episode_type. Unlike SPECIAL_EPISODE_TYPE, the base game scripts seem to prefer this // variable when checking which Special Episode is run. // This variable's value is backed by DEBUG_SPECIAL_EPISODE_NUMBER. VAR_EXECUTE_SPECIAL_EPISODE_TYPE = 73, // Used to distinguish which Special Episode is currently being played. Very similar to // EXECUTE_SPECIAL_EPISODE_TYPE, to the point where Adex doesn't know the intricate differences. // Probably saved in multiple places, but one notable instance is at [NA]0x204C910. VAR_SPECIAL_EPISODE_TYPE = 74, // Eight bitflags used to mark if a Special Episode is accessible through the Top Menu. These // are set at various points in the game's story in Acting scripts. // 0: SE1 // 1: SE2 // 2: SE3 // 3: SE4 // 4: SE5 // 5: Unused // 6: Unused // 7: Unused VAR_SPECIAL_EPISODE_OPEN = 75, // Eight bitflags that are seemingly related to Special Episodes? We're fairly certain that // they're unused, but can't say anything for sure. Gets set as the hero is initalized for the // corresponding special episode. VAR_SPECIAL_EPISODE_OPEN_OLD = 76, // Eight bitflags used to mark if a Special Episode has been beaten. These are typically set in // an Acting script. // 0: SE1 // 1: SE2 // 2: SE3 // 3: SE4 // 4: SE5 // 5: Unused // 6: Unused // 7: Unused // Checked at [NA]0x204CA30. VAR_SPECIAL_EPISODE_CONQUEST = 77, // 64 bitflags corresponding to various story-based unlocks. Known values: // https://docs.google.com/spreadsheets/d/1NK3wkC8mOCu-tVkxULLkhpgPR-glApiD2v3zp-mdW7w VAR_PERFORMANCE_PROGRESS_LIST = 78, // 256 bitflags used to determine if a dungeon will appear in the crossroads menu. Each bitflag // represents a dungeon ID (so 0 is Test Dungeon, 1 is Beach Cave, and so on). VAR_DUNGEON_OPEN_LIST = 79, // 256 bitflags that supposedly represent each dungeon. Checked at [NA]0x204CEE0. For what // purpose? No clue! // You'd think that this keeps track of which dungeons you've entered, but that doesn't seem to // be the case. VAR_DUNGEON_ENTER_LIST = 80, // 256 bitflags that supposedly represent each dungeon. For what purpose? No clue! VAR_DUNGEON_ARRIVE_LIST = 81, // 256 bitflags used to determine if a dungeon has been beaten before. Each bitflag represents a // dungeon ID (so 0 is Test Dungeon, 1 is Beach Cave, and so on). VAR_DUNGEON_CONQUEST_LIST = 82, // 256 bitflags that supposedly represent each dungeon. For what purpose? No clue! VAR_DUNGEON_PRESENT_LIST = 83, // 256 bitflags used to determine if beating a dungeon will result in the game branching to // GETOUT_REQUEST_DUNGEON or GETOUT_SCENARIO_DUNGEON. Each bitflag represents a dungeon ID (so 0 // is Test Dungeon, 1 is Beach Cave, and so on). // To clarify, if a bitflag X from here is set to 0 and DUNGEON_OPEN_LIST[X] is 1, then the // dungeon will show with an exclamation mark next to its name. If beaten, the game will start // running code in the Unionall coroutine GETOUT_SCENARIO_DUNGEON. VAR_DUNGEON_REQUEST_LIST = 84, // 320 bitflags used for...something. VAR_WORLD_MAP_MARK_LIST_NORMAL = 85, // 320 bitflags used for...something. VAR_WORLD_MAP_MARK_LIST_SPECIAL = 86, // A value used to determine which clouds block certain areas in the level S01P01A. Or it might // be more accurate to say "which position of the map will be shown", but the clouds actually // have an animation, so there must also be some hard-coded aspect to that level. // Saved at [NA]0x204CDF8. // Read at [NA]0x204CDD8. VAR_WORLD_MAP_LEVEL = 87, // The reason why the POSITION variables are even read is because of another command: // LoadPosition. This updates an actor, object, or performer’s x, y, height, and direction using // those variables // // Three indexed values used to save the X position of an actor, object, or performer. This // value is stored as Pixel << 8. // This is only updated via the script command SavePosition, which also updates the other // POSITION variables. // Saved at [NA]0x22E0E10. // Read at [NA]0x22E0D18. VAR_POSITION_X = 88, // Three indexed values used to save the Y position of an actor, object, or performer. This // value is stored as Pixel << 8. // This is only updated via the script command SavePosition, which also updates the other // POSITION variables. // Saved at [NA]0x22E0E28. // Read at [NA]0x22E0D30. VAR_POSITION_Y = 89, // Three indexed values used to save the height of an actor, object, or performer. This value is // stored as Pixel << 8. // This is only updated via the script command SavePosition, which also updates the other // POSITION variables. // Saved at [NA]0x22E0E40. // Read at [NA]0x22E0D48. VAR_POSITION_HEIGHT = 90, // Three indexed values used to save the direction of an actor, object, or performer. See enum // direction_id. // This is only updated via the script command SavePosition, which also updates the other // POSITION variables. // Saved at [NA]0x22E0E58. // Read at [NA]0x22E0D60. VAR_POSITION_DIRECTION = 91, // A variable used for a variety of purposes. As the name suggests, this is somewhat of a // "local" variable, in that the game's convention with this is basically all over the place. // Cutscenes often use it when needing to loop an actor's action. Another notable use is // deciding which letter the player receives in S00P01A/DOPEN. There are also some writes/reads // scattered around the game's code, but they all probably do some equally random shenanigans. VAR_EVENT_LOCAL = 92, // A variable used for a variety of purposes. Seems to behave similarly to EVENT_LOCAL, but the // script engine doesn't use this as often. One notable use is determining the gender of the // Heatran you fight (and recruit) at Giant Volcano. VAR_DUNGEON_EVENT_LOCAL = 93, // 32 bitflags used for...something. VAR_STATION_ITEM_STATIC = 94, // 32 bitflags used for...something. VAR_STATION_ITEM_TEMP = 95, // 16 bitflags used for...something. VAR_DELIVER_ITEM_STATIC = 96, // 16 bitflags used for...something. VAR_DELIVER_ITEM_TEMP = 97, // 5 bitflags used to conditionally show menu options in Drifblim's Gondola in Sky Peak. VAR_BIT_FUWARANTE_LOCAL = 98, // The result of a Prize Ticket drawing, which is determined randomly in P01P04A/S30A0601. VAR_LOTTERY_RESULT = 99, VAR_ITEM_BACKUP = 100, VAR_ITEM_BACKUP_KUREKURE = 101, VAR_ITEM_BACKUP_TAKE = 102, VAR_ITEM_BACKUP_GET = 103, VAR_REQUEST_THANKS_RESULT_KIND = 104, VAR_REQUEST_THANKS_RESULT_VARIATION = 105, // A flag used to determine if Wynaut at Spinda's Cafe should include more recyclable items in // the Recycle Shop. // Set to 1 at [NA]0x2012078. // Set to 0 in the function [NA]0x2011AB8. VAR_SUB30_TREASURE_DISCOVER = 106, // A flag used to determine if Wynaut at Spinda's Cafe should unlock a dungeon. // Set to 1 at [NA]0x2012100. // Set to 0 in the function [NA]0x2011AB8. VAR_SUB30_SPOT_DISCOVER = 107, // Incremented at the Recycle Shop for every item you trade. // Read at [NA]0x2012004, which is involved in determining several of the SUB30 flags being set. // Set to 0 in the function [NA]0x2011AB8. VAR_RECYCLE_COUNT = 108, // This determines which dungeon will get unlocked by Wynaut after recycling various times. // Specifically, this gets checked in the script P01P04A/S30A0501. // Incremented by one at [NA]0x20120F0. // Set to 0 in the function [NA]0x2011AB8. VAR_SUB30_SPOT_LEVEL = 109, VAR_TEAM_RANK_EVENT_LEVEL = 110, // The value used to keep track of the player's answer to the Personality Quiz question "Did you // play 'Explorers of Time' or 'Explorers of Darkness'?" VAR_PLAY_OLD_GAME = 111, VAR_NOTE_MODIFY_FLAG = 112, VAR_SUB30_PROJECTP = 113, VAR_SUM = 114, // This seems to be an end marker or some sort of special variable? // Local variables start at ID 0x400 VAR_LOCAL0 = 1024, VAR_LOCAL1 = 1025, VAR_LOCAL2 = 1026, VAR_LOCAL3 = 1027, }; enum special_episode_type { EPISODE_NONE = -1, EPISODE_BIDOOFS_WISH = 0, EPISODE_IGGLYBUFF_THE_PRODIGY = 1, EPISODE_TODAYS_OH_MY_GOSH = 2, EPISODE_HERE_COMES_TEAM_CHARM = 3, EPISODE_IN_THE_FUTURE_OF_DARKNESS = 4, NUM_SPECIAL_EPISODES = 5 }; enum game_mode { GAME_MODE_MENU = 0, // top menu GAME_MODE_1 = 1, // also related to special episodes? But 3 is the main one GAME_MODE_NORMAL = 2, // normal play, including both overworld/dungeons GAME_MODE_SPECIAL_EPISODE = 3, // during special episodes // Pelipper Island (and likely also in the dungeon while rescuing, need to confirm) GAME_MODE_RESCUE = 4, GAME_MODE_5 = 5, // Possibly more? }; enum script_calc_operation { CALC_SET = 0, CALC_SUB = 1, CALC_ADD = 2, CALC_MUL = 3, CALC_DIV = 4, CALC_MOD = 5, CALC_AND = 6, CALC_OR = 7, CALC_XOR = 8, CALC_SETBIT = 9, CALC_CLEARBIT = 10, CALC_RANDOM = 11, }; // https://docs.google.com/spreadsheets/d/1NK3wkC8mOCu-tVkxULLkhpgPR-glApiD2v3zp-mdW7w enum performance_progress_flag { PERFORMANCE_PROGRESS_FLAG_SHOW_TEAM_NAME = 1, PERFORMANCE_PROGRESS_FLAG_RANDOM_MISSION = 3, PERFORMANCE_PROGRESS_FLAG_SHOW_POTENTIAL_RECRUITS = 5, PERFORMANCE_PROGRESS_FLAG_EVOLUTION_ENABLED = 6, PERFORMANCE_PROGRESS_FLAG_LEADER_SWITCH_ENABLED = 7, PERFORMANCE_PROGRESS_FLAG_NO_CHATOT_IN_BRINE_CAVE = 25 }; enum compare_operation { // Taken from pmd-red's FlagJudgeOperation CMP_TRUE, CMP_FALSE, CMP_EQ, CMP_GT, CMP_LT, CMP_GE, CMP_LE, CMP_NE, CMP_AND_NONZERO, CMP_XOR_NONZERO, // logically identical to CMP_NE CMP_BIT_SET, }; enum top_screen_options { TOP_SCREEN_CONTROLS = 0, TOP_SCREEN_TEAM_STATS = 1, TOP_SCREEN_TEXT_LOG = 2, TOP_SCREEN_MAP_AND_TEAM = 3, TOP_SCREEN_JOB = 4 }; enum bottom_screen_option { BOTTOM_SCREEN_NO_MAP = 0, BOTTOM_SCREEN_CLEAR_MAP = 1, BOTTOM_SCREEN_SHADED_MAP = 2 }; enum touch_screen_option { TOUCH_SCREEN_OFF = 0, TOUCH_SCREEN_MENU_ONLY = 1, TOUCH_SCREEN_USE_ANYWHERE = 2 }; enum speed_option { SPEED_REGULAR = 0, SPEED_FAST = 1 }; enum far_off_pals_option { FAR_OFF_PALS_SELF = 0, FAR_OFF_PALS_LOOK = 1 }; enum dungeon_mode { DMODE_CLOSED = 0, // Dungeon is locked and uncleared DMODE_OPEN = 1, // Dungeon is unlocked and uncleared DMODE_REQUEST = 2, // Dungeon has been cleared, but cannot be directly accessed DMODE_OPEN_AND_REQUEST = 3, // Dunegon is unlocked and cleared }; #endif //PMDSKY_ENUMS_H