#ifndef GUARD_CONSTANTS_STATUS_H
#define GUARD_CONSTANTS_STATUS_H

#define SLEEP_STATUS_NONE 0
#define SLEEP_STATUS_SLEEP 1
#define SLEEP_STATUS_SLEEPLESS 2
#define SLEEP_STATUS_NIGHTMARE 3
#define SLEEP_STATUS_YAWNING 4
#define SLEEP_STATUS_NAPPING 5

#define NON_VOLATILE_STATUS_NONE 0
#define NON_VOLATILE_STATUS_BURNED 1
#define NON_VOLATILE_STATUS_POISONED 2
#define NON_VOLATILE_STATUS_BADLY_POISONED 3
#define NON_VOLATILE_STATUS_PARALYZED 4

#define IMMOBILIZE_STATUS_NONE 0
#define IMMOBILIZE_STATUS_FROZEN 1
#define IMMOBILIZE_STATUS_IMMOBILIZED 2
#define IMMOBILIZE_STATUS_WRAPPED_AROUND_FOE 3
#define IMMOBILIZE_STATUS_WRAPPED_BY_FOE 4
#define IMMOBILIZE_STATUS_INGRAIN 5
#define IMMOBILIZE_STATUS_PETRIFIED 6
#define IMMOBILIZE_STATUS_SQUEEZED 7

#define VOLATILE_STATUS_NONE 0
#define VOLATILE_STATUS_CRINGING 1
#define VOLATILE_STATUS_CONFUSED 2
#define VOLATILE_STATUS_PAUSED 3
#define VOLATILE_STATUS_COWERING 4
#define VOLATILE_STATUS_TAUNTED 5
#define VOLATILE_STATUS_ENCORE 6
#define VOLATILE_STATUS_INFATUATED 7

#define CHARGING_STATUS_NONE 0
#define CHARGING_STATUS_BIDE 1
#define CHARGING_STATUS_SOLARBEAM 2
#define CHARGING_STATUS_SKY_ATTACK 3
#define CHARGING_STATUS_RAZOR_WIND 4
#define CHARGING_STATUS_FOCUS_PUNCH 5
#define CHARGING_STATUS_SKULL_BASH 6
#define CHARGING_STATUS_FLY 7
#define CHARGING_STATUS_BOUNCE 8
#define CHARGING_STATUS_DIVE 9
#define CHARGING_STATUS_DIG 10
#define CHARGING_STATUS_CHARGE 11
#define CHARGING_STATUS_RAGE 12

#define PROTECTION_STATUS_NONE 0
#define PROTECTION_STATUS_REFLECT 1
#define PROTECTION_STATUS_SAFEGUARD 2
#define PROTECTION_STATUS_LIGHT_SCREEN 3
#define PROTECTION_STATUS_COUNTER 4
#define PROTECTION_STATUS_MAGIC_COAT 5
#define PROTECTION_STATUS_WISH 6
#define PROTECTION_STATUS_PROTECT 7
#define PROTECTION_STATUS_MIRROR_COAT 8
#define PROTECTION_STATUS_ENDURE 9
#define PROTECTION_STATUS_MINI_COUNTER 10
#define PROTECTION_STATUS_MIRROR_MOVE 11
#define PROTECTION_STATUS_CONVERSION_2 12
#define PROTECTION_STATUS_VITAL_THROW 13
#define PROTECTION_STATUS_MIST 14

#define WAITING_STATUS_NONE 0
#define WAITING_STATUS_CURSED 1
#define WAITING_STATUS_DECOY 2
#define WAITING_STATUS_SNATCH 3

#define LINKED_STATUS_NONE 0
#define LINKED_STATUS_LEECH_SEED 1
#define LINKED_STATUS_DESTINY_BOND 2

#define MOVE_STATUS_NONE 0
#define MOVE_STATUS_SURE_SHOT 1
#define MOVE_STATUS_WHIFFER 2
#define MOVE_STATUS_SET_DAMAGE 3
#define MOVE_STATUS_FOCUS_ENERGY 4

#define ITEM_STATUS_NONE 0
#define ITEM_STATUS_LONG_TOSS 1
#define ITEM_STATUS_PIERCE 2

#define TRANSFORM_STATUS_NONE 0
#define TRANSFORM_STATUS_INVISIBLE 1
#define TRANSFORM_STATUS_TRANSFORMED 2
#define TRANSFORM_STATUS_MOBILE 3

#define EYESIGHT_STATUS_NONE 0
#define EYESIGHT_STATUS_BLINKER 1
#define EYESIGHT_STATUS_CROSS_EYED 2
#define EYESIGHT_STATUS_EYEDROPS 3

#define MUZZLED_STATUS_NONE 0
#define MUZZLED_STATUS_MUZZLED 1

#define STATUS_SPRITE_SLEEPLESS (1 << 0)
#define STATUS_SPRITE_BURNED (1 << 1)
#define STATUS_SPRITE_POISONED (1 << 2)
#define STATUS_SPRITE_BADLY_POISONED (1 << 3)
#define STATUS_SPRITE_CONFUSED (1 << 4)
#define STATUS_SPRITE_COWERING (1 << 5)
#define STATUS_SPRITE_TAUNTED (1 << 6)
#define STATUS_SPRITE_ENCORE (1 << 7)
#define STATUS_SPRITE_SHIELD_BLUE (1 << 8) // REFLECT, COUNTER, MINI_COUNTER, MIST
#define STATUS_SPRITE_SHIELD_RED (1 << 9) // SAFEGUARD, MIRROR_COAT
#define STATUS_SPRITE_SHIELD_YELLOW (1 << 10) // LIGHT_SCREEN, MAGIC_COAT
#define STATUS_SPRITE_SHIELD_GREEN (1 << 11) // PROTECT, MIRRO_MOVE, VITAL_THROW
#define STATUS_SPRITE_ENDURE (1 << 12)
#define STATUS_SPRITE_LOWHP (1 << 13)
#define STATUS_SPRITE_CURSED (1 << 14)
#define STATUS_SPRITE_SNATCH (1 << 15)
#define STATUS_SPRITE_SURE_SHOT (1 << 16)
#define STATUS_SPRITE_WHIFFER (1 << 17)
#define STATUS_SPRITE_SET_DAMAGE (1 << 18)
#define STATUS_SPRITE_FOCUS_ENERGY (1 << 19)
#define STATUS_SPRITE_BLINKER (1 << 20)
#define STATUS_SPRITE_CROSS_EYED (1 << 21)
#define STATUS_SPRITE_EYEDROPS (1 << 22)
#define STATUS_SPRITE_MUZZLED (1 << 23)
#define STATUS_SPRITE_GRUDGE (1 << 24)
#define STATUS_SPRITE_EXPOSED (1 << 25)
#define STATUS_SPRITE_SLEEP (1 << 26)
#define STATUS_SPRITE_STAT_DOWN (1 << 27)
#define STATUS_SPRITE_FROZEN (1 << 28)

#endif
