Commit 970b31227bde94f92af392870fc91844f063f167

#406 by jaxad0127
ChangeLog
(6 / 0)
  
12008-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
172008-08-28 Douglas Boffey <DougABoffey@netscape.net>
28
39 * src/localplayer.cpp, src/text.h, src/gui/viewport.cpp, src/npc.cpp,
  
4545{
4646 const MonsterInfo& info = MonsterDB::get(job - 1002);
4747
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++)
5054 {
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++;
5360 }
54 else
61
62 // Ensure that something is shown
63 if (c == BASE_SPRITE)
5564 {
56 mSprites[BASE_SPRITE] = AnimatedSprite::load("graphics/sprites/error.xml");
65 mSprites[c] = AnimatedSprite::load("graphics/sprites/error.xml");
5766 }
5867
5968 const std::list<std::string> &particleEffects = info.getParticleEffects();
133133
134134 if (currentAction != ACTION_INVALID)
135135 {
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 }
137143 mAction = action;
138144 }
139145}
  
4545 if (mLoaded)
4646 return;
4747
48 mUnknown.setSprite("error.xml");
48 mUnknown.addSprite("error.xml");
4949 mUnknown.setName("unnamed");
5050
5151 logger->log("Initializing monster database...");
9696 {
9797 if (xmlStrEqual(spriteNode->name, BAD_CAST "sprite"))
9898 {
99 currentInfo->setSprite((const char*) spriteNode->xmlChildrenNode->content);
99 currentInfo->addSprite((const char*) spriteNode->xmlChildrenNode->content);
100100 }
101101
102102 if (xmlStrEqual(spriteNode->name, BAD_CAST "sound"))
  
2727
2828#include "../utils/dtor.h"
2929
30MonsterInfo::MonsterInfo():
31 mSprite("error.xml")
30MonsterInfo::MonsterInfo()
3231{
3332
3433}
  
6363 setName(std::string name) { mName = name; }
6464
6565 void
66 setSprite(std::string filename) { mSprite = filename; }
66 addSprite(std::string filename) { mSprites.push_back(filename); }
6767
6868 void
6969 setTargetCursorSize(Being::TargetCursorSize targetCursorSize)
7878 const std::string&
7979 getName() const { return mName; }
8080
81 const std::string&
82 getSprite() const { return mSprite; }
81 const std::list<std::string>&
82 getSprites() const { return mSprites; }
8383
8484 Being::TargetCursorSize
8585 getTargetCursorSize() const { return mTargetCursorSize; }
9292
9393 private:
9494 std::string mName;
95 std::string mSprite;
95 std::list<std::string> mSprites;
9696 Being::TargetCursorSize mTargetCursorSize;
9797 std::map<MonsterSoundEvent, std::vector<std::string>* > mSounds;
9898 std::list<std::string> mParticleEffects;