diff options
Diffstat (limited to 'src/game-server/item.cpp')
-rw-r--r-- | src/game-server/item.cpp | 18 |
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) |