[Scummvm-cvs-logs] SF.net SVN: scummvm: [29985] scummvm/trunk/engines/cruise
yazoo at users.sourceforge.net
yazoo at users.sourceforge.net
Tue Dec 25 17:37:13 CET 2007
Revision: 29985
http://scummvm.svn.sourceforge.net/scummvm/?rev=29985&view=rev
Author: yazoo
Date: 2007-12-25 08:37:12 -0800 (Tue, 25 Dec 2007)
Log Message:
-----------
Fix cell sorting
Fix palette loading
Modified Paths:
--------------
scummvm/trunk/engines/cruise/background.cpp
scummvm/trunk/engines/cruise/cell.cpp
scummvm/trunk/engines/cruise/dataLoader.cpp
scummvm/trunk/engines/cruise/overlay.cpp
scummvm/trunk/engines/cruise/volume.cpp
Modified: scummvm/trunk/engines/cruise/background.cpp
===================================================================
--- scummvm/trunk/engines/cruise/background.cpp 2007-12-25 16:17:22 UTC (rev 29984)
+++ scummvm/trunk/engines/cruise/background.cpp 2007-12-25 16:37:12 UTC (rev 29985)
@@ -128,8 +128,8 @@
}
if (!strcmp((char*)ptr, "PAL")) {
- printf("Pal loading unsupported !\n");
- ASSERT(0);
+ memcpy(palScreen[idx], ptr+4, 256*3);
+ gfxModuleData_setPal256(palScreen[idx]);
} else {
int mode = ptr2[1];
ptr2 += 2;
Modified: scummvm/trunk/engines/cruise/cell.cpp
===================================================================
--- scummvm/trunk/engines/cruise/cell.cpp 2007-12-25 16:17:22 UTC (rev 29984)
+++ scummvm/trunk/engines/cruise/cell.cpp 2007-12-25 16:37:12 UTC (rev 29985)
@@ -159,17 +159,14 @@
currentHead3 = currentHead;
currentHead2 = currentHead->next;
- while (currentHead2) {
- if (currentHead2->type == 3) {
- break;
- }
+ while (currentHead2 && (currentHead2->type != 3)) {
if (currentHead2->type != 5) {
int16 lvar2;
getSingleObjectParam(currentHead2->overlay, currentHead2->idx, 2, &lvar2);
- if (lvar2 > var)
+ if (lvar2 >= var)
break;
}
@@ -360,14 +357,14 @@
}
}
-void sortCells(int16 param1, int16 param2, cellStruct *objPtr) {
+void sortCells(int16 ovlIdx, int16 ovjIdx, cellStruct *objPtr) {
cellStruct *pl,*pl2,*pl3,*pl4,*plz,*pllast;
cellStruct prov;
int16 newz, objz, sobjz;
pl4 = NULL;
- getSingleObjectParam(param1, param2, 2, &sobjz);
+ getSingleObjectParam(ovlIdx, ovjIdx, 2, &sobjz);
pl = objPtr;
prov.next = NULL;
prov.prev = NULL;
@@ -378,7 +375,7 @@
while (pl2) {
pl3 = pl2->next;
- if ((pl2->overlay == param1) && (pl2->idx == param2)) {// found
+ if ((pl2->overlay == ovlIdx) && (pl2->idx == ovjIdx)) {// found
pl->next = pl3;
if (pl3) {
Modified: scummvm/trunk/engines/cruise/dataLoader.cpp
===================================================================
--- scummvm/trunk/engines/cruise/dataLoader.cpp 2007-12-25 16:17:22 UTC (rev 29984)
+++ scummvm/trunk/engines/cruise/dataLoader.cpp 2007-12-25 16:37:12 UTC (rev 29985)
@@ -42,8 +42,7 @@
uint8 *buffer;
uint8 *dataPtr = pCurrentFileEntry->subData.ptr;
- int spriteSize =
- pCurrentFileEntry->height * pCurrentFileEntry->width;
+ int spriteSize = pCurrentFileEntry->height * pCurrentFileEntry->width;
int x = 0;
buffer = (uint8 *) malloc(spriteSize);
@@ -480,7 +479,7 @@
filesDatabase[fileIndex].subData.resourceType = 2;
decodeGfxFormat1(&filesDatabase[fileIndex]);
filesDatabase[fileIndex].subData.index = currentEntryIdx;
- filesDatabase[fileIndex].subData.transparency = localBuffer.transparency % 0x10;
+ filesDatabase[fileIndex].subData.transparency = 0;
break;
}
case 4:
Modified: scummvm/trunk/engines/cruise/overlay.cpp
===================================================================
--- scummvm/trunk/engines/cruise/overlay.cpp 2007-12-25 16:17:22 UTC (rev 29984)
+++ scummvm/trunk/engines/cruise/overlay.cpp 2007-12-25 16:37:12 UTC (rev 29985)
@@ -607,8 +607,7 @@
return (-2);
}
- memcpy(ovlData->stringTable[i].string,
- scriptPtr, ovlData->stringTable[i].length);
+ memcpy(ovlData->stringTable[i].string, scriptPtr, ovlData->stringTable[i].length);
scriptPtr += ovlData->stringTable[i].length;
}
}
Modified: scummvm/trunk/engines/cruise/volume.cpp
===================================================================
--- scummvm/trunk/engines/cruise/volume.cpp 2007-12-25 16:17:22 UTC (rev 29984)
+++ scummvm/trunk/engines/cruise/volume.cpp 2007-12-25 16:37:12 UTC (rev 29985)
@@ -425,54 +425,47 @@
sprintf(nameBuffer, "D%d.", i + 1);
- fileHandle = fopen(nameBuffer, "rb");
+ fileHandle.open(nameBuffer);
short int numEntry;
short int sizeEntry;
- fread(&numEntry, 2, 1, fileHandle);
- fread(&sizeEntry, 2, 1, fileHandle);
+ numEntry = fileHandle.readSint16BE();
+ sizeEntry = fileHandle.readSint16BE();
- flipShort(&numEntry);
- flipShort(&sizeEntry);
-
buffer = (fileEntry *) mallocAndZero(numEntry * sizeEntry);
- fread(buffer, numEntry * sizeEntry, 1, fileHandle);
-
for (j = 0; j < numEntry; j++) {
- flipLong(&buffer[j].offset);
- flipLong(&buffer[j].size);
- flipLong(&buffer[j].unk2);
- flipLong(&buffer[j].unk3);
+ fileHandle.seek(4+j*0x1E);
+ fileHandle.read(buffer[j].name, 14);
+ buffer[j].offset = fileHandle.readSint32BE();
+ buffer[j].size = fileHandle.readSint32BE();
+ buffer[j].extSize = fileHandle.readSint32BE();
+ buffer[j].unk3 = fileHandle.readSint32BE();
- fseek(fileHandle, buffer[j].offset, SEEK_SET);
+ fileHandle.seek(buffer[j].offset);
char *bufferLocal;
bufferLocal = (char *)mallocAndZero(buffer[j].size);
- fread(bufferLocal, buffer[j].size, 1, fileHandle);
+ fileHandle.read(bufferLocal, buffer[j].size);
char nameBuffer[256];
- sprintf(nameBuffer, "D%d.dmp/%s", i + 1,
- buffer[j].name);
+ sprintf(nameBuffer, "D:/oldies/c-eng/dump/%s", buffer[j].name);
- if (buffer[j].size == buffer[j].unk2) {
- FILE *fOut = fopen(nameBuffer, "wb+");
- fwrite(bufferLocal, buffer[j].size, 1, fOut);
- fclose(fOut);
+ if (buffer[j].size == buffer[j].extSize) {
+ Common::File fout;
+ fout.open(nameBuffer, Common::File::kFileWriteMode);
+ fout.write(bufferLocal, buffer[j].size);
} else {
- char *uncompBuffer =
- (char *)mallocAndZero(buffer[j].unk2 +
- 500);
+ char *uncompBuffer = (char *)mallocAndZero(buffer[j].extSize + 500);
delphineUnpack((uint8 *) uncompBuffer, (const uint8 *) bufferLocal, buffer[j].size);
- FILE *fOut = fopen(nameBuffer, "wb+");
- fwrite(uncompBuffer, buffer[j].unk2, 1,
- fOut);
- fclose(fOut);
+ Common::File fout;
+ fout.open(nameBuffer, Common::File::kFileWriteMode);
+ fout.write(uncompBuffer, buffer[j].extSize);
//free(uncompBuffer);
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