tinsel: workaround for "missing red dragon in Act IV" bug in Discworld PSX

svn-id: r41068
This commit is contained in:
Fabio Battaglia 2009-05-31 14:41:54 +00:00
parent 11a5875aa8
commit be22438648

View File

@ -521,6 +521,19 @@ void SetNewScene(SCNHANDLE scene, int entrance, int transition) {
HookScene.scene = 0;
}
// Workaround for "Missing Red Dragon in square" bug in Discworld 1 PSX, act IV.
// This happens with the original interpreter on PSX too: the red dragon in Act IV
// doesn't show up inside the square at the right time. Original game required the
// player to go in and out the square until the dragon appears (wasting hours).
// I'm forcing the load of the right scene by checking that the player has (or has not) the
// right items: player must have Mambo the swamp dragon, and mustn't have fireworks (used on
// the swamp dragon previously to "load it up").
if (TinselV1PSX && NextScene.scene == 0x1800000 && NextScene.entry == 2) {
if ((IsInInventory(261, INV_1) || IsInInventory(261, INV_2)) &&
(!IsInInventory(232, INV_1) && !IsInInventory(232, INV_2)))
NextScene.entry = 1;
}
}
/**
@ -672,7 +685,7 @@ bool ChangeScene(bool bReset) {
} else if (--CountOut == 0) {
if (!TinselV2)
ClearScreen();
StartNewScene(NextScene.scene, NextScene.entry);
NextScene.scene = 0;