[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