00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _TMWSERV_ACTOR_H_
00022 #define _TMWSERV_ACTOR_H_
00023
00024 #include "point.h"
00025 #include "game-server/map.hpp"
00026 #include "game-server/thing.hpp"
00027
00032 enum
00033 {
00034 UPDATEFLAG_NEW_ON_MAP = 1,
00035 UPDATEFLAG_NEW_DESTINATION = 2,
00036 UPDATEFLAG_ATTACK = 4,
00037 UPDATEFLAG_ACTIONCHANGE = 8,
00038 UPDATEFLAG_LOOKSCHANGE = 16,
00039 UPDATEFLAG_DIRCHANGE = 32,
00040 UPDATEFLAG_HEALTHCHANGE = 64
00041 };
00042
00047 class Actor : public Thing
00048 {
00049 public:
00053 Actor(ThingType type)
00054 : Thing(type),
00055 mActionTime(0),
00056 mUpdateFlags(0),
00057 mPublicID(65535),
00058 mSize(0)
00059 {}
00060
00067 void setPosition(const Point &p);
00068
00074 const Point &getPosition() const
00075 { return mPos; }
00076
00080 int getUpdateFlags() const
00081 { return mUpdateFlags; }
00082
00086 void raiseUpdateFlags(int n)
00087 { mUpdateFlags |= n; }
00088
00092 void clearUpdateFlags()
00093 { mUpdateFlags = 0; }
00094
00098 void setSize(int s) { mSize = s; }
00099 int getSize() const { return mSize; }
00100
00106 int getPublicID() const
00107 { return mPublicID; }
00108
00112 void setPublicID(int id)
00113 { mPublicID = id; }
00114
00118 virtual unsigned char getWalkMask() const
00119 { return 0x00; }
00120
00124 virtual void setMap(MapComposite *map);
00125
00126 protected:
00130 virtual Map::BlockType getBlockType() const
00131 { return Map::BLOCKTYPE_NONE; }
00132
00133 unsigned short mActionTime;
00135 private:
00136 char mUpdateFlags;
00139 unsigned short mPublicID;
00140
00141 Point mPos;
00142 unsigned char mSize;
00143 };
00144
00145 #endif // _TMWSERV_ACTOR_H_