diff options
author | Travis Howell | 2004-09-11 12:22:06 +0000 |
---|---|---|
committer | Travis Howell | 2004-09-11 12:22:06 +0000 |
commit | b495c7ea07e9994ef735bc4e58fb669030327c3a (patch) | |
tree | d2c26d2f94e697574ba7a99022fea326b98e9cc8 | |
parent | ecddda094a625c6e4b7c44f20e186bc646f3004b (diff) | |
download | scummvm-rg350-b495c7ea07e9994ef735bc4e58fb669030327c3a.tar.gz scummvm-rg350-b495c7ea07e9994ef735bc4e58fb669030327c3a.tar.bz2 scummvm-rg350-b495c7ea07e9994ef735bc4e58fb669030327c3a.zip |
Use random talk animation in HE 80+ games for now.
svn-id: r15006
-rw-r--r-- | scumm/actor.cpp | 14 | ||||
-rw-r--r-- | scumm/actor.h | 1 | ||||
-rw-r--r-- | scumm/script_v72he.cpp | 2 |
3 files changed, 16 insertions, 1 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp index c31da182f8..7c3fdbef13 100644 --- a/scumm/actor.cpp +++ b/scumm/actor.cpp @@ -78,6 +78,7 @@ void Actor::initActor(int mode) { _pos.y = 0; facing = 180; condMask = 1; + talkUnk = 0; if (_vm->_version >= 7) visible = false; } else if (mode == 2) { @@ -1067,6 +1068,19 @@ void Actor::drawActorCostume(bool hitTestMode) { bcr->_skipLimb = (skipLimb != 0); + if (_vm->_heversion >= 80 && talkUnk == 0) { + condMask &= 0xFFFFFC00; + condMask |= 1 +; if (_vm->getTalkingActor() == number) { + // Checks if talk sound is active? + // Otherwise just do rand animation + int rnd = _vm->_rnd.getRandomNumberRng(1, 10); +; setTalkCondition(rnd); + + } + } + talkUnk == 0; + // If the actor is partially hidden, redraw it next frame. // Only done for pre-AKOS, though. if (bcr->drawCostume(_vm->virtscr[0], this, drawToBackBuf) & 1) { diff --git a/scumm/actor.h b/scumm/actor.h index 0e036ff944..66381fe353 100644 --- a/scumm/actor.h +++ b/scumm/actor.h @@ -124,6 +124,7 @@ public: uint16 sound[32]; CostumeData cost; uint32 condMask; + bool talkUnk; protected: byte palette[256]; int elevation; diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp index 2804b1197c..0b45ef27b3 100644 --- a/scumm/script_v72he.cpp +++ b/scumm/script_v72he.cpp @@ -855,7 +855,7 @@ void ScummEngine_v72he::o72_actorOps() { case 24: // HE 80+ k = pop(); -// a->byte_45737A = 1; + a->talkUnk = 1; a->setTalkCondition(k); debug(1,"o72_actorOps: case 24 (%d)", k); break; |