aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2002-07-02 20:57:27 +0000
committerMax Horn2002-07-02 20:57:27 +0000
commitb827dadf6e8217dbd2baad7bd21e7f8c32db818d (patch)
treee1d17a3acdd1b445a9f45ca486fc3f062d474a08
parent910afa35664840f57ad29dc655377ee25a0239d1 (diff)
downloadscummvm-rg350-b827dadf6e8217dbd2baad7bd21e7f8c32db818d.tar.gz
scummvm-rg350-b827dadf6e8217dbd2baad7bd21e7f8c32db818d.tar.bz2
scummvm-rg350-b827dadf6e8217dbd2baad7bd21e7f8c32db818d.zip
added saveload.h; moved some stuff out of scumm.h into saveload.h/.cpp (no need why other code has to see this)
svn-id: r4450
-rw-r--r--dc/vmsave.cpp1
-rw-r--r--saveload.cpp41
-rw-r--r--saveload.h51
-rw-r--r--scumm.h77
4 files changed, 93 insertions, 77 deletions
diff --git a/dc/vmsave.cpp b/dc/vmsave.cpp
index 8881c2a15e..34bf2e40fa 100644
--- a/dc/vmsave.cpp
+++ b/dc/vmsave.cpp
@@ -26,6 +26,7 @@
#include "gameDetector.h"
#include "dc.h"
#include "icon.h"
+#include "saveload.h"
#include <ronin/zlib.h>
diff --git a/saveload.cpp b/saveload.cpp
index 269e63312f..d8029d2259 100644
--- a/saveload.cpp
+++ b/saveload.cpp
@@ -26,6 +26,7 @@
#include "sound/imuse.h"
#include "actor.h"
#include "config-file.h"
+#include "saveload.h"
struct SaveGameHeader {
uint32 type;
@@ -34,6 +35,46 @@ struct SaveGameHeader {
char name[32];
};
+struct SaveLoadEntry {
+ uint32 offs;
+ uint8 type;
+ uint8 size;
+};
+
+typedef int SerializerSaveReference(void *me, byte type, void *ref);
+typedef void *SerializerLoadReference(void *me, byte type, int ref);
+
+struct Serializer {
+ SerializerStream _saveLoadStream;
+
+ union {
+ SerializerSaveReference *_save_ref;
+ SerializerLoadReference *_load_ref;
+ void *_saveload_ref;
+ };
+ void *_ref_me;
+
+ bool _saveOrLoad;
+
+ void saveLoadBytes(void *b, int len);
+ void saveLoadArrayOf(void *b, int len, int datasize, byte filetype);
+ void saveLoadEntries(void *d, const SaveLoadEntry *sle);
+ void saveLoadArrayOf(void *b, int num, int datasize, const SaveLoadEntry *sle);
+
+ void saveUint32(uint32 d);
+ void saveWord(uint16 d);
+ void saveByte(byte b);
+
+ byte loadByte();
+ uint16 loadWord();
+ uint32 loadUint32();
+
+ bool isSaving() { return _saveOrLoad; }
+
+ bool checkEOFLoadStream();
+
+};
+
// Support for "old" savegames (made with 2501 CVS build)
// Can be useful for other ports too :)
diff --git a/saveload.h b/saveload.h
new file mode 100644
index 0000000000..3076a49626
--- /dev/null
+++ b/saveload.h
@@ -0,0 +1,51 @@
+/* ScummVM - Scumm Interpreter
+ * Copyright (C) 2002 The ScummVM project
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Header$
+ *
+ */
+
+#ifndef SAVELOAD_H
+#define SAVELOAD_H
+
+struct SerializerStream {
+#ifdef NONSTANDARD_SAVE
+ void *context;
+
+ bool fopen(const char *filename, const char *mode);
+ void fclose();
+ int fread(void *buf, int size, int cnt);
+ int fwrite(void *buf, int size, int cnt);
+#else
+ FILE *out;
+
+ FILE *fopen(const char *filename, const char *mode) {
+ return out = ::fopen(filename, mode);
+ }
+ void fclose() {
+ ::fclose(out);
+ }
+ int fread(void *buf, int size, int cnt) {
+ return ::fread(buf, size, cnt, out);
+ }
+ int fwrite(void *buf, int size, int cnt) {
+ return ::fwrite(buf, size, cnt, out);
+ }
+#endif
+};
+
+#endif
diff --git a/scumm.h b/scumm.h
index a4c5f072cb..5106cbd5f3 100644
--- a/scumm.h
+++ b/scumm.h
@@ -1154,7 +1154,6 @@ public:
int _maxBoxVertexHeap, _boxPathVertexHeapIndex, _boxMatrixItem;
byte *_boxMatrixPtr4, *_boxMatrixPtr1, *_boxMatrixPtr3;
-// ScummPoint p[5]; /* Gate locations */
ScummPoint gateLoc[5]; /* Gate locations */
int gate1ax, gate1ay, gate1bx, gate1by, gate2ax, gate2ay, gate2bx, gate2by;
uint16 _extraBoxFlags[65];
@@ -1683,74 +1682,6 @@ struct ScummDebugger {
void printScripts();
};
-struct SaveLoadEntry {
- uint32 offs;
- uint8 type;
- uint8 size;
-};
-
-typedef int SerializerSaveReference(void *me, byte type, void *ref);
-typedef void *SerializerLoadReference(void *me, byte type, int ref);
-
-
-struct SerializerStream {
-#ifdef NONSTANDARD_SAVE
- void *context;
-
- bool fopen(const char *filename, const char *mode);
- void fclose();
- int fread(void *buf, int size, int cnt);
- int fwrite(void *buf, int size, int cnt);
-#else
- FILE *out;
-
- FILE *fopen(const char *filename, const char *mode) {
- return out = ::fopen(filename, mode);
- }
- void fclose() {
- ::fclose(out);
- }
- int fread(void *buf, int size, int cnt) {
- return ::fread(buf, size, cnt, out);
- }
- int fwrite(void *buf, int size, int cnt) {
- return ::fwrite(buf, size, cnt, out);
- }
-#endif
-};
-
-struct Serializer {
- SerializerStream _saveLoadStream;
-
- union {
- SerializerSaveReference *_save_ref;
- SerializerLoadReference *_load_ref;
- void *_saveload_ref;
- };
- void *_ref_me;
-
- bool _saveOrLoad;
-
- void saveLoadBytes(void *b, int len);
- void saveLoadArrayOf(void *b, int len, int datasize, byte filetype);
- void saveLoadEntries(void *d, const SaveLoadEntry *sle);
- void saveLoadArrayOf(void *b, int num, int datasize, const SaveLoadEntry *sle);
-
- void saveUint32(uint32 d);
- void saveWord(uint16 d);
- void saveByte(byte b);
-
- byte loadByte();
- uint16 loadWord();
- uint32 loadUint32();
-
- bool isSaving() { return _saveOrLoad; }
-
- bool checkEOFLoadStream();
-
-};
-
-
extern const uint32 IMxx_tags[];
extern const byte default_scale_table[768];
extern uint16 _debugLevel;
@@ -1768,19 +1699,11 @@ void CDECL NORETURN error(const char *s, ...);
void CDECL warning(const char *s, ...);
void CDECL debug(int level, const char *s, ...);
void checkHeap();
-//void initGraphics(Scumm *s, bool fullScreen, unsigned int scaleFactor = 2);
-//void updateScreen(Scumm *s);
-//void drawMouse(int x, int y, int color, byte *mask, bool visible);
-//void drawMouse(int x, int y, int w, int h, byte *buf, bool visible);
void blit(byte *dst, byte *src, int w, int h);
byte *findResource(uint32 tag, byte *searchin, int index);
byte *findResourceSmall(uint32 tag, byte *searchin, int index);
byte *findResource(uint32 tag, byte *searchin);
byte *findResourceSmall(uint32 tag, byte *searchin);
-//void playSfxSound(void *sound, uint32 size, uint rate);
-//bool isSfxFinished();
-//void waitForTimer(Scumm *s, int msec_delay);
-//void setShakePos(Scumm *s, int shake_pos);
void setWindowName(Scumm *s);
uint16 newTag2Old(uint32 oldTag);