#ifndef _UNIT_H #define _UNIT_H #include "Object.h" enum UnitMoveType { MOVE_WALK = 0, MOVE_RUN = 1, MOVE_WALKBACK = 2, MOVE_SWIM = 3, MOVE_SWIMBACK = 4, MOVE_TURN = 5, MOVE_FLY = 6, MOVE_FLYBACK = 7, MAX_MOVE_TYPE = 8 }; enum UnitFlags { UNIT_FLAG_NONE = 0x00000000, UNIT_FLAG_DISABLE_MOVE = 0x00000004, UNIT_FLAG_UNKNOWN1 = 0x00000008, // essential for all units.. UNIT_FLAG_RENAME = 0x00000010, // rename creature, not working in 2.0.8 UNIT_FLAG_RESTING = 0x00000020, UNIT_FLAG_UNKNOWN2 = 0x00000100, // 2.0.8 UNIT_FLAG_UNKNOWN3 = 0x00000800, // in combat ?2.0.8 UNIT_FLAG_PVP = 0x00001000, UNIT_FLAG_MOUNT = 0x00002000, UNIT_FLAG_UNKNOWN4 = 0x00004000, // 2.0.8 UNIT_FLAG_PACIFIED = 0x00020000, UNIT_FLAG_DISABLE_ROTATE = 0x00040000, // may be it's stunned flag? UNIT_FLAG_IN_COMBAT = 0x00080000, UNIT_FLAG_DISARMED = 0x00200000, // disable melee spells casting..., "Required melee weapon" added to melee spells tooltip. UNIT_FLAG_CONFUSED = 0x00400000, UNIT_FLAG_FLEEING = 0x00800000, UNIT_FLAG_UNKNOWN5 = 0x01000000, // used in spell Eyes of the Beast for pet... UNIT_FLAG_NOT_SELECTABLE = 0x02000000, UNIT_FLAG_SKINNABLE = 0x04000000, UNIT_FLAG_UNKNOWN6 = 0x20000000, // used in Feing Death spell UNIT_FLAG_SHEATHE = 0x40000000 }; class Unit : public WorldObject { public: Unit(); void Create(uint64); uint8 GetGender(void); void SetSpeed(uint8 speednr, float speed) { _speed[speednr] = speed; } float GetSpeed(uint8 speednr) { return _speed[speednr]; } protected: float _speed[MAX_MOVE_TYPE]; }; #endif