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() {  | 
