pokeplatinum/include/constants/battle/condition.h
2024-07-06 14:40:34 -07:00

152 lines
8.1 KiB
C

#ifndef POKEPLATINUM_CONSTANTS_BATTLE_CONDITION_H
#define POKEPLATINUM_CONSTANTS_BATTLE_CONDITION_H
#include "constants/overworld_weather.h"
#define MON_CONDITION_NONE 0
#define MON_CONDITION_SLEEP_0 (1 << 0)
#define MON_CONDITION_SLEEP_1 (1 << 1)
#define MON_CONDITION_SLEEP_2 (1 << 2)
#define MON_CONDITION_POISON (1 << 3)
#define MON_CONDITION_BURN (1 << 4)
#define MON_CONDITION_FREEZE (1 << 5)
#define MON_CONDITION_PARALYSIS (1 << 6)
#define MON_CONDITION_TOXIC (1 << 7)
#define MON_CONDITION_TOXIC_COUNTER_0 (1 << 8)
#define MON_CONDITION_TOXIC_COUNTER_1 (1 << 9)
#define MON_CONDITION_TOXIC_COUNTER_2 (1 << 10)
#define MON_CONDITION_TOXIC_COUNTER_3 (1 << 11)
#define MON_CONDITION_TOXIC_COUNT_INC MON_CONDITION_TOXIC_COUNTER_0
#define MON_CONDITION_SLEEP (MON_CONDITION_SLEEP_0 | MON_CONDITION_SLEEP_1 | MON_CONDITION_SLEEP_2)
#define MON_CONDITION_TOXIC_COUNTER (MON_CONDITION_TOXIC_COUNTER_0 | MON_CONDITION_TOXIC_COUNTER_1 | MON_CONDITION_TOXIC_COUNTER_2 | MON_CONDITION_TOXIC_COUNTER_3)
#define MON_CONDITION_ANY_POISON (MON_CONDITION_POISON | MON_CONDITION_TOXIC | MON_CONDITION_TOXIC_COUNTER)
#define MON_CONDITION_ANY (MON_CONDITION_SLEEP | MON_CONDITION_POISON | MON_CONDITION_BURN | MON_CONDITION_FREEZE | MON_CONDITION_PARALYSIS | MON_CONDITION_TOXIC)
#define MON_CONDITION_NOT_SLEEP ~MON_CONDITION_SLEEP
#define MON_CONDITION_CAN_SYNCHRONIZE (MON_CONDITION_POISON | MON_CONDITION_BURN | MON_CONDITION_PARALYSIS)
#define MON_CONDITION_FACADE_BOOST (MON_CONDITION_TOXIC | MON_CONDITION_POISON | MON_CONDITION_BURN | MON_CONDITION_PARALYSIS)
#define VOLATILE_CONDITION_NONE 0
#define VOLATILE_CONDITION_CONFUSION_0 (1 << 0)
#define VOLATILE_CONDITION_CONFUSION_1 (1 << 1)
#define VOLATILE_CONDITION_CONFUSION_2 (1 << 2)
#define VOLATILE_CONDITION_FLINCH (1 << 3)
#define VOLATILE_CONDITION_UPROAR_0 (1 << 4)
#define VOLATILE_CONDITION_UPROAR_1 (1 << 5)
#define VOLATILE_CONDITION_UPROAR_2 (1 << 6)
// unused flag: 1 << 7
#define VOLATILE_CONDITION_BIDE_0 (1 << 8)
#define VOLATILE_CONDITION_BIDE_1 (1 << 9)
#define VOLATILE_CONDITION_THRASH_0 (1 << 10)
#define VOLATILE_CONDITION_THRASH_1 (1 << 11)
#define VOLATILE_CONDITION_MOVE_LOCKED (1 << 12)
#define VOLATILE_CONDITION_BIND_0 (1 << 13)
#define VOLATILE_CONDITION_BIND_1 (1 << 14)
#define VOLATILE_CONDITION_BIND_2 (1 << 15)
#define VOLATILE_CONDITION_ATTRACT_0 (1 << 16)
#define VOLATILE_CONDITION_ATTRACT_1 (1 << 17)
#define VOLATILE_CONDITION_ATTRACT_2 (1 << 18)
#define VOLATILE_CONDITION_ATTRACT_3 (1 << 19)
#define VOLATILE_CONDITION_FOCUS_ENERGY (1 << 20)
#define VOLATILE_CONDITION_TRANSFORM (1 << 21)
#define VOLATILE_CONDITION_RECHARGING (1 << 22)
#define VOLATILE_CONDITION_RAGE (1 << 23)
#define VOLATILE_CONDITION_SUBSTITUTE (1 << 24)
#define VOLATILE_CONDITION_DESTINY_BOND (1 << 25)
#define VOLATILE_CONDITION_MEAN_LOOK (1 << 26)
#define VOLATILE_CONDITION_NIGHTMARE (1 << 27)
#define VOLATILE_CONDITION_CURSE (1 << 28)
#define VOLATILE_CONDITION_FORESIGHT (1 << 29)
#define VOLATILE_CONDITION_DEFENSE_CURL (1 << 30)
#define VOLATILE_CONDITION_TORMENT (1 << 31)
#define VOLATILE_CONDITION_CONFUSION (VOLATILE_CONDITION_CONFUSION_0 | VOLATILE_CONDITION_CONFUSION_1 | VOLATILE_CONDITION_CONFUSION_2)
#define VOLATILE_CONDITION_UPROAR (VOLATILE_CONDITION_UPROAR_0 | VOLATILE_CONDITION_UPROAR_1 | VOLATILE_CONDITION_UPROAR_2)
#define VOLATILE_CONDITION_BIDE (VOLATILE_CONDITION_BIDE_0 | VOLATILE_CONDITION_BIDE_1)
#define VOLATILE_CONDITION_THRASH (VOLATILE_CONDITION_THRASH_0 | VOLATILE_CONDITION_THRASH_1)
#define VOLATILE_CONDITION_BIND (VOLATILE_CONDITION_BIND_0 | VOLATILE_CONDITION_BIND_1 | VOLATILE_CONDITION_BIND_2)
#define VOLATILE_CONDITION_ATTRACT (VOLATILE_CONDITION_ATTRACT_0 | VOLATILE_CONDITION_ATTRACT_1 | VOLATILE_CONDITION_ATTRACT_2 | VOLATILE_CONDITION_ATTRACT_3)
#define VOLATILE_CONDITION_BATON_PASSED (VOLATILE_CONDITION_FOCUS_ENERGY \
| VOLATILE_CONDITION_MEAN_LOOK \
| VOLATILE_CONDITION_CONFUSION \
| VOLATILE_CONDITION_CURSE \
| VOLATILE_CONDITION_SUBSTITUTE)
#define VOLATILE_CONDITION_TRAPPED (VOLATILE_CONDITION_BIND \
| VOLATILE_CONDITION_MEAN_LOOK)
#define VOLATILE_CONDITION_CONFUSION_SHIFT 0
#define VOLATILE_CONDITION_UPROAR_SHIFT 4
#define VOLATILE_CONDITION_BIDE_SHIFT 8
#define VOLATILE_CONDITION_THRASH_SHIFT 10
#define VOLATILE_CONDITION_BIND_SHIFT 13
#define VOLATILE_CONDITION_ATTRACT_SHIFT 16
#define SIDE_CONDITION_NONE 0
#define SIDE_CONDITION_REFLECT (1 << 0)
#define SIDE_CONDITION_LIGHT_SCREEN (1 << 1)
#define SIDE_CONDITION_SPIKES (1 << 2)
#define SIDE_CONDITION_SAFEGUARD (1 << 3)
#define SIDE_CONDITION_FUTURE_SIGHT (1 << 4)
#define SIDE_CONDITION_WISH (1 << 5)
#define SIDE_CONDITION_MIST (1 << 6)
#define SIDE_CONDITION_STEALTH_ROCK (1 << 7)
#define SIDE_CONDITION_TAILWIND_0 (1 << 8)
#define SIDE_CONDITION_TAILWIND_1 (1 << 9)
#define SIDE_CONDITION_TOXIC_SPIKES (1 << 10)
// unused flag: 1 << 11
#define SIDE_CONDITION_LUCKY_CHANT_0 (1 << 12)
#define SIDE_CONDITION_LUCKY_CHANT_1 (1 << 13)
#define SIDE_CONDITION_LUCKY_CHANT_2 (1 << 14)
#define SIDE_CONDITION_TAILWIND (SIDE_CONDITION_TAILWIND_0 | SIDE_CONDITION_TAILWIND_1)
#define SIDE_CONDITION_LUCKY_CHANT (SIDE_CONDITION_LUCKY_CHANT_0 | SIDE_CONDITION_LUCKY_CHANT_1 | SIDE_CONDITION_LUCKY_CHANT_2)
#define SIDE_CONDITION_TAILWIND_SHIFT SIDE_CONDITION_TAILWIND_0
#define SIDE_CONDITION_LUCKY_CHANT_SHIFT SIDE_CONDITION_LUCKY_CHANT_0
#define FIELD_CONDITION_RAINING_TEMP (1 << 0)
#define FIELD_CONDITION_RAINING_PERM (1 << 1)
#define FIELD_CONDITION_SANDSTORM_TEMP (1 << 2)
#define FIELD_CONDITION_SANDSTORM_PERM (1 << 3)
#define FIELD_CONDITION_SUNNY_TEMP (1 << 4)
#define FIELD_CONDITION_SUNNY_PERM (1 << 5)
#define FIELD_CONDITION_HAILING_TEMP (1 << 6)
#define FIELD_CONDITION_HAILING_PERM (1 << 7)
#define FIELD_CONDITION_UPROAR ((1 << 8) | (1 << 9) | (1 << 10) | (1 << 11)) // mask for which clients are in an Uproar
#define FIELD_CONDITION_GRAVITY_0 (1 << 12)
#define FIELD_CONDITION_GRAVITY_1 (1 << 13)
#define FIELD_CONDITION_GRAVITY_2 (1 << 14)
#define FIELD_CONDITION_DEEP_FOG (1 << 15)
#define FIELD_CONDITION_TRICK_ROOM_0 (1 << 16)
#define FIELD_CONDITION_TRICK_ROOM_1 (1 << 17)
#define FIELD_CONDITION_TRICK_ROOM_2 (1 << 18)
#define FIELD_CONDITION_RAINING (FIELD_CONDITION_RAINING_TEMP | FIELD_CONDITION_RAINING_PERM)
#define FIELD_CONDITION_SANDSTORM (FIELD_CONDITION_SANDSTORM_TEMP | FIELD_CONDITION_SANDSTORM_PERM)
#define FIELD_CONDITION_SUNNY (FIELD_CONDITION_SUNNY_TEMP | FIELD_CONDITION_SUNNY_PERM)
#define FIELD_CONDITION_HAILING (FIELD_CONDITION_HAILING_TEMP | FIELD_CONDITION_HAILING_PERM)
#define FIELD_CONDITION_WEATHER (FIELD_CONDITION_RAINING \
| FIELD_CONDITION_SANDSTORM \
| FIELD_CONDITION_SUNNY \
| FIELD_CONDITION_HAILING \
| FIELD_CONDITION_DEEP_FOG)
#define FIELD_CONDITION_SOLAR_DOWN (FIELD_CONDITION_RAINING \
| FIELD_CONDITION_SANDSTORM \
| FIELD_CONDITION_HAILING \
| FIELD_CONDITION_DEEP_FOG)
#define FIELD_CONDITION_CASTFORM (FIELD_CONDITION_RAINING | FIELD_CONDITION_SUNNY | FIELD_CONDITION_HAILING)
#define FIELD_CONDITION_GRAVITY (FIELD_CONDITION_GRAVITY_0 | FIELD_CONDITION_GRAVITY_1 | FIELD_CONDITION_GRAVITY_2)
#define FIELD_CONDITION_GRAVITY_INIT (FIELD_CONDITION_GRAVITY_0 | FIELD_CONDITION_GRAVITY_2)
#define FIELD_CONDITION_TRICK_ROOM (FIELD_CONDITION_TRICK_ROOM_0 | FIELD_CONDITION_TRICK_ROOM_1 | FIELD_CONDITION_TRICK_ROOM_2)
#define FIELD_CONDITION_TRICK_ROOM_INIT (FIELD_CONDITION_TRICK_ROOM_0 | FIELD_CONDITION_TRICK_ROOM_2)
#define FIELD_CONDITION_UPROAR_SHIFT 8
#define FIELD_CONDITION_GRAVITY_SHIFT 12
#define FIELD_CONDITION_TRICK_ROOM_SHIFT 16
#endif // POKEPLATINUM_CONSTANTS_BATTLE_CONDITION_H