diff options
| author | Filippos Karapetis | 2013-01-10 23:44:14 +0200 | 
|---|---|---|
| committer | Filippos Karapetis | 2013-01-11 02:24:17 +0200 | 
| commit | 182f342a01e607d001dad9f6ab1484d0d37233ac (patch) | |
| tree | 37435ad33da11c6f014ae9de7b94b4fbfed472e4 | |
| parent | f2464dc474605ba4217a49fe0a5b80084592adfd (diff) | |
| download | scummvm-rg350-182f342a01e607d001dad9f6ab1484d0d37233ac.tar.gz scummvm-rg350-182f342a01e607d001dad9f6ab1484d0d37233ac.tar.bz2 scummvm-rg350-182f342a01e607d001dad9f6ab1484d0d37233ac.zip | |
SCI: Add 2 workarounds for script bugs in QFG4
| -rw-r--r-- | engines/sci/engine/kernel_tables.h | 5 | ||||
| -rw-r--r-- | engines/sci/engine/workarounds.cpp | 2 | 
2 files changed, 6 insertions, 1 deletions
| diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h index d0c9b9b1cf..d7858180f1 100644 --- a/engines/sci/engine/kernel_tables.h +++ b/engines/sci/engine/kernel_tables.h @@ -156,7 +156,7 @@ static const SciKernelMapSubEntry kDoSound_subops[] = {  	//        signature for SCI21 should be "o"  	{ SIG_SOUNDSCI21,      9, MAP_CALL(DoSoundStop),               NULL,                   NULL },  	{ SIG_SOUNDSCI21,     10, MAP_CALL(DoSoundPause),              NULL,                   NULL }, -	{ SIG_SOUNDSCI21,     11, MAP_CALL(DoSoundFade),               NULL,                   NULL }, +	{ SIG_SOUNDSCI21,     11, MAP_CALL(DoSoundFade),               NULL,                   kDoSoundFade_workarounds },  	{ SIG_SOUNDSCI21,     12, MAP_CALL(DoSoundSetHold),            NULL,                   NULL },  	{ SIG_SOUNDSCI21,     13, MAP_CALL(DoSoundDummy),              NULL,                   NULL },  	{ SIG_SOUNDSCI21,     14, MAP_CALL(DoSoundSetVolume),          NULL,                   NULL }, @@ -202,7 +202,10 @@ static const SciKernelMapSubEntry kPalVary_subops[] = {  	{ SIG_SCIALL,          4, MAP_CALL(PalVaryChangeTarget),       "i",                    NULL },  	{ SIG_SCIALL,          5, MAP_CALL(PalVaryChangeTicks),        "i",                    NULL },  	{ SIG_SCIALL,          6, MAP_CALL(PalVaryPauseResume),        "i",                    NULL }, +#ifdef ENABLE_SCI32  	{ SIG_SCI32,           8, MAP_CALL(PalVaryUnknown),            "i",                    NULL }, +	{ SIG_SCI32,           9, MAP_CALL(PalVaryUnknown2),           "i",                    NULL }, +#endif  	SCI_SUBOPENTRY_TERMINATOR  }; diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp index db510c2545..212a1cb731 100644 --- a/engines/sci/engine/workarounds.cpp +++ b/engines/sci/engine/workarounds.cpp @@ -151,6 +151,7 @@ const SciWorkaroundEntry uninitializedReadWorkarounds[] = {  	{ GID_QFG4,           -1,    15, -1,     "charInitScreen", "dispatchEvent",  -1,    5, { WORKAROUND_FAKE,   0 } }, // floppy version, when viewing the character screen  	{ GID_QFG4,           -1, 64917, -1,       "controlPlane", "setBitmap",      -1,    3, { WORKAROUND_FAKE,   0 } }, // floppy version, when entering the game menu  	{ GID_QFG4,           -1, 64917, -1,              "Plane", "setBitmap",      -1,    3, { WORKAROUND_FAKE,   0 } }, // floppy version, happens sometimes in fight scenes +	{ GID_QFG4,          800, 64950,  0,               "View", "handleEvent",    -1,    0, { WORKAROUND_FAKE,   0 } }, // CD version, in the room with the spider pillar, when climbing on the pillar  	{ GID_RAMA,           12, 64950, -1,   "InterfaceFeature", "handleEvent",    -1,    0, { WORKAROUND_FAKE,   0 } }, // Demo, right when it starts  	{ GID_RAMA,           12, 64950, -1,      "hiliteOptText", "handleEvent",    -1,    0, { WORKAROUND_FAKE,   0 } }, // Demo, right when it starts  	{ GID_RAMA,           12, 64950, -1,               "View", "handleEvent",    -1,    0, { WORKAROUND_FAKE,   0 } }, // Demo, right when it starts @@ -246,6 +247,7 @@ const SciWorkaroundEntry kDoSoundFade_workarounds[] = {  	{ GID_KQ5,           213,   989,  0,       "globalSound3", "fade",           -1,    0, { WORKAROUND_STILLCALL, 0 } }, // english floppy: when bandits leave the secret temple, parameter 4 is an object - bug #3037594  	{ GID_KQ6,           105,   989,  0,        "globalSound", "fade",           -1,    0, { WORKAROUND_STILLCALL, 0 } }, // floppy: during intro, parameter 4 is an object  	{ GID_KQ6,           460,   989,  0,       "globalSound2", "fade",           -1,    0, { WORKAROUND_STILLCALL, 0 } }, // after pulling the black widow's web on the isle of wonder, parameter 4 is an object - bug #3034567 +	{ GID_QFG4,           -1, 64989,  0,           "longSong", "fade",           -1,    0, { WORKAROUND_STILLCALL, 0 } }, // CD version: many places, parameter 4 is an object (longSong)  	SCI_WORKAROUNDENTRY_TERMINATOR  }; | 
