diff options
author | Freeyorp <Freeyorp101@hotmail.com> | 2010-07-10 21:45:38 +1200 |
---|---|---|
committer | Freeyorp <Freeyorp101@hotmail.com> | 2010-07-10 21:51:37 +1200 |
commit | 151f6acdee17556d249e1b61f264ed2e95b84354 (patch) | |
tree | da38282be8a068cc3eba517bf7aacaf674b73b2f /src/game-server/itemmanager.cpp | |
parent | 98cdcb1de4f422255aa5ef924042ae7d00a5b968 (diff) | |
download | manaserv-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.cpp | 22 |
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 |