aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2012-04-15 19:24:57 +1000
committerTravis Howell2012-04-15 19:24:57 +1000
commit586d9bf32fed9bc2009dcf890a0b714e1e618c2c (patch)
tree994956f6737e7675e23da1997ba279ed30c11b54
parent95dda2254bf4bf62c0928361e6f7254bfd08a94f (diff)
downloadscummvm-rg350-586d9bf32fed9bc2009dcf890a0b714e1e618c2c.tar.gz
scummvm-rg350-586d9bf32fed9bc2009dcf890a0b714e1e618c2c.tar.bz2
scummvm-rg350-586d9bf32fed9bc2009dcf890a0b714e1e618c2c.zip
AGOS: Add comment about the limitations of quick loading/saving games in the AGOS game engine.
-rw-r--r--engines/agos/agos.h3
-rw-r--r--engines/agos/saveload.cpp21
2 files changed, 19 insertions, 5 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index d9f982a0fa..65f8dd1420 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -1265,7 +1265,7 @@ protected:
virtual void doOutput(const byte *src, uint len);
void clsCheck(WindowBlock *window);
- void quickLoadOrSave();
+ virtual void quickLoadOrSave();
byte *vc10_uncompressFlip(const byte *src, uint16 w, uint16 h);
byte *vc10_flip(const byte *src, uint16 w, uint16 h);
@@ -2060,6 +2060,7 @@ protected:
void windowBackSpace(WindowBlock *window);
virtual char *genSaveName(int slot);
+ virtual void quickLoadOrSave();
};
class AGOSEngine_FeebleDemo : public AGOSEngine_Feeble {
diff --git a/engines/agos/saveload.cpp b/engines/agos/saveload.cpp
index 4fbde09ff8..b3ec916b47 100644
--- a/engines/agos/saveload.cpp
+++ b/engines/agos/saveload.cpp
@@ -136,12 +136,25 @@ char *AGOSEngine::genSaveName(int slot) {
return buf;
}
+#ifdef ENABLE_AGOS2
+void AGOSEngine_Feeble::quickLoadOrSave() {
+ // Quick loading and saving isn't possible in The Feeble Files or Puzzle Pack.
+}
+#endif
+
void AGOSEngine::quickLoadOrSave() {
- // Quick load & save is only supported complete version of Simon the Sorcerer 1/2
- if (getGameType() == GType_PP || getGameType() == GType_FF ||
- (getFeatures() & GF_DEMO)) {
+ // The function uses segments of code from the original game scripts
+ // to allow quick loading and saving, but isn't perfect.
+ //
+ // Unfortuntely this allows loading and saving in locations,
+ // which aren't supported, and will not restore correctly:
+ // Any overhead maps in Simon the Sorcerer 2
+ // Various locations in Elvira 1/2 and Waxworks where saving
+ // was disabled
+
+ // The floppy disk demo of Simon the Sorcerer 1 doesn't work.
+ if (getFeatures() & GF_DEMO)
return;
- }
bool success;
Common::String buf;