diff options
author | Torbjörn Andersson | 2006-05-29 17:27:22 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2006-05-29 17:27:22 +0000 |
commit | fa779040744673723b8f8266f6a7bb9054da20d5 (patch) | |
tree | 19cdaa032d01a0c561f38ba0a98f027add36b675 | |
parent | 1d72b954c7dd6e15a201ee680d8a5e895626dcd4 (diff) | |
download | scummvm-rg350-fa779040744673723b8f8266f6a7bb9054da20d5.tar.gz scummvm-rg350-fa779040744673723b8f8266f6a7bb9054da20d5.tar.bz2 scummvm-rg350-fa779040744673723b8f8266f6a7bb9054da20d5.zip |
If we're going to intercept attempts to set VAR(VAR_CHARINC) in writeVar(), we
should probably set it the same way as updateSoundSettings() does it, i.e. to
9 - getTalkspeed(), not getTalkspeed().
I was testing the scene in Sam & Max where you give candy to Doug. I had set
the talk speed to max. The script tried to set CHARINC to 3, but instead it was
changed from 0 to 9...
svn-id: r22748
-rw-r--r-- | engines/scumm/script.cpp | 5 | ||||
-rw-r--r-- | engines/scumm/script_v8.cpp | 5 |
2 files changed, 4 insertions, 6 deletions
diff --git a/engines/scumm/script.cpp b/engines/scumm/script.cpp index cc37099be9..b7a3422021 100644 --- a/engines/scumm/script.cpp +++ b/engines/scumm/script.cpp @@ -617,9 +617,8 @@ void ScummEngine::writeVar(uint var, int value) { } if (var == VAR_CHARINC && ConfMan.hasKey("talkspeed")) { - uint talkspeed = getTalkspeed(); - if (talkspeed <= 9) - VAR(VAR_CHARINC) = talkspeed; + _defaultTalkDelay = 9 - getTalkspeed(); + VAR(VAR_CHARINC) = _defaultTalkDelay; } else { _scummVars[var] = value; } diff --git a/engines/scumm/script_v8.cpp b/engines/scumm/script_v8.cpp index 9bf3ba5b1e..4e52ce3bfd 100644 --- a/engines/scumm/script_v8.cpp +++ b/engines/scumm/script_v8.cpp @@ -420,9 +420,8 @@ void ScummEngine_v8::writeVar(uint var, int value) { checkRange(_numVariables - 1, 0, var, "Variable %d out of range(w)"); if (var == VAR_CHARINC && ConfMan.hasKey("talkspeed")) { - uint talkspeed = getTalkspeed(); - if (talkspeed <= 9) - VAR(VAR_CHARINC) = talkspeed; + _defaultTalkDelay = 9 - getTalkspeed(); + VAR(VAR_CHARINC) = _defaultTalkDelay; } else _scummVars[var] = value; |