[Scummvm-cvs-logs] SF.net SVN: scummvm:[36218] scummvm/trunk/engines/tinsel

joostp at users.sourceforge.net joostp at users.sourceforge.net
Wed Feb 4 20:52:00 CET 2009


Revision: 36218
          http://scummvm.svn.sourceforge.net/scummvm/?rev=36218&view=rev
Author:   joostp
Date:     2009-02-04 19:52:00 +0000 (Wed, 04 Feb 2009)

Log Message:
-----------
DW2/Tinsel2 endian fixes.  Apart from some palette glitches the game is playable now.

Modified Paths:
--------------
    scummvm/trunk/engines/tinsel/bmv.cpp
    scummvm/trunk/engines/tinsel/palette.cpp
    scummvm/trunk/engines/tinsel/play.cpp
    scummvm/trunk/engines/tinsel/rince.cpp

Modified: scummvm/trunk/engines/tinsel/bmv.cpp
===================================================================
--- scummvm/trunk/engines/tinsel/bmv.cpp	2009-02-04 19:15:12 UTC (rev 36217)
+++ scummvm/trunk/engines/tinsel/bmv.cpp	2009-02-04 19:52:00 UTC (rev 36218)
@@ -125,9 +125,9 @@
 
 typedef struct {
 
-	short	x;
-	short	y;
-	short	stringId;
+	int16	x;
+	int16	y;
+	int16	stringId;
 	unsigned char	duration;
 	unsigned char	fontId;
 
@@ -596,10 +596,10 @@
 		PPRINT_CMD pCmd;
 
 		pCmd = (PPRINT_CMD)(bigBuffer + commandOffset);
-
-		MovieText(nullContext, pCmd->stringId,
-				pCmd->x,
-				pCmd->y,
+		
+		MovieText(nullContext, (int16)READ_LE_UINT16(&pCmd->stringId),
+				(int16)READ_LE_UINT16(&pCmd->x),
+				(int16)READ_LE_UINT16(&pCmd->y),
 				pCmd->fontId,
 				NULL,
 				pCmd->duration);
@@ -612,9 +612,9 @@
 			pCmd = (PTALK_CMD)(bigBuffer + commandOffset);
 			talkColour = RGB(pCmd->r, pCmd->g, pCmd->b);
 
-			MovieText(nullContext, pCmd->stringId,
-					pCmd->x,
-					pCmd->y,
+			MovieText(nullContext, (int16)READ_LE_UINT16(&pCmd->stringId),
+					(int16)READ_LE_UINT16(&pCmd->x),
+					(int16)READ_LE_UINT16(&pCmd->y),
 					0,
 					&talkColour,
 					pCmd->duration);

Modified: scummvm/trunk/engines/tinsel/palette.cpp
===================================================================
--- scummvm/trunk/engines/tinsel/palette.cpp	2009-02-04 19:15:12 UTC (rev 36217)
+++ scummvm/trunk/engines/tinsel/palette.cpp	2009-02-04 19:52:00 UTC (rev 36218)
@@ -257,7 +257,7 @@
 
 			if (TinselV2)
 				// Copy all the colours
-				memcpy(p->palRGB, pNewPal->palRGB, FROM_LE_32(pNewPal->numColours) * sizeof(COLORREF));
+				memcpy(p->palRGB, pNewPal->palRGB, p->numColours * sizeof(COLORREF));
 
 #ifdef DEBUG
 			// one more palette in use
@@ -267,7 +267,7 @@
 
 			// Q the change to the video DAC
 			if (TinselV2)
-				UpdateDACqueue(p->posInDAC, FROM_LE_32(pNewPal->numColours), p->palRGB);
+				UpdateDACqueue(p->posInDAC, p->numColours, p->palRGB);
 			else
 				UpdateDACqueueHandle(p->posInDAC, p->numColours, p->hPal);
 
@@ -372,10 +372,10 @@
 		pPalQ->hPal = hNewPal;
 
 		if (TinselV2) {
-			pPalQ->numColours = pNewPal->numColours;
+			pPalQ->numColours = FROM_LE_32(pNewPal->numColours);
 
 			// Copy all the colours
-			memcpy(pPalQ->palRGB, pNewPal->palRGB, pNewPal->numColours * sizeof(COLORREF));
+			memcpy(pPalQ->palRGB, pNewPal->palRGB, FROM_LE_32(pNewPal->numColours) * sizeof(COLORREF));
 
 			if (!pPalQ->bFading)
 				// Q the change to the video DAC
@@ -512,7 +512,7 @@
 	// leave background colour alone
 	ghostPalette[0] = 0;
 
-	for (i = 0; i < pPal->numColours; i++) {
+	for (i = 0; i < (int)FROM_LE_32(pPal->numColours); i++) {
 		// get the RGB colour model values
 		uint8 red   = GetRValue(pPal->palRGB[i]);
 		uint8 green = GetGValue(pPal->palRGB[i]);

Modified: scummvm/trunk/engines/tinsel/play.cpp
===================================================================
--- scummvm/trunk/engines/tinsel/play.cpp	2009-02-04 19:15:12 UTC (rev 36217)
+++ scummvm/trunk/engines/tinsel/play.cpp	2009-02-04 19:52:00 UTC (rev 36218)
@@ -295,7 +295,7 @@
 		case ANI_JUMP:
 			_ctx->frameNumber++;
 
-			assert(pAni[_ctx->frameNumber].op < 0);
+			assert((int32)FROM_LE_32(pAni[_ctx->frameNumber].op) < 0);
 
 			_ctx->frameNumber += FROM_LE_32(pAni[_ctx->frameNumber].op);
 

Modified: scummvm/trunk/engines/tinsel/rince.cpp
===================================================================
--- scummvm/trunk/engines/tinsel/rince.cpp	2009-02-04 19:15:12 UTC (rev 36217)
+++ scummvm/trunk/engines/tinsel/rince.cpp	2009-02-04 19:52:00 UTC (rev 36218)
@@ -804,7 +804,7 @@
 	InitialPathChecks(pMover, rpos->X, rpos->Y);
 
 	pFilm = (FILM *)LockMem(pMover->walkReels[i][FORWARD]);	// Any old reel
-	pmi = (PMULTI_INIT)LockMem(pFilm->reels[0].mobj);
+	pmi = (PMULTI_INIT)LockMem(FROM_LE_32(pFilm->reels[0].mobj));
 
 	// Poke in the background palette
 	PokeInPalette(pmi);


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