aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/script.cpp6
-rw-r--r--scumm/script_v5.cpp8
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.