/*! \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* get_location (); Placement* get_placement (); void set_collision (CollisionCluster* newhull); bool isFree (); //void addAbility(Ability* ability); //void removeAbility(Ability* ability); virtual void post_spawn (); 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 get_lookat (Location* locbuf); virtual void left_world (); 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