aboutsummaryrefslogtreecommitdiff
path: root/engines/voyeur/voyeur.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/voyeur/voyeur.h')
-rw-r--r--engines/voyeur/voyeur.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/engines/voyeur/voyeur.h b/engines/voyeur/voyeur.h
index 4ee5f84b02..1622524108 100644
--- a/engines/voyeur/voyeur.h
+++ b/engines/voyeur/voyeur.h
@@ -33,6 +33,8 @@
#include "common/system.h"
#include "common/error.h"
#include "common/random.h"
+#include "common/savefile.h"
+#include "common/serializer.h"
#include "common/util.h"
#include "engines/engine.h"
#include "graphics/surface.h"
@@ -134,6 +136,11 @@ private:
void playAVideoEvent(int eventIndex);
int getChooseButton();
+
+ /**
+ * Synchronizes the game data
+ */
+ void synchronize(Common::Serializer &s);
protected:
// Engine APIs
virtual Common::Error run();
@@ -169,7 +176,9 @@ public:
int _timeBarVal;
int _checkPhoneVal;
Common::Point _mansionViewPos;
+ ThreadResource *_mainThread;
VoyeurArea _voyeurArea;
+ int _loadGameSlot;
public:
VoyeurEngine(OSystem *syst, const VoyeurGameDescription *gameDesc);
virtual ~VoyeurEngine();
@@ -187,6 +196,7 @@ public:
virtual bool canSaveGameStateCurrently();
virtual Common::Error loadGameState(int slot);
virtual Common::Error saveGameState(int slot, const Common::String &desc);
+ void loadGame(int slot);
void playRL2Video(const Common::String &filename);
void doTransitionCard(const Common::String &time, const Common::String &location);
@@ -243,6 +253,20 @@ public:
Common::String getTimeOfDay();
};
+#define VOYEUR_SAVEGAME_VERSION 1
+
+struct VoyeurSavegameHeader {
+ uint8 _version;
+ Common::String _saveName;
+ Graphics::Surface *_thumbnail;
+ int _saveYear, _saveMonth, _saveDay;
+ int _saveHour, _saveMinutes;
+ int _totalFrames;
+
+ bool read(Common::InSaveFile *f);
+ void write(Common::OutSaveFile *f, VoyeurEngine *vm, const Common::String &saveName);
+};
+
} // End of namespace Voyeur
#endif /* VOYEUR_VOYEUR_H */