aboutsummaryrefslogtreecommitdiff
path: root/scumm/script.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/script.cpp')
-rw-r--r--scumm/script.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/scumm/script.cpp b/scumm/script.cpp
index c5c2452ddd..7909b464c1 100644
--- a/scumm/script.cpp
+++ b/scumm/script.cpp
@@ -460,8 +460,7 @@ int ScummEngine::readVar(uint var) {
else
copyprotbypassed = true;
- if (var == VAR_TIMER)
- debug(1, "readvar(%d)", var);
+ debugC(DEBUG_VARS, "readvar(%d)", var);
if (var & 0x2000 && !(_features & GF_NEW_OPCODES)) {
a = fetchScriptWord();
@@ -504,10 +503,16 @@ int ScummEngine::readVar(uint var) {
if (!_copyProtection) {
// INDY3, EGA Loom and, apparently, Zak256 check this
// during the game...
- if (_gameId == GID_INDY3 && (_features & GF_OLD_BUNDLE) && var == 94 && bit == 4)
+ if (_gameId == GID_INDY3 && (_features & GF_OLD_BUNDLE) && var == 94 && bit == 4) {
return 0;
- else if (_gameId == GID_ZAK256 && var == 151 && bit == 8)
+ } else if (var == 221 && bit == 14 && _gameId == GID_LOOM && (_features & GF_MACINTOSH)) { // For Mac Loom
return 0;
+ // For all other Loom versions? PC and FM Towns at least in any event
+ } else if (_gameId == GID_LOOM && var == 214 && bit == 15) { // For PC Loom
+ return 0;
+ } else if (_gameId == GID_ZAK256 && var == 151 && bit == 8) {
+ return 0;
+ }
}
checkRange(_numVariables - 1, 0, var, "Variable %d out of range(rzb)");
@@ -540,8 +545,7 @@ int ScummEngine::readVar(uint var) {
}
void ScummEngine::writeVar(uint var, int value) {
- if (var == VAR_TIMER)
- debug(1, "writeVar(%d, %d)", var, value);
+ debugC(DEBUG_VARS, "writeVar(%d, %d)", var, value);
if (!(var & 0xF000)) {
checkRange(_numVariables - 1, 0, var, "Variable %d out of range(w)");