summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--os/windows/installer/install.nsi21
1 files changed, 20 insertions, 1 deletions
diff --git a/os/windows/installer/install.nsi b/os/windows/installer/install.nsi
index 4e0adac1b..692970863 100644
--- a/os/windows/installer/install.nsi
+++ b/os/windows/installer/install.nsi
@@ -102,6 +102,9 @@ Page custom SelectCDEnter SelectCDExit ": TTD folder"
;--------------------------------------------------------------
; (Core) OpenTTD install section. Copies all internal game data
Section "!OpenTTD" Section1
+ ; Make sure to be upgraded OpenTTD is not running
+ Call CheckOpenTTDRunning
+
; Overwrite files by default, but don't complain on failure
SetOverwrite try
@@ -517,7 +520,6 @@ Abort:
Done:
FunctionEnd
-
;-------------------------------------------------------------------------------
; Check whether we're not running an installer for NT on 9x and vice versa
Function CheckWindowsVersion
@@ -537,6 +539,23 @@ Abort:
Done:
FunctionEnd
+;-------------------------------------------------------------------------------
+; Check whether OpenTTD is running
+Function CheckOpenTTDRunning
+ IfFileExists "$INSTDIR\openttd.exe" 0 Done
+Retry:
+ FindProcDLL::FindProc "openttd.exe"
+ Pop $R0
+ IntCmp $R0 1 0 Done
+ ClearErrors
+ Delete "$INSTDIR\openttd.exe"
+ IfErrors 0 Done
+ ClearErrors
+ MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "OpenTTD is running. Please close it and retry." IDRETRY Retry
+ Abort
+Done:
+FunctionEnd
+
Var OLDVERSION
Var UninstallString