diff options
author | Reid <reidyaro@gmail.com> | 2012-03-01 22:03:01 +0100 |
---|---|---|
committer | Reid <reidyaro@gmail.com> | 2012-03-01 22:03:01 +0100 |
commit | 490862919d79369112c75955a9c36ff8a081efd3 (patch) | |
tree | 6fe89466b9c53ba811f298174e6d787bbae71e09 /src/resources/spritedef.cpp | |
parent | dff814619d63496acd3c4e8730b828b5d4d931fb (diff) | |
parent | d873da3e8e57480016596f714845c1bc7e712e68 (diff) | |
download | manaverse-490862919d79369112c75955a9c36ff8a081efd3.tar.gz manaverse-490862919d79369112c75955a9c36ff8a081efd3.tar.bz2 manaverse-490862919d79369112c75955a9c36ff8a081efd3.tar.xz manaverse-490862919d79369112c75955a9c36ff8a081efd3.zip |
Merge branch 'master' of gitorious.org:manaplus/manaplus
Diffstat (limited to 'src/resources/spritedef.cpp')
-rw-r--r-- | src/resources/spritedef.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/resources/spritedef.cpp b/src/resources/spritedef.cpp index 0d9b95f6f..02b46f1cf 100644 --- a/src/resources/spritedef.cpp +++ b/src/resources/spritedef.cpp @@ -36,6 +36,7 @@ #include "debug.h" SpriteReference *SpriteReference::Empty = nullptr; +extern int serverVersion; Action *SpriteDef::getAction(std::string action, unsigned num) const { @@ -99,13 +100,30 @@ SpriteDef *SpriteDef::load(const std::string &animationFile, int variant) def->mProcessedFiles.insert(animationFile); def->loadSprite(rootNode, variant, palettes); def->substituteActions(); + if (serverVersion < 1) + def->fixDeadAction(); return def; } +void SpriteDef::fixDeadAction() +{ + ActionsIter it = mActions.begin(); + ActionsIter it_end = mActions.end(); + for (; it != it_end; ++ it) + { + ActionMap *d = (*it).second; + if (!d) + continue; + ActionMap::iterator i = d->find("dead"); + if (i != d->end() && i->second) + (i->second)->setLastFrameDelay(0); + } +} + void SpriteDef::substituteAction(std::string complete, std::string with) { - Actions::const_iterator it = mActions.begin(); - Actions::const_iterator it_end = mActions.end(); + ActionsConstIter it = mActions.begin(); + ActionsConstIter it_end = mActions.end(); for (; it != it_end; ++ it) { ActionMap *d = (*it).second; |