summaryrefslogtreecommitdiff
path: root/src/game-server/item.cpp
diff options
context:
space:
mode:
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)