[Scummvm-cvs-logs] scummvm master -> 3931de4235fc1eb2993968c7880d473f4e2a6077

Littleboy littleboy22 at gmail.com
Sun Jun 26 22:06:22 CEST 2011


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

Summary:
3f43619ea8 LASTEXPRESS: Add detection entry for Russian version
3931de4235 BACKENDS: Fix running on pre-Windows 2000 operating systems


Commit: 3f43619ea8b5b80b7211467ec27abc45de152ff2
    https://github.com/scummvm/scummvm/commit/3f43619ea8b5b80b7211467ec27abc45de152ff2
Author: Littleboy (littleboy at users.sourceforge.net)
Date: 2011-06-26T13:02:31-07:00

Commit Message:
LASTEXPRESS: Add detection entry for Russian version

Changed paths:
    engines/lastexpress/detection.cpp



diff --git a/engines/lastexpress/detection.cpp b/engines/lastexpress/detection.cpp
index de80e75..0a17780 100644
--- a/engines/lastexpress/detection.cpp
+++ b/engines/lastexpress/detection.cpp
@@ -127,7 +127,7 @@ static const ADGameDescription gameDescriptions[] = {
 		"lastexpress",
 		"",
 		{
-			{"HD.HPF", 0, "7cdd70fc0b1555785f1e9e8d371ea85c", 31301632},    // 1997-04-08 14:33:42
+			{"HD.HPF",  0, "7cdd70fc0b1555785f1e9e8d371ea85c", 31301632},   // 1997-04-08 14:33:42
 			{"CD1.HPF", 0, "6d74cc861d172466bc745ff8bf0e59c5", 522971136},  // 1997-04-08 13:05:56
 			{"CD2.HPF", 0, "b71ac9391de415807c74ff078f4fab22", 655702016},  // 1997-04-08 15:26:14
 			{"CD3.HPF", 0, "ee55d4310546dd2a38560b096d1c2771", 641144832},  // 1997-04-05 18:35:50
@@ -163,7 +163,7 @@ static const ADGameDescription gameDescriptions[] = {
 		"lastexpress",
 		"",
 		{
-			{"HD.HPF", 0, "5539e78fd7eecb70bc858e86b5709fe9", 29562880},    // 1997-12-11 14:11:52
+			{"HD.HPF",  0, "5539e78fd7eecb70bc858e86b5709fe9", 29562880},   // 1997-12-11 14:11:52
 			{"CD1.HPF", 0, "3c1c80b41f2c454b7b89dcb32648796c", 522328064},  // 1997-12-11 14:39:46
 			{"CD2.HPF", 0, "ea6414d5a718501cfd55de3884f4431d", 665411584},  // 1997-12-11 15:20:26
 			{"CD3.HPF", 0, "a5bd5b58acddbd951d4551f68de22025", 637718528},  // 1997-12-11 15:58:44
@@ -173,6 +173,24 @@ static const ADGameDescription gameDescriptions[] = {
 		ADGF_UNSTABLE,
 		Common::GUIO_NONE
 	},
+	
+	// The Last Express (Russian)
+	//   expressw.exe 1999-04-05 15:33:56
+	//   express.exe  ???
+	{
+		"lastexpress",
+		"",
+		{
+			{"HD.HPF",  0, "a9e915c20f3231c5a1ac4455286971bb", 29908992},   // 1999-04-08 12:43:56
+			{"CD1.HPF", 0, "80fbb95c9228353436b7b38e4b5bb64d", 525805568},  // 1999-04-07 13:30:14
+			{"CD2.HPF", 0, "a1c8c344754e03eaa86eaabc6024709e", 677289984},  // 1999-04-07 16:19:56
+			{"CD3.HPF", 0, "ea5adac447e59ea6d4a1737abad46480", 642584576},  // 1999-04-07 17:26:18
+		},
+		Common::RU_RUS,
+		Common::kPlatformUnknown,
+		ADGF_UNSTABLE,
+		Common::GUIO_NONE
+	},
 
 	AD_TABLE_END_MARKER
 };


Commit: 3931de4235fc1eb2993968c7880d473f4e2a6077
    https://github.com/scummvm/scummvm/commit/3931de4235fc1eb2993968c7880d473f4e2a6077
Author: Littleboy (littleboy at users.sourceforge.net)
Date: 2011-06-26T13:02:33-07:00

Commit Message:
BACKENDS: Fix running on pre-Windows 2000 operating systems

The Windows taskbar manager uses VerSetConditionMask and VerifyVersionInfo to check for Windows 7 or later
before enabling the taskbar integration features. Those functions did not appear until Windows 2000, so we
have to check for them at runtime.

Changed paths:
    backends/taskbar/win32/win32-taskbar.cpp



diff --git a/backends/taskbar/win32/win32-taskbar.cpp b/backends/taskbar/win32/win32-taskbar.cpp
index 7d063f4..d6be566 100644
--- a/backends/taskbar/win32/win32-taskbar.cpp
+++ b/backends/taskbar/win32/win32-taskbar.cpp
@@ -232,6 +232,28 @@ Common::String Win32TaskbarManager::getIconPath(Common::String target) {
 	return "";
 }
 
+// VerSetConditionMask and VerifyVersionInfo didn't appear until Windows 2000,
+// so we need to check for them at runtime
+LONGLONG VerSetConditionMaskFunc(ULONGLONG conditionMask, DWORD typeMask, BYTE condition) {
+	typedef BOOL (WINAPI *VerSetConditionMaskFunction)(ULONGLONG ConditionMask, DWORD TypeMask, BYTE Condition);
+
+	VerSetConditionMaskFunction verSetConditionMask = (VerSetConditionMaskFunction)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "VerSetConditionMask");
+	if (verSetConditionMask == NULL)
+		return 0;
+
+	return verSetConditionMask(conditionMask, typeMask, condition);
+}
+
+BOOL VerifyVersionInfoFunc(LPOSVERSIONINFOEXA lpVersionInformation, DWORD dwTypeMask, DWORDLONG dwlConditionMask) {
+   typedef BOOL (WINAPI *VerifyVersionInfoFunction)(LPOSVERSIONINFOEXA lpVersionInformation, DWORD dwTypeMask, DWORDLONG dwlConditionMask);
+
+   VerifyVersionInfoFunction verifyVersionInfo = (VerifyVersionInfoFunction)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "VerifyVersionInfoA");
+   if (verifyVersionInfo == NULL)
+      return FALSE;
+
+   return verifyVersionInfo(lpVersionInformation, dwTypeMask, dwlConditionMask);
+}
+
 bool Win32TaskbarManager::isWin7OrLater() {
 	OSVERSIONINFOEX versionInfo;
 	DWORDLONG conditionMask = 0;
@@ -241,10 +263,10 @@ bool Win32TaskbarManager::isWin7OrLater() {
 	versionInfo.dwMajorVersion = 6;
 	versionInfo.dwMinorVersion = 1;
 
-	VER_SET_CONDITION(conditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL);
-	VER_SET_CONDITION(conditionMask, VER_MINORVERSION, VER_GREATER_EQUAL);
+	conditionMask = VerSetConditionMaskFunc(conditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL);
+	conditionMask = VerSetConditionMaskFunc(conditionMask, VER_MINORVERSION, VER_GREATER_EQUAL);
 
-	return VerifyVersionInfo(&versionInfo, VER_MAJORVERSION | VER_MINORVERSION, conditionMask);
+	return VerifyVersionInfoFunc(&versionInfo, VER_MAJORVERSION | VER_MINORVERSION, conditionMask);
 }
 
 LPWSTR Win32TaskbarManager::ansiToUnicode(const char *s) {






More information about the Scummvm-git-logs mailing list