[Scummvm-cvs-logs] CVS: scummvm/scumm saveload.cpp,1.204,1.205 saveload.h,1.52,1.53 script_v5.cpp,1.281,1.282
Max Horn
fingolfin at users.sourceforge.net
Sun Apr 10 08:14:56 CEST 2005
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2778/scumm
Modified Files:
saveload.cpp saveload.h script_v5.cpp
Log Message:
split SaveFileManager::openSavefile and class SaveFile into two, each, one for loading and one for saving
Index: saveload.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/saveload.cpp,v
retrieving revision 1.204
retrieving revision 1.205
diff -u -d -r1.204 -r1.205
--- saveload.cpp 8 Apr 2005 23:27:35 -0000 1.204
+++ saveload.cpp 10 Apr 2005 15:13:37 -0000 1.205
@@ -68,12 +68,12 @@
bool ScummEngine::saveState(int slot, bool compat) {
char filename[256];
- SaveFile *out;
+ OutSaveFile *out;
SaveGameHeader hdr;
makeSavegameName(filename, slot, compat);
- if (!(out = _saveFileMan->openSavefile(filename, true)))
+ if (!(out = _saveFileMan->openForSaving(filename)))
return false;
memcpy(hdr.name, _saveLoadName, sizeof(hdr.name));
@@ -84,7 +84,7 @@
out->write(&hdr, sizeof(hdr));
- Serializer ser(out, true, CURRENT_VER);
+ Serializer ser(0, out, CURRENT_VER);
saveOrLoad(&ser, CURRENT_VER);
delete out;
debug(1, "State saved as '%s'", filename);
@@ -93,14 +93,14 @@
bool ScummEngine::loadState(int slot, bool compat) {
char filename[256];
- SaveFile *in;
+ InSaveFile *in;
int i, j;
SaveGameHeader hdr;
int sb, sh;
byte *roomptr;
makeSavegameName(filename, slot, compat);
- if (!(in = _saveFileMan->openSavefile(filename, false)))
+ if (!(in = _saveFileMan->openForLoading(filename)))
return false;
in->read(&hdr, sizeof(hdr));
@@ -179,7 +179,7 @@
//
// Now do the actual loading
//
- Serializer ser(in, false, hdr.ver);
+ Serializer ser(in, 0, hdr.ver);
saveOrLoad(&ser, hdr.ver);
delete in;
@@ -349,17 +349,17 @@
bool ScummEngine::getSavegameName(int slot, char *desc) {
char filename[256];
- SaveFile *out;
+ InSaveFile *in;
SaveGameHeader hdr;
int len;
makeSavegameName(filename, slot, false);
- if (!(out = _saveFileMan->openSavefile(filename, false))) {
+ if (!(in = _saveFileMan->openForLoading(filename))) {
strcpy(desc, "");
return false;
}
- len = out->read(&hdr, sizeof(hdr));
- delete out;
+ len = in->read(&hdr, sizeof(hdr));
+ delete in;
if (len != sizeof(hdr) || hdr.type != MKID('SCVM')) {
strcpy(desc, "Invalid savegame");
@@ -1010,35 +1010,35 @@
}
void Serializer::saveBytes(void *b, int len) {
- _saveLoadStream->write(b, len);
+ _saveStream->write(b, len);
}
void Serializer::loadBytes(void *b, int len) {
- _saveLoadStream->read(b, len);
+ _loadStream->read(b, len);
}
void Serializer::saveUint32(uint32 d) {
- _saveLoadStream->writeUint32LE(d);
+ _saveStream->writeUint32LE(d);
}
void Serializer::saveUint16(uint16 d) {
- _saveLoadStream->writeUint16LE(d);
+ _saveStream->writeUint16LE(d);
}
void Serializer::saveByte(byte b) {
- _saveLoadStream->writeByte(b);
+ _saveStream->writeByte(b);
}
uint32 Serializer::loadUint32() {
- return _saveLoadStream->readUint32LE();
+ return _loadStream->readUint32LE();
}
uint16 Serializer::loadUint16() {
- return _saveLoadStream->readUint16LE();
+ return _loadStream->readUint16LE();
}
byte Serializer::loadByte() {
- return _saveLoadStream->readByte();
+ return _loadStream->readByte();
}
void Serializer::saveArrayOf(void *b, int len, int datasize, byte filetype) {
Index: saveload.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/saveload.h,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -d -r1.52 -r1.53
--- saveload.h 8 Apr 2005 23:27:35 -0000 1.52
+++ saveload.h 10 Apr 2005 15:13:38 -0000 1.53
@@ -24,7 +24,8 @@
#include "common/scummsys.h"
-class SaveFile;
+class InSaveFile;
+class OutSaveFile;
namespace Scumm {
@@ -94,9 +95,8 @@
class Serializer {
public:
- Serializer(SaveFile *stream, bool saveOrLoad, uint32 savegameVersion)
- : _save_ref(0), _load_ref(0), _ref_me(0),
- _saveLoadStream(stream), _saveOrLoad(saveOrLoad),
+ Serializer(InSaveFile *in, OutSaveFile *out, uint32 savegameVersion)
+ : _loadStream(in), _saveStream(out), _save_ref(0), _load_ref(0), _ref_me(0),
_savegameVersion(savegameVersion)
{ }
@@ -108,8 +108,8 @@
void saveLoadArrayOf(void *b, int num, int datasize, const SaveLoadEntry *sle);
void saveLoadEntries(void *d, const SaveLoadEntry *sle);
- bool isSaving() { return _saveOrLoad; }
- bool isLoading() { return !_saveOrLoad; }
+ bool isSaving() { return (_saveStream != 0); }
+ bool isLoading() { return (_loadStream != 0); }
uint32 getVersion() { return _savegameVersion; }
void saveUint32(uint32 d);
@@ -124,8 +124,8 @@
void loadBytes(void *b, int len);
protected:
- SaveFile *_saveLoadStream;
- bool _saveOrLoad;
+ InSaveFile *_loadStream;
+ OutSaveFile *_saveStream;
uint32 _savegameVersion;
void saveArrayOf(void *b, int len, int datasize, byte filetype);
Index: script_v5.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v5.cpp,v
retrieving revision 1.281
retrieving revision 1.282
diff -u -d -r1.281 -r1.282
--- script_v5.cpp 10 Apr 2005 12:58:57 -0000 1.281
+++ script_v5.cpp 10 Apr 2005 15:13:38 -0000 1.282
@@ -1176,7 +1176,7 @@
listSavegames(avail_saves, ARRAYSIZE(avail_saves));
makeSavegameName(filename, slot, false);
- if (avail_saves[slot] && (_saveFileMan->openSavefile(filename, false)))
+ if (avail_saves[slot] && (_saveFileMan->openForLoading(filename)))
result = 6; // save file exists
else
result = 7; // save file does not exist
@@ -1948,14 +1948,14 @@
case 13: // SO_SAVE_STRING
{
- SaveFile *file;
+ OutSaveFile *file;
char filename[256], *s;
a = getVarOrDirectByte(PARAM_1);
s = filename;
while ((*s++ = fetchScriptByte()));
- file = _saveFileMan->openSavefile(filename, true);
+ file = _saveFileMan->openForSaving(filename);
if (file != NULL) {
byte *ptr;
ptr = getResourceAddress(rtString, a);
@@ -1967,14 +1967,14 @@
}
case 14: // SO_LOAD_STRING
{
- SaveFile *file;
+ InSaveFile *file;
char filename[256], *s;
a = getVarOrDirectByte(PARAM_1);
s = filename;
while ((*s++ = fetchScriptByte()));
- file = _saveFileMan->openSavefile(filename, false);
+ file = _saveFileMan->openForLoading(filename);
if (file != NULL) {
byte *ptr;
int len = 256, cnt = 0;
More information about the Scummvm-git-logs
mailing list