diff options
author | remoitnane <remoit(DOT)nane(AT)gmail(DOT)com> | 2010-07-07 03:59:33 -0700 |
---|---|---|
committer | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2010-07-08 22:33:31 +0200 |
commit | 27efdd9a80c7d068f27db8725c2315fee3e10303 (patch) | |
tree | 2699a54961f6c29249c9d48747b8938b2d99dbd1 /src/actorsprite.h | |
parent | f1cab9c5ab1d36586ae1e0d1dae3f3d1483522b5 (diff) | |
download | mana-27efdd9a80c7d068f27db8725c2315fee3e10303.tar.gz mana-27efdd9a80c7d068f27db8725c2315fee3e10303.tar.bz2 mana-27efdd9a80c7d068f27db8725c2315fee3e10303.tar.xz mana-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.h | 16 |
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 |