diff options
author | Paul Gilbert | 2015-02-25 20:08:26 -0500 |
---|---|---|
committer | Paul Gilbert | 2015-02-25 20:08:26 -0500 |
commit | 9a8c4c55a3c4b243b95efb04eb72ca3808275b84 (patch) | |
tree | 101d0cf92a48c6fed1f6044470f9ae1cdc41dc3e /engines/xeen/map.cpp | |
parent | ad33b8bb824803630bc37766da30047efa3f3f13 (diff) | |
download | scummvm-rg350-9a8c4c55a3c4b243b95efb04eb72ca3808275b84.tar.gz scummvm-rg350-9a8c4c55a3c4b243b95efb04eb72ca3808275b84.tar.bz2 scummvm-rg350-9a8c4c55a3c4b243b95efb04eb72ca3808275b84.zip |
XEEN: Add a MonsterStruct pointer to the MazeMonster class
Diffstat (limited to 'engines/xeen/map.cpp')
-rw-r--r-- | engines/xeen/map.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/engines/xeen/map.cpp b/engines/xeen/map.cpp index 439d5a8251..2017978398 100644 --- a/engines/xeen/map.cpp +++ b/engines/xeen/map.cpp @@ -660,11 +660,20 @@ MazeMonster::MazeMonster() { _effect3 = 0; _sprites = nullptr; _attackSprites = nullptr; + _monsterData = nullptr; } +/** + * Return the text color to use when displaying the monster's name in combat + * to indicate how damaged they are + */ int MazeMonster::getTextColor() const { - warning("TODO: getTextColor"); - return 0; + if (_hp == _monsterData->_hp) + return 15; + else if (_hp >= (_monsterData->_hp / 2)) + return 9; + else + return 32; } /*------------------------------------------------------------------------*/ @@ -682,7 +691,7 @@ MazeWallItem::MazeWallItem() { MonsterObjectData::MonsterObjectData(XeenEngine *vm): _vm(vm) { } -void MonsterObjectData::synchronize(XeenSerializer &s, MonsterData monsterData) { +void MonsterObjectData::synchronize(XeenSerializer &s, MonsterData &monsterData) { Common::Array<MobStruct> mobStructs; MobStruct mobStruct; byte b; @@ -781,10 +790,11 @@ void MonsterObjectData::synchronize(XeenSerializer &s, MonsterData monsterData) mon._spriteId = _monsterSprites[mon._id]._spriteId; mon._sprites = &_monsterSprites[mon._id]._sprites; mon._attackSprites = &_monsterSprites[mon._id]._attackSprites; + mon._monsterData = &monsterData[mon._spriteId]; + mon._frame = _vm->getRandomNumber(7); - MonsterStruct &md = monsterData[mon._spriteId]; + MonsterStruct &md = *mon._monsterData; mon._hp = md._hp; - mon._frame = _vm->getRandomNumber(7); mon._effect1 = mon._effect2 = md._animationEffect; if (md._animationEffect) mon._effect3 = _vm->getRandomNumber(7); |