summaryrefslogtreecommitdiff
path: root/src/game-server/item.cpp
diff options
context:
space:
mode:
authorStefan Beller <stefanbeller@googlemail.com>2012-08-05 22:44:20 +0200
committerStefan Beller <stefanbeller@googlemail.com>2012-08-05 22:44:39 +0200
commitdf976b4e95de4209b2a3da2644cce9ffbacc6415 (patch)
treed35e0921a5b0d8b0d75ae3f8c28b6189780e074c /src/game-server/item.cpp
parent9df9797cfd310be64ffb5769d006a72d8c0e5e42 (diff)
downloadmanaserv-df976b4e95de4209b2a3da2644cce9ffbacc6415.tar.gz
manaserv-df976b4e95de4209b2a3da2644cce9ffbacc6415.tar.bz2
manaserv-df976b4e95de4209b2a3da2644cce9ffbacc6415.tar.xz
manaserv-df976b4e95de4209b2a3da2644cce9ffbacc6415.zip
Remove resetEffects; move it to destructor in ItemClass.
Reviewed-by: bjorn
Diffstat (limited to 'src/game-server/item.cpp')
-rw-r--r--src/game-server/item.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/game-server/item.cpp b/src/game-server/item.cpp
index 03aeebcb..d85a1615 100644
--- a/src/game-server/item.cpp
+++ b/src/game-server/item.cpp
@@ -98,6 +98,24 @@ void ItemEffectScript::dispell(Being *itemUser)
}
}
+ItemClass::~ItemClass()
+{
+ while (mEffects.begin() != mEffects.end())
+ {
+ delete mEffects.begin()->second;
+ mEffects.erase(mEffects.begin());
+ }
+}
+
+void ItemClass::addEffect(ItemEffectInfo *effect,
+ ItemTriggerType id,
+ ItemTriggerType dispell)
+{
+ mEffects.insert(std::make_pair(id, effect));
+ if (dispell)
+ mDispells.insert(std::make_pair(dispell, effect));
+}
+
bool ItemClass::useTrigger(Being *itemUser, ItemTriggerType trigger)
{
if (!trigger)