aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorMartin Kiewitz2015-04-19 13:09:10 +0200
committerMartin Kiewitz2015-04-19 13:09:10 +0200
commit629f6a4208828e27e808155af24037b720e268b3 (patch)
tree34a350a324fbf0f683fdfc0dd35e47a12de3366b /engines/sci/engine
parentbbf9c83ebf8ab6f27519a0d1cb4d4c747a16e985 (diff)
downloadscummvm-rg350-629f6a4208828e27e808155af24037b720e268b3.tar.gz
scummvm-rg350-629f6a4208828e27e808155af24037b720e268b3.tar.bz2
scummvm-rg350-629f6a4208828e27e808155af24037b720e268b3.zip
SCI: workaround sig Quest for Glory 1 VGA migrated
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/workarounds.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index cafca0a2db..52ddb2912a 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -92,6 +92,22 @@ static const uint16 sig_uninitread_qfg1_1[] = {
SIG_END
};
+// Game: Quest for Glory 1 VGA
+// Calling method: Encounter::init
+// Subroutine offset: English w/o patch 0x0cee, w/ patch 0x0ce7 (script 210)
+// Applies to at least: English PC floppy
+static const uint16 sig_uninitread_qfg1vga_1[] = {
+ 0x3f, 0x02, // link 02
+ 0x87, 0x00, // lap param[0]
+ 0x31, 0x0b, // bnt [...]
+ 0x87, 0x01, // lap param[1]
+ 0x31, 0x07, // bnt [...]
+ 0x87, 0x01, // lap param[1]
+ 0xa5, 0x01, // sat temp[1]
+ // following jump is different for patched and unpatched game
+ SIG_END
+};
+
// Game: Quest for Glory 2
// Calling method: abdulS::changeState, jabbarS::changeState
// Subroutine offset: English 0x2d22 (script 260)
@@ -216,8 +232,7 @@ const SciWorkaroundEntry uninitializedReadWorkarounds[] = {
{ GID_PQSWAT, -1, 64950, 0, "View", "handleEvent", -1, NULL, 0, { WORKAROUND_FAKE, 0 } }, // Using the menu in the beginning
{ GID_QFG1, -1, 210, 0, "Encounter", "init", -1, sig_uninitread_qfg1_1, 0, { WORKAROUND_FAKE, 0 } }, // qfg1/hq1: going to the brigands hideout
{ GID_QFG1VGA, 16, 16, 0, "lassoFailed", "changeState", -1, NULL, -1, { WORKAROUND_FAKE, 0 } }, // qfg1vga: casting the "fetch" spell in the screen with the flowers, temps 0 and 1 - bug #5309
- { GID_QFG1VGA, -1, 210, 0, "Encounter", "init", 0xcee, NULL, 0, { WORKAROUND_FAKE, 0 } }, // qfg1vga: going to the brigands hideout - bug #5515
- { GID_QFG1VGA, -1, 210, 0, "Encounter", "init", 0xce7, NULL, 0, { WORKAROUND_FAKE, 0 } }, // qfg1vga: going to room 92
+ { GID_QFG1VGA, -1, 210, 0, "Encounter", "init", -1, sig_uninitread_qfg1vga_1, 0, { WORKAROUND_FAKE, 0 } }, // qfg1vga: going to the brigands hideout - bug #5515
{ GID_QFG2, -1, 71, 0, "theInvSheet", "doit", -1, NULL, 1, { WORKAROUND_FAKE, 0 } }, // accessing the inventory
{ GID_QFG2, -1, 701, -1, "Alley", "at", -1, NULL, 0, { WORKAROUND_FAKE, 0 } }, // when walking inside the alleys in the town - bug #5019 & #5106
{ GID_QFG2, -1, 990, 0, "Restore", "doit", -1, NULL, 364, { WORKAROUND_FAKE, 0 } }, // when pressing enter in restore dialog w/o any saved games present