diff options
author | Paul Gilbert | 2017-12-16 10:04:15 -0500 |
---|---|---|
committer | Paul Gilbert | 2017-12-16 10:04:15 -0500 |
commit | 93b9eb4e374b360e9d874ed1e65234ea2f80a312 (patch) | |
tree | db4dc1869f4365106a6db969feb2804fdfc782ed /engines/xeen/map.cpp | |
parent | c969669309e6d1dc073351067eec4fe89a0cbf6b (diff) | |
download | scummvm-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.cpp | 37 |
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() { |