diff options
author | Travis Howell | 2005-04-21 03:29:31 +0000 |
---|---|---|
committer | Travis Howell | 2005-04-21 03:29:31 +0000 |
commit | 261a02beec87957beec3775b930b7f53d4ba3574 (patch) | |
tree | a82b8b595abd49818712eada97ea39c3dfe0fc3c | |
parent | 283a9f35ac294fa10105c7d8c18b57d7a2689e19 (diff) | |
download | scummvm-rg350-261a02beec87957beec3775b930b7f53d4ba3574.tar.gz scummvm-rg350-261a02beec87957beec3775b930b7f53d4ba3574.tar.bz2 scummvm-rg350-261a02beec87957beec3775b930b7f53d4ba3574.zip |
HE98+ includes extra VAR checks at this point.
Fixes salesmen freeze in freddi4.
svn-id: r17727
-rw-r--r-- | scumm/actor.cpp | 7 | ||||
-rw-r--r-- | scumm/scumm.cpp | 1 | ||||
-rw-r--r-- | scumm/scumm.h | 1 | ||||
-rw-r--r-- | scumm/vars.cpp | 3 |
4 files changed, 10 insertions, 2 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp index b0b095ad83..617aa7c63f 100644 --- a/scumm/actor.cpp +++ b/scumm/actor.cpp @@ -1445,8 +1445,11 @@ void Actor::setActorCostume(int c) { _palette[i] = 0xFF; } - if (_vm->_heversion >= 72 && _vm->getTalkingActor() == _number) - _vm->setTalkingActor(0); + if (_vm->_heversion >= 71 && _vm->getTalkingActor() == _number) { + if (_vm->_heversion <= 95 || (_vm->_heversion >= 98 && _vm->VAR(_vm->VAR_SKIP_RESET_TALK_ACTOR) == 0)) { + _vm->setTalkingActor(0); + } + } } void Actor::startWalkActor(int destX, int destY, int dir) { diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index bcb90a2620..3f7309cf6f 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -1036,6 +1036,7 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS VAR_MUSIC_BUNDLE_LOADED = 0xFF; VAR_VOICE_BUNDLE_LOADED = 0xFF; + VAR_SKIP_RESET_TALK_ACTOR = 0xFF; VAR_MUSIC_CHANNEL = 0xFF; VAR_SOUND_CHANNEL = 0xFF; diff --git a/scumm/scumm.h b/scumm/scumm.h index 2b135a0567..3054488600 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -1321,6 +1321,7 @@ public: byte VAR_CLICK_AREA; // HE specific variables + byte VAR_SKIP_RESET_TALK_ACTOR; byte VAR_MUSIC_CHANNEL; byte VAR_SOUND_CHANNEL; diff --git a/scumm/vars.cpp b/scumm/vars.cpp index de08073bf4..473cefdfae 100644 --- a/scumm/vars.cpp +++ b/scumm/vars.cpp @@ -281,6 +281,9 @@ void ScummEngine_v72he::setupScummVars() { VAR_NUM_SPRITES = 106; VAR_WIZ_TCOLOR = 117; } + if (_heversion >= 98) { + VAR_SKIP_RESET_TALK_ACTOR = 125; + } if (_heversion >= 99) { VAR_NUM_PALETTES = 130; VAR_NUM_UNK = 131; |