summaryrefslogtreecommitdiff
path: root/src/game-server/itemmanager.cpp
diff options
context:
space:
mode:
authorFreeyorp <Freeyorp101@hotmail.com>2010-07-10 21:45:38 +1200
committerFreeyorp <Freeyorp101@hotmail.com>2010-07-10 21:51:37 +1200
commit151f6acdee17556d249e1b61f264ed2e95b84354 (patch)
treeda38282be8a068cc3eba517bf7aacaf674b73b2f /src/game-server/itemmanager.cpp
parent98cdcb1de4f422255aa5ef924042ae7d00a5b968 (diff)
downloadmanaserv-151f6acdee17556d249e1b61f264ed2e95b84354.tar.gz
manaserv-151f6acdee17556d249e1b61f264ed2e95b84354.tar.bz2
manaserv-151f6acdee17556d249e1b61f264ed2e95b84354.tar.xz
manaserv-151f6acdee17556d249e1b61f264ed2e95b84354.zip
Add in stubs for scripted item effects
Diffstat (limited to 'src/game-server/itemmanager.cpp')
-rw-r--r--src/game-server/itemmanager.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/game-server/itemmanager.cpp b/src/game-server/itemmanager.cpp
index 363ada4b..802197d6 100644
--- a/src/game-server/itemmanager.cpp
+++ b/src/game-server/itemmanager.cpp
@@ -286,6 +286,28 @@ void ItemManager::reload()
}
else if (xmlStrEqual(effectnode->name, BAD_CAST "consumes"))
item->addEffect(new ItemEffectConsumes(), triggerTypes.first);
+ else if (xmlStrEqual(effectnode->name, BAD_CAST "script"))
+ {
+ std::string src = XML::getProperty(effectnode, "src", "");
+ if (src.empty())
+ {
+ LOG_WARN("Item Manager: Empty src definition for script effect, skipping!");
+ continue;
+ }
+ std::string func = XML::getProperty(effectnode, "function", "");
+ if (func.empty())
+ {
+ LOG_WARN ("Item Manager: Empty func definition for script effect, skipping!");
+ continue;
+ }
+ for_each_xml_child_node(scriptnode, effectnode)
+ {
+ // TODO: Load variables from variable subnodes
+ }
+ std::string dfunc = XML::getProperty(effectnode, "dispell-function", "");
+ // STUB
+ item->addEffect(new ItemEffectScript(), triggerTypes.first, triggerTypes.second);
+ }
}
}
// More properties go here