diff options
-rw-r--r-- | src/game-server/item.cpp | 18 | ||||
-rw-r--r-- | src/game-server/item.h | 20 |
2 files changed, 20 insertions, 18 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) diff --git a/src/game-server/item.h b/src/game-server/item.h index b93352e7..bfc0c80b 100644 --- a/src/game-server/item.h +++ b/src/game-server/item.h @@ -181,8 +181,7 @@ class ItemClass mMaxPerSlot(maxperslot) {} - ~ItemClass() - { resetEffects(); } + ~ItemClass(); /** * Returns the name of the item type @@ -255,22 +254,7 @@ class ItemClass */ void addEffect(ItemEffectInfo *effect, ItemTriggerType id, - ItemTriggerType dispell = ITT_NULL) - { - mEffects.insert(std::make_pair(id, effect)); - if (dispell) - mDispells.insert(std::make_pair(dispell, effect)); - } - - void resetEffects() - { - while (mEffects.begin() != mEffects.end()) - { - delete mEffects.begin()->second; - mEffects.erase(mEffects.begin()); - } - mDispells.clear(); - } + ItemTriggerType dispell = ITT_NULL); unsigned short mDatabaseID; /**< Item reference information */ std::string mName; /**< name used to identify the item class */ |