Commit 970b31227bde94f92af392870fc91844f063f167
- Diff rendering mode:
- inline
- side by side
ChangeLog
(6 / 0)
|   | |||
| 1 | 2008-08-29 David Athay <ko2fan@gmail.com> | ||
| 2 | |||
| 3 | * src/monster.cpp, src/resources/monsterinfo.h, | ||
| 4 | src/resources/monsterdb.cpp, src/resources/monsterinfo.cpp: Mantis #406 | ||
| 5 | by jaxad0127 to implement layered sprites. | ||
| 6 | |||
| 1 | 7 | 2008-08-28 Douglas Boffey <DougABoffey@netscape.net> | |
| 2 | 8 | ||
| 3 | 9 | * src/localplayer.cpp, src/text.h, src/gui/viewport.cpp, src/npc.cpp, |
src/monster.cpp
(22 / 7)
|   | |||
| 45 | 45 | { | |
| 46 | 46 | const MonsterInfo& info = MonsterDB::get(job - 1002); | |
| 47 | 47 | ||
| 48 | std::string filename = info.getSprite(); | ||
| 49 | if (filename != "") | ||
| 48 | // Setup Monster sprites | ||
| 49 | int c = BASE_SPRITE; | ||
| 50 | const std::list<std::string> &sprites = info.getSprites(); | ||
| 51 | for (std::list<std::string>::const_iterator i = sprites.begin(); | ||
| 52 | i != sprites.end(); | ||
| 53 | i++) | ||
| 50 | 54 | { | |
| 51 | mSprites[BASE_SPRITE] = AnimatedSprite::load( | ||
| 52 | "graphics/sprites/" + filename); | ||
| 55 | if (c == VECTOREND_SPRITE) break; | ||
| 56 | |||
| 57 | std::string file = "graphics/sprites/" + *i; | ||
| 58 | mSprites[c] = AnimatedSprite::load(file); | ||
| 59 | c++; | ||
| 53 | 60 | } | |
| 54 | else | ||
| 61 | |||
| 62 | // Ensure that something is shown | ||
| 63 | if (c == BASE_SPRITE) | ||
| 55 | 64 | { | |
| 56 | mSprites[BASE_SPRITE] = AnimatedSprite::load("graphics/sprites/error.xml"); | ||
| 65 | mSprites[c] = AnimatedSprite::load("graphics/sprites/error.xml"); | ||
| 57 | 66 | } | |
| 58 | 67 | ||
| 59 | 68 | const std::list<std::string> &particleEffects = info.getParticleEffects(); | |
| … | … | ||
| 133 | 133 | ||
| 134 | 134 | if (currentAction != ACTION_INVALID) | |
| 135 | 135 | { | |
| 136 | mSprites[BASE_SPRITE]->play(currentAction); | ||
| 136 | for (int i = 0; i < VECTOREND_SPRITE; i++) | ||
| 137 | { | ||
| 138 | if (mSprites[i]) | ||
| 139 | { | ||
| 140 | mSprites[i]->play(currentAction); | ||
| 141 | } | ||
| 142 | } | ||
| 137 | 143 | mAction = action; | |
| 138 | 144 | } | |
| 139 | 145 | } |
src/resources/monsterdb.cpp
(2 / 2)
|   | |||
| 45 | 45 | if (mLoaded) | |
| 46 | 46 | return; | |
| 47 | 47 | ||
| 48 | mUnknown.setSprite("error.xml"); | ||
| 48 | mUnknown.addSprite("error.xml"); | ||
| 49 | 49 | mUnknown.setName("unnamed"); | |
| 50 | 50 | ||
| 51 | 51 | logger->log("Initializing monster database..."); | |
| … | … | ||
| 96 | 96 | { | |
| 97 | 97 | if (xmlStrEqual(spriteNode->name, BAD_CAST "sprite")) | |
| 98 | 98 | { | |
| 99 | currentInfo->setSprite((const char*) spriteNode->xmlChildrenNode->content); | ||
| 99 | currentInfo->addSprite((const char*) spriteNode->xmlChildrenNode->content); | ||
| 100 | 100 | } | |
| 101 | 101 | ||
| 102 | 102 | if (xmlStrEqual(spriteNode->name, BAD_CAST "sound")) |
|   | |||
| 27 | 27 | ||
| 28 | 28 | #include "../utils/dtor.h" | |
| 29 | 29 | ||
| 30 | MonsterInfo::MonsterInfo(): | ||
| 31 | mSprite("error.xml") | ||
| 30 | MonsterInfo::MonsterInfo() | ||
| 32 | 31 | { | |
| 33 | 32 | ||
| 34 | 33 | } |
src/resources/monsterinfo.h
(4 / 4)
|   | |||
| 63 | 63 | setName(std::string name) { mName = name; } | |
| 64 | 64 | ||
| 65 | 65 | void | |
| 66 | setSprite(std::string filename) { mSprite = filename; } | ||
| 66 | addSprite(std::string filename) { mSprites.push_back(filename); } | ||
| 67 | 67 | ||
| 68 | 68 | void | |
| 69 | 69 | setTargetCursorSize(Being::TargetCursorSize targetCursorSize) | |
| … | … | ||
| 78 | 78 | const std::string& | |
| 79 | 79 | getName() const { return mName; } | |
| 80 | 80 | ||
| 81 | const std::string& | ||
| 82 | getSprite() const { return mSprite; } | ||
| 81 | const std::list<std::string>& | ||
| 82 | getSprites() const { return mSprites; } | ||
| 83 | 83 | ||
| 84 | 84 | Being::TargetCursorSize | |
| 85 | 85 | getTargetCursorSize() const { return mTargetCursorSize; } | |
| … | … | ||
| 92 | 92 | ||
| 93 | 93 | private: | |
| 94 | 94 | std::string mName; | |
| 95 | std::string mSprite; | ||
| 95 | std::list<std::string> mSprites; | ||
| 96 | 96 | Being::TargetCursorSize mTargetCursorSize; | |
| 97 | 97 | std::map<MonsterSoundEvent, std::vector<std::string>* > mSounds; | |
| 98 | 98 | std::list<std::string> mParticleEffects; |

