aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README4
-rw-r--r--engines/agos/agos.cpp2
-rw-r--r--engines/agos/agos.h1
-rw-r--r--engines/agos/script.cpp8
4 files changed, 15 insertions, 0 deletions
diff --git a/README b/README
index 43edcc668e..01b4f69b7c 100644
--- a/README
+++ b/README
@@ -255,6 +255,10 @@ ScummVM will skip copy protection in the following games:
* Inherit the Earth: Quest for the Orb (Floppy version)
-- bypassed with kind permission from Wyrmkeep Entertainment,
since it was bypassed in all CD releases of the game.
+ * Simon the Sorcerer 1 (Floppy version)
+ * Simon the Sorcerer 2 (Floppy version)
+ -- bypassed with kind permission from Adventure Soft,
+ since it was bypassed in all CD releases of the game.
3.2) Commodore64 games notes:
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() {