aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2005-04-21 03:29:31 +0000
committerTravis Howell2005-04-21 03:29:31 +0000
commit261a02beec87957beec3775b930b7f53d4ba3574 (patch)
treea82b8b595abd49818712eada97ea39c3dfe0fc3c
parent283a9f35ac294fa10105c7d8c18b57d7a2689e19 (diff)
downloadscummvm-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.cpp7
-rw-r--r--scumm/scumm.cpp1
-rw-r--r--scumm/scumm.h1
-rw-r--r--scumm/vars.cpp3
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;