From f4d3ccc301286d01f33c5216f6128fa6a727e2a9 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 30 Jun 2018 23:51:01 +0000 Subject: [PATCH] Fix newlines in misc other files. --- .gitignore | 174 +++++----- AUTHORS | 2 +- OpenRA.Game.exe.config | 10 +- OpenRA.Test/App.config | 2 +- OpenRA.Utility.exe.config | 20 +- OpenRA.sln.DotSettings | 2 +- appveyor.yml | 154 ++++----- launch-dedicated.cmd | 32 +- mods/modcontent/cursors.yaml | 2 +- packaging/windows/OpenRA.nsi | 610 +++++++++++++++++------------------ 10 files changed, 504 insertions(+), 504 deletions(-) diff --git a/.gitignore b/.gitignore index 9d61343563..4aceeb3067 100644 --- a/.gitignore +++ b/.gitignore @@ -1,88 +1,88 @@ -# Visual Studio -Release -bin -obj -*.ncb -*.vcproj* -*.suo -*.user -*.sln.cache -*.manifest -*.CodeAnalysisLog.xml -*.lastcodeanalysissucceeded -_ReSharper.*/ -/.vs - -# movies -*.vqa - -# archives -*.mix - -# binaries -mods/*/*.dll -mods/*/*.mdb -mods/*/*.pdb -/*.dll -/*.dll.config -/*.so -/*.dylib -/*.pdb -/*.mdb -/*.exe -thirdparty/download/* -*.mmdb.gz - -# backup files by various editors -*~ -*.orig -\#* -.*.sw? - -# Monodevelop -*.pidb -*.userprefs - -# Mac OS X -.DS_Store - -# XCode -packaging/osx/launcher/build/ -packaging/osx/launcher/OpenRA.xcodeproj/*.pbxuser -packaging/osx/launcher/OpenRA.xcodeproj/*.perspectivev3 -packaging/osx/launcher/OpenRA.xcodeproj/*.mode1v3 -temp.c -temp.o -temp.s -OpenRA.Launcher.Mac/build/ -OpenRA.Launcher.Mac/OpenRA.xcodeproj/*.pbxuser -OpenRA.Launcher.Mac/OpenRA.xcodeproj/*.perspectivev3 -OpenRA.Launcher.Mac/OpenRA.xcodeproj/*.mode1v3 -*.resources - -# auto-generated documentation -DOCUMENTATION.md -WEAPONS.md -Lua-API.md -Settings.md -*.html -openra.6 -update.log - -# StyleCop -*.Cache -StyleCopViolations.xml - -# SublimeText -*.sublime-project -*.sublime-workspace - -# NUnit -/TestResult.xml -/lib/ - -# Support directory -/Support - -# IntelliJ files +# Visual Studio +Release +bin +obj +*.ncb +*.vcproj* +*.suo +*.user +*.sln.cache +*.manifest +*.CodeAnalysisLog.xml +*.lastcodeanalysissucceeded +_ReSharper.*/ +/.vs + +# movies +*.vqa + +# archives +*.mix + +# binaries +mods/*/*.dll +mods/*/*.mdb +mods/*/*.pdb +/*.dll +/*.dll.config +/*.so +/*.dylib +/*.pdb +/*.mdb +/*.exe +thirdparty/download/* +*.mmdb.gz + +# backup files by various editors +*~ +*.orig +\#* +.*.sw? + +# Monodevelop +*.pidb +*.userprefs + +# Mac OS X +.DS_Store + +# XCode +packaging/osx/launcher/build/ +packaging/osx/launcher/OpenRA.xcodeproj/*.pbxuser +packaging/osx/launcher/OpenRA.xcodeproj/*.perspectivev3 +packaging/osx/launcher/OpenRA.xcodeproj/*.mode1v3 +temp.c +temp.o +temp.s +OpenRA.Launcher.Mac/build/ +OpenRA.Launcher.Mac/OpenRA.xcodeproj/*.pbxuser +OpenRA.Launcher.Mac/OpenRA.xcodeproj/*.perspectivev3 +OpenRA.Launcher.Mac/OpenRA.xcodeproj/*.mode1v3 +*.resources + +# auto-generated documentation +DOCUMENTATION.md +WEAPONS.md +Lua-API.md +Settings.md +*.html +openra.6 +update.log + +# StyleCop +*.Cache +StyleCopViolations.xml + +# SublimeText +*.sublime-project +*.sublime-workspace + +# NUnit +/TestResult.xml +/lib/ + +# Support directory +/Support + +# IntelliJ files .idea diff --git a/AUTHORS b/AUTHORS index b40047ddae..9c68cc65f1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -44,7 +44,7 @@ Also thanks to: * Chris Grant (Unit158) * clem * Cody Brittain (Generalcamo) - * Constantin Helmig (CH4Code) + * Constantin Helmig (CH4Code) * D2k Sardaukar * D'Arcy Rush (r34ch) * Daniel Derejvanik (Harisson) diff --git a/OpenRA.Game.exe.config b/OpenRA.Game.exe.config index 694da31c69..cab8f010ca 100644 --- a/OpenRA.Game.exe.config +++ b/OpenRA.Game.exe.config @@ -1,6 +1,6 @@ - - - - - + + + + + \ No newline at end of file diff --git a/OpenRA.Test/App.config b/OpenRA.Test/App.config index 87c27d4546..eba8d1e0ba 100644 --- a/OpenRA.Test/App.config +++ b/OpenRA.Test/App.config @@ -1,4 +1,4 @@ - + diff --git a/OpenRA.Utility.exe.config b/OpenRA.Utility.exe.config index e7b36a8487..f9952017c3 100644 --- a/OpenRA.Utility.exe.config +++ b/OpenRA.Utility.exe.config @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/OpenRA.sln.DotSettings b/OpenRA.sln.DotSettings index 32bfaa49bb..d9e7d4be45 100644 --- a/OpenRA.sln.DotSettings +++ b/OpenRA.sln.DotSettings @@ -1,4 +1,4 @@ - + Implicit <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index 8709108fae..6a8f07951c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,77 +1,77 @@ -version: 1.0.{build} - -environment: - CoverityProjectToken: - secure: BYP5qnptMazSCwTwgiFHlfqZd7BM3bwTRq2Cbs++ofg= - CoverityNotificationEmail: - secure: 0kyu0t8QwQYUQzqguVJP3N+VpEDfET2ArP+JNnOsUELJQvH8qbeQzPTM0ga0ek5G - -install: - -cache: - - thirdparty\download -> thirdparty\fetch-thirdparty-deps.ps1 - -before_build: -- make dependencies - -build: - project: OpenRA.sln - verbosity: minimal - -after_build: -- ps: | - if ($env:APPVEYOR_SCHEDULED_BUILD -eq "True") - { - cov-build.exe --dir cov-int make all - nuget.exe install PublishCoverity -ExcludeVersion - PublishCoverity\tools\PublishCoverity.exe compress -o coverity.zip -i cov-int - $version = Get-Date -format s - PublishCoverity\tools\PublishCoverity.exe publish ` - -t "$env:CoverityProjectToken" ` - -e "$env:CoverityNotificationEmail" ` - -r "$env:APPVEYOR_REPO_NAME" ` - -z coverity.zip ` - -d "AppVeyor scheduled build ($env:APPVEYOR_BUILD_VERSION)." ` - --codeVersion "$version" - } - -before_test: -- ps: | - if ($env:APPVEYOR_SCHEDULED_BUILD -eq "True") - { - choco install resharper-clt -y - dupFinder /output=dupReport.xml /show-text OpenRA.sln - choco install xmlstarlet -y - xml transform dupFinder.xslt dupReport.xml > dupReport.html - choco install pandoc -y - } - -test_script: - - nunit3-console OpenRA.Test.dll --result=myresults.xml;format=AppVeyor - -after_test: - - appveyor DownloadFile "https://raw.githubusercontent.com/wiki/OpenRA/OpenRA/Changelog.md" -FileName Changelog.md - - make docs - - ps: dir *.md | % {gc $_ -Raw | .\ConvertFrom-Markdown.ps1 | Out-File -FilePath "$($_.Name.TrimEnd(".md")).html"} - - ps: (Get-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs.in").replace('DISPLAY_NAME', 'Red Alert').replace('MOD_ID', 'ra').replace('FAQ_URL', 'http://wiki.openra.net/FAQ') | Set-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs" - - ps: csc.exe /noconfig /platform:x86 /reference:System.dll /reference:System.Core.dll /reference:System.Drawing.dll /reference:System.Windows.Forms.dll /reference:"${env:APPVEYOR_BUILD_FOLDER}\OpenRA.Game.exe" /out:"${env:APPVEYOR_BUILD_FOLDER}\RedAlert.exe" /win32icon:"${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\RedAlert.ico" /target:winexe ${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs - - ps: (Get-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs.in").replace('DISPLAY_NAME', 'Tiberian Dawn').replace('MOD_ID', 'cnc').replace('FAQ_URL', 'http://wiki.openra.net/FAQ') | Set-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs" - - ps: csc.exe /noconfig /platform:x86 /reference:System.dll /reference:System.Core.dll /reference:System.Drawing.dll /reference:System.Windows.Forms.dll /reference:"${env:APPVEYOR_BUILD_FOLDER}\OpenRA.Game.exe" /out:"${env:APPVEYOR_BUILD_FOLDER}\TiberianDawn.exe" /win32icon:"${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\TiberianDawn.ico" /target:winexe ${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs - - ps: (Get-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs.in").replace('DISPLAY_NAME', 'Dune 2000').replace('MOD_ID', 'd2k').replace('FAQ_URL', 'http://wiki.openra.net/FAQ') | Set-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs" - - ps: csc.exe /noconfig /platform:x86 /reference:System.dll /reference:System.Core.dll /reference:System.Drawing.dll /reference:System.Windows.Forms.dll /reference:"${env:APPVEYOR_BUILD_FOLDER}\OpenRA.Game.exe" /out:"${env:APPVEYOR_BUILD_FOLDER}\Dune2000.exe" /win32icon:"${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\Dune2000.ico" /target:winexe ${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs - - ps: cp packaging\windows\OpenRA.ico . - - ps: cp packaging\windows\RedAlert.ico . - - ps: cp packaging\windows\TiberianDawn.ico . - - ps: cp packaging\windows\Dune2000.ico . - - if defined APPVEYOR_REPO_TAG_NAME set VERSION=%APPVEYOR_REPO_TAG_NAME% - - if not defined APPVEYOR_REPO_TAG_NAME set VERSION=%APPVEYOR_REPO_COMMIT:~0,7% - - '"C:\Program Files (x86)\NSIS\makensis.exe" /DSRCDIR="%APPVEYOR_BUILD_FOLDER%" /DDEPSDIR="%APPVEYOR_BUILD_FOLDER%\thirdparty\download\windows" /DTAG="git-%VERSION%" /DSUFFIX=" (dev)" /V3 packaging/windows/OpenRA.nsi' - - move /Y %APPVEYOR_BUILD_FOLDER%\packaging\windows\OpenRA.Setup.exe %APPVEYOR_BUILD_FOLDER%\OpenRA-%VERSION%.exe - -artifacts: - - path: OpenRA-$(VERSION).exe - name: Installer - - path: coverity.zip - name: Coverity Build - - path: dupReport.html - name: dupFinder Report +version: 1.0.{build} + +environment: + CoverityProjectToken: + secure: BYP5qnptMazSCwTwgiFHlfqZd7BM3bwTRq2Cbs++ofg= + CoverityNotificationEmail: + secure: 0kyu0t8QwQYUQzqguVJP3N+VpEDfET2ArP+JNnOsUELJQvH8qbeQzPTM0ga0ek5G + +install: + +cache: + - thirdparty\download -> thirdparty\fetch-thirdparty-deps.ps1 + +before_build: +- make dependencies + +build: + project: OpenRA.sln + verbosity: minimal + +after_build: +- ps: | + if ($env:APPVEYOR_SCHEDULED_BUILD -eq "True") + { + cov-build.exe --dir cov-int make all + nuget.exe install PublishCoverity -ExcludeVersion + PublishCoverity\tools\PublishCoverity.exe compress -o coverity.zip -i cov-int + $version = Get-Date -format s + PublishCoverity\tools\PublishCoverity.exe publish ` + -t "$env:CoverityProjectToken" ` + -e "$env:CoverityNotificationEmail" ` + -r "$env:APPVEYOR_REPO_NAME" ` + -z coverity.zip ` + -d "AppVeyor scheduled build ($env:APPVEYOR_BUILD_VERSION)." ` + --codeVersion "$version" + } + +before_test: +- ps: | + if ($env:APPVEYOR_SCHEDULED_BUILD -eq "True") + { + choco install resharper-clt -y + dupFinder /output=dupReport.xml /show-text OpenRA.sln + choco install xmlstarlet -y + xml transform dupFinder.xslt dupReport.xml > dupReport.html + choco install pandoc -y + } + +test_script: + - nunit3-console OpenRA.Test.dll --result=myresults.xml;format=AppVeyor + +after_test: + - appveyor DownloadFile "https://raw.githubusercontent.com/wiki/OpenRA/OpenRA/Changelog.md" -FileName Changelog.md + - make docs + - ps: dir *.md | % {gc $_ -Raw | .\ConvertFrom-Markdown.ps1 | Out-File -FilePath "$($_.Name.TrimEnd(".md")).html"} + - ps: (Get-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs.in").replace('DISPLAY_NAME', 'Red Alert').replace('MOD_ID', 'ra').replace('FAQ_URL', 'http://wiki.openra.net/FAQ') | Set-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs" + - ps: csc.exe /noconfig /platform:x86 /reference:System.dll /reference:System.Core.dll /reference:System.Drawing.dll /reference:System.Windows.Forms.dll /reference:"${env:APPVEYOR_BUILD_FOLDER}\OpenRA.Game.exe" /out:"${env:APPVEYOR_BUILD_FOLDER}\RedAlert.exe" /win32icon:"${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\RedAlert.ico" /target:winexe ${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs + - ps: (Get-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs.in").replace('DISPLAY_NAME', 'Tiberian Dawn').replace('MOD_ID', 'cnc').replace('FAQ_URL', 'http://wiki.openra.net/FAQ') | Set-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs" + - ps: csc.exe /noconfig /platform:x86 /reference:System.dll /reference:System.Core.dll /reference:System.Drawing.dll /reference:System.Windows.Forms.dll /reference:"${env:APPVEYOR_BUILD_FOLDER}\OpenRA.Game.exe" /out:"${env:APPVEYOR_BUILD_FOLDER}\TiberianDawn.exe" /win32icon:"${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\TiberianDawn.ico" /target:winexe ${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs + - ps: (Get-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs.in").replace('DISPLAY_NAME', 'Dune 2000').replace('MOD_ID', 'd2k').replace('FAQ_URL', 'http://wiki.openra.net/FAQ') | Set-Content "${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs" + - ps: csc.exe /noconfig /platform:x86 /reference:System.dll /reference:System.Core.dll /reference:System.Drawing.dll /reference:System.Windows.Forms.dll /reference:"${env:APPVEYOR_BUILD_FOLDER}\OpenRA.Game.exe" /out:"${env:APPVEYOR_BUILD_FOLDER}\Dune2000.exe" /win32icon:"${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\Dune2000.ico" /target:winexe ${env:APPVEYOR_BUILD_FOLDER}\packaging\windows\WindowsLauncher.cs + - ps: cp packaging\windows\OpenRA.ico . + - ps: cp packaging\windows\RedAlert.ico . + - ps: cp packaging\windows\TiberianDawn.ico . + - ps: cp packaging\windows\Dune2000.ico . + - if defined APPVEYOR_REPO_TAG_NAME set VERSION=%APPVEYOR_REPO_TAG_NAME% + - if not defined APPVEYOR_REPO_TAG_NAME set VERSION=%APPVEYOR_REPO_COMMIT:~0,7% + - '"C:\Program Files (x86)\NSIS\makensis.exe" /DSRCDIR="%APPVEYOR_BUILD_FOLDER%" /DDEPSDIR="%APPVEYOR_BUILD_FOLDER%\thirdparty\download\windows" /DTAG="git-%VERSION%" /DSUFFIX=" (dev)" /V3 packaging/windows/OpenRA.nsi' + - move /Y %APPVEYOR_BUILD_FOLDER%\packaging\windows\OpenRA.Setup.exe %APPVEYOR_BUILD_FOLDER%\OpenRA-%VERSION%.exe + +artifacts: + - path: OpenRA-$(VERSION).exe + name: Installer + - path: coverity.zip + name: Coverity Build + - path: dupReport.html + name: dupFinder Report diff --git a/launch-dedicated.cmd b/launch-dedicated.cmd index c25017bd64..cbe70ec3c0 100644 --- a/launch-dedicated.cmd +++ b/launch-dedicated.cmd @@ -1,17 +1,17 @@ -:: example launch script, see https://github.com/OpenRA/OpenRA/wiki/Dedicated for details - -@echo on - -set Name="Dedicated Server" -set Mod=ra -set ListenPort=1234 -set ExternalPort=1234 -set AdvertiseOnline=True -set EnableSingleplayer=False -set Password="" - -:loop - -OpenRA.Server.exe Game.Mod=%Mod% Server.Name=%Name% Server.ListenPort=%ListenPort% Server.ExternalPort=%ExternalPort% Server.AdvertiseOnline=%AdvertiseOnline% Server.EnableSingleplayer=%EnableSingleplayer% Server.Password=%Password% - +:: example launch script, see https://github.com/OpenRA/OpenRA/wiki/Dedicated for details + +@echo on + +set Name="Dedicated Server" +set Mod=ra +set ListenPort=1234 +set ExternalPort=1234 +set AdvertiseOnline=True +set EnableSingleplayer=False +set Password="" + +:loop + +OpenRA.Server.exe Game.Mod=%Mod% Server.Name=%Name% Server.ListenPort=%ListenPort% Server.ExternalPort=%ExternalPort% Server.AdvertiseOnline=%AdvertiseOnline% Server.EnableSingleplayer=%EnableSingleplayer% Server.Password=%Password% + goto loop \ No newline at end of file diff --git a/mods/modcontent/cursors.yaml b/mods/modcontent/cursors.yaml index 40a86d6423..36996e12ca 100644 --- a/mods/modcontent/cursors.yaml +++ b/mods/modcontent/cursors.yaml @@ -1,4 +1,4 @@ -Palettes: +Palettes: cursor: cursor.pal Cursors: diff --git a/packaging/windows/OpenRA.nsi b/packaging/windows/OpenRA.nsi index e0a4eda32f..b006e9b73f 100644 --- a/packaging/windows/OpenRA.nsi +++ b/packaging/windows/OpenRA.nsi @@ -1,305 +1,305 @@ -; Copyright 2007-2018 OpenRA developers (see AUTHORS) -; This file is part of OpenRA. -; -; OpenRA is free software: you can redistribute it and/or modify -; it under the terms of the GNU General Public License as published by -; the Free Software Foundation, either version 3 of the License, or -; (at your option) any later version. -; -; OpenRA is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with OpenRA. If not, see . - - -!include "MUI2.nsh" -!include "FileFunc.nsh" -!include "WordFunc.nsh" - -Name "OpenRA" -OutFile "OpenRA.Setup.exe" - -InstallDir "$PROGRAMFILES\OpenRA${SUFFIX}" -InstallDirRegKey HKLM "Software\OpenRA${SUFFIX}" "InstallDir" - -SetCompressor lzma -RequestExecutionLevel admin - -!insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_LICENSE "${SRCDIR}\COPYING" -!insertmacro MUI_PAGE_DIRECTORY - -!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" -!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenRA${SUFFIX}" -!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" -!define MUI_STARTMENUPAGE_DEFAULTFOLDER "OpenRA" - -Var StartMenuFolder -!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder - -!insertmacro MUI_PAGE_COMPONENTS -!insertmacro MUI_PAGE_INSTFILES - -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES -!insertmacro MUI_UNPAGE_FINISH - -!insertmacro MUI_LANGUAGE "English" - -;*************************** -;Section Definitions -;*************************** -Section "-Reg" Reg - - ; Installation directory - WriteRegStr HKLM "Software\OpenRA${SUFFIX}" "InstallDir" $INSTDIR - - ; Join server URL Scheme - WriteRegStr HKLM "Software\Classes\openra-ra-${TAG}" "" "URL:Join OpenRA server" - WriteRegStr HKLM "Software\Classes\openra-ra-${TAG}" "URL Protocol" "" - WriteRegStr HKLM "Software\Classes\openra-ra-${TAG}\DefaultIcon" "" "$INSTDIR\RedAlert.ico,0" - WriteRegStr HKLM "Software\Classes\openra-ra-${TAG}\Shell\Open\Command" "" "$INSTDIR\RedAlert.exe Launch.URI=%1" - - WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}" "" "URL:Join OpenRA server" - WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}" "URL Protocol" "" - WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}\DefaultIcon" "" "$INSTDIR\TiberianDawn.ico,0" - WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}\Shell\Open\Command" "" "$INSTDIR\TiberianDawn.exe Launch.URI=%1" - - WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}" "" "URL:Join OpenRA server" - WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}" "URL Protocol" "" - WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}\DefaultIcon" "" "$INSTDIR\Dune2000.ico,0" - WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}\Shell\Open\Command" "" "$INSTDIR\Dune2000.exe Launch.URI=%1" - - ; Remove obsolete file associations - DeleteRegKey HKLM "Software\Classes\.orarep" - DeleteRegKey HKLM "Software\Classes\OpenRA_replay" - DeleteRegKey HKLM "Software\Classes\.oramod" - DeleteRegKey HKLM "Software\Classes\OpenRA_mod" - DeleteRegKey HKLM "Software\Classes\openra" - -SectionEnd - -Section "Game" GAME - SectionIn RO - - RMDir /r "$INSTDIR\mods" - SetOutPath "$INSTDIR\mods" - File /r "${SRCDIR}\mods\common" - File /r "${SRCDIR}\mods\cnc" - File /r "${SRCDIR}\mods\d2k" - File /r "${SRCDIR}\mods\ra" - File /r "${SRCDIR}\mods\modcontent" - - SetOutPath "$INSTDIR" - File "${SRCDIR}\RedAlert.exe" - File "${SRCDIR}\TiberianDawn.exe" - File "${SRCDIR}\Dune2000.exe" - File "${SRCDIR}\OpenRA.Game.exe" - File "${SRCDIR}\OpenRA.Game.exe.config" - File "${SRCDIR}\OpenRA.Utility.exe" - File "${SRCDIR}\OpenRA.Server.exe" - File "${SRCDIR}\OpenRA.Platforms.Default.dll" - File "${SRCDIR}\ICSharpCode.SharpZipLib.dll" - File "${SRCDIR}\FuzzyLogicLibrary.dll" - File "${SRCDIR}\Open.Nat.dll" - File "${SRCDIR}\VERSION" - File "${SRCDIR}\AUTHORS" - File "${SRCDIR}\COPYING" - File "${SRCDIR}\README.html" - File "${SRCDIR}\CHANGELOG.html" - File "${SRCDIR}\CONTRIBUTING.html" - File "${SRCDIR}\OpenRA.ico" - File "${SRCDIR}\RedAlert.ico" - File "${SRCDIR}\TiberianDawn.ico" - File "${SRCDIR}\Dune2000.ico" - File "${SRCDIR}\SharpFont.dll" - File "${SRCDIR}\SDL2-CS.dll" - File "${SRCDIR}\OpenAL-CS.dll" - File "${SRCDIR}\global mix database.dat" - File "${SRCDIR}\MaxMind.Db.dll" - File "${SRCDIR}\GeoLite2-Country.mmdb.gz" - File "${SRCDIR}\eluant.dll" - File "${SRCDIR}\rix0rrr.BeaconLib.dll" - File "${DEPSDIR}\soft_oal.dll" - File "${DEPSDIR}\SDL2.dll" - File "${DEPSDIR}\freetype6.dll" - File "${DEPSDIR}\lua51.dll" - - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - CreateDirectory "$SMPROGRAMS\$StartMenuFolder" - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Red Alert${SUFFIX}.lnk" $OUTDIR\RedAlert.exe "" \ - "$OUTDIR\RedAlert.exe" "" "" "" "" - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Tiberian Dawn${SUFFIX}.lnk" $OUTDIR\TiberianDawn.exe "" \ - "$OUTDIR\TiberianDawn.exe" "" "" "" "" - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Dune 2000${SUFFIX}.lnk" $OUTDIR\Dune2000.exe "" \ - "$OUTDIR\Dune2000.exe" "" "" "" "" - !insertmacro MUI_STARTMENU_WRITE_END - - SetOutPath "$INSTDIR\lua" - File "${SRCDIR}\lua\*.lua" - - SetOutPath "$INSTDIR\glsl" - File "${SRCDIR}\glsl\*.frag" - File "${SRCDIR}\glsl\*.vert" - - ; Estimated install size for the control panel properties - ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 - IntFmt $0 "0x%08X" $0 - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "EstimatedSize" "$0" - - SetShellVarContext all - CreateDirectory "$APPDATA\OpenRA\ModMetadata" - nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" ra --register-mod "$INSTDIR\RedAlert.exe" system' - nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" ra --clear-invalid-mod-registrations system' - nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" cnc --register-mod "$INSTDIR\TiberianDawn.exe" system' - nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" cnc --clear-invalid-mod-registrations system' - nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" d2k --register-mod "$INSTDIR\Dune2000.exe" system' - nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" d2k --clear-invalid-mod-registrations system' - SetShellVarContext current - -SectionEnd - -Section "Desktop Shortcut" DESKTOPSHORTCUT - SetOutPath "$INSTDIR" - CreateShortCut "$DESKTOP\OpenRA - Red Alert${SUFFIX}.lnk" $INSTDIR\RedAlert.exe "" \ - "$INSTDIR\RedAlert.exe" "" "" "" "" - CreateShortCut "$DESKTOP\OpenRA - Tiberian Dawn${SUFFIX}.lnk" $INSTDIR\TiberianDawn.exe "" \ - "$INSTDIR\TiberianDawn.exe" "" "" "" "" - CreateShortCut "$DESKTOP\OpenRA - Dune 2000${SUFFIX}.lnk" $INSTDIR\Dune2000.exe "" \ - "$INSTDIR\Dune2000.exe" "" "" "" "" -SectionEnd - -;*************************** -;Dependency Sections -;*************************** -Section "-DotNet" DotNet - ClearErrors - ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client" "Install" - IfErrors error 0 - IntCmp $0 1 0 error 0 - ClearErrors - ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Install" - IfErrors error 0 - IntCmp $0 1 done error done - error: - MessageBox MB_OK ".NET Framework v4.5 or later is required to run OpenRA." - Abort - done: -SectionEnd - -;*************************** -;Uninstaller Sections -;*************************** -Section "-Uninstaller" - WriteUninstaller $INSTDIR\uninstaller.exe - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "DisplayName" "OpenRA${SUFFIX}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "UninstallString" "$INSTDIR\uninstaller.exe" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "InstallLocation" "$INSTDIR" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "DisplayIcon" "$INSTDIR\OpenRA.ico" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "Publisher" "OpenRA developers" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "URLInfoAbout" "http://openra.net" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "Readme" "$INSTDIR\README.html" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "DisplayVersion" "${TAG}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "NoModify" "1" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "NoRepair" "1" -SectionEnd - -!macro Clean UN -Function ${UN}Clean - nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" ra --unregister-mod system' - nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" cnc --unregister-mod system' - nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" d2k --unregister-mod system' - - RMDir /r $INSTDIR\mods - RMDir /r $INSTDIR\maps - RMDir /r $INSTDIR\glsl - RMDir /r $INSTDIR\lua - Delete $INSTDIR\RedAlert.exe - Delete $INSTDIR\TiberianDawn.exe - Delete $INSTDIR\Dune2000.exe - Delete $INSTDIR\OpenRA.Game.exe - Delete $INSTDIR\OpenRA.Game.exe.config - Delete $INSTDIR\OpenRA.Utility.exe - Delete $INSTDIR\OpenRA.Server.exe - Delete $INSTDIR\OpenRA.Platforms.Default.dll - Delete $INSTDIR\ICSharpCode.SharpZipLib.dll - Delete $INSTDIR\FuzzyLogicLibrary.dll - Delete $INSTDIR\Open.Nat.dll - Delete $INSTDIR\SharpFont.dll - Delete $INSTDIR\VERSION - Delete $INSTDIR\AUTHORS - Delete $INSTDIR\COPYING - Delete $INSTDIR\README.html - Delete $INSTDIR\CHANGELOG.html - Delete $INSTDIR\CONTRIBUTING.html - Delete $INSTDIR\OpenRA.ico - Delete $INSTDIR\RedAlert.ico - Delete $INSTDIR\TiberianDawn.ico - Delete $INSTDIR\Dune2000.ico - Delete "$INSTDIR\global mix database.dat" - Delete $INSTDIR\MaxMind.Db.dll - Delete $INSTDIR\GeoLite2-Country.mmdb.gz - Delete $INSTDIR\KopiLua.dll - Delete $INSTDIR\soft_oal.dll - Delete $INSTDIR\SDL2.dll - Delete $INSTDIR\lua51.dll - Delete $INSTDIR\eluant.dll - Delete $INSTDIR\freetype6.dll - Delete $INSTDIR\SDL2-CS.dll - Delete $INSTDIR\OpenAL-CS.dll - Delete $INSTDIR\rix0rrr.BeaconLib.dll - RMDir /r $INSTDIR\Support - - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" - DeleteRegKey HKLM "Software\Classes\openra-ra-${TAG}" - DeleteRegKey HKLM "Software\Classes\openra-cnc-${TAG}" - DeleteRegKey HKLM "Software\Classes\openra-d2k-${TAG}" - - Delete $INSTDIR\uninstaller.exe - RMDir $INSTDIR - - !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder - - ; Clean up start menu: Delete all our icons, and the OpenRA folder - ; *only* if we were the only installed version - Delete "$SMPROGRAMS\$StartMenuFolder\Red Alert${SUFFIX}.lnk" - Delete "$SMPROGRAMS\$StartMenuFolder\Tiberian Dawn${SUFFIX}.lnk" - Delete "$SMPROGRAMS\$StartMenuFolder\Dune 2000${SUFFIX}.lnk" - RMDir "$SMPROGRAMS\$StartMenuFolder" - - Delete "$DESKTOP\OpenRA - Red Alert${SUFFIX}.lnk" - Delete "$DESKTOP\OpenRA - Tiberian Dawn${SUFFIX}.lnk" - Delete "$DESKTOP\OpenRA - Dune 2000${SUFFIX}.lnk" - DeleteRegKey HKLM "Software\OpenRA${SUFFIX}" -FunctionEnd -!macroend - -!insertmacro Clean "" -!insertmacro Clean "un." - -Section "Uninstall" - Call un.Clean -SectionEnd - -;*************************** -;Section Descriptions -;*************************** -LangString DESC_GAME ${LANG_ENGLISH} "OpenRA engine, official mods and dependencies" -LangString DESC_DESKTOPSHORTCUT ${LANG_ENGLISH} "Place shortcut on the Desktop." - -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${GAME} $(DESC_GAME) - !insertmacro MUI_DESCRIPTION_TEXT ${DESKTOPSHORTCUT} $(DESC_DESKTOPSHORTCUT) -!insertmacro MUI_FUNCTION_DESCRIPTION_END - -;*************************** -;Callbacks -;*************************** - -Function .onInstFailed - Call Clean -FunctionEnd +; Copyright 2007-2018 OpenRA developers (see AUTHORS) +; This file is part of OpenRA. +; +; OpenRA is free software: you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation, either version 3 of the License, or +; (at your option) any later version. +; +; OpenRA is distributed in the hope that it will be useful, +; but WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +; GNU General Public License for more details. +; +; You should have received a copy of the GNU General Public License +; along with OpenRA. If not, see . + + +!include "MUI2.nsh" +!include "FileFunc.nsh" +!include "WordFunc.nsh" + +Name "OpenRA" +OutFile "OpenRA.Setup.exe" + +InstallDir "$PROGRAMFILES\OpenRA${SUFFIX}" +InstallDirRegKey HKLM "Software\OpenRA${SUFFIX}" "InstallDir" + +SetCompressor lzma +RequestExecutionLevel admin + +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "${SRCDIR}\COPYING" +!insertmacro MUI_PAGE_DIRECTORY + +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenRA${SUFFIX}" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "OpenRA" + +Var StartMenuFolder +!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder + +!insertmacro MUI_PAGE_COMPONENTS +!insertmacro MUI_PAGE_INSTFILES + +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES +!insertmacro MUI_UNPAGE_FINISH + +!insertmacro MUI_LANGUAGE "English" + +;*************************** +;Section Definitions +;*************************** +Section "-Reg" Reg + + ; Installation directory + WriteRegStr HKLM "Software\OpenRA${SUFFIX}" "InstallDir" $INSTDIR + + ; Join server URL Scheme + WriteRegStr HKLM "Software\Classes\openra-ra-${TAG}" "" "URL:Join OpenRA server" + WriteRegStr HKLM "Software\Classes\openra-ra-${TAG}" "URL Protocol" "" + WriteRegStr HKLM "Software\Classes\openra-ra-${TAG}\DefaultIcon" "" "$INSTDIR\RedAlert.ico,0" + WriteRegStr HKLM "Software\Classes\openra-ra-${TAG}\Shell\Open\Command" "" "$INSTDIR\RedAlert.exe Launch.URI=%1" + + WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}" "" "URL:Join OpenRA server" + WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}" "URL Protocol" "" + WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}\DefaultIcon" "" "$INSTDIR\TiberianDawn.ico,0" + WriteRegStr HKLM "Software\Classes\openra-cnc-${TAG}\Shell\Open\Command" "" "$INSTDIR\TiberianDawn.exe Launch.URI=%1" + + WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}" "" "URL:Join OpenRA server" + WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}" "URL Protocol" "" + WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}\DefaultIcon" "" "$INSTDIR\Dune2000.ico,0" + WriteRegStr HKLM "Software\Classes\openra-d2k-${TAG}\Shell\Open\Command" "" "$INSTDIR\Dune2000.exe Launch.URI=%1" + + ; Remove obsolete file associations + DeleteRegKey HKLM "Software\Classes\.orarep" + DeleteRegKey HKLM "Software\Classes\OpenRA_replay" + DeleteRegKey HKLM "Software\Classes\.oramod" + DeleteRegKey HKLM "Software\Classes\OpenRA_mod" + DeleteRegKey HKLM "Software\Classes\openra" + +SectionEnd + +Section "Game" GAME + SectionIn RO + + RMDir /r "$INSTDIR\mods" + SetOutPath "$INSTDIR\mods" + File /r "${SRCDIR}\mods\common" + File /r "${SRCDIR}\mods\cnc" + File /r "${SRCDIR}\mods\d2k" + File /r "${SRCDIR}\mods\ra" + File /r "${SRCDIR}\mods\modcontent" + + SetOutPath "$INSTDIR" + File "${SRCDIR}\RedAlert.exe" + File "${SRCDIR}\TiberianDawn.exe" + File "${SRCDIR}\Dune2000.exe" + File "${SRCDIR}\OpenRA.Game.exe" + File "${SRCDIR}\OpenRA.Game.exe.config" + File "${SRCDIR}\OpenRA.Utility.exe" + File "${SRCDIR}\OpenRA.Server.exe" + File "${SRCDIR}\OpenRA.Platforms.Default.dll" + File "${SRCDIR}\ICSharpCode.SharpZipLib.dll" + File "${SRCDIR}\FuzzyLogicLibrary.dll" + File "${SRCDIR}\Open.Nat.dll" + File "${SRCDIR}\VERSION" + File "${SRCDIR}\AUTHORS" + File "${SRCDIR}\COPYING" + File "${SRCDIR}\README.html" + File "${SRCDIR}\CHANGELOG.html" + File "${SRCDIR}\CONTRIBUTING.html" + File "${SRCDIR}\OpenRA.ico" + File "${SRCDIR}\RedAlert.ico" + File "${SRCDIR}\TiberianDawn.ico" + File "${SRCDIR}\Dune2000.ico" + File "${SRCDIR}\SharpFont.dll" + File "${SRCDIR}\SDL2-CS.dll" + File "${SRCDIR}\OpenAL-CS.dll" + File "${SRCDIR}\global mix database.dat" + File "${SRCDIR}\MaxMind.Db.dll" + File "${SRCDIR}\GeoLite2-Country.mmdb.gz" + File "${SRCDIR}\eluant.dll" + File "${SRCDIR}\rix0rrr.BeaconLib.dll" + File "${DEPSDIR}\soft_oal.dll" + File "${DEPSDIR}\SDL2.dll" + File "${DEPSDIR}\freetype6.dll" + File "${DEPSDIR}\lua51.dll" + + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$StartMenuFolder" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Red Alert${SUFFIX}.lnk" $OUTDIR\RedAlert.exe "" \ + "$OUTDIR\RedAlert.exe" "" "" "" "" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Tiberian Dawn${SUFFIX}.lnk" $OUTDIR\TiberianDawn.exe "" \ + "$OUTDIR\TiberianDawn.exe" "" "" "" "" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Dune 2000${SUFFIX}.lnk" $OUTDIR\Dune2000.exe "" \ + "$OUTDIR\Dune2000.exe" "" "" "" "" + !insertmacro MUI_STARTMENU_WRITE_END + + SetOutPath "$INSTDIR\lua" + File "${SRCDIR}\lua\*.lua" + + SetOutPath "$INSTDIR\glsl" + File "${SRCDIR}\glsl\*.frag" + File "${SRCDIR}\glsl\*.vert" + + ; Estimated install size for the control panel properties + ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 + IntFmt $0 "0x%08X" $0 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "EstimatedSize" "$0" + + SetShellVarContext all + CreateDirectory "$APPDATA\OpenRA\ModMetadata" + nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" ra --register-mod "$INSTDIR\RedAlert.exe" system' + nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" ra --clear-invalid-mod-registrations system' + nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" cnc --register-mod "$INSTDIR\TiberianDawn.exe" system' + nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" cnc --clear-invalid-mod-registrations system' + nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" d2k --register-mod "$INSTDIR\Dune2000.exe" system' + nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" d2k --clear-invalid-mod-registrations system' + SetShellVarContext current + +SectionEnd + +Section "Desktop Shortcut" DESKTOPSHORTCUT + SetOutPath "$INSTDIR" + CreateShortCut "$DESKTOP\OpenRA - Red Alert${SUFFIX}.lnk" $INSTDIR\RedAlert.exe "" \ + "$INSTDIR\RedAlert.exe" "" "" "" "" + CreateShortCut "$DESKTOP\OpenRA - Tiberian Dawn${SUFFIX}.lnk" $INSTDIR\TiberianDawn.exe "" \ + "$INSTDIR\TiberianDawn.exe" "" "" "" "" + CreateShortCut "$DESKTOP\OpenRA - Dune 2000${SUFFIX}.lnk" $INSTDIR\Dune2000.exe "" \ + "$INSTDIR\Dune2000.exe" "" "" "" "" +SectionEnd + +;*************************** +;Dependency Sections +;*************************** +Section "-DotNet" DotNet + ClearErrors + ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client" "Install" + IfErrors error 0 + IntCmp $0 1 0 error 0 + ClearErrors + ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Install" + IfErrors error 0 + IntCmp $0 1 done error done + error: + MessageBox MB_OK ".NET Framework v4.5 or later is required to run OpenRA." + Abort + done: +SectionEnd + +;*************************** +;Uninstaller Sections +;*************************** +Section "-Uninstaller" + WriteUninstaller $INSTDIR\uninstaller.exe + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "DisplayName" "OpenRA${SUFFIX}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "UninstallString" "$INSTDIR\uninstaller.exe" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "InstallLocation" "$INSTDIR" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "DisplayIcon" "$INSTDIR\OpenRA.ico" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "Publisher" "OpenRA developers" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "URLInfoAbout" "http://openra.net" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "Readme" "$INSTDIR\README.html" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "DisplayVersion" "${TAG}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "NoModify" "1" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" "NoRepair" "1" +SectionEnd + +!macro Clean UN +Function ${UN}Clean + nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" ra --unregister-mod system' + nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" cnc --unregister-mod system' + nsExec::ExecToLog '"$INSTDIR\OpenRA.Utility.exe" d2k --unregister-mod system' + + RMDir /r $INSTDIR\mods + RMDir /r $INSTDIR\maps + RMDir /r $INSTDIR\glsl + RMDir /r $INSTDIR\lua + Delete $INSTDIR\RedAlert.exe + Delete $INSTDIR\TiberianDawn.exe + Delete $INSTDIR\Dune2000.exe + Delete $INSTDIR\OpenRA.Game.exe + Delete $INSTDIR\OpenRA.Game.exe.config + Delete $INSTDIR\OpenRA.Utility.exe + Delete $INSTDIR\OpenRA.Server.exe + Delete $INSTDIR\OpenRA.Platforms.Default.dll + Delete $INSTDIR\ICSharpCode.SharpZipLib.dll + Delete $INSTDIR\FuzzyLogicLibrary.dll + Delete $INSTDIR\Open.Nat.dll + Delete $INSTDIR\SharpFont.dll + Delete $INSTDIR\VERSION + Delete $INSTDIR\AUTHORS + Delete $INSTDIR\COPYING + Delete $INSTDIR\README.html + Delete $INSTDIR\CHANGELOG.html + Delete $INSTDIR\CONTRIBUTING.html + Delete $INSTDIR\OpenRA.ico + Delete $INSTDIR\RedAlert.ico + Delete $INSTDIR\TiberianDawn.ico + Delete $INSTDIR\Dune2000.ico + Delete "$INSTDIR\global mix database.dat" + Delete $INSTDIR\MaxMind.Db.dll + Delete $INSTDIR\GeoLite2-Country.mmdb.gz + Delete $INSTDIR\KopiLua.dll + Delete $INSTDIR\soft_oal.dll + Delete $INSTDIR\SDL2.dll + Delete $INSTDIR\lua51.dll + Delete $INSTDIR\eluant.dll + Delete $INSTDIR\freetype6.dll + Delete $INSTDIR\SDL2-CS.dll + Delete $INSTDIR\OpenAL-CS.dll + Delete $INSTDIR\rix0rrr.BeaconLib.dll + RMDir /r $INSTDIR\Support + + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenRA${SUFFIX}" + DeleteRegKey HKLM "Software\Classes\openra-ra-${TAG}" + DeleteRegKey HKLM "Software\Classes\openra-cnc-${TAG}" + DeleteRegKey HKLM "Software\Classes\openra-d2k-${TAG}" + + Delete $INSTDIR\uninstaller.exe + RMDir $INSTDIR + + !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder + + ; Clean up start menu: Delete all our icons, and the OpenRA folder + ; *only* if we were the only installed version + Delete "$SMPROGRAMS\$StartMenuFolder\Red Alert${SUFFIX}.lnk" + Delete "$SMPROGRAMS\$StartMenuFolder\Tiberian Dawn${SUFFIX}.lnk" + Delete "$SMPROGRAMS\$StartMenuFolder\Dune 2000${SUFFIX}.lnk" + RMDir "$SMPROGRAMS\$StartMenuFolder" + + Delete "$DESKTOP\OpenRA - Red Alert${SUFFIX}.lnk" + Delete "$DESKTOP\OpenRA - Tiberian Dawn${SUFFIX}.lnk" + Delete "$DESKTOP\OpenRA - Dune 2000${SUFFIX}.lnk" + DeleteRegKey HKLM "Software\OpenRA${SUFFIX}" +FunctionEnd +!macroend + +!insertmacro Clean "" +!insertmacro Clean "un." + +Section "Uninstall" + Call un.Clean +SectionEnd + +;*************************** +;Section Descriptions +;*************************** +LangString DESC_GAME ${LANG_ENGLISH} "OpenRA engine, official mods and dependencies" +LangString DESC_DESKTOPSHORTCUT ${LANG_ENGLISH} "Place shortcut on the Desktop." + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${GAME} $(DESC_GAME) + !insertmacro MUI_DESCRIPTION_TEXT ${DESKTOPSHORTCUT} $(DESC_DESKTOPSHORTCUT) +!insertmacro MUI_FUNCTION_DESCRIPTION_END + +;*************************** +;Callbacks +;*************************** + +Function .onInstFailed + Call Clean +FunctionEnd