[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