[Scummvm-cvs-logs] CVS: scummvm/saga saga.h,1.89,1.90 saveload.cpp,1.7,1.8

Andrew Kurushin h00ligan at users.sourceforge.net
Sun May 15 07:47:51 CEST 2005


Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29835

Modified Files:
	saga.h saveload.cpp 
Log Message:
add save game chunk

Index: saga.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saga.h,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -d -r1.89 -r1.90
--- saga.h	8 May 2005 14:04:05 -0000	1.89
+++ saga.h	15 May 2005 14:46:13 -0000	1.90
@@ -434,12 +434,12 @@
 	void shutDown() { _quit = true; }
 
 	void save() { //TODO: remove
-		save("iteSCUMMVM.sav");
+		save("iteSCUMMVM.sav", "default");
 	}
 	void load() { //TODO: remove
 		load("iteSCUMMVM.sav");
 	}
-	void save(const char *fileName);
+	void save(const char *fileName, const char *saveName);
 	void load(const char *fileName);
 
 	int _soundEnabled;

Index: saveload.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saveload.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- saveload.cpp	12 May 2005 15:11:32 -0000	1.7
+++ saveload.cpp	15 May 2005 14:46:13 -0000	1.8
@@ -37,13 +37,33 @@
 #include "saga/scene.h"
 #include "saga/render.h"
 
+#define CURRENT_SAGA_VER 1
+
 namespace Saga {
 
-void SagaEngine::save(const char *fileName) {
+struct SaveGameHeader {
+	uint32 type;
+	uint32 size;
+	uint32 version;
+	char name[32];
+};
+//TODO: 
+// - get savegame list
+// - make/create save filename string
+// - delete savegame
+
+void SagaEngine::save(const char *fileName, const char *saveName) {
 	Common::File out;
+	SaveGameHeader header;
 
 	out.open(fileName, Common::File::kFileWriteMode);
-	//TODO: version number
+
+	header.type = MKID('SAGA');
+	header.size = 0;
+	header.version = CURRENT_SAGA_VER;
+	strcpy(header.name, saveName);
+
+	out.write(&header, sizeof(header));
 
 	// Surrounding scene
 	out.writeSint32LE(_scene->getOutsetSceneNumber());
@@ -74,13 +94,19 @@
 	int sceneNumber, insetSceneNumber;
 	int mapx, mapy;
 	uint16 i;
+	SaveGameHeader header;
 
 	in.open(fileName);
 
 	if (!in.isOpen())
 		return;
 
+	in.read(&header, sizeof(header));
 
+	if (header.type != MKID('SAGA')) {
+		error("SagaEngine::load wrong format");
+	}
+			
 	// Surrounding scene
 	sceneNumber = in.readSint32LE();
 





More information about the Scummvm-git-logs mailing list