aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/map.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2017-12-16 10:04:15 -0500
committerPaul Gilbert2017-12-16 10:04:15 -0500
commit93b9eb4e374b360e9d874ed1e65234ea2f80a312 (patch)
treedb4dc1869f4365106a6db969feb2804fdfc782ed /engines/xeen/map.cpp
parentc969669309e6d1dc073351067eec4fe89a0cbf6b (diff)
downloadscummvm-rg350-93b9eb4e374b360e9d874ed1e65234ea2f80a312.tar.gz
scummvm-rg350-93b9eb4e374b360e9d874ed1e65234ea2f80a312.tar.bz2
scummvm-rg350-93b9eb4e374b360e9d874ed1e65234ea2f80a312.zip
XEEN: Added remainder of Arena location
Diffstat (limited to 'engines/xeen/map.cpp')
-rw-r--r--engines/xeen/map.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/engines/xeen/map.cpp b/engines/xeen/map.cpp
index f24f99f18d..8e7b06f4ce 100644
--- a/engines/xeen/map.cpp
+++ b/engines/xeen/map.cpp
@@ -837,6 +837,43 @@ void MonsterObjectData::synchronize(XeenSerializer &s, MonsterData &monsterData)
}
}
+void MonsterObjectData::clearMonsterSprites() {
+ _monsterSprites.clear();
+ _monsterAttackSprites.clear();
+}
+
+void MonsterObjectData::addMonsterSprites(MazeMonster &monster) {
+ Map &map = *g_vm->_map;
+ int imgNumber = map._monsterData[monster._spriteId]._imageNumber;
+ uint idx;
+
+ // Find the sprites for the monster, loading them in if necessary
+ for (idx = 0; idx < _monsterSprites.size(); ++idx) {
+ if (_monsterSprites[idx]._spriteId == monster._spriteId) {
+ monster._sprites = &_monsterSprites[idx]._sprites;
+ break;
+ }
+ }
+ if (idx == _monsterSprites.size()) {
+ _monsterSprites.push_back(SpriteResourceEntry(monster._spriteId));
+ _monsterSprites.back()._sprites.load(Common::String::format("%03u.mon", imgNumber));
+ monster._sprites = &_monsterSprites.back()._sprites;
+ }
+
+ // Find the attack sprites for the monster, loading them in if necessary
+ for (idx = 0; idx < _monsterAttackSprites.size(); ++idx) {
+ if (_monsterAttackSprites[idx]._spriteId == monster._spriteId) {
+ monster._attackSprites = &_monsterAttackSprites[idx]._sprites;
+ break;
+ }
+ }
+ if (idx == _monsterAttackSprites.size()) {
+ _monsterAttackSprites.push_back(SpriteResourceEntry(monster._spriteId));
+ _monsterAttackSprites.back()._sprites.load(Common::String::format("%03u.att", imgNumber));
+ monster._attackSprites = &_monsterAttackSprites.back()._sprites;
+ }
+}
+
/*------------------------------------------------------------------------*/
HeadData::HeadData() {