diff options
author | Max Horn | 2002-07-02 20:57:27 +0000 |
---|---|---|
committer | Max Horn | 2002-07-02 20:57:27 +0000 |
commit | b827dadf6e8217dbd2baad7bd21e7f8c32db818d (patch) | |
tree | e1d17a3acdd1b445a9f45ca486fc3f062d474a08 | |
parent | 910afa35664840f57ad29dc655377ee25a0239d1 (diff) | |
download | scummvm-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.cpp | 1 | ||||
-rw-r--r-- | saveload.cpp | 41 | ||||
-rw-r--r-- | saveload.h | 51 | ||||
-rw-r--r-- | scumm.h | 77 |
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 @@ -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); |