]> git.localhorst.tv Git - l2e.git/blobdiff - src/loader/Interpreter.cpp
interpret Monster's meleeAnimation property
[l2e.git] / src / loader / Interpreter.cpp
index 0ff877688d1231c8794b371319444547234f629c..65db6a00400bccb30329fa40e3325d97a6ca33cc 100644 (file)
@@ -268,9 +268,10 @@ void Interpreter::ReadObject(const Definition &dfn) {
                ReadMonster(monsters.back(), *dfn.GetProperties());
                parsedDefinitions.insert(make_pair(dfn.Identifier(), ParsedDefinition(&dfn, MONSTER, monsters.size() - 1)));
        } else if (dfn.TypeName() == "Sprite") {
+               int index(sprites.size());
                sprites.push_back(Sprite());
                ReadSprite(sprites.back(), *dfn.GetProperties());
-               parsedDefinitions.insert(make_pair(dfn.Identifier(), ParsedDefinition(&dfn, SPRITE, sprites.size() - 1)));
+               parsedDefinitions.insert(make_pair(dfn.Identifier(), ParsedDefinition(&dfn, SPRITE, index)));
        } else {
                throw Error("unhandled object type: " + dfn.TypeName());
        }
@@ -368,6 +369,8 @@ void Interpreter::ReadMonster(Monster &m, const PropertyList &props) {
                        m.SetStats(stats);
                } else if (i->first == "attackAnimation") {
                        m.SetAttackAnimation(GetAnimation(*i->second));
+               } else if (i->first == "meleeAnimation") {
+                       m.SetMeleeAnimation(GetAnimation(*i->second));
                } else {
                        throw Error("unknown Monster property: " + i->first);
                }