aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorathrxx2011-07-24 22:48:30 +0200
committerathrxx2011-07-24 22:49:21 +0200
commitec553363935b40de63052603b62eccf0d148d31e (patch)
treeb9b2473eb3e513b4de0a2ce3e441ae62412d4966 /engines/kyra
parente5953776fbf72f39ac7207b2367daa7bb71201fe (diff)
downloadscummvm-rg350-ec553363935b40de63052603b62eccf0d148d31e.tar.gz
scummvm-rg350-ec553363935b40de63052603b62eccf0d148d31e.tar.bz2
scummvm-rg350-ec553363935b40de63052603b62eccf0d148d31e.zip
LOL: add support for Russian CD-ROM version
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/detection_tables.h53
-rw-r--r--engines/kyra/lol.cpp2
-rw-r--r--engines/kyra/lol.h2
-rw-r--r--engines/kyra/sequences_lol.cpp2
-rw-r--r--engines/kyra/staticres.cpp2
-rw-r--r--engines/kyra/staticres_lol.cpp2
6 files changed, 58 insertions, 5 deletions
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index d47df47726..468e82cd5b 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -1071,6 +1071,59 @@ const KYRAGameDescription adGameDescs[] = {
LOL_CD_FLAGS
},
+ // Russian fan translation
+ {
+ {
+ "lol",
+ "CD",
+ {
+ { "GENERAL.PAK", 0, "19354b0f464295c38c801d30588df062", -1 },
+ { "L01.PAK", 0, "174d37f21e0336c5d91020f8c58717ef", -1 },
+ { 0, 0, 0, 0 }
+ },
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ ADGF_DROPLANGUAGE | ADGF_CD,
+ Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK
+ },
+ LOL_CD_FAN_FLAGS(Common::RU_RUS, Common::DE_DEU)
+ },
+
+ {
+ {
+ "lol",
+ "CD",
+ {
+
+ { "GENERAL.PAK", 0, "19354b0f464295c38c801d30588df062", -1 },
+ { "L01.PAK", 0, "174d37f21e0336c5d91020f8c58717ef", -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::RU_RUS, Common::DE_DEU)
+ },
+
+ {
+ {
+ "lol",
+ "CD",
+ {
+ { "GENERAL.PAK", 0, "19354b0f464295c38c801d30588df062", -1 },
+ { "L01.PAK", 0, "174d37f21e0336c5d91020f8c58717ef", -1 },
+ { 0, 0, 0, 0 }
+ },
+ Common::RU_RUS,
+ Common::kPlatformPC,
+ ADGF_DROPLANGUAGE | ADGF_CD,
+ Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK
+ },
+ LOL_CD_FAN_FLAGS(Common::RU_RUS, Common::DE_DEU)
+ },
+
// Italian fan translation
{
{
diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp
index 8ce77d0021..7d7bb0ed4a 100644
--- a/engines/kyra/lol.cpp
+++ b/engines/kyra/lol.cpp
@@ -1040,7 +1040,7 @@ char *LoLEngine::getLangString(uint16 id) {
char *srcBuffer = _stringBuffer[_lastUsedStringBuffer];
if (_flags.lang == Common::JA_JPN) {
decodeSjis(string, srcBuffer);
- } else if (_flags.lang == Common::RU_RUS) {
+ } else if (_flags.lang == Common::RU_RUS && !_flags.isTalkie) {
decodeCyrillic(string, srcBuffer);
Util::decodeString2(srcBuffer, srcBuffer);
} else {
diff --git a/engines/kyra/lol.h b/engines/kyra/lol.h
index 705110ecfc..3b887c2a86 100644
--- a/engines/kyra/lol.h
+++ b/engines/kyra/lol.h
@@ -369,7 +369,7 @@ private:
static const CharacterPrev _charPreviews[];
static const char *const _charPreviewNamesDefault[];
- static const char *const _charPreviewNamesRussian[];
+ static const char *const _charPreviewNamesRussianFloppy[];
// PC98 specific data
static const uint16 _charPosXPC98[];
diff --git a/engines/kyra/sequences_lol.cpp b/engines/kyra/sequences_lol.cpp
index 7c28e9a2e7..d887133b70 100644
--- a/engines/kyra/sequences_lol.cpp
+++ b/engines/kyra/sequences_lol.cpp
@@ -316,7 +316,7 @@ int LoLEngine::chooseCharacter() {
_screen->printText(_tim->getCTableEntry(53), 72, 184, 0x81, 0x00);
_screen->printText(_tim->getCTableEntry(55), 72, 192, 0x81, 0x00);
} else {
- const char *const *previewNames = _flags.lang == Common::RU_RUS ? _charPreviewNamesRussian : _charPreviewNamesDefault;
+ const char *const *previewNames = (_flags.lang == Common::RU_RUS && !_flags.isTalkie) ? _charPreviewNamesRussianFloppy : _charPreviewNamesDefault;
for (int i = 0; i < 4; ++i) {
_screen->fprintStringIntro("%s", _charPreviews[i].x + 16, _charPreviews[i].y + 36, 0xC0, 0x00, 0x9C, 0x120, previewNames[i]);
_screen->fprintStringIntro("%d", _charPreviews[i].x + 21, _charPreviews[i].y + 48, 0x98, 0x00, 0x9C, 0x220, _charPreviews[i].attrib[0]);
diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp
index 5fc4f18b39..6e2f8b8e76 100644
--- a/engines/kyra/staticres.cpp
+++ b/engines/kyra/staticres.cpp
@@ -38,7 +38,7 @@
namespace Kyra {
-#define RESFILE_VERSION 75
+#define RESFILE_VERSION 76
namespace {
bool checkKyraDat(Common::SeekableReadStream *file) {
diff --git a/engines/kyra/staticres_lol.cpp b/engines/kyra/staticres_lol.cpp
index 2e5743d3ac..e4029505bf 100644
--- a/engines/kyra/staticres_lol.cpp
+++ b/engines/kyra/staticres_lol.cpp
@@ -694,7 +694,7 @@ const char *const LoLEngine::_charPreviewNamesDefault[] = {
"Conrad"
};
-const char *const LoLEngine::_charPreviewNamesRussian[] = {
+const char *const LoLEngine::_charPreviewNamesRussianFloppy[] = {
"\x80\xAA\xE8\xA5\xAB\0",
"\x8C\xA0\xA9\xAA\xAB\0",
"\x8A\xA8\xE0\xA0\xAD\0",