aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/map.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2015-02-25 20:08:26 -0500
committerPaul Gilbert2015-02-25 20:08:26 -0500
commit9a8c4c55a3c4b243b95efb04eb72ca3808275b84 (patch)
tree101d0cf92a48c6fed1f6044470f9ae1cdc41dc3e /engines/xeen/map.cpp
parentad33b8bb824803630bc37766da30047efa3f3f13 (diff)
downloadscummvm-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.cpp20
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);