From afbfb056f7e93dab083b0fed56aa0723ce825604 Mon Sep 17 00:00:00 2001 From: athrxx Date: Fri, 10 Jun 2011 22:19:43 +0200 Subject: [PATCH] LOL: fix so-called bug #3313950 (LoL support for Italian fan translation) --- engines/kyra/detection_tables.h | 53 +++++++++++++++++++++++++++++++++ engines/kyra/kyra_v1.h | 2 +- engines/kyra/lol.cpp | 7 ++++- 3 files changed, 60 insertions(+), 2 deletions(-) diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h index 8a948eff009..e4815ab751a 100644 --- a/engines/kyra/detection_tables.h +++ b/engines/kyra/detection_tables.h @@ -47,6 +47,7 @@ namespace { #define KYRA3_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, true, false, Kyra::GI_KYRA3) #define LOL_CD_FLAGS FLAGS(false, false, true, false, false, false, false, Kyra::GI_LOL) +#define LOL_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, Kyra::GI_LOL) #define LOL_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, Kyra::GI_LOL) #define LOL_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, true, Kyra::GI_LOL) #define LOL_PC98_SJIS_FLAGS FLAGS(false, false, false, true, true, false, false, Kyra::GI_LOL) @@ -1056,6 +1057,58 @@ const KYRAGameDescription adGameDescs[] = { LOL_CD_FLAGS }, + // Italian fan translation + { + { + "lol", + "CD", + { + { "GENERAL.PAK", 0, "05a4f588fb81dc9c0ef1f2ec20d89e24", -1 }, + { "L01.PAK", 0, "898485c0eb7bb4403fdd63bf5191f37e", -1 }, + { 0, 0, 0, 0 } + }, + Common::IT_ITA, + Common::kPlatformPC, + ADGF_DROPLANGUAGE | ADGF_CD, + Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK + }, + LOL_CD_FAN_FLAGS(Common::IT_ITA, Common::EN_ANY) + }, + + { + { + "lol", + "CD", + { + { "GENERAL.PAK", 0, "05a4f588fb81dc9c0ef1f2ec20d89e24", -1 }, + { "L01.PAK", 0, "898485c0eb7bb4403fdd63bf5191f37e", -1 }, + { 0, 0, 0, 0 } + }, + Common::DE_DEU, + Common::kPlatformPC, + ADGF_DROPLANGUAGE | ADGF_CD, + Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK + }, + LOL_CD_FAN_FLAGS(Common::IT_ITA, Common::EN_ANY) + }, + + { + { + "lol", + "CD", + { + { "GENERAL.PAK", 0, "05a4f588fb81dc9c0ef1f2ec20d89e24", -1 }, + { "L01.PAK", 0, "898485c0eb7bb4403fdd63bf5191f37e", -1 }, + { 0, 0, 0, 0 } + }, + Common::FR_FRA, + Common::kPlatformPC, + ADGF_DROPLANGUAGE | ADGF_CD, + Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK + }, + LOL_CD_FAN_FLAGS(Common::IT_ITA, Common::EN_ANY) + }, + { { "lol", diff --git a/engines/kyra/kyra_v1.h b/engines/kyra/kyra_v1.h index cf15b189ac1..5b4f3385a47 100644 --- a/engines/kyra/kyra_v1.h +++ b/engines/kyra/kyra_v1.h @@ -99,7 +99,7 @@ class KyraMetaEngine; * - The Legend of Kyrandia (fully supported, except for Macintosh port, which lacks sound) * - (The) Hand of Fate (fully supported) * - Malcolm's Revenge (fully supported) - * - Lands of Lore: The Throne of Chaos (completable, still work in progress) + * - Lands of Lore: The Throne of Chaos (fully supported) */ namespace Kyra { diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp index 0d4eb0056c3..c567cbb037b 100644 --- a/engines/kyra/lol.cpp +++ b/engines/kyra/lol.cpp @@ -43,7 +43,12 @@ LoLEngine::LoLEngine(OSystem *system, const GameFlags &flags) : KyraEngine_v1(sy _txt = 0; _tim = 0; - switch (_flags.lang) { + _lang = 0; + Common::Language lang = Common::parseLanguage(ConfMan.get("language")); + if (lang == _flags.fanLang && _flags.replacedLang != Common::UNK_LANG) + lang = _flags.replacedLang; + + switch (lang) { case Common::EN_ANY: case Common::EN_USA: case Common::EN_GRB: