aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devtools/create_kyradat/create_kyradat.cpp2
-rw-r--r--devtools/create_kyradat/games.cpp1
-rw-r--r--devtools/create_kyradat/tables.cpp2
-rw-r--r--dists/engine-data/kyra.datbin362876 -> 364594 bytes
-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
10 files changed, 62 insertions, 6 deletions
diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp
index 86927cc12b..085baec05d 100644
--- a/devtools/create_kyradat/create_kyradat.cpp
+++ b/devtools/create_kyradat/create_kyradat.cpp
@@ -45,7 +45,7 @@
#include <map>
enum {
- kKyraDatVersion = 75
+ kKyraDatVersion = 76
};
const ExtractFilename extractFilenames[] = {
diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index b37878832d..da49b2fbff 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -109,6 +109,7 @@ const Game lolGames[] = {
// DOS CD (multi language version, with no language specific strings)
{ kLol, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "263998ec600afca1cc7b935c473df670" } },
{ kLol, { IT_ITA, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "f2af366e00f79dbf832fa19701d71ed9" } }, // Italian fan translation
+ { kLol, { EN_ANY, FR_FRA, RU_RUS }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "5b33478718968676343803911dd5e3e4" } }, // Russian fan translation
GAME_DUMMY_ENTRY
};
diff --git a/devtools/create_kyradat/tables.cpp b/devtools/create_kyradat/tables.cpp
index 1cf17079d1..3c6720c7b0 100644
--- a/devtools/create_kyradat/tables.cpp
+++ b/devtools/create_kyradat/tables.cpp
@@ -1287,6 +1287,7 @@ const ExtractEntrySearchData kLolCharacterDefsProvider[] = {
{ EN_ANY, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD
{ DE_DEU, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD
{ FR_FRA, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD
+ { RU_RUS, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD
{ IT_ITA, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD
{ JA_JPN, kPlatformPC98, { 0x00000492, 0x00005893, { { 0x7C, 0x7E, 0xFB, 0x80, 0xD9, 0xB6, 0x16, 0x87, 0x80, 0xB7, 0x46, 0x9B, 0x96, 0x1A, 0x6A, 0xBE } } } },
@@ -1737,6 +1738,7 @@ const ExtractEntrySearchData kLolCreditsProvider[] = {
const ExtractEntrySearchData kLolHistoryProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x000001D1, 0x00007F9B, { { 0x25, 0x10, 0x86, 0x40, 0xAC, 0x53, 0xFE, 0x11, 0x4D, 0xE2, 0xD9, 0x35, 0xD6, 0x89, 0xBB, 0x09 } } } },
+ //{ UNK_LANG, kPlatformPC, { 0x000001D1, 0x00007F9B, { { 0x25, 0x10, 0x86, 0x40, 0xAC, 0x53, 0xFE, 0x11, 0x4D, 0xE2, 0xD9, 0x35, 0xD6, 0x89, 0xBB, 0x09 } } } },
EXTRACT_END_ENTRY
};
diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat
index f6d7328252..31163c19e5 100644
--- a/dists/engine-data/kyra.dat
+++ b/dists/engine-data/kyra.dat
Binary files differ
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",