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

Hkz at users.sourceforge.net Hkz at users.sourceforge.net
Mon May 25 13:01:33 CEST 2009


Revision: 40882
          http://scummvm.svn.sourceforge.net/scummvm/?rev=40882&view=rev
Author:   Hkz
Date:     2009-05-25 11:01:33 +0000 (Mon, 25 May 2009)

Log Message:
-----------
tinsel: add PSX specific code to workaround the thief bug in past ankh-morpork, i still have to give a better look at this though

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

Modified: scummvm/trunk/engines/tinsel/play.cpp
===================================================================
--- scummvm/trunk/engines/tinsel/play.cpp	2009-05-25 10:32:36 UTC (rev 40881)
+++ scummvm/trunk/engines/tinsel/play.cpp	2009-05-25 11:01:33 UTC (rev 40882)
@@ -978,6 +978,16 @@
 
 	CORO_BEGIN_CODE(_ctx);
 
+	// FIXME: (PSX_THIEF_BUG) this fixes a (script?) bug in Discworld PSX:
+	// If the player follows immediately the thief that steals the evocation book
+	// from the "past" unseen university, the stack seems to get loaded with wrong
+	// values and the game crashes when going into past-ankh map, if instead the 
+	// player interacts with other objects or goes back to L-space, the past-ankh
+	// map works perfectly.
+	// This is just a workaround.
+	if (TinselV1PSX && hFilm == 4 && actorid == 77)
+		return;
+
 	pFilm = (const FILM *)LockMem(hFilm);
 	PPINIT ppi;
 

Modified: scummvm/trunk/engines/tinsel/tinlib.cpp
===================================================================
--- scummvm/trunk/engines/tinsel/tinlib.cpp	2009-05-25 10:32:36 UTC (rev 40881)
+++ scummvm/trunk/engines/tinsel/tinlib.cpp	2009-05-25 11:01:33 UTC (rev 40882)
@@ -3833,6 +3833,12 @@
 
 	bool bQuick = hold != 0;
 	PMOVER pMover = GetMover(actor);
+	
+	// FIXME: This is part of the workaround for PSX_THIEF_BUG,
+	// See the other code and description in PlayFilm() (play.cpp)
+	if (TinselV1PSX && actor == 77 && hFilm == 0)
+		return;
+
 	assert(pMover); // Can't walk a non-moving actor
 
 	CORO_BEGIN_CODE(_ctx);


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