diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/agos/agos.cpp | 2 | ||||
-rw-r--r-- | engines/agos/agos.h | 1 | ||||
-rw-r--r-- | engines/agos/script.cpp | 8 |
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() { |