aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/staticres.cpp
diff options
context:
space:
mode:
authorathrxx2011-07-27 16:38:31 +0200
committerathrxx2011-07-27 16:38:31 +0200
commitf44874f0a67dab9a45018a16d6fc7bea3def54de (patch)
tree69a9273627abdd27619c56b9f7659967bd50c578 /engines/kyra/staticres.cpp
parentecdd2e5fdc3d4f693def6fa9e3bf780ac6002ee8 (diff)
downloadscummvm-rg350-f44874f0a67dab9a45018a16d6fc7bea3def54de.tar.gz
scummvm-rg350-f44874f0a67dab9a45018a16d6fc7bea3def54de.tar.bz2
scummvm-rg350-f44874f0a67dab9a45018a16d6fc7bea3def54de.zip
KYRA: add support for Russian Kyra 1 floppy fan translation
Diffstat (limited to 'engines/kyra/staticres.cpp')
-rw-r--r--engines/kyra/staticres.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp
index c9e994f71e..ecb32e68d9 100644
--- a/engines/kyra/staticres.cpp
+++ b/engines/kyra/staticres.cpp
@@ -38,7 +38,7 @@
namespace Kyra {
-#define RESFILE_VERSION 77
+#define RESFILE_VERSION 78
namespace {
bool checkKyraDat(Common::SeekableReadStream *file) {
@@ -90,6 +90,7 @@ const IndexTable iLanguageTable[] = {
{ Common::ES_ESP, 4 },
{ Common::IT_ITA, 5 },
{ Common::JA_JPN, 6 },
+ { Common::RU_RUS, 7 },
{ -1, -1 }
};
@@ -111,7 +112,9 @@ byte getPlatformID(const GameFlags &flags) {
}
byte getSpecialID(const GameFlags &flags) {
- if (flags.isDemo && flags.isTalkie)
+ if (flags.isOldFloppy)
+ return 4;
+ else if (flags.isDemo && flags.isTalkie)
return 3;
else if (flags.isDemo)
return 2;
@@ -748,7 +751,17 @@ void KyraEngine_LoK::initStaticResource() {
_storyStrings = _staticres->loadStrings(k1PC98StoryStrings, _storyStringsSize);
- _soundFiles = _staticres->loadStrings(k1AudioTracks, _soundFilesSize);
+ int size1, size2;
+ const char *const *soundfiles1 = _staticres->loadStrings(k1AudioTracks, size1);
+ const char *const *soundfiles2 = _staticres->loadStrings(k1AudioTracks2, size2);
+ _soundFilesSize = size1 + size2;
+ if (_soundFilesSize) {
+ delete[] _soundFiles;
+ const char **soundfiles = new const char*[_soundFilesSize];
+ for (int i = 0; i < _soundFilesSize; i++)
+ soundfiles[i] = (i < size1) ? soundfiles1[i] : soundfiles2[i - size1];
+ _soundFiles = soundfiles;
+ }
_soundFilesIntro = _staticres->loadStrings(k1AudioTracksIntro, _soundFilesIntroSize);
_cdaTrackTable = (const int32 *)_staticres->loadRawData(k1TownsCDATable, _cdaTrackTableSize);
@@ -926,7 +939,7 @@ void KyraEngine_LoK::loadButtonShapes() {
void KyraEngine_LoK::loadMainScreen(int page) {
_screen->clearPage(page);
- if ((_flags.lang == Common::EN_ANY && !_flags.isTalkie && _flags.platform == Common::kPlatformPC) || _flags.platform == Common::kPlatformAmiga)
+ if (((_flags.lang == Common::EN_ANY || _flags.lang == Common::RU_RUS) && !_flags.isTalkie && _flags.platform == Common::kPlatformPC) || _flags.platform == Common::kPlatformAmiga)
_screen->loadBitmap("MAIN15.CPS", page, page, &_screen->getPalette(0));
else if (_flags.lang == Common::EN_ANY || _flags.lang == Common::JA_JPN || (_flags.isTalkie && _flags.lang == Common::IT_ITA))
_screen->loadBitmap("MAIN_ENG.CPS", page, page, 0);