diff options
author | Bastien Bouclet | 2018-07-10 19:03:09 +0200 |
---|---|---|
committer | Bastien Bouclet | 2018-07-10 19:09:30 +0200 |
commit | e105c2a78ae14a0b3c6645fe98db98f3c299f13f (patch) | |
tree | 0a882e4cdea019535f8a11b16d4cf3b3cd71eef0 /engines/mohawk/riven.cpp | |
parent | 204060d1f0b88a5e1d4cb2010a76080281e3a327 (diff) | |
download | scummvm-rg350-e105c2a78ae14a0b3c6645fe98db98f3c299f13f.tar.gz scummvm-rg350-e105c2a78ae14a0b3c6645fe98db98f3c299f13f.tar.bz2 scummvm-rg350-e105c2a78ae14a0b3c6645fe98db98f3c299f13f.zip |
MOHAWK: RIVEN: Fix off-by-one ids in ospit for the 25th localized versions
Fixes Trac#10620.
Diffstat (limited to 'engines/mohawk/riven.cpp')
-rw-r--r-- | engines/mohawk/riven.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp index 57d7da3770..4285ef7382 100644 --- a/engines/mohawk/riven.cpp +++ b/engines/mohawk/riven.cpp @@ -400,8 +400,19 @@ void MohawkEngine_Riven::changeToStack(uint16 stackId) { Common::String languageDatafile = getLanguageDatafile(prefix); if (!languageDatafile.empty()) { MohawkArchive *mhk = new MohawkArchive(); - if (mhk->openFile(languageDatafile)) + if (mhk->openFile(languageDatafile)) { + + if (stackId == kStackOspit && (getLanguage() != Common::EN_ANY || getLanguage() != Common::RU_RUS)) { + // WORKAROUND: The international CD versions were repacked for the 25th anniversary release + // so they share the same resources as the English DVD version. The resource IDs for the DVD + // version resources have a delta of 1 in their numbering when compared the the CD version + // resources for Gehn's office. Unfortunately this delta was not compensated when repacking + // the archives. We need to do it here at run time... + mhk->offsetResourceIDs(ID_TBMP, 196, 1); + } + _mhk.push_back(mhk); + } else delete mhk; } |