aboutsummaryrefslogtreecommitdiff
path: root/engines/lab/lab.h
diff options
context:
space:
mode:
authorStrangerke2015-12-13 23:22:34 +0100
committerWillem Jan Palenstijn2015-12-23 21:34:03 +0100
commita784e2bd5cb17e3abbc2bfd47e65b63ef13ec2fc (patch)
tree023b9526733bcf9f7e4807bbef2319cfd19e0d94 /engines/lab/lab.h
parent974740d3076984535f941afb18e0adfa7132aab7 (diff)
downloadscummvm-rg350-a784e2bd5cb17e3abbc2bfd47e65b63ef13ec2fc.tar.gz
scummvm-rg350-a784e2bd5cb17e3abbc2bfd47e65b63ef13ec2fc.tar.bz2
scummvm-rg350-a784e2bd5cb17e3abbc2bfd47e65b63ef13ec2fc.zip
LAB: Finally get rid of g_lab
Diffstat (limited to 'engines/lab/lab.h')
-rw-r--r--engines/lab/lab.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/engines/lab/lab.h b/engines/lab/lab.h
index d968c18013..756f6e1a36 100644
--- a/engines/lab/lab.h
+++ b/engines/lab/lab.h
@@ -34,8 +34,9 @@
#include "common/system.h"
#include "common/random.h"
#include "common/rect.h"
-
+#include "common/savefile.h"
#include "engines/engine.h"
+#include "engines/savestate.h"
#include "lab/image.h"
@@ -64,6 +65,13 @@ class Resource;
class TilePuzzle;
class Utils;
+struct SaveGameHeader {
+ byte _version;
+ SaveStateDescriptor _descr;
+ uint16 _roomNumber;
+ uint16 _direction;
+};
+
enum GameFeatures {
GF_LOWRES = 1 << 0,
GF_WINDOWS_TRIAL = 1 << 1
@@ -244,9 +252,14 @@ private:
void setCurrentClose(Common::Point pos, CloseDataPtr *closePtrList, bool useAbsoluteCoords);
bool takeItem(uint16 x, uint16 y, CloseDataPtr *closePtrList);
void turnPage(bool fromLeft);
+
+private:
+ bool saveGame(int slot, Common::String desc);
+ bool loadGame(int slot);
+ void writeSaveGameHeader(Common::OutSaveFile *out, const Common::String &saveName);
};
-extern LabEngine *g_lab;
+bool readSaveGameHeader(Common::InSaveFile *in, SaveGameHeader &header);
} // End of namespace Lab