[Scummvm-cvs-logs] SF.net SVN: scummvm: [21718] scummvm/trunk/engines/cine

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Sun Apr 9 02:09:03 CEST 2006


Revision: 21718
Author:   eriktorbjorn
Date:     2006-04-09 02:08:45 -0700 (Sun, 09 Apr 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=21718&view=rev

Log Message:
-----------
Fixed savegame saving/loading. I haven't done anything about the user
interface, so it's still even worse than in the original interpreter (just like
in cinE, presumably), but at least it no longer crashes when loading the saved
game, and hopefully the correct palette is saved.

Modified Paths:
--------------
    scummvm/trunk/engines/cine/gfx.h
    scummvm/trunk/engines/cine/various.cpp
    scummvm/trunk/engines/cine/various.h
Modified: scummvm/trunk/engines/cine/gfx.h
===================================================================
--- scummvm/trunk/engines/cine/gfx.h	2006-04-09 09:08:22 UTC (rev 21717)
+++ scummvm/trunk/engines/cine/gfx.h	2006-04-09 09:08:45 UTC (rev 21718)
@@ -34,6 +34,8 @@
 extern byte *page2;
 extern byte *page3;
 
+extern uint16 c_palette[256];
+
 void init_video();
 void setMouseCursor(int cursor);
 void convertGfx(byte *source, byte *dest, const uint16 width, const uint16 height);

Modified: scummvm/trunk/engines/cine/various.cpp
===================================================================
--- scummvm/trunk/engines/cine/various.cpp	2006-04-09 09:08:22 UTC (rev 21717)
+++ scummvm/trunk/engines/cine/various.cpp	2006-04-09 09:08:45 UTC (rev 21718)
@@ -104,8 +104,6 @@
 
 char commandBuffer[80];
 
-uint16 palette_[256];
-
 char currentPrcName[20];
 char currentRelName[20];
 char currentObjectName[20];
@@ -403,7 +401,7 @@
 	newElement->scriptPtr = (byte *)relTable[newElement->scriptIdx].data;
 }
 
-void loadGlobalScritpFromSave(Common::File *fHandle) {
+void loadGlobalScriptFromSave(Common::File *fHandle) {
 	int16 i;
 
 	prcLinkedListStruct *newElement;
@@ -429,9 +427,7 @@
 		newElement->localVars[i] = fHandle->readUint16BE();
 
 	newElement->compareResult = fHandle->readUint16BE();
-
 	newElement->scriptPosition = fHandle->readUint16BE();
-
 	newElement->scriptIdx = fHandle->readUint16BE();
 
 	newElement->scriptPtr = scriptTable[newElement->scriptIdx].ptr;
@@ -468,9 +464,7 @@
 		currentHead = &overlayHead;
 
 	newElement->previous = currentHead->previous;
-
 	currentHead->previous = newElement;
-
 }
 
 void setupGlobalScriptList(void) {
@@ -478,7 +472,6 @@
 
 	while (currentHead) {
 		currentHead->scriptPtr = scriptTable[currentHead->scriptIdx].ptr;
-
 		currentHead = currentHead->next;
 	}
 }
@@ -583,7 +576,7 @@
 	fadeRequired = 0;
 
 	for (i = 0; i < 16; i++) {
-		palette_[i] = 0;
+		c_palette[i] = 0;
 	}
 
 	checkForPendingDataLoadSwitch = 0;
@@ -601,22 +594,21 @@
 	fHandle.read(currentBgName[0], 13);
 	fHandle.read(currentCtName, 13);
 
-	i = fHandle.readUint16BE();
-	i = fHandle.readUint16BE();
+	fHandle.readUint16BE();
+	fHandle.readUint16BE();
 
-	fHandle.read(objectTable, i * 255);
-
-	for (i = 0; i < NUM_MAX_OBJECT; i++) {
-		objectTable[i].x = TO_BE_16(objectTable[i].x);
-		objectTable[i].y = TO_BE_16(objectTable[i].y);
-		objectTable[i].mask = TO_BE_16(objectTable[i].mask);
-		objectTable[i].frame = TO_BE_16(objectTable[i].frame);
-		objectTable[i].costume = TO_BE_16(objectTable[i].costume);
-		objectTable[i].part = TO_BE_16(objectTable[i].part);
+	for (i = 0; i < 255; i++) {
+		objectTable[i].x = fHandle.readSint16BE();
+		objectTable[i].y = fHandle.readSint16BE();
+		objectTable[i].mask = fHandle.readUint16BE();
+		objectTable[i].frame = fHandle.readSint16BE();
+		objectTable[i].costume = fHandle.readSint16BE();
+		fHandle.read(objectTable[i].name, 20);
+		objectTable[i].part = fHandle.readUint16BE();
 	}
 
 	for (i = 0; i < 16; i++) {
-		palette_[i] = fHandle.readUint16BE();
+		c_palette[i] = fHandle.readUint16BE();
 	}
 
 	for (i = 0; i < 16; i++) {
@@ -650,23 +642,24 @@
 	commandVar2 = fHandle.readSint16BE();
 	defaultMenuBoxColor2 = fHandle.readUint16BE();
 
-	i = fHandle.readUint16BE();
-	i = fHandle.readSint16BE();
-	fHandle.read(animDataTable, i * 255);
+	fHandle.readUint16BE();
+	fHandle.readSint16BE();
+
 	for (i = 0; i < NUM_MAX_ANIMDATA; i++) {
-		animDataTable[i].width = TO_BE_16(animDataTable[i].width);
-		animDataTable[i].var1 = TO_BE_16(animDataTable[i].var1);
-		animDataTable[i].bpp = TO_BE_16(animDataTable[i].bpp);
-		animDataTable[i].height = TO_BE_16(animDataTable[i].height);
-		animDataTable[i].fileIdx = TO_BE_16(animDataTable[i].fileIdx);
-		animDataTable[i].frameIdx = TO_BE_16(animDataTable[i].frameIdx);
+		animDataTable[i].width = fHandle.readUint16BE();
+		animDataTable[i].var1 = fHandle.readUint16BE();
+		animDataTable[i].bpp = fHandle.readUint16BE();
+		animDataTable[i].height = fHandle.readUint16BE();
+		animDataTable[i].fileIdx = fHandle.readSint16BE();
+		animDataTable[i].frameIdx = fHandle.readSint16BE();
+		fHandle.read(animDataTable[i].name, 10);
 	}
 
 	fHandle.seek(12, SEEK_CUR);	// TODO: handle screen params (realy required ?)
 
 	size = fHandle.readSint16BE();
 	for (i = 0; i < size; i++) {
-		loadGlobalScritpFromSave(&fHandle);
+		loadGlobalScriptFromSave(&fHandle);
 	}
 
 	size = fHandle.readSint16BE();
@@ -761,7 +754,7 @@
 	}
 
 	for (i = 0; i < 16; i++) {
-		fHandle.writeUint16BE(palette_[i]);
+		fHandle.writeUint16BE(c_palette[i]);
 	}
 
 	for (i = 0; i < 16; i++) {

Modified: scummvm/trunk/engines/cine/various.h
===================================================================
--- scummvm/trunk/engines/cine/various.h	2006-04-09 09:08:22 UTC (rev 21717)
+++ scummvm/trunk/engines/cine/various.h	2006-04-09 09:08:45 UTC (rev 21718)
@@ -117,8 +117,6 @@
 
 extern char commandBuffer[80];
 
-extern uint16 c_palette[256];
-
 extern char currentPrcName[20];
 extern char currentRelName[20];
 extern char currentObjectName[20];


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.





More information about the Scummvm-git-logs mailing list