diff options
Diffstat (limited to 'src/game-server/itemmanager.cpp')
-rw-r--r-- | src/game-server/itemmanager.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/game-server/itemmanager.cpp b/src/game-server/itemmanager.cpp index 159b8356..65419011 100644 --- a/src/game-server/itemmanager.cpp +++ b/src/game-server/itemmanager.cpp @@ -33,6 +33,8 @@ #include "utils/logger.h" #include "utils/xml.hpp" +#include <sstream> + typedef std::map< int, ItemClass * > ItemClasses; static ItemClasses itemClasses; /**< Item reference */ static std::string itemReferenceFile; @@ -179,10 +181,23 @@ void ItemManager::reload() weight = 1; } + Script *s; + //TODO: Clean this up some + std::stringstream filename; + filename << "scripts/items/" << id << ".lua"; + + if(ResourceManager::exists(filename.str())) //file exists! + { + LOG_INFO("Loading item script: " + filename.str()); + s = Script::create("lua"); + s->loadFile(filename.str()); + } + + item->setWeight(weight); item->setCost(value); item->setMaxPerSlot(maxPerSlot); - //item->setScriptName(scriptName); + item->setScript(s); item->setModifiers(modifiers); item->setSpriteID(sprite ? sprite : id); ++nbItems; |