summaryrefslogtreecommitdiff
path: root/src/game-server/itemmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/itemmanager.cpp')
-rw-r--r--src/game-server/itemmanager.cpp17
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;