[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