aboutsummaryrefslogtreecommitdiff
path: root/engines/agos
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agos')
-rw-r--r--engines/agos/agos.cpp2
-rw-r--r--engines/agos/agos.h1
-rw-r--r--engines/agos/script.cpp8
3 files changed, 11 insertions, 0 deletions
diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp
index 874bed1e11..851b089020 100644
--- a/engines/agos/agos.cpp
+++ b/engines/agos/agos.cpp
@@ -180,6 +180,7 @@ AGOSEngine::AGOSEngine(OSystem *syst)
_drawImagesDebug = false;
_dumpImages = false;
+ _copyProtection = false;
_pause = false;
_speech = false;
_subtitles = false;
@@ -558,6 +559,7 @@ int AGOSEngine::init() {
_sound->effectsPause(_effectsPaused ^= 1);
}
+ _copyProtection = ConfMan.getBool("copy_protection");
_language = Common::parseLanguage(ConfMan.get("language"));
if (getGameType() == GType_PP) {
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index 8776aad14c..1bb2790fab 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -277,6 +277,7 @@ protected:
uint16 _debugMode;
uint16 _language;
+ bool _copyProtection;
bool _pause;
bool _startMainScript;
bool _continousMainScript;
diff --git a/engines/agos/script.cpp b/engines/agos/script.cpp
index 6c9ccdf1c5..9684cd3450 100644
--- a/engines/agos/script.cpp
+++ b/engines/agos/script.cpp
@@ -875,6 +875,14 @@ void AGOSEngine::o_restoreIcons() {
void AGOSEngine::o_freezeZones() {
// 138: freeze zones
freezeBottom();
+
+ if (!_copyProtection && !(getFeatures() & GF_TALKIE)) {
+ if ((getGameType() == GType_SIMON1 && _subroutine == 2924) ||
+ (getGameType() == GType_SIMON2 && _subroutine == 1322)) {
+ _variableArray[135] = 3;
+ setScriptCondition(0);
+ }
+ }
}
void AGOSEngine::o_placeNoIcons() {