summaryrefslogtreecommitdiff
path: root/src/actorsprite.h
diff options
context:
space:
mode:
authorremoitnane <remoit(DOT)nane(AT)gmail(DOT)com>2010-07-07 03:59:33 -0700
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2010-07-08 22:33:31 +0200
commit27efdd9a80c7d068f27db8725c2315fee3e10303 (patch)
tree2699a54961f6c29249c9d48747b8938b2d99dbd1 /src/actorsprite.h
parentf1cab9c5ab1d36586ae1e0d1dae3f3d1483522b5 (diff)
downloadmana-client-27efdd9a80c7d068f27db8725c2315fee3e10303.tar.gz
mana-client-27efdd9a80c7d068f27db8725c2315fee3e10303.tar.bz2
mana-client-27efdd9a80c7d068f27db8725c2315fee3e10303.tar.xz
mana-client-27efdd9a80c7d068f27db8725c2315fee3e10303.zip
Fix crash in picking up an item that no longer exists
Adds ActorSpriteListener to manage ActorSprite destruction as recommended by Jaxad0127. This likewise includes the changes made by Bertram. Reviewed-by: Jaxad0127, Bertram. Resolves: Manasource Mantis #160
Diffstat (limited to 'src/actorsprite.h')
-rw-r--r--src/actorsprite.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/actorsprite.h b/src/actorsprite.h
index e218ef74..7cc91c53 100644
--- a/src/actorsprite.h
+++ b/src/actorsprite.h
@@ -29,9 +29,11 @@
#include <SDL_types.h>
#include <set>
+#include <list>
class SimpleAnimation;
class StatusEffect;
+class ActorSpriteListener;
class ActorSprite : public CompoundSprite, public Actor
{
@@ -160,6 +162,16 @@ public:
static void unload();
+ /**
+ * Add an ActorSprite listener.
+ */
+ void addActorSpriteListener(ActorSpriteListener *listener);
+
+ /**
+ * Remove an ActorSprite listener.
+ */
+ void removeActorSpriteListener(ActorSpriteListener *listener);
+
protected:
/**
* Trigger visual effect, with components
@@ -227,6 +239,10 @@ private:
/** Target cursor being used */
SimpleAnimation *mUsedTargetCursor;
+
+ typedef std::list<ActorSpriteListener*> ActorSpriteListeners;
+ typedef ActorSpriteListeners::iterator ActorSpriteListenerIterator;
+ ActorSpriteListeners mActorSpriteListeners;
};
#endif // ACTORSPRITE_H