[Scummvm-git-logs] scummvm master -> b03d209c528f2e9df81a642641cb43afec85d599

athrxx noreply at scummvm.org
Sun Jun 26 09:25:52 UTC 2022


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
b03d209c52 KYRA: Support hebrew fan translation of MR


Commit: b03d209c528f2e9df81a642641cb43afec85d599
    https://github.com/scummvm/scummvm/commit/b03d209c528f2e9df81a642641cb43afec85d599
Author: BLooperZ (blooperz at users.noreply.github.com)
Date: 2022-06-26T11:25:49+02:00

Commit Message:
KYRA: Support hebrew fan translation of MR

Changed paths:
  A devtools/create_kyradat/resources/mr_dos_cd_hebrew.h
    devtools/create_kyradat/create_kyradat.cpp
    devtools/create_kyradat/games.cpp
    devtools/create_kyradat/resources.cpp
    engines/kyra/detection_tables.h
    engines/kyra/gui/gui_mr.cpp
    engines/kyra/resource/staticres.cpp
    engines/kyra/text/text_mr.cpp


diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp
index 59a47131e76..995ef535cc2 100644
--- a/devtools/create_kyradat/create_kyradat.cpp
+++ b/devtools/create_kyradat/create_kyradat.cpp
@@ -38,7 +38,7 @@
 
 
 enum {
-	kKyraDatVersion = 117
+	kKyraDatVersion = 118
 };
 
 const ExtractFilename extractFilenames[] = {
diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index 2532c123e2b..4f0c9c8552c 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -103,6 +103,7 @@ const Game kyra3Games[] = {
 	{ kKyra3, kPlatformDOS, kTalkieVersion, IT_ITA },
 	{ kKyra3, kPlatformDOS, kTalkieVersion, ES_ESP },
 	{ kKyra3, kPlatformDOS, kTalkieVersion, RU_RUS },
+	{ kKyra3, kPlatformDOS, kTalkieVersion, HE_ISR },
 	{ kKyra3, kPlatformDOS, kTalkieVersion, ZH_CHN },
 	{ kKyra3, kPlatformDOS, kTalkieVersion, ZH_TWN },
 
diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp
index 0a654f75944..306a6c2ecb7 100644
--- a/devtools/create_kyradat/resources.cpp
+++ b/devtools/create_kyradat/resources.cpp
@@ -104,6 +104,7 @@
 #include "resources/mr_dos_cd_italian.h"
 #include "resources/mr_dos_cd_spanish.h"
 #include "resources/mr_dos_cd_russian.h"
+#include "resources/mr_dos_cd_hebrew.h"
 #include "resources/mr_dos_cd_chinese_simplified.h"
 #include "resources/mr_dos_cd_chinese_trad.h"
 
@@ -1173,6 +1174,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, IT_ITA, &k3MainMenuStringsDOSCDItalianProvider },
 	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, ES_ESP, &k3MainMenuStringsDOSCDSpanishProvider },
 	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, RU_RUS, &k3MainMenuStringsDOSCDRussianProvider },
+	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, HE_ISR, &k3MainMenuStringsDOSCDHebrewProvider },
 	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CHN, &k3MainMenuStringsDOSCDChineseSmplProvider },
 	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, ZH_TWN, &k3MainMenuStringsDOSCDChineseTradProvider },
 	{ k3MusicFiles, kKyra3, kPlatformDOS, kTalkieVersion, UNK_LANG, &k3MusicFilesDOSCDProvider },
@@ -1188,6 +1190,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k2FontData, kKyra3, kPlatformDOS, kTalkieVersion, IT_ITA, &k3DummyDataDOSCDProvider },
 	{ k2FontData, kKyra3, kPlatformDOS, kTalkieVersion, ES_ESP, &k3DummyDataDOSCDProvider },
 	{ k2FontData, kKyra3, kPlatformDOS, kTalkieVersion, RU_RUS, &k3DummyDataDOSCDProvider },
+	{ k2FontData, kKyra3, kPlatformDOS, kTalkieVersion, HE_ISR, &k3DummyDataDOSCDProvider },
 	{ k2FontData, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CHN, &k3FontDataDOSCDChineseSmplProvider },
 	{ k2FontData, kKyra3, kPlatformDOS, kTalkieVersion, ZH_TWN, &k3FontDataDOSCDChineseTradProvider },
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, EN_ANY, &k3VqaSubtitlesIntroDOSCDEnglishProvider },
@@ -1196,6 +1199,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, IT_ITA, &k3VqaSubtitlesIntroDOSCDItalianProvider },
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, ES_ESP, &k3VqaSubtitlesIntroDOSCDSpanishProvider },
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, RU_RUS, &k3VqaSubtitlesIntroDOSCDRussianProvider },
+	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, HE_ISR, &k3VqaSubtitlesIntroDOSCDHebrewProvider },
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CHN, &k3VqaSubtitlesIntroDOSCDChineseSmplProvider },
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, ZH_TWN, &k3VqaSubtitlesIntroDOSCDChineseTradProvider },
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, EN_ANY, &k3VqaSubtitlesBoatDOSCDEnglishProvider },
@@ -1204,6 +1208,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, IT_ITA, &k3VqaSubtitlesBoatDOSCDItalianProvider },
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, ES_ESP, &k3VqaSubtitlesBoatDOSCDSpanishProvider },
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, RU_RUS, &k3VqaSubtitlesBoatDOSCDRussianProvider },
+	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, HE_ISR, &k3VqaSubtitlesBoatDOSCDHebrewProvider },
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CHN, &k3VqaSubtitlesBoatDOSCDChineseSmplProvider },
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, ZH_TWN, &k3VqaSubtitlesBoatDOSCDChineseTradProvider },
 	{ kEoBBaseNpcPresetsNames, kEoB1, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB1NpcPresetsNamesDOSEnglishProvider },
diff --git a/devtools/create_kyradat/resources/mr_dos_cd_hebrew.h b/devtools/create_kyradat/resources/mr_dos_cd_hebrew.h
new file mode 100644
index 00000000000..f7038ca4462
--- /dev/null
+++ b/devtools/create_kyradat/resources/mr_dos_cd_hebrew.h
@@ -0,0 +1,20 @@
+static const char *const k3MainMenuStringsDOSCDHebrew[4] = {
+	"\xE4\xFA\xE7\xEC\xFA \xEE\xF9\xE7\xF7 \xE7\xE3\xF9",
+	"\xE4\xF7\xE3\xEE\xE4",
+	"\xE8\xF2\xE9\xF0\xFA \xEE\xF9\xE7\xF7",
+	"\xE9\xF6\xE9\xE0\xE4 \xEE\xE4\xEE\xF9\xE7\xF7"
+};
+
+static const StringListProvider k3MainMenuStringsDOSCDHebrewProvider = { ARRAYSIZE(k3MainMenuStringsDOSCDHebrew), k3MainMenuStringsDOSCDHebrew };
+
+static const char *const k3VqaSubtitlesIntroDOSCDHebrew[] = {
+	""// TODO
+};
+
+static const StringListProvider k3VqaSubtitlesIntroDOSCDHebrewProvider = { ARRAYSIZE(k3VqaSubtitlesIntroDOSCDHebrew), k3VqaSubtitlesIntroDOSCDHebrew };
+
+static const char *const k3VqaSubtitlesBoatDOSCDHebrew[] = {
+	""// TODO
+};
+
+static const StringListProvider k3VqaSubtitlesBoatDOSCDHebrewProvider = { ARRAYSIZE(k3VqaSubtitlesBoatDOSCDHebrew), k3VqaSubtitlesBoatDOSCDHebrew };
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index 118c35613d8..2663ca5bb14 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -50,6 +50,7 @@ namespace {
 #define KYRA3_CD_4LANG_FLAGS FLAGS(false, false, true, false, false, false, false, true, true, true, Kyra::GI_KYRA3)
 #define KYRA3_CD_INS_4LANG_FLAGS FLAGS(false, false, true, false, false, false, false, true, false, true, Kyra::GI_KYRA3)
 #define KYRA3_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, true, false, false, Kyra::GI_KYRA3)
+#define KYRA3_CD_INS_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, true, true, false, Kyra::GI_KYRA3)
 
 #define LOL_CD_FLAGS FLAGS(false, false, true, false, false, false, false, false, false, false, Kyra::GI_LOL)
 #define LOL_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, false, false, false, Kyra::GI_LOL)
@@ -1017,6 +1018,20 @@ const KYRAGameDescription adGameDescs[] = {
 		KYRA3_CD_FLAGS
 	},
 
+	{ // Hebrew fan translation
+		{
+			"kyra3",
+			0,
+			AD_ENTRY2s("ONETIME.PAK", "3833ff312757b8e6147f464cca0a6587", -1,
+					   "8FAT.FNT", "12424362a537e1335b10323c4013bb1d", -1),
+			Common::HE_ISR,
+			Common::kPlatformDOS,
+			ADGF_DROPLANGUAGE,
+			GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
+		},
+		KYRA3_CD_INS_FAN_FLAGS(Common::HE_ISR, Common::EN_ANY)
+	},
+
 	// installed version
 	{
 		{
diff --git a/engines/kyra/gui/gui_mr.cpp b/engines/kyra/gui/gui_mr.cpp
index c963b0fc1d4..2e022881330 100644
--- a/engines/kyra/gui/gui_mr.cpp
+++ b/engines/kyra/gui/gui_mr.cpp
@@ -140,19 +140,26 @@ void KyraEngine_MR::updateItemCommand(Item item, int str, uint8 c0) {
 	char buffer[100];
 	char *src = (char *)getTableEntry(_itemFile, item);
 
-	if (_lang != 3) {
-		while (*src != ' ')
+	if (_flags.lang != Common::HE_ISR) {
+		if (_lang != 3) {
+			while (*src != ' ')
+				++src;
 			++src;
-		++src;
-		*src = toupper(*src);
-	}
+			*src = toupper(*src);
+		}
 
-	strcpy(buffer, src);
+		strcpy(buffer, src);
 
-	if (_lang != 3)
-		strcat(buffer, " ");
+		if (_lang != 3)
+			strcat(buffer, " ");
 
-	strcat(buffer, (const char *)getTableEntry(_cCodeFile, str));
+		strcat(buffer, (const char *)getTableEntry(_cCodeFile, str));
+	} else {
+		strcpy(buffer, (const char *)getTableEntry(_cCodeFile, str));
+		strcat(buffer, " ");
+		strcat(buffer, src);
+		strcat(buffer, ".");
+	}
 
 	showMessage(buffer, c0, 0xF0);
 }
@@ -445,6 +452,8 @@ int KyraEngine_MR::getScoreX(const char *str) {
 
 	int width = _screen->getTextWidth(str);
 	int x = 160 + (width / 2) - 32;
+	if (_flags.lang == Common::HE_ISR)
+		x = 140 - 32;
 
 	_screen->setFont(oldFont);
 	_screen->_charSpacing = 0;
@@ -618,16 +627,28 @@ int KyraEngine_MR::buttonShowScore(Button *button) {
 	while (*buffer != '%')
 		++buffer;
 
-	buffer[0] = (_score / 100) + '0';
-	buffer[1] = ((_score % 100) / 10) + '0';
-	buffer[2] = (_score % 10) + '0';
+	if (_flags.lang != Common::HE_ISR) {
+		buffer[0] = (_score / 100) + '0';
+		buffer[1] = ((_score % 100) / 10) + '0';
+		buffer[2] = (_score % 10) + '0';
+	} else {
+		buffer[0] = (_score % 10) + '0';
+		buffer[1] = ((_score % 100) / 10) + '0';
+		buffer[2] = (_score / 100) + '0';
+	}
 
 	while (*buffer != '%')
 		++buffer;
 
-	buffer[0] = (_scoreMax / 100) + '0';
-	buffer[1] = ((_scoreMax % 100) / 10) + '0';
-	buffer[2] = (_scoreMax % 10) + '0';
+	if (_flags.lang != Common::HE_ISR) {
+		buffer[0] = (_scoreMax / 100) + '0';
+		buffer[1] = ((_scoreMax % 100) / 10) + '0';
+		buffer[2] = (_scoreMax % 10) + '0';
+	} else {
+		buffer[0] = (_scoreMax % 10) + '0';
+		buffer[1] = ((_scoreMax % 100) / 10) + '0';
+		buffer[2] = (_scoreMax / 100) + '0';
+	}
 
 	showMessage(_stringBuffer, 0xFF, 0xF0);
 	return 0;
@@ -804,6 +825,16 @@ void KyraEngine_MR::printAlbumText(int page, const char *str, int x, int y, uint
 		_screen->setFontStyles(_screen->_currentFont, Font::kStyleNone);
 	}
 
+	Common::String strr((const char *)str);
+	Common::String revBuffer;
+	if (_flags.lang == Common::HE_ISR) {
+		for (int i = strr.size() - 1; i >= 0; --i)
+			revBuffer += str[i];
+		str = revBuffer.c_str();
+
+		x += 120 - _screen->getTextWidth(str);
+	}
+
 	_screen->printText(str, x, y, c0, 0);
 
 	_screen->setFontStyles(_screen->_currentFont, Font::kStyleBorder);
diff --git a/engines/kyra/resource/staticres.cpp b/engines/kyra/resource/staticres.cpp
index 96cc184d81d..1df3deab3ea 100644
--- a/engines/kyra/resource/staticres.cpp
+++ b/engines/kyra/resource/staticres.cpp
@@ -38,7 +38,7 @@
 
 namespace Kyra {
 
-#define RESFILE_VERSION 117
+#define RESFILE_VERSION 118
 
 namespace {
 bool checkKyraDat(Common::SeekableReadStream *file) {
diff --git a/engines/kyra/text/text_mr.cpp b/engines/kyra/text/text_mr.cpp
index 059e7590ae9..47974deadb2 100644
--- a/engines/kyra/text/text_mr.cpp
+++ b/engines/kyra/text/text_mr.cpp
@@ -161,7 +161,16 @@ void TextDisplayer_MR::printText(const Common::String &str, int x, int y, uint8
 	colorMap[3] = c1;
 	_screen->setTextColor(colorMap, 0, 3);
 	_screen->_charSpacing = -2;
-	_screen->printText(str.c_str(), x, y, c0, c2);
+
+	Common::String revBuffer;
+	const char *cstr = str.c_str();
+	if (_vm->gameFlags().lang == Common::HE_ISR) {
+		for (int i = str.size() - 1; i >= 0; --i)
+			revBuffer += str[i];
+		cstr = revBuffer.c_str();
+	}
+
+	_screen->printText(cstr, x, y, c0, c2);
 	_screen->_charSpacing = 0;
 }
 




More information about the Scummvm-git-logs mailing list