summaryrefslogtreecommitdiff
path: root/src/statuseffect.cpp
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2010-06-13 13:16:16 -0600
committerJared Adams <jaxad0127@gmail.com>2010-06-13 13:16:16 -0600
commite8bea8a6edf69e824a922adeb5e697111ceabe90 (patch)
treedb1937956bc585b300f2a2c8312af4ad5bf924de /src/statuseffect.cpp
parent593fd2b831304c8e421589aab0fb158e4b7e9c35 (diff)
parent0b15a3ad32838134384524ce4af95d65b0b4e5da (diff)
downloadmana-client-e8bea8a6edf69e824a922adeb5e697111ceabe90.tar.gz
mana-client-e8bea8a6edf69e824a922adeb5e697111ceabe90.tar.bz2
mana-client-e8bea8a6edf69e824a922adeb5e697111ceabe90.tar.xz
mana-client-e8bea8a6edf69e824a922adeb5e697111ceabe90.zip
Merge remote branch '1.0/1.0'
Conflicts: data/graphics/CMakeLists.txt data/graphics/Makefile.am src/client.cpp
Diffstat (limited to 'src/statuseffect.cpp')
-rw-r--r--src/statuseffect.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/statuseffect.cpp b/src/statuseffect.cpp
index 49619f8a..6ab0b8fa 100644
--- a/src/statuseffect.cpp
+++ b/src/statuseffect.cpp
@@ -32,6 +32,8 @@
#define STATUS_EFFECTS_FILE "status-effects.xml"
+bool StatusEffect::mLoaded = false;
+
StatusEffect::StatusEffect() :
mPersistentParticleEffect(false)
{}
@@ -113,6 +115,9 @@ StatusEffect *StatusEffect::getStunEffect(int index, bool enabling)
void StatusEffect::load()
{
+ if (mLoaded)
+ unload();
+
XML::Document doc(STATUS_EFFECTS_FILE);
xmlNodePtr rootNode = doc.rootNode();
@@ -175,8 +180,13 @@ void unloadMap(std::map<int, StatusEffect *> map)
void StatusEffect::unload()
{
+ if (!mLoaded)
+ return;
+
unloadMap(statusEffects[0]);
unloadMap(statusEffects[1]);
unloadMap(stunEffects[0]);
unloadMap(stunEffects[1]);
+
+ mLoaded = false;
}