diff options
author | Florian Kagerer | 2010-10-30 18:37:15 +0000 |
---|---|---|
committer | Florian Kagerer | 2010-10-30 18:37:15 +0000 |
commit | a04b4e6517adf73d2738e9efdc70e8c5af355e1b (patch) | |
tree | a89a0d48f2709fe93fc0d8707b4b37d573242abc | |
parent | 14d8d589e24c64370ed2ba8fb5254066b7ab1d47 (diff) | |
download | scummvm-rg350-a04b4e6517adf73d2738e9efdc70e8c5af355e1b.tar.gz scummvm-rg350-a04b4e6517adf73d2738e9efdc70e8c5af355e1b.tar.bz2 scummvm-rg350-a04b4e6517adf73d2738e9efdc70e8c5af355e1b.zip |
LOL: workaround for bug #3098935
(Vaelan's Cube can be duplicated at Scotia's Barrier)
This is a bug in the game data of early unpatched floppy versions.
This can also be fixed by applying the official patch (ftp://ftp.westwood.com/pub/lands1/updates/lolus123.exe).
svn-id: r53954
-rw-r--r-- | engines/kyra/detection_tables.h | 17 | ||||
-rw-r--r-- | engines/kyra/script_lol.cpp | 6 |
2 files changed, 23 insertions, 0 deletions
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h index 84e0f343a7..5c97df8895 100644 --- a/engines/kyra/detection_tables.h +++ b/engines/kyra/detection_tables.h @@ -1146,6 +1146,23 @@ const KYRAGameDescription adGameDescs[] = { "lol", "Extracted", { + { "GENERAL.PAK", 0, "d119e3b57f8e5edcbb90980ca6f4215a", -1 }, + { "CHAPTER7.PAK", 0, "71a3d3cb1554294646a389e5c345cf28", -1 }, + { 0, 0, 0, 0 } + }, + Common::EN_ANY, + Common::kPlatformPC, + ADGF_NO_FLAGS, + Common::GUIO_NOSPEECH | Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK + }, + LOL_FLOPPY_FLAGS + }, + + { + { + "lol", + "Extracted", + { { "GENERAL.PAK", 0, "996e66e81054d36249907a1d8158da3d", -1 }, { "CHAPTER7.PAK", 0, "cabee57f00d6d84b65a732b6868a4959", -1 }, { 0, 0, 0, 0 } diff --git a/engines/kyra/script_lol.cpp b/engines/kyra/script_lol.cpp index 864b6c39c7..33fa16a22c 100644 --- a/engines/kyra/script_lol.cpp +++ b/engines/kyra/script_lol.cpp @@ -267,6 +267,12 @@ int LoLEngine::olol_setItemProperty(EMCState *script) { tmp->nameStringId = stackPos(1); tmp->shpIndex = stackPos(2); tmp->type = stackPos(3); + + // WORKAROUND for unpatched early floppy versions. + // The Vaelan's cube should not be able to be equipped in a weapon slot. + if (stackPos(0) == 264 && tmp->type == 5) + tmp->type = 0; + tmp->itemScriptFunc = stackPos(4); tmp->might = stackPos(5); tmp->skill = stackPos(6); |