[Scummvm-git-logs] scummvm master -> 4246af95905cc33b789dc74489afe53b521487ee

sev- sev at scummvm.org
Mon May 18 21:24:21 UTC 2020


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

Summary:
d8951b2aa1 COMMON: Add Persian language & CP1256 encoding
8ea74fd00f WINTERMUTE: Add Informer Alavi to engines, detection and keymapper tables
388ae895a1 WINTERMUTE: Add CP1256 support
4246af9590 WINTERMUTE: Fix game crash on missing system font


Commit: d8951b2aa1b2ba948db48ef0d67066a185529009
    https://github.com/scummvm/scummvm/commit/d8951b2aa1b2ba948db48ef0d67066a185529009
Author: lolbot-iichan (lolbot_iichan at mail.ru)
Date: 2020-05-18T23:24:15+02:00

Commit Message:
COMMON: Add Persian language & CP1256 encoding

Changed paths:
    common/language.cpp
    common/language.h
    common/str-enc.cpp
    common/str-enc.h


diff --git a/common/language.cpp b/common/language.cpp
index 60409a0582..7f2ac5e355 100644
--- a/common/language.cpp
+++ b/common/language.cpp
@@ -50,6 +50,7 @@ const LanguageDescription g_languages[] = {
 	{    "kr", "ko_KR", "Korean", KO_KOR },
 	{    "lv", "lv_LV", "Latvian", LV_LAT },
 	{    "nb", "nb_NO", "Norwegian Bokm\xE5l", NB_NOR },
+	{    "fa", "fa_IR", "Persian (Iran)", FA_IRN },
 	{    "pl", "pl_PL", "Polish", PL_POL },
 	{    "br", "pt_BR", "Portuguese (Brazil)", PT_BRA },
 	{    "pt", "pt_PT", "Portuguese (Portugal)", PT_POR },
diff --git a/common/language.h b/common/language.h
index 99719f60e2..8c7369a8a3 100644
--- a/common/language.h
+++ b/common/language.h
@@ -55,6 +55,7 @@ enum Language {
 	KO_KOR,
 	LV_LAT,
 	NB_NOR,
+	FA_IRN,
 	PL_POL,
 	PT_BRA,
 	PT_POR,
diff --git a/common/str-enc.cpp b/common/str-enc.cpp
index e1bb332648..3a099e48ef 100644
--- a/common/str-enc.cpp
+++ b/common/str-enc.cpp
@@ -249,6 +249,23 @@ static const uint32 g_windows1255ConversionTable[] = {0x20AC, 0x0081, 0x201A, 0x
 										 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
 										 0x05E8, 0x05E9, 0x05EA, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x00FF};
 
+static const uint32 g_windows1256ConversionTable[] = {0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
+										 0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,
+										 0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
+										 0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA,
+										 0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
+										 0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
+										 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
+										 0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F,
+										 0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
+										 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
+										 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7,
+										 0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0641, 0x0642, 0x0643,
+										 0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7,
+										 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF,
+										 0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7,
+										 0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2};
+
 static const uint32 g_windows1257ConversionTable[] = {0x20AC, 0x0081, 0x201A, 0x0083, 0x201E, 0x2026, 0x2020, 0x2021,
 										 0x0088, 0x2030, 0x008A, 0x2039, 0x008C, 0x00A8, 0x02C7, 0x00B8,
 										 0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
@@ -276,6 +293,7 @@ static char const *const g_codePageMap[] = {
 	"WINDOWS-1253", /* kWindows1253 */
 	"WINDOWS-1254", /* kWindows1254 */
 	"WINDOWS-1255", /* kWindows1255 */
+	"WINDOWS-1256", /* kWindows1256 */
 	"WINDOWS-1257", /* kWindows1257 */
 	"MS932", /* kWindows932 */
 	"MSCP949", /* kWindows949 */
@@ -310,6 +328,9 @@ void String::decodeOneByte(U32String &dst, CodePage page) const {
 		case kWindows1255:
 			dst += g_windows1255ConversionTable[index];
 			break;
+		case kWindows1256:
+			dst += g_windows1256ConversionTable[index];
+			break;
 		case kWindows1257:
 			dst += g_windows1257ConversionTable[index];
 			break;
@@ -363,6 +384,9 @@ void U32String::encodeOneByte(String &dst, CodePage page) const {
 	case kWindows1255:
 		conversionTable = g_windows1255ConversionTable;
 		break;
+	case kWindows1256:
+		conversionTable = g_windows1256ConversionTable;
+		break;
 	case kWindows1257:
 		conversionTable = g_windows1257ConversionTable;
 		break;
diff --git a/common/str-enc.h b/common/str-enc.h
index 796cf963f0..0e2a7ba8a6 100644
--- a/common/str-enc.h
+++ b/common/str-enc.h
@@ -37,6 +37,7 @@ enum CodePage {
 	kWindows1253,
 	kWindows1254,
 	kWindows1255,
+	kWindows1256,
 	kWindows1257,
 	kWindows932,
 	kWindows949,


Commit: 8ea74fd00fd61efb559db3a0d53cf89c893247e9
    https://github.com/scummvm/scummvm/commit/8ea74fd00fd61efb559db3a0d53cf89c893247e9
Author: lolbot-iichan (lolbot_iichan at mail.ru)
Date: 2020-05-18T23:24:15+02:00

Commit Message:
WINTERMUTE: Add Informer Alavi to engines, detection and keymapper tables

Changed paths:
    engines/wintermute/base/base_engine.h
    engines/wintermute/detection_tables.h
    engines/wintermute/keymapper_tables.h


diff --git a/engines/wintermute/base/base_engine.h b/engines/wintermute/base/base_engine.h
index bb67a600d4..4253782529 100644
--- a/engines/wintermute/base/base_engine.h
+++ b/engines/wintermute/base/base_engine.h
@@ -78,6 +78,10 @@ enum WMETargetExecutable {
 	WME_1_8_8,  // DEAD:CODE 2008, released as "1.8.8 beta"
 	WME_1_8_9,  // DEAD:CODE 2008, released as "1.8.9 beta"
 	WME_1_8_10, // DEAD:CODE 2009
+
+	// fork of WME_1_8_10
+	WME_ANDISHE_VARAN, // Andishe Varan Engine 1.0.0.0
+
 	WME_1_8_11, // DEAD:CODE 2009
 	WME_1_9_0,  // DEAD:CODE 2009, released as "1.9.0 beta"
 
diff --git a/engines/wintermute/detection_tables.h b/engines/wintermute/detection_tables.h
index 3a79771550..d4f8e1f240 100644
--- a/engines/wintermute/detection_tables.h
+++ b/engines/wintermute/detection_tables.h
@@ -30,6 +30,7 @@ static const PlainGameDescriptor wintermuteGames[] = {
 	{"5ma",             "Five Magical Amulets"},
 	{"actualdest",      "Actual Destination"},
 	{"agustin",         "Boredom of Agustin Cordes"},
+	{"alavi",           "Informer Alavi - Murder of Miss Rojan"},
 	{"alimardan1",      "Alimardan's Mischief"},
 	{"alimardan2",      "Alimardan Meets Merlin"},
 	{"alphapolaris",    "Alpha Polaris"},
@@ -238,6 +239,11 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_WINENTRY("actualdest", "",
 		WME_ENTRY1s("data.dcp", "6926f44b26f21ceb1d840eaab9aeb510", 9081740), Common::EN_ANY, ADGF_UNSTABLE, WME_1_8_11),
 
+	// Informer Alavi - Murder of Miss Rojan (Persian) (Try version)
+	// NOTE: This is a 2.5D game that is out of ScummVM scope
+	WME_WINENTRY("alavi", "Try version",
+		WME_ENTRY1s("data.dcp", "07b847ebafbf8e58daa341d60598c84b", 36628230), Common::FA_IRN, ADGF_UNSTABLE | ADGF_DEMO, WME_ANDISHE_VARAN),
+
 	// Alimardan's Mischief
 	WME_WINENTRY("alimardan1", "",
 		WME_ENTRY1s("data.dcp", "55c28b8d4f49120f980d237951a6c73f", 1834957694), Common::EN_ANY, ADGF_UNSTABLE, WME_1_9_1),
diff --git a/engines/wintermute/keymapper_tables.h b/engines/wintermute/keymapper_tables.h
index 033f162eef..19e5f92e0b 100644
--- a/engines/wintermute/keymapper_tables.h
+++ b/engines/wintermute/keymapper_tables.h
@@ -64,6 +64,7 @@ inline Common::KeymapArray getWintermuteKeymaps(const char *target, const Common
 
 	if (gameId == "actualdest" ||
 		gameId == "artofmurder1" ||
+		gameId == "alavi" ||
 		gameId == "agustin" ||
 		gameId == "bickadoodle" ||
 		gameId == "bthreshold" ||


Commit: 388ae895a1418e2cc099eae6e3c4bcabc730cd51
    https://github.com/scummvm/scummvm/commit/388ae895a1418e2cc099eae6e3c4bcabc730cd51
Author: lolbot-iichan (lolbot_iichan at mail.ru)
Date: 2020-05-18T23:24:15+02:00

Commit Message:
WINTERMUTE: Add CP1256 support

Changed paths:
    engines/wintermute/utils/string_util.cpp


diff --git a/engines/wintermute/utils/string_util.cpp b/engines/wintermute/utils/string_util.cpp
index b17c5446b7..ad1313a20f 100644
--- a/engines/wintermute/utils/string_util.cpp
+++ b/engines/wintermute/utils/string_util.cpp
@@ -118,6 +118,9 @@ Common::CodePage StringUtil::mapCodePage(TTextCharset charset) {
 	case CHARSET_HEBREW:
 		return Common::kWindows1255;
 
+	case CHARSET_ARABIC:
+		return Common::kWindows1256;
+
 	case CHARSET_BALTIC:
 		return Common::kWindows1257;
 
@@ -167,6 +170,10 @@ Common::CodePage StringUtil::mapCodePage(TTextCharset charset) {
 		case Common::HE_ISR:
 			return Common::kWindows1255;
 
+		//cp1256: Arabic
+		case Common::FA_IRN:
+			return Common::kWindows1256;
+
 		//cp1257: Baltic
 		case Common::ET_EST:
 		case Common::LV_LAT:
@@ -190,7 +197,6 @@ Common::CodePage StringUtil::mapCodePage(TTextCharset charset) {
 	case CHARSET_SYMBOL:
 	case CHARSET_VIETNAMESE:
 	case CHARSET_JOHAB:
-	case CHARSET_ARABIC:
 	case CHARSET_THAI:
 	default:
 		warning("Unsupported charset: %d", charset);


Commit: 4246af95905cc33b789dc74489afe53b521487ee
    https://github.com/scummvm/scummvm/commit/4246af95905cc33b789dc74489afe53b521487ee
Author: lolbot-iichan (lolbot_iichan at mail.ru)
Date: 2020-05-18T23:24:15+02:00

Commit Message:
WINTERMUTE: Fix game crash on missing system font

Changed paths:
    engines/wintermute/ui/ui_button.cpp


diff --git a/engines/wintermute/ui/ui_button.cpp b/engines/wintermute/ui/ui_button.cpp
index eaa853e37b..eb8137ce3e 100644
--- a/engines/wintermute/ui/ui_button.cpp
+++ b/engines/wintermute/ui/ui_button.cpp
@@ -625,11 +625,11 @@ void UIButton::correctSize() {
 	}
 
 	if (_text) {
-		int textHeight;
-		if (_font) {
-			textHeight = _font->getTextHeight((byte *)_text, _width);
-		} else {
-			textHeight = _gameRef->getSystemFont()->getTextHeight((byte *)_text, _width);
+		int textHeight = 0;
+		BaseFont *font = _font ? _font : _gameRef->getSystemFont();
+
+		if (font) {
+			textHeight = font->getTextHeight((byte *)_text, _width);
 		}
 
 		if (textHeight > _height) {




More information about the Scummvm-git-logs mailing list