(svn r293) -Feature: Windows now shows (available) revision, release information in title bar
authordarkvater
Sat, 18 Sep 2004 16:36:14 +0000
changeset 287 121d79bcd34c
parent 286 b22e852634e4
child 288 72ca19a694dd
(svn r293) -Feature: Windows now shows (available) revision, release information in title bar
strings.c
win32.c
--- a/strings.c	Sat Sep 18 16:31:31 2004 +0000
+++ b/strings.c	Sat Sep 18 16:36:14 2004 +0000
@@ -19,12 +19,12 @@
 static uint _langtab_start[32]; // Offset into langpack offs
 
 #ifdef WITH_REV_HACK
-#define WITH_REV
-const char _openttd_revision[] = WITH_REV_HACK;
-#endif
-
-#ifdef WITH_REV
-extern const char _openttd_revision[];
+	#define WITH_REV
+	const char _openttd_revision[] = WITH_REV_HACK;
+#else
+	#ifdef WITH_REV
+	extern const char _openttd_revision[];
+	#endif
 #endif
 
 typedef byte *PlayerNameGeneratorProc(byte *buffr);
--- a/win32.c	Sat Sep 18 16:31:31 2004 +0000
+++ b/win32.c	Sat Sep 18 16:36:14 2004 +0000
@@ -487,7 +487,13 @@
 		if (_wnd.main_wnd) {
 			SetWindowPos(_wnd.main_wnd, 0, x, y, w, h, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOZORDER);
 		} else {
-			_wnd.main_wnd = CreateWindow("TTD", "OpenTTD", style, x, y, w, h, 0, 0, _inst, 0);
+			char Windowtitle[50] = "OpenTTD ";
+			#ifdef WITH_REV_HACK
+				// also show revision number/release in window title
+				extern const char _openttd_revision[];
+				strncat(Windowtitle, _openttd_revision, sizeof(Windowtitle)-(strlen(Windowtitle) + 1));
+			#endif
+			_wnd.main_wnd = CreateWindow("TTD", Windowtitle, style, x, y, w, h, 0, 0, _inst, 0);
 			if (_wnd.main_wnd == NULL)
 				error("CreateWindow failed");
 		}
@@ -1779,16 +1785,16 @@
 #define Windows_NT3_51	4
 
 /* flags show the minimum required OS to use a given feature. Currently
-	 only dwMajorVersion is used
+	 only dwMajorVersion and dwMinorVersion (WindowsME) are used
 														MajorVersion	MinorVersion
-		Windows Server 2003					5							 2
-		Windows XP									5							 1
-		Windows 2000								5							 0
-		Windows NT 4.0							4							 0
-		Windows Me									4							90
-		Windows 98									4							10
-		Windows 95									4							 0
-		Windows NT 3.51							3							51
+		Windows Server 2003					5							 2				dmusic
+		Windows XP									5							 1				dmusic
+		Windows 2000								5							 0				dmusic
+		Windows NT 4.0							4							 0				win32
+		Windows Me									4							90				dmusic
+		Windows 98									4							10				win32
+		Windows 95									4							 0				win32
+		Windows NT 3.51							3							51				?????
 */
 
 const DriverDesc _video_driver_descs[] = {
@@ -1827,8 +1833,11 @@
 	osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
 
 	if (GetVersionEx(&osvi)) {
-		DEBUG(misc, 2) ("Windows Version is %d", osvi.dwMajorVersion);
-		return (byte)osvi.dwMajorVersion;
+		DEBUG(misc, 2) ("Windows Version is %d.%d", osvi.dwMajorVersion, osvi.dwMinorVersion);
+		// WinME needs directmusic too (dmusic, Windows_2000 mode), all others default to OK
+		if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90) { return Windows_2000;} // WinME
+
+		return osvi.dwMajorVersion;
 	}
 
 	// GetVersionEx failed, but we can safely assume at least Win95/WinNT3.51 is used