Files
pmd-red/include/constants/move.h
T
Cheng Hann Gan 8237e29a16 Defined more in-dungeon structs and enums (#53)
* Defined DungeonEntity

* Rename EntityType enums

* Revert EntityType rename

* Defined more in-dungeon structs and enums

* Added more dungeon global structs/enums

* Prefixed dungeonGlobalData with g

* Fixed compile errors

* Removed some CRLFs

* Fixed compile after merge

* Revert Makefile

* Rename DungeonEntityData.entityType

Co-authored-by: Seth Barberee <seth.barberee@gmail.com>

* Renamed symbols per PR comments

Co-authored-by: Cheng Hann Gan <chenghann_gan@ultimatesoftware.com>
Co-authored-by: Seth Barberee <seth.barberee@gmail.com>
2021-09-09 16:22:48 -07:00

475 lines
13 KiB
C

#ifndef GUARD_CONSTANTS_MOVE_H
#define GUARD_CONSTANTS_MOVE_H
enum MoveFlags
{
MOVE_FLAG_EXISTS = 1 << 0,
MOVE_FLAG_LINKED = 1 << 1, // This move is linked with the previous move in the Pokémon's moveset.
MOVE_FLAG_ENABLED = 1 << 2, // Enabled for the AI to use.
MOVE_FLAG_SET = 1 << 3, // This move can be triggered by pressing L+A instead of having to go to the move menu.
MOVE_FLAG_LAST_USED = 1 << 4, // The most recent move used by the Pokémon.
MOVE_FLAG_DISABLED = 1 << 5 // Disabled by an effect like Taunt.
};
struct MoveData
{
u8 fill0[0x8 - 0x0];
// Determines the range of moves.
/* 0x8 */ u16 targetingFlags;
/* 0xA */ u16 aiTargetingFlags; // The AI consider certain moves to have different range than they actually do.
/* 0xC */ u8 maxPP;
/* 0xD */ u8 defaultMoveWeight;
u8 fillE[0x10 - 0xE];
// Used by the AI to determine how often to use Spikes.
// Values exist for all other moves, though they seem to be unused.
/* 0x10 */ u8 moveUseChance;
u8 fill11[0x17 - 0x11];
/* 0x17 */ bool8 cannotHitFrozen; // Used by Status Checker to determine if a move can be used on a frozen target.
/* 0x18 */ bool8 dealsDirectDamage;
};
struct PokemonMove
{
u8 moveFlags;
bool8 sealed;
u16 moveID;
u8 pp;
u8 powerBoost; // How much the move is boosted by Ginsengs.
};
enum TargetingFlag
{
TARGETING_FLAG_TARGET_OTHER = 0x0,
TARGETING_FLAG_HEAL_TEAM = 0x1,
TARGETING_FLAG_SWAP_POSITIONS = 0x2,
TARGETING_FLAG_ATTACK_ALL = 0x5,
TARGETING_FLAG_BOOST_TEAM = 0x6,
TARGETING_FLAG_DONT_USE = 0xF,
TARGETING_FLAG_TARGET_FRONTAL_CONE = 0x10,
TARGETING_FLAG_TARGET_AROUND = 0x20,
TARGETING_FLAG_TARGET_ROOM = 0x30,
TARGETING_FLAG_TARGET_2_TILES_AHEAD = 0x40,
TARGETING_FLAG_TARGET_LINE = 0x50,
TARGETING_FLAG_TARGET_FLOOR = 0x60,
TARGETING_FLAG_SELF_HEAL = 0x70,
TARGETING_FLAG_CUT_CORNERS = 0x80,
TARGETING_FLAG_SET_TRAP = 0x100,
TARGETING_FLAG_HEAL_HP = 0x200,
TARGETING_FLAG_HEAL_STATUS = 0x300,
TARGETING_FLAG_DREAM_EATER = 0x400,
TARGETING_FLAG_HEAL_ALL = 0x500,
TARGETING_FLAG_EXPOSE = 0x600,
};
enum MoveID
{
MOVE_IRON_TAIL = 0x1,
MOVE_ICE_BALL = 0x2,
MOVE_YAWN = 0x3,
MOVE_LOVELY_KISS = 0x4,
MOVE_NIGHTMARE = 0x5,
MOVE_MORNING_SUN = 0x6,
MOVE_VITAL_THROW = 0x7,
MOVE_DIG = 0x8,
MOVE_THRASH = 0x9,
MOVE_SWEET_SCENT = 0xA,
MOVE_CHARM = 0xB,
MOVE_RAIN_DANCE = 0xC,
MOVE_CONFUSE_RAY = 0xD,
MOVE_HAIL = 0xE,
MOVE_AROMATHERAPY = 0xF,
MOVE_BUBBLE = 0x10,
MOVE_ENCORE = 0x11,
MOVE_CUT = 0x12,
MOVE_RAGE = 0x13,
MOVE_SUPER_FANG = 0x14,
MOVE_PAIN_SPLIT = 0x15,
MOVE_TORMENT = 0x16,
MOVE_STRING_SHOT = 0x17,
MOVE_SWAGGER = 0x18,
MOVE_SNORE = 0x19,
MOVE_HEAL_BELL = 0x1A,
MOVE_SCREECH = 0x1B,
MOVE_ROCK_THROW = 0x1C,
MOVE_ROCK_SMASH = 0x1D,
MOVE_ROCK_SLIDE = 0x1E,
MOVE_WEATHER_BALL = 0x1F,
MOVE_WHIRLPOOL = 0x20,
MOVE_FAKE_TEARS = 0x21,
MOVE_SING = 0x22,
MOVE_SPITE = 0x23,
MOVE_AIR_CUTTER = 0x24,
MOVE_SMOKESCREEN = 0x25,
MOVE_PURSUIT = 0x26,
MOVE_DOUBLESLAP = 0x27,
MOVE_MIRROR_MOVE = 0x28,
MOVE_OVERHEAT = 0x29,
MOVE_AURORA_BEAM = 0x2A,
MOVE_MEMENTO = 0x2B,
MOVE_OCTAZOOKA = 0x2C,
MOVE_FLATTER = 0x2D,
MOVE_ASTONISH = 0x2E,
MOVE_WILL_O_WISP = 0x2F,
MOVE_RETURN = 0x30,
MOVE_GRUDGE = 0x31,
MOVE_STRENGTH = 0x32,
MOVE_COUNTER = 0x33,
MOVE_FLAME_WHEEL = 0x34,
MOVE_FLAMETHROWER = 0x35,
MOVE_ODOR_SLEUTH = 0x36,
MOVE_SHARPEN = 0x37,
MOVE_DOUBLE_TEAM = 0x38,
MOVE_GUST = 0x39,
MOVE_HARDEN = 0x3A,
MOVE_DISABLE = 0x3B,
MOVE_RAZOR_WIND = 0x3C,
MOVE_BIDE = 0x3D,
MOVE_CRUNCH = 0x3E,
MOVE_BITE = 0x3F,
MOVE_THUNDER = 0x40,
MOVE_THUNDERPUNCH = 0x41,
MOVE_ENDEAVOR = 0x42,
MOVE_FACADE = 0x43,
MOVE_KARATE_CHOP = 0x44,
MOVE_CLAMP = 0x45,
MOVE_WITHDRAW = 0x46,
MOVE_CONSTRICT = 0x47,
MOVE_BRICK_BREAK = 0x48,
MOVE_ROCK_TOMB = 0x49,
MOVE_FOCUS_ENERGY = 0x4A,
MOVE_FOCUS_PUNCH = 0x4B,
MOVE_GIGA_DRAIN = 0x4C,
MOVE_REVERSAL = 0x4D,
MOVE_SMELLINGSALT = 0x4E,
MOVE_SPORE = 0x4F,
MOVE_LEECH_LIFE = 0x50,
MOVE_SLASH = 0x51,
MOVE_SILVER_WIND = 0x52,
MOVE_METAL_SOUND = 0x53,
MOVE_GRASSWHISTLE = 0x54,
MOVE_TICKLE = 0x55,
MOVE_SPIDER_WEB = 0x56,
MOVE_CRABHAMMER = 0x57,
MOVE_HAZE = 0x58,
MOVE_MEAN_LOOK = 0x59,
MOVE_CROSS_CHOP = 0x5A,
MOVE_OUTRAGE = 0x5B,
MOVE_LOW_KICK = 0x5C,
MOVE_ANCIENTPOWER = 0x5D,
MOVE_SYNTHESIS = 0x5E,
MOVE_AGILITY = 0x5F,
MOVE_RAPID_SPIN = 0x60,
MOVE_ICY_WIND = 0x61,
MOVE_MIND_READER = 0x62,
MOVE_COSMIC_POWER = 0x63,
MOVE_SKY_ATTACK = 0x64,
MOVE_POWDER_SNOW = 0x65,
MOVE_FOLLOW_ME = 0x66,
MOVE_METEOR_MASH = 0x67,
MOVE_ENDURE = 0x68,
MOVE_ROLLOUT = 0x69,
MOVE_SCARY_FACE = 0x6A,
MOVE_PSYBEAM = 0x6B,
MOVE_PSYWAVE = 0x6C,
MOVE_PSYCHIC = 0x6D,
MOVE_PSYCHO_BOOST = 0x6E,
MOVE_HYPNOSIS = 0x6F,
MOVE_UPROAR = 0x70,
MOVE_WATER_SPOUT = 0x71,
MOVE_SIGNAL_BEAM = 0x72,
MOVE_PSYCH_UP = 0x73,
MOVE_SUBMISSION = 0x74,
MOVE_RECOVER = 0x75,
MOVE_EARTHQUAKE = 0x76,
MOVE_NATURE_POWER = 0x77,
MOVE_LICK = 0x78,
MOVE_FLAIL = 0x79,
MOVE_TAIL_WHIP = 0x7A,
MOVE_SELFDESTRUCT = 0x7B,
MOVE_STUN_SPORE = 0x7C,
MOVE_BIND = 0x7D,
MOVE_SHADOW_PUNCH = 0x7E,
MOVE_SHADOW_BALL = 0x7F,
MOVE_CHARGE = 0x80,
MOVE_THUNDERBOLT = 0x81,
MOVE_MIST = 0x82,
MOVE_FISSURE = 0x83,
MOVE_EXTREMESPEED = 0x84,
MOVE_EXTRASENSORY = 0x85,
MOVE_SAFEGUARD = 0x86,
MOVE_ABSORB = 0x87,
MOVE_SKY_UPPERCUT = 0x88,
MOVE_SKILL_SWAP = 0x89,
MOVE_SKETCH = 0x8A,
MOVE_HEADBUTT = 0x8B,
MOVE_DOUBLE_EDGE = 0x8C,
MOVE_SANDSTORM = 0x8D,
MOVE_SAND_ATTACK = 0x8E,
MOVE_SAND_TOMB = 0x8F,
MOVE_SPARK = 0x90,
MOVE_SWIFT = 0x91,
MOVE_KINESIS = 0x92,
MOVE_SMOG = 0x93,
MOVE_GROWTH = 0x94,
MOVE_SACRED_FIRE = 0x95,
MOVE_SHEER_COLD = 0x96,
MOVE_SOLARBEAM = 0x97,
MOVE_SONICBOOM = 0x98,
MOVE_FLY = 0x99,
MOVE_TACKLE = 0x9A,
MOVE_EXPLOSION = 0x9B,
MOVE_DIVE = 0x9C,
MOVE_FIRE_BLAST = 0x9D,
MOVE_WATERFALL = 0x9E,
MOVE_MUDDY_WATER = 0x9F,
MOVE_STOCKPILE = 0xA0,
MOVE_SLAM = 0xA1,
MOVE_TWISTER = 0xA2,
MOVE_BULLET_SEED = 0xA3,
MOVE_TWINEEDLE = 0xA4,
MOVE_SOFTBOILED = 0xA5,
MOVE_EGG_BOMB = 0xA6,
MOVE_FAINT_ATTACK = 0xA7,
MOVE_BARRAGE = 0xA8,
MOVE_MINIMIZE = 0xA9,
MOVE_SEISMIC_TOSS = 0xAA,
MOVE_SUPERSONIC = 0xAB,
MOVE_TAUNT = 0xAC,
MOVE_MOONLIGHT = 0xAD,
MOVE_PECK = 0xAE,
MOVE_ARM_THRUST = 0xAF,
MOVE_HORN_ATTACK = 0xB0,
MOVE_HORN_DRILL = 0xB1,
MOVE_WING_ATTACK = 0xB2,
MOVE_AERIAL_ACE = 0xB3,
MOVE_ICICLE_SPEAR = 0xB4,
MOVE_SWORDS_DANCE = 0xB5,
MOVE_VINE_WHIP = 0xB6,
MOVE_CONVERSION = 0xB7,
MOVE_CONVERSION_2 = 0xB8,
MOVE_HELPING_HAND = 0xB9,
MOVE_IRON_DEFENSE = 0xBA,
MOVE_TELEPORT = 0xBB,
MOVE_THUNDERSHOCK = 0xBC,
MOVE_SHOCK_WAVE = 0xBD,
MOVE_QUICK_ATTACK = 0xBE,
MOVE_SWEET_KISS = 0xBF,
MOVE_THUNDER_WAVE = 0xC0,
MOVE_ZAP_CANNON = 0xC1,
MOVE_BLOCK = 0xC2,
MOVE_HOWL = 0xC3,
MOVE_POISON_GAS = 0xC4,
MOVE_TOXIC = 0xC5,
MOVE_POISON_FANG = 0xC6,
MOVE_POISONPOWDER = 0xC7,
MOVE_POISON_STING = 0xC8,
MOVE_SPIKE_CANNON = 0xC9,
MOVE_ACID_ARMOR = 0xCA,
MOVE_TAKE_DOWN = 0xCB,
MOVE_JUMP_KICK = 0xCC,
MOVE_BOUNCE = 0xCD,
MOVE_HI_JUMP_KICK = 0xCE,
MOVE_TRI_ATTACK = 0xCF,
MOVE_DRAGON_CLAW = 0xD0,
MOVE_TRICK = 0xD1,
MOVE_TRIPLE_KICK = 0xD2,
MOVE_DRILL_PECK = 0xD3,
MOVE_MUD_SPORT = 0xD4,
MOVE_MUD_SLAP = 0xD5,
MOVE_THIEF = 0xD6,
MOVE_AMNESIA = 0xD7,
MOVE_NIGHT_SHADE = 0xD8,
MOVE_GROWL = 0xD9,
MOVE_SLACK_OFF = 0xDA,
MOVE_SURF = 0xDB,
MOVE_ROLE_PLAY = 0xDC,
MOVE_NEEDLE_ARM = 0xDD,
MOVE_DOUBLE_KICK = 0xDE,
MOVE_SUNNY_DAY = 0xDF,
MOVE_LEER = 0xE0,
MOVE_WISH = 0xE1,
MOVE_FAKE_OUT = 0xE2,
MOVE_SLEEP_TALK = 0xE3,
MOVE_PAY_DAY = 0xE4,
MOVE_ASSIST = 0xE5,
MOVE_HEAT_WAVE = 0xE6,
MOVE_SLEEP_POWDER = 0xE7,
MOVE_REST = 0xE8,
MOVE_INGRAIN = 0xE9,
MOVE_CONFUSION = 0xEA,
MOVE_BODY_SLAM = 0xEB,
MOVE_SWALLOW = 0xEC,
MOVE_CURSE = 0xED,
MOVE_FRENZY_PLANT = 0xEE,
MOVE_HYDRO_CANNON = 0xEF,
MOVE_HYDRO_PUMP = 0xF0,
MOVE_HYPER_VOICE = 0xF1,
MOVE_HYPER_BEAM = 0xF2,
MOVE_SUPERPOWER = 0xF3,
MOVE_STEEL_WING = 0xF4,
MOVE_SPIT_UP = 0xF5,
MOVE_DYNAMICPUNCH = 0xF6,
MOVE_GUILLOTINE = 0xF7,
MOVE_VICEGRIP = 0xF8,
MOVE_KNOCK_OFF = 0xF9,
MOVE_POUND = 0xFA,
MOVE_RAZOR_LEAF = 0xFB,
MOVE_BATON_PASS = 0xFC,
MOVE_PETAL_DANCE = 0xFD,
MOVE_SPLASH = 0xFE,
MOVE_BUBBLEBEAM = 0xFF,
MOVE_DOOM_DESIRE = 0x100,
MOVE_BELLY_DRUM = 0x101,
MOVE_BARRIER = 0x102,
MOVE_LIGHT_SCREEN = 0x103,
MOVE_SCRATCH = 0x104,
MOVE_HYPER_FANG = 0x105,
MOVE_EMBER = 0x106,
MOVE_SECRET_POWER = 0x107,
MOVE_DIZZY_PUNCH = 0x108,
MOVE_BULK_UP = 0x109,
MOVE_IMPRISON = 0x10A,
MOVE_FEATHERDANCE = 0x10B,
MOVE_WHIRLWIND = 0x10C,
MOVE_BEAT_UP = 0x10D,
MOVE_BLIZZARD = 0x10E,
MOVE_STOMP = 0x10F,
MOVE_BLAST_BURN = 0x110,
MOVE_FLASH = 0x111,
MOVE_TEETER_DANCE = 0x112,
MOVE_CRUSH_CLAW = 0x113,
MOVE_BLAZE_KICK = 0x114,
MOVE_PRESENT = 0x115,
MOVE_ERUPTION = 0x116,
MOVE_SLUDGE = 0x117,
MOVE_SLUDGE_BOMB = 0x118,
MOVE_GLARE = 0x119,
MOVE_TRANSFORM = 0x11A,
MOVE_POISON_TAIL = 0x11B,
MOVE_ROAR = 0x11C,
MOVE_BONE_RUSH = 0x11D,
MOVE_CAMOUFLAGE = 0x11E,
MOVE_COVET = 0x11F,
MOVE_TAIL_GLOW = 0x120,
MOVE_BONE_CLUB = 0x121,
MOVE_BONEMERANG = 0x122,
MOVE_FIRE_SPIN = 0x123,
MOVE_FIRE_PUNCH = 0x124,
MOVE_PERISH_SONG = 0x125,
MOVE_WRAP = 0x126,
MOVE_SPIKES = 0x127,
MOVE_MAGNITUDE = 0x128,
MOVE_MAGICAL_LEAF = 0x129,
MOVE_MAGIC_COAT = 0x12A,
MOVE_MUD_SHOT = 0x12B,
MOVE_MACH_PUNCH = 0x12C,
MOVE_PROTECT = 0x12D,
MOVE_DEFENSE_CURL = 0x12E,
MOVE_ROLLING_KICK = 0x12F,
MOVE_SUBSTITUTE = 0x130,
MOVE_DETECT = 0x131,
MOVE_PIN_MISSILE = 0x132,
MOVE_WATER_SPORT = 0x133,
MOVE_WATER_GUN = 0x134,
MOVE_MIST_BALL = 0x135,
MOVE_WATER_PULSE = 0x136,
MOVE_FURY_ATTACK = 0x137,
MOVE_FURY_SWIPES = 0x138,
MOVE_DESTINY_BOND = 0x139,
MOVE_FALSE_SWIPE = 0x13A,
MOVE_FORESIGHT = 0x13B,
MOVE_MIRROR_COAT = 0x13C,
MOVE_FUTURE_SIGHT = 0x13D,
MOVE_MILK_DRINK = 0x13E,
MOVE_CALM_MIND = 0x13F,
MOVE_MEGA_DRAIN = 0x140,
MOVE_MEGA_KICK = 0x141,
MOVE_MEGA_PUNCH = 0x142,
MOVE_MEGAHORN = 0x143,
MOVE_HIDDEN_POWER = 0x144,
MOVE_METAL_CLAW = 0x145,
MOVE_ATTRACT = 0x146,
MOVE_MIMIC = 0x147,
MOVE_FRUSTRATION = 0x148,
MOVE_LEECH_SEED = 0x149,
MOVE_METRONOME = 0x14A,
MOVE_DREAM_EATER = 0x14B,
MOVE_ACID = 0x14C,
MOVE_MEDITATE = 0x14D,
MOVE_SNATCH = 0x14E,
MOVE_LUSTER_PURGE = 0x14F,
MOVE_LEAF_BLADE = 0x150,
MOVE_RECYCLE = 0x151,
MOVE_REFLECT = 0x152,
MOVE_REFRESH = 0x153,
MOVE_REVENGE = 0x154,
MOVE_DRAGON_RAGE = 0x155,
MOVE_DRAGONBREATH = 0x156,
MOVE_DRAGON_DANCE = 0x157,
MOVE_ICE_PUNCH = 0x158,
MOVE_ICE_BEAM = 0x159,
MOVE_FURY_CUTTER = 0x15A,
MOVE_COMET_PUNCH = 0x15B,
MOVE_SKULL_BASH = 0x15C,
MOVE_LOCK_ON = 0x15D,
MOVE_ROCK_BLAST = 0x15E,
MOVE_COTTON_SPORE = 0x15F,
MOVE_STRUGGLE = 0x160,
MOVE_AEROBLAST = 0x161,
MOVE_VOLT_TACKLE = 0x162,
MOVE_REGULAR_ATTACK = 0x163,
MOVE_WIDE_SLASH = 0x168,
MOVE_EXCAVATE = 0x169, // Unused
MOVE_SPIN_SLASH = 0x16A, // Unused
// Orb effects
MOVE_SEE_TRAP = 0x16B,
MOVE_TAKEAWAY = 0x16C,
MOVE_REBOUND = 0x16D,
MOVE_BLOOP_SLASH = 0x16E,
MOVE_SWITCHER = 0x16F,
MOVE_BLOWBACK = 0x170,
MOVE_WARP = 0x171,
MOVE_TRANSFER = 0x172,
MOVE_SLOW_DOWN = 0x173,
MOVE_SPEED_BOOST = 0x174,
MOVE_SEARCHLIGHT = 0x175,
MOVE_PETRIFY = 0x176,
MOVE_STAY_AWAY = 0x177,
MOVE_POUNCE = 0x178,
MOVE_TRAWL = 0x179,
MOVE_CLEANSE = 0x17A,
MOVE_OBSERVER = 0x17B,
MOVE_DECOY_MAKER = 0x17C,
MOVE_SIESTA = 0x17D,
MOVE_TOTTER = 0x17E,
MOVE_TWO_EDGE = 0x17F,
MOVE_NO_MOVE = 0x180,
MOVE_ESCAPE = 0x181,
MOVE_SCAN = 0x182,
MOVE_POWER_EARS = 0x183,
MOVE_DROUGHT = 0x184,
MOVE_TRAP_BUSTER = 0x185,
MOVE_WILD_CALL = 0x186,
MOVE_INVISIFY = 0x187,
MOVE_ONE_SHOT = 0x188,
MOVE_HP_GAUGE = 0x189,
MOVE_VACUUM_CUT = 0x18A,
MOVE_REVIVER = 0x18B,
MOVE_SHOCKER = 0x18C,
MOVE_ECHO = 0x18D,
MOVE_FAMISH = 0x18E,
MOVE_ONE_ROOM = 0x18F,
MOVE_FILL_IN = 0x190,
MOVE_TRAPPER = 0x191,
MOVE_POSSESS = 0x192,
MOVE_ITEMIZE = 0x193,
MOVE_HURL = 0x196,
MOVE_MOBILE = 0x197,
MOVE_ITEM_TOSS = 0x198,
MOVE_SEE_STAIRS = 0x199,
MOVE_LONG_TOSS = 0x19A,
MOVE_PIERCE = 0x19B
};
#endif