summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game-server/item.cpp18
-rw-r--r--src/game-server/item.h20
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 */