diff options
| -rw-r--r-- | engines/sci/engine/script_patches.cpp | 30 | 
1 files changed, 30 insertions, 0 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp index efe71aeb8e..ebb12a5f6b 100644 --- a/engines/sci/engine/script_patches.cpp +++ b/engines/sci/engine/script_patches.cpp @@ -7534,6 +7534,35 @@ static const uint16 qfg1vgaPatchFunnyRoomFix[] = {  	PATCH_END  }; +// In Yorick's room, room 96, walking in certain spots in front of the rightmost +//  door locks up the game. This also occurs in Sierra's interpreter. +// +// rm96:doit runs the script goTo2 when ego enters a rect in front of the door. +//  This rect is low enough that ego can collide with the door's boundary +//  obstacle on the right and prevent goTo2 from restoring control to the user. +// +// We fix this by raising the bottom of the door rect. Sierra fixed this bug in +//  the Mac version by rewriting the door code, switching to control areas, and +//  tweaking the sizes and locations of all the relevant objects. +// +// Applies to: PC Floppy +// Responsible method: rm96:doit +// Fixes bug #6410 +static const uint16 qfg1vgaSignatureYorickDoorTwoRect[] = { +	SIG_MAGICDWORD, +	0x38, SIG_UINT16(0x0135),               // pushi 0135 [ x = 309 ] +	0x39, 0x64,                             // pushi 64   [ y = 100 ] +	0x38, SIG_UINT16(0x013f),               // pushi 013f [ x = 319 ] +	0x39, 0x70,                             // pushi 70   [ y = 112 ] +	SIG_END +}; + +static const uint16 qfg1vgaPatchYorickDoorTwoRect[] = { +	PATCH_ADDTOOFFSET(+8), +	0x39, 0x6d,                             // pushi 6d [ y = 109 ] +	PATCH_END +}; +  // The player is able to buy (and also steal) potions in the healer's hut  //  Strangely Sierra delays the actual buy/get potion code for 60 ticks  //  Why they did that is unknown. The code is triggered anyway only after @@ -7835,6 +7864,7 @@ static const SciScriptPatcherEntry qfg1vgaSignatures[] = {  	{  true,    77, "white stag dagger throw animation glitch",    1, qfg1vgaSignatureWhiteStagDagger,     qfg1vgaPatchWhiteStagDagger },  	{  true,    78, "mac: enable antwerp controls",                1, qfg1vgaSignatureMacAntwerpControls,  qfg1vgaPatchMacAntwerpControls },  	{  true,    96, "funny room script bug fixed",                 1, qfg1vgaSignatureFunnyRoomFix,        qfg1vgaPatchFunnyRoomFix }, +	{  true,    96, "yorick door #2 lockup fixed",                 1, qfg1vgaSignatureYorickDoorTwoRect,   qfg1vgaPatchYorickDoorTwoRect },  	{  true,   210, "cheetaur description fixed",                  1, qfg1vgaSignatureCheetaurDescription, qfg1vgaPatchCheetaurDescription },  	{  true,   215, "fight event issue",                           1, qfg1vgaSignatureFightEvents,         qfg1vgaPatchFightEvents },  	{  true,   216, "weapon master event issue",                   1, qfg1vgaSignatureFightEvents,         qfg1vgaPatchFightEvents },  | 
