Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/entity.h')
-rw-r--r--src/core/entity.h45
1 files changed, 27 insertions, 18 deletions
diff --git a/src/core/entity.h b/src/core/entity.h
index 518166b..62b8a39 100644
--- a/src/core/entity.h
+++ b/src/core/entity.h
@@ -34,41 +34,47 @@ class Entity
{
public:
/// create a new entity and add it to the registry
- Entity(unsigned int entity_flags = 0, unsigned int entity_type = entity::Default);
+ Entity(unsigned int entity_flags = 0);
virtual ~Entity();
- /// id of the entity
- unsigned int id;
+ /// core type of this entity
+ virtual inline unsigned int core_type() { return entity::Default; }
- /// flags
- unsigned int flags;
-
- /// type
- unsigned int type;
-
- /// base shape
- entity::Shape base_shape;
+ /// core shape
+ entity::Shape core_shape;
- /// base color
- math::Color base_color;
+ /// core color
+ math::Color core_color;
- /// base radius
- float base_radius;
+ /// core radius
+ float core_radius;
/// label
std::string label;
+ /// custom game type of this entity
+ unsigned int type;
+
+ /// id of the entity
+ unsigned int id;
+
+ /// flags
+ unsigned int flags;
+
/* updateable */
/// location of the entity
math::Vector3f location;
};
-/// an entity that can move
+/// an entity that can move around in the game world
class EntityDynamic : public Entity
{
public:
- EntityDynamic(unsigned int entity_flags = 0, unsigned int entity_type=entity::Dynamic);
+ EntityDynamic(unsigned int entity_flags = 0);
+
+ /// core type of this entity
+ virtual inline unsigned int core_type() { return entity::Dynamic; }
/* updateable */
@@ -80,7 +86,10 @@ public:
class EntityControlable : public EntityDynamic
{
public:
- EntityControlable(unsigned int entity_flags = 0, unsigned int entity_type=entity::Controlable);
+ EntityControlable(unsigned int entity_flags = 0);
+
+ /// core type of this entity
+ virtual inline unsigned int core_type() { return entity::Controlable; }
/// owner of this controllable entity
Player *owner;