diff options
author | athrxx | 2011-07-24 22:48:30 +0200 |
---|---|---|
committer | athrxx | 2011-07-24 22:49:21 +0200 |
commit | ec553363935b40de63052603b62eccf0d148d31e (patch) | |
tree | b9b2473eb3e513b4de0a2ce3e441ae62412d4966 | |
parent | e5953776fbf72f39ac7207b2367daa7bb71201fe (diff) | |
download | scummvm-rg350-ec553363935b40de63052603b62eccf0d148d31e.tar.gz scummvm-rg350-ec553363935b40de63052603b62eccf0d148d31e.tar.bz2 scummvm-rg350-ec553363935b40de63052603b62eccf0d148d31e.zip |
LOL: add support for Russian CD-ROM version
-rw-r--r-- | devtools/create_kyradat/create_kyradat.cpp | 2 | ||||
-rw-r--r-- | devtools/create_kyradat/games.cpp | 1 | ||||
-rw-r--r-- | devtools/create_kyradat/tables.cpp | 2 | ||||
-rw-r--r-- | dists/engine-data/kyra.dat | bin | 362876 -> 364594 bytes | |||
-rw-r--r-- | engines/kyra/detection_tables.h | 53 | ||||
-rw-r--r-- | engines/kyra/lol.cpp | 2 | ||||
-rw-r--r-- | engines/kyra/lol.h | 2 | ||||
-rw-r--r-- | engines/kyra/sequences_lol.cpp | 2 | ||||
-rw-r--r-- | engines/kyra/staticres.cpp | 2 | ||||
-rw-r--r-- | engines/kyra/staticres_lol.cpp | 2 |
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 Binary files differindex f6d7328252..31163c19e5 100644 --- a/dists/engine-data/kyra.dat +++ b/dists/engine-data/kyra.dat 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", |