summaryrefslogtreecommitdiff
path: root/src/game-server/being.hpp
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2007-03-31 12:15:39 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2007-03-31 12:15:39 +0000
commite0c185864c09cebd3a7a0118d20ca3a368cbdb6e (patch)
treeef1b06b20e1d5ef2ae94a8b0a6ea739619fb4eed /src/game-server/being.hpp
parenteba3a8635b308475aa4bcfc5f5cd058c48ed679d (diff)
downloadmanaserv-e0c185864c09cebd3a7a0118d20ca3a368cbdb6e.tar.gz
manaserv-e0c185864c09cebd3a7a0118d20ca3a368cbdb6e.tar.bz2
manaserv-e0c185864c09cebd3a7a0118d20ca3a368cbdb6e.tar.xz
manaserv-e0c185864c09cebd3a7a0118d20ca3a368cbdb6e.zip
Added a DeathListener interface, which the SpawnArea now uses to get notified
about dying beings, so that it knows when to spawn more.
Diffstat (limited to 'src/game-server/being.hpp')
-rw-r--r--src/game-server/being.hpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/game-server/being.hpp b/src/game-server/being.hpp
index 4423c68e..e0d064bd 100644
--- a/src/game-server/being.hpp
+++ b/src/game-server/being.hpp
@@ -31,6 +31,7 @@
#include "game-server/movingobject.hpp"
class Being;
+class DeathListener;
class MapComposite;
/**
@@ -208,6 +209,22 @@ class Being : public MovingObject
unsigned short getAttribute(int attributeNumber) const
{ return mAttributes.at(attributeNumber); }
+ /**
+ * Adds a death listener.
+ */
+ void addDeathListener(DeathListener *listener)
+ {
+ mDeathListeners.push_back(listener);
+ }
+
+ /**
+ * Removes a death listener.
+ */
+ void removeDeathListener(DeathListener *listener)
+ {
+ mDeathListeners.remove(listener);
+ }
+
protected:
/**
* Calculates all derived attributes of a beings
@@ -229,6 +246,7 @@ class Being : public MovingObject
Being(Being const &rhs);
Being &operator=(Being const &rhs);
+ std::list<DeathListener*> mDeathListeners;
Hits mHitsTaken; /**< List of punches taken since last update */
};