/*! \file world_entity.h \brief Definition of the basic WorldEntity */ #ifndef _WORLD_ENTITY_H #define _WORLD_ENTITY_H #include "stdincl.h" class CollisionCluster; //! Basic class from which all interactive stuff in the world is derived from class WorldEntity { friend class World; public: WorldEntity (bool isFree = false); virtual ~WorldEntity (); Location* getLocation (); Placement* getPlacement (); void setCollision (CollisionCluster* newhull); bool isFree (); //void addAbility(Ability* ability); //void removeAbility(Ability* ability); virtual void postSpawn (); virtual void tick (float time); virtual void hit (WorldEntity* weapon, Vector loc); virtual void destroy (); virtual void collide (WorldEntity* other, Uint32 ownhitflags, Uint32 otherhitflags); virtual void command (Command* cmd); virtual void draw (); virtual void getLookat (Location* locbuf); virtual void leftWorld (); private: const bool bFree; bool bCollide; bool bDraw; WorldEntity* owner; CollisionCluster* collisioncluster; Placement place; Location loc; void init( Location* spawnloc, WorldEntity* spawnowner); void init( Placement* spawnplc, WorldEntity* spawnowner); }; #endif /* _WORLD_ENTITY_H */