aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorTravis Howell2007-02-21 11:46:35 +0000
committerTravis Howell2007-02-21 11:46:35 +0000
commit29ada821344e905fb685e79efa08a6d88b85eb14 (patch)
tree8e51dcb9b29db9a2af6686d2a6be03c4caaa2f62 /engines
parentb5b45131c2c4fdacc7da77ffa63eadc3a9f72dc7 (diff)
downloadscummvm-rg350-29ada821344e905fb685e79efa08a6d88b85eb14.tar.gz
scummvm-rg350-29ada821344e905fb685e79efa08a6d88b85eb14.tar.bz2
scummvm-rg350-29ada821344e905fb685e79efa08a6d88b85eb14.zip
Bypass the copy protection screens in floppy disk releases of Simon the Sorcerer 1 and 2, with permission from Adventure Soft.
svn-id: r25760
Diffstat (limited to 'engines')
-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() {