[Scummvm-cvs-logs] CVS: scummvm/saga actor.cpp,1.181,1.182 actor.h,1.93,1.94 saveload.cpp,1.24,1.25

Eugene Sandulenko sev at users.sourceforge.net
Sat Sep 3 00:57:03 CEST 2005


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

Modified Files:
	actor.cpp actor.h saveload.cpp 
Log Message:
o Fix bug #1258633 "ITE: Second Rif appears in wall of dog castle prison"
o Added debug output method to Location structure
o Fixed long-standing bug with save version being saved not in constant
  endianness


Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.cpp,v
retrieving revision 1.181
retrieving revision 1.182
diff -u -d -r1.181 -r1.182
--- actor.cpp	2 Sep 2005 20:17:51 -0000	1.181
+++ actor.cpp	3 Sep 2005 07:56:41 -0000	1.182
@@ -2870,6 +2870,14 @@
 	for (i = 0; i < _actorsCount; i++) {
 		ActorData *a = _actors[i];
 		a->loadState(_vm->getCurrentLoadVersion(), in);
+
+		// Fix bug #1258633 "ITE: Second Rif appears in wall of dog castle prison"
+		// For some reason in some cases actor position is all wrong, so Rif
+		// crawls to his original poition
+		if (i == 122 && _vm->getGameType() == GType_ITE) {
+			a->_location.x = 130;
+			a->_location.y = 55;
+		}
 	}
 
 	for (i = 0; i < _objsCount; i++) {

Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.h,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -d -r1.93 -r1.94
--- actor.h	10 Aug 2005 17:39:29 -0000	1.93
+++ actor.h	3 Sep 2005 07:56:42 -0000	1.94
@@ -234,6 +234,10 @@
 		y = stream.readUint16LE();
 		z = stream.readUint16LE();
 	}
+
+	void debugPrint(int debuglevel = 0, const char *loc = "Loc:") const {
+		debug(debuglevel, "%s %d, %d, %d", loc, x, y, z);
+	}
 };
 
 class CommonObjectData {

Index: saveload.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saveload.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- saveload.cpp	16 Aug 2005 19:04:51 -0000	1.24
+++ saveload.cpp	3 Sep 2005 07:56:42 -0000	1.25
@@ -167,8 +167,8 @@
 
 	_saveHeader.type = MKID('SAGA');
 	_saveHeader.size = 0;
-	_saveHeader.version = CURRENT_SAGA_VER;
-	strcpy(_saveHeader.name, saveName);
+	_saveHeader.version = TO_LE_32(CURRENT_SAGA_VER);
+	strncpy(_saveHeader.name, saveName, SAVE_TITLE_SIZE);
 
 	out->write(&_saveHeader, sizeof(_saveHeader));
 
@@ -204,6 +204,9 @@
 
 	in->read(&_saveHeader, sizeof(_saveHeader));
 
+	_saveHeader.size = FROM_LE_32(_saveHeader.size);
+	_saveHeader.version = FROM_LE_32(_saveHeader.version);
+
 	if (_saveHeader.type != MKID('SAGA')) {
 		error("SagaEngine::load wrong format");
 	}
@@ -235,7 +238,7 @@
 	_scene->clearSceneQueue();
 	_scene->changeScene(sceneNumber, ACTOR_NO_ENTRANCE, kTransitionNoFade);
 
-	_events->handleEvents(0); //dissolve back grounds
+	_events->handleEvents(0); //dissolve backgrounds
 
 	if (insetSceneNumber != sceneNumber) {
 		_render->setFlag(RF_DISABLE_ACTORS);





More information about the Scummvm-git-logs mailing list