diff options
-rw-r--r-- | scumm/script.cpp | 6 | ||||
-rw-r--r-- | scumm/script_v5.cpp | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/scumm/script.cpp b/scumm/script.cpp index 2f941eebf3..a8c45acd8d 100644 --- a/scumm/script.cpp +++ b/scumm/script.cpp @@ -519,11 +519,7 @@ int ScummEngine::readVar(uint var) { var = (var >> 4) & 0xFF; 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) { - return 0; - } else if (_gameId == GID_LOOM && (_features & GF_FMTOWNS) && var == 214 && bit == 15) { + if (_gameId == GID_LOOM && (_features & GF_FMTOWNS) && var == 214 && bit == 15) { return 0; } else if (_gameId == GID_ZAK256 && var == 151 && bit == 8) { return 0; diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp index 5525c21988..e53908e240 100644 --- a/scumm/script_v5.cpp +++ b/scumm/script_v5.cpp @@ -1463,6 +1463,14 @@ void ScummEngine_v5::o5_loadRoom() { room = getVarOrDirectByte(PARAM_1); + if (!_copyProtection) { + // Skip copy protection scheme + if (_gameId == GID_INDY3 && (_features & GF_OLD_BUNDLE) && room == 92) { + VAR(57) = 1; + return; + } + } + // For small header games, we only call startScene if the room // actually changed. This avoid unwanted (wrong) fades in Zak256 // and others. OTOH, it seems to cause a problem in newer games. |