diff options
author | Peter Kohaut | 2019-09-07 21:07:31 +0200 |
---|---|---|
committer | Peter Kohaut | 2019-09-07 21:18:20 +0200 |
commit | 94b9304014217c57d4e050efb66ba9861f948ae2 (patch) | |
tree | e45844431d8707eda3a0a38204b2ee58f06b6bea /engines/bladerunner/bladerunner.cpp | |
parent | d99ba0a12675286d81431cb38f6ef55c02e7d497 (diff) | |
download | scummvm-rg350-94b9304014217c57d4e050efb66ba9861f948ae2.tar.gz scummvm-rg350-94b9304014217c57d4e050efb66ba9861f948ae2.tar.bz2 scummvm-rg350-94b9304014217c57d4e050efb66ba9861f948ae2.zip |
BLADERUNNER: Improved support for Russian translations
Adds support for Home Systems, Inc. + Siberian Studio R4 translation
patch.
Added name scrambling algorithm from R4 patch.
Fixed R3 support (previously was not named).
closes #11102
Diffstat (limited to 'engines/bladerunner/bladerunner.cpp')
-rw-r--r-- | engines/bladerunner/bladerunner.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp index fa0d79e0ba..cc4570036c 100644 --- a/engines/bladerunner/bladerunner.cpp +++ b/engines/bladerunner/bladerunner.cpp @@ -625,6 +625,8 @@ bool BladeRunnerEngine::startup(bool hasSavegames) { if (!_textOptions->open("OPTIONS")) return false; + _russianCP1251 = ((uint8)_textOptions->getText(0)[0]) == 209; + _dialogueMenu = new DialogueMenu(this); if (!_dialogueMenu->loadText("DLGMENU")) return false; @@ -1925,13 +1927,22 @@ void BladeRunnerEngine::setSubtitlesEnabled(bool newVal) { } Common::SeekableReadStream *BladeRunnerEngine::getResourceStream(const Common::String &name) { + // If the file is extracted from MIX files use it directly, it is used by Russian translation patched by Siberian Studio + if (Common::File::exists(name)) { + Common::File directFile; + if (directFile.open(name)) { + Common::SeekableReadStream *stream = directFile.readStream(directFile.size()); + directFile.close(); + return stream; + } + } + for (int i = 0; i != kArchiveCount; ++i) { if (!_archives[i].isOpen()) { continue; } // debug("getResource: Searching archive %s for %s.", _archives[i].getName().c_str(), name.c_str()); - Common::SeekableReadStream *stream = _archives[i].createReadStreamForMember(name); if (stream) { return stream; |