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

joostp at users.sourceforge.net joostp at users.sourceforge.net
Sat Feb 7 13:55:40 CET 2009


Revision: 36245
          http://scummvm.svn.sourceforge.net/scummvm/?rev=36245&view=rev
Author:   joostp
Date:     2009-02-07 12:55:39 +0000 (Sat, 07 Feb 2009)

Log Message:
-----------
Handle endianness difference in RestoreActorReels() -- fixes bug 2569407 - DW2: Big Endian crash on loading saved game

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

Modified: scummvm/trunk/engines/tinsel/play.cpp
===================================================================
--- scummvm/trunk/engines/tinsel/play.cpp	2009-02-07 09:46:39 UTC (rev 36244)
+++ scummvm/trunk/engines/tinsel/play.cpp	2009-02-07 12:55:39 UTC (rev 36245)
@@ -1149,15 +1149,15 @@
 	ppi.x = (short)x;
 	ppi.y = (short)y;
 	ppi.bRestore = true;
-	ppi.speed = (short)(ONE_SECOND/pFilm->frate);
+	ppi.speed = (short)(ONE_SECOND/FROM_LE_32(pFilm->frate));
 	ppi.bTop = false;
 	ppi.myescEvent = 0;
 
 	// Search backwards for now as later column will be the one
-	for (i = pFilm->numreels - 1; i >= 0; i--) {
+	for (i = (int)FROM_LE_32(pFilm->numreels) - 1; i >= 0; i--) {
 		pFreel = &pFilm->reels[i];
-		pmi = (PMULTI_INIT) LockMem(pFreel->mobj);
-		if (pmi->mulID == actor) {
+		pmi = (PMULTI_INIT) LockMem(FROM_LE_32(pFreel->mobj));
+		if ((int32)FROM_LE_32(pmi->mulID) == actor) {
 			ppi.column = (short)i;
 			NewestFilm(hFilm, &pFilm->reels[i]);
 


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