pmd-sky/include/enums.h
AnonymousRandomPerson a78c571138 Decomped sub_0205C75C
Decomped by @slaw-22
2026-03-19 21:10:54 -04:00

3720 lines
131 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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: <pokémon> 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 performers 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