changeset 9926:085a064b934c draft

(svn r14081) -Fix (r14075): WoW64 spoiled the 64 bits Windows detection and the installer for the 64 bits binary installed in the wrong directory. Thanks to michi_cc and glx for testing.
author rubidium <rubidium@openttd.org>
date Fri, 15 Aug 2008 23:00:56 +0000
parents 5e65e72a278a
children 70dfec1a8501
files os/win32/installer/install.nsi os/win32/installer/version_win32.txt os/win32/installer/version_win64.txt os/win32/installer/version_win9x.txt
diffstat 4 files changed, 9 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/os/win32/installer/install.nsi
+++ b/os/win32/installer/install.nsi
@@ -31,7 +31,6 @@
 Name "${APPNAMEANDVERSION} ${APPBITS} bits version ${EXTRA_VERSION}"
 
 ; NOTE: Keep trailing backslash!
-InstallDir "$PROGRAMFILES\OpenTTD\"
 InstallDirRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Install Folder"
 OutFile "openttd-${APPVERSION}-${APPARCH}.exe"
 CRCCheck force
@@ -395,8 +394,9 @@
 	ClearErrors
 	StrCpy $R0 "winnt"
 
-	ReadRegStr $R1 HKLM "SOFTWARE\MICROSOFT\WINDOWS NT\CurrentVersion" CurrentVersion
-	IfErrors 0 WinNT
+	GetVersion::WindowsPlatformId
+	Pop $R0
+	IntCmp $R0 2 WinNT 0
 	StrCpy $R0 "win9x"
 WinNT:
 	ClearErrors
@@ -406,10 +406,9 @@
 ;-------------------------------------------------------------------------------
 ; Check whether we're not running an installer for 64 bits on 32 bits and vice versa
 Function CheckProcessorArchitecture
-	cpudesc::tell
-	Pop $0                     ;full identification string in $0
-	StrCpy $1 $0 2, 56         ;pull out the architecture
-	StrCmp $1 "00" 0 Win64
+	GetVersion::WindowsPlatformArchitecture
+	Pop $R0
+	IntCmp $R0 64 Win64 0
 	ClearErrors
 	IntCmp ${APPBITS} 64 0 Done
 	MessageBox MB_OKCANCEL|MB_ICONSTOP "You want to install the 64 bits OpenTTD on a 32 bits Operating System. This is not going to work. Please download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
--- a/os/win32/installer/version_win32.txt
+++ b/os/win32/installer/version_win32.txt
@@ -2,3 +2,4 @@
 !define EXTRA_VERSION "for Windows 2000, XP and Vista"
 !define APPARCH "win32"     ; Define the application architecture
 !define BINARY_DIR "${PATH_ROOT}objs\win32\Release"
+InstallDir "$PROGRAMFILES32\OpenTTD\"
--- a/os/win32/installer/version_win64.txt
+++ b/os/win32/installer/version_win64.txt
@@ -2,3 +2,4 @@
 !define EXTRA_VERSION "for Windows XP and Vista"
 !define APPARCH "win64"     ; Define the application architecture
 !define BINARY_DIR "${PATH_ROOT}objs\x64\Release"
+InstallDir "$PROGRAMFILES64\OpenTTD\"
--- a/os/win32/installer/version_win9x.txt
+++ b/os/win32/installer/version_win9x.txt
@@ -2,3 +2,4 @@
 !define EXTRA_VERSION "for Windows 95, 98 and ME"
 !define APPARCH "win9x"     ; Define the application architecture
 !define BINARY_DIR "${PATH_ROOT}bin"
+InstallDir "$PROGRAMFILES32\OpenTTD\"