summaryrefslogblamecommitdiff
path: root/src/map/map.t.hpp
blob: 50110e9a2188c698d8306e5198b5b19dda48f6f2 (plain) (tree)


























































































                                                                                 
#ifndef MAP_T_HPP
#define MAP_T_HPP

#include "../common/utils.hpp"

// [Fate] status.option properties.  These are persistent status changes.
// IDs that are not listed are not used in the code (to the best of my knowledge)
enum class Option : uint16_t
{
    ZERO            = 0x0000,

    SIGHT           = 0x0001,
    // apparently some weaker non-GM hide
    HIDE2           = 0x0002,
    CLOAK           = 0x0004,
    CART1           = 0x0008,
    FALCON          = 0x0010,
    RIDING          = 0x0020,
    // [Fate] This is the GM `@hide' flag
    HIDE            = 0x0040,
    CART2           = 0x0080,
    CART3           = 0x0100,
    CART4           = 0x0200,
    CART5           = 0x0400,
    ORC_HEAD        = 0x0800,
    // [Fate] Complete invisibility to other clients
    INVISIBILITY    = 0x1000,
    _wedding        = 0x1000,
    // [Fate] Auto-logging of nearby comments
    SCRIBE          = 0x2000,
    _ruwach         = 0x2000,
    CHASEWALK       = 0x4000,
    sign            = 0x8000,


    // ?
    REAL_ANY_HIDE   = HIDE | CLOAK | HIDE2,
    OLD_ANY_HIDE    = CHASEWALK | CLOAK | HIDE2,
    CART_MASK       = CART1 | CART2 | CART3 | CART4 | CART5,
    MASK            = sign | CHASEWALK | _wedding | CART_MASK | RIDING | FALCON,
};
enum class Opt1 : uint16_t
{
    ZERO            = 0,
    _stone1         = 1,
    _freeze         = 2,
    _stan           = 3,
    _sleep          = 4,
    _stone6         = 6,
};
enum class Opt2 : uint16_t
{
    ZERO            = 0x0000,
    _poison         = 0x0001,
    _curse          = 0x0002,
    _silence        = 0x0004,
    BLIND           = 0x0010,
    _speedpotion0   = 0x0020,
    _signumcrucis   = 0x0040,
    _atkpot         = 0x0080,
    _heal           = 0x0100,
    _slowpoison     = 0x0200,
    sign            = 0x8000,
};
enum class Opt3 : uint16_t
{
    ZERO            = 0x0000,
    _concentration  = 0x0001,
    _overthrust     = 0x0002,
    _energycoat     = 0x0004,
    _explosionspirits = 0x0008,
    _steelbody      = 0x0010,
    _bladestop      = 0x0020,
    _berserk        = 0x0080,

    _marionette     = 0x0400,
    _assumptio      = 0x0800,

    sign            = 0x8000,
};

ENUM_BITWISE_OPERATORS(Option)
ENUM_BITWISE_OPERATORS(Opt2)
ENUM_BITWISE_OPERATORS(Opt3)


enum
{ BL_NUL, BL_PC, BL_NPC, BL_MOB, BL_ITEM, BL_CHAT, BL_SKILL, BL_SPELL };
enum
{ WARP, SHOP, SCRIPT, MONS, MESSAGE };
#endif // MAP_T_HPP