summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordarkvater <darkvater@openttd.org>2004-09-18 16:36:14 +0000
committerdarkvater <darkvater@openttd.org>2004-09-18 16:36:14 +0000
commitb7fd924806401b266ac1fb4c5c2c69e4f7e14c7b (patch)
tree008711d266528bd970694c906bda1bb512181253
parentc62f670bca3f1ab6b2afcad25d8062305fecfb52 (diff)
downloadopenttd-b7fd924806401b266ac1fb4c5c2c69e4f7e14c7b.tar.xz
(svn r293) -Feature: Windows now shows (available) revision, release information in title bar
-rw-r--r--strings.c12
-rw-r--r--win32.c33
2 files changed, 27 insertions, 18 deletions
diff --git a/strings.c b/strings.c
index 0aeff04f5..92482bcbf 100644
--- a/strings.c
+++ b/strings.c
@@ -19,12 +19,12 @@ static uint _langtab_num[32]; // Offset into langpack offs
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);
diff --git a/win32.c b/win32.c
index 6519a47e4..52235c94b 100644
--- a/win32.c
+++ b/win32.c
@@ -487,7 +487,13 @@ static void MakeWindow(bool full_screen)
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 @@ void FiosDelete(const char *name)
#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 @@ byte GetOSVersion()
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