[Scummvm-cvs-logs] SF.net SVN: scummvm: [32639] scummvm/trunk/engines/drascula/graphics.cpp

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Mon Jun 9 20:03:11 CEST 2008


Revision: 32639
          http://scummvm.svn.sourceforge.net/scummvm/?rev=32639&view=rev
Author:   thebluegr
Date:     2008-06-09 11:03:11 -0700 (Mon, 09 Jun 2008)

Log Message:
-----------
endianess fixes

Modified Paths:
--------------
    scummvm/trunk/engines/drascula/graphics.cpp

Modified: scummvm/trunk/engines/drascula/graphics.cpp
===================================================================
--- scummvm/trunk/engines/drascula/graphics.cpp	2008-06-09 18:02:09 UTC (rev 32638)
+++ scummvm/trunk/engines/drascula/graphics.cpp	2008-06-09 18:03:11 UTC (rev 32639)
@@ -115,7 +115,12 @@
 		}
 	}
 
-	_arj.read(cPal, 768);
+	for (int i = 0; i < 256; i++) {
+		cPal[i * 3 + 0] = _arj.readByte();
+		cPal[i * 3 + 1] = _arj.readByte();
+		cPal[i * 3 + 2] = _arj.readByte();
+	}
+
 	_arj.close();
 
 	setRGB((byte *)cPal, colorCount);
@@ -125,7 +130,13 @@
 	int dataSize = _arj.readSint32LE();
 	byte *pcxData = (byte *)malloc(dataSize);
 	_arj.read(pcxData, dataSize);
-	_arj.read(cPal, 768);
+
+	for (int i = 0; i < 256; i++) {
+		cPal[i * 3 + 0] = _arj.readByte();
+		cPal[i * 3 + 1] = _arj.readByte();
+		cPal[i * 3 + 2] = _arj.readByte();
+	}
+
 	byte *prevFrame = (byte *)malloc(64000);
 	memcpy(prevFrame, VGA, 64000);
 
@@ -487,11 +498,11 @@
 
 int DrasculaEngine::playFrameSSN() {
 	int Exit = 0;
-	uint32 Lengt;
+	uint32 length;
 	byte *BufferSSN;
 
 	if (!UsingMem)
-		_arj.read(&CHUNK, 1);
+		CHUNK = _arj.readByte();
 	else {
 		memcpy(&CHUNK, mSession, 1);
 		mSession += 1;
@@ -499,9 +510,13 @@
 
 	switch (CHUNK) {
 	case kFrameSetPal:
-		if (!UsingMem)
-			_arj.read(dacSSN, 768);
-		else {
+		if (!UsingMem) {
+			for (int i = 0; i < 256; i++) {
+				dacSSN[i * 3 + 0] = _arj.readByte();
+				dacSSN[i * 3 + 1] = _arj.readByte();
+				dacSSN[i * 3 + 2] = _arj.readByte();
+			}
+		} else {
 			memcpy(dacSSN, mSession, 768);
 			mSession += 768;
 		}
@@ -513,20 +528,20 @@
 	case kFrameInit:
 		if (!UsingMem) {
 			CMP = _arj.readByte();
-			Lengt = _arj.readUint32LE();
+			length = _arj.readUint32LE();
 		} else {
 			memcpy(&CMP, mSession, 1);
 			mSession += 1;
-			Lengt = READ_LE_UINT32(mSession);
+			length = READ_LE_UINT32(mSession);
 			mSession += 4;
 		}
 		if (CMP == kFrameCmpRle) {
-			BufferSSN = (byte *)malloc(Lengt);
+			BufferSSN = (byte *)malloc(length);
 			if (!UsingMem) {
-				_arj.read(BufferSSN, Lengt);
+				_arj.read(BufferSSN, length);
 			} else {
-				memcpy(BufferSSN, mSession, Lengt);
-				mSession += Lengt;
+				memcpy(BufferSSN, mSession, length);
+				mSession += length;
 			}
 			decodeRLE(BufferSSN, screenSurface);
 			free(BufferSSN);
@@ -540,14 +555,14 @@
 			FrameSSN++;
 		} else {
 			if (CMP == kFrameCmpOff) {
-				BufferSSN = (byte *)malloc(Lengt);
+				BufferSSN = (byte *)malloc(length);
 				if (!UsingMem) {
-					_arj.read(BufferSSN, Lengt);
+					_arj.read(BufferSSN, length);
 				} else {
-					memcpy(BufferSSN, mSession, Lengt);
-					mSession += Lengt;
+					memcpy(BufferSSN, mSession, length);
+					mSession += length;
 				}
-				decodeOffset(BufferSSN, screenSurface, Lengt);
+				decodeOffset(BufferSSN, screenSurface, length);
 				free(BufferSSN);
 				waitFrameSSN();
 				if (FrameSSN)
@@ -572,15 +587,15 @@
 }
 
 byte *DrasculaEngine::TryInMem() {
-	int Lengt;
+	int length;
 
 	_arj.seek(0, SEEK_END);
-	Lengt = _arj.pos();
+	length = _arj.pos();
 	_arj.seek(0, SEEK_SET);
-	memPtr = (byte *)malloc(Lengt);
+	memPtr = (byte *)malloc(length);
 	if (memPtr == NULL)
 		return NULL;
-	_arj.read(memPtr, Lengt);
+	_arj.read(memPtr, length);
 	UsingMem = 1;
 	_arj.close();
 


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