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
svn-id: r40882
This commit is contained in:
parent
409c5e0a7e
commit
ffcf4173f3
2 changed files with 16 additions and 0 deletions
|
@ -978,6 +978,16 @@ void PlayFilm(CORO_PARAM, SCNHANDLE hFilm, int x, int y, int actorid, bool splay
|
|||
|
||||
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;
|
||||
|
||||
|
|
|
@ -3833,6 +3833,12 @@ void Walk(CORO_PARAM, int actor, int x, int y, SCNHANDLE hFilm, int hold, bool i
|
|||
|
||||
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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue