From e0e86f47140eb2f6544574c4b33c4d8984c58896 Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 15 Aug 2008 23:00:56 +0000 Subject: (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. --- os/win32/installer/install.nsi | 13 ++++++------- os/win32/installer/version_win32.txt | 1 + os/win32/installer/version_win64.txt | 1 + os/win32/installer/version_win9x.txt | 1 + 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/os/win32/installer/install.nsi b/os/win32/installer/install.nsi index b16a988fc..7e7f20519 100644 --- a/os/win32/installer/install.nsi +++ b/os/win32/installer/install.nsi @@ -31,7 +31,6 @@ VIAddVersionKey "LegalCopyright" " " 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 @@ Function GetWindowsVersion 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 @@ FunctionEnd ;------------------------------------------------------------------------------- ; 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 diff --git a/os/win32/installer/version_win32.txt b/os/win32/installer/version_win32.txt index d6314b8f0..ed7f77e3d 100644 --- 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\" diff --git a/os/win32/installer/version_win64.txt b/os/win32/installer/version_win64.txt index ed96e3105..3c84447b6 100644 --- 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\" diff --git a/os/win32/installer/version_win9x.txt b/os/win32/installer/version_win9x.txt index 25ccc23c2..be20888e5 100644 --- 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\" -- cgit v1.2.3-54-g00ecf