summaryrefslogtreecommitdiff
path: root/src/game-server/entity.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/entity.h')
-rw-r--r--src/game-server/entity.h162
1 files changed, 94 insertions, 68 deletions
diff --git a/src/game-server/entity.h b/src/game-server/entity.h
index 7aed29e6..9d418df3 100644
--- a/src/game-server/entity.h
+++ b/src/game-server/entity.h
@@ -48,76 +48,21 @@ class Entity : public sigc::trackable
virtual ~Entity();
- /**
- * Gets type of this entity.
- *
- * @return the type of this entity.
- */
- EntityType getType() const
- { return mType; }
-
- /**
- * Adds a component. Only one component of a given type can be added.
- * Entity takes ownership of \a component.
- */
- template <class T>
- void addComponent(T *component)
- {
- assert(!mComponents[T::type]);
- mComponents[T::type] = component;
- }
-
- /**
- * Returns the component of the given type, or 0 when no such component
- * was set.
- */
- Component *getComponent(ComponentType type) const
- { return mComponents[type]; }
-
- /**
- * Get a component by its class. Avoids the need for doing a static-
- * cast in the calling code.
- */
- template <class T>
- T *getComponent() const
- { return static_cast<T*>(getComponent(T::type)); }
-
- /**
- * Returns whether this entity is visible on the map or not. (Actor)
- */
- bool isVisible() const
- { return mType != OBJECT_OTHER; }
-
- /**
- * Returns whether this entity can move on the map or not. (Actor)
- */
- bool canMove() const
- { return mType == OBJECT_CHARACTER || mType == OBJECT_MONSTER ||
- mType == OBJECT_NPC; }
-
- /**
- * Returns whether this entity can fight or not. (Being)
- */
- bool canFight() const
- { return mType == OBJECT_CHARACTER || mType == OBJECT_MONSTER; }
-
- /**
- * Updates the internal status. By default, calls update on all its
- * components.
- */
- virtual void update();
+ EntityType getType() const;
+
+ template <class T> void addComponent(T *component);
+ template <class T> T *getComponent() const;
+
+ Component *getComponent(ComponentType type) const;
- /**
- * Gets the map this entity is located on.
- */
- MapComposite *getMap() const
- { return mMap; }
+ bool isVisible() const;
+ bool canMove() const;
+ bool canFight() const;
- /**
- * Sets the map this entity is located on.
- */
- virtual void setMap(MapComposite *map)
- { mMap = map; }
+ virtual void update();
+
+ MapComposite *getMap() const;
+ virtual void setMap(MapComposite *map);
sigc::signal<void, Entity *> signal_inserted;
sigc::signal<void, Entity *> signal_removed;
@@ -129,4 +74,85 @@ class Entity : public sigc::trackable
Component *mComponents[ComponentTypeCount];
};
+/**
+ * Gets type of this entity.
+ *
+ * @return the type of this entity.
+ */
+inline EntityType Entity::getType() const
+{
+ return mType;
+}
+
+/**
+ * Adds a component. Only one component of a given type can be added.
+ * Entity takes ownership of \a component.
+ */
+template <class T>
+inline void Entity::addComponent(T *component)
+{
+ assert(!mComponents[T::type]);
+ mComponents[T::type] = component;
+}
+
+/**
+ * Returns the component of the given type, or 0 when no such component
+ * was set.
+ */
+inline Component *Entity::getComponent(ComponentType type) const
+{
+ return mComponents[type];
+}
+
+/**
+ * Get a component by its class. Avoids the need for doing a static-
+ * cast in the calling code.
+ */
+template <class T>
+inline T *Entity::getComponent() const
+{
+ return static_cast<T*>(getComponent(T::type));
+}
+
+/**
+ * Returns whether this entity is visible on the map or not. (Actor)
+ */
+inline bool Entity::isVisible() const
+{
+ return mType != OBJECT_OTHER;
+}
+
+/**
+ * Returns whether this entity can move on the map or not. (Actor)
+ */
+inline bool Entity::canMove() const
+{
+ return mType == OBJECT_CHARACTER || mType == OBJECT_MONSTER ||
+ mType == OBJECT_NPC;
+}
+
+/**
+ * Returns whether this entity can fight or not. (Being)
+ */
+inline bool Entity::canFight() const
+{
+ return mType == OBJECT_CHARACTER || mType == OBJECT_MONSTER;
+}
+
+/**
+ * Gets the map this entity is located on.
+ */
+inline MapComposite *Entity::getMap() const
+{
+ return mMap;
+}
+
+/**
+ * Sets the map this entity is located on.
+ */
+inline void Entity::setMap(MapComposite *map)
+{
+ mMap = map;
+}
+
#endif // ENTITY_H