aboutsummaryrefslogtreecommitdiffstats
path: root/Installer/UltraStarDeluxeFull.nsi
diff options
context:
space:
mode:
Diffstat (limited to 'Installer/UltraStarDeluxeFull.nsi')
-rw-r--r--Installer/UltraStarDeluxeFull.nsi566
1 files changed, 566 insertions, 0 deletions
diff --git a/Installer/UltraStarDeluxeFull.nsi b/Installer/UltraStarDeluxeFull.nsi
new file mode 100644
index 00000000..66c0234b
--- /dev/null
+++ b/Installer/UltraStarDeluxeFull.nsi
@@ -0,0 +1,566 @@
+; --------------------------------------------------------------
+; UltraStar Deluxe - Installation Wizard with NSIS (USDXIWWNSIS)
+; --------------------------------------------------------------
+
+!include "MUI.nsh" ; Include the macros for the Modern User Interface
+!include "LogicLib.nsh"
+!include ".\settings\GameExplorer.nsh"
+!include ".\settings\functions.nsh"
+!include "WinVer.nsh"
+
+!define icon_inst ".\icons\ustar.ico" ; Icon for Installation
+!define icon_uninst ".\icons\uninstall.ico" ; Icon for Uninstallation
+
+SetCompress Auto
+SetCompressor /SOLID lzma
+SetCompressorDictSize 32
+SetDatablockOptimize On
+
+; XPStyle on
+
+; ------------------------------------------------------
+; Declaration of Variables (See .\settings\variables.nsh)
+; ------------------------------------------------------
+
+!include ".\settings\variables.nsh"
+
+!addPluginDir "..\InstallerDependencies\plugins\"
+
+; -------------------------------
+; Strings for Installation Wizard
+; -------------------------------
+
+!define MUI_WELCOMEPAGE_TITLE "$(wp_title)"
+
+!define MUI_WELCOMEPAGE_TEXT "$(wp_text)"
+;!define MUI_FINISHPAGE_SHOWREADME_TEXT "$(fp_showreadme)"
+!define MUI_FINISHPAGE_LINK "$(fp_link)"
+!define MUI_UNCONFIRMPAGE_TEXT_TOP "UltraStar Deluxe - $(sm_uninstall)"
+
+!define MUI_LICENSEPAGE_RADIOBUTTONS
+!define MUI_WELCOMEPAGE_TITLE_3LINES
+
+!define MUI_FINISHPAGE_TITLE_3LINES
+
+!define MUI_FINISHPAGE_RUN "$INSTDIR\${exe}.exe"
+!define MUI_FINISHPAGE_RUN_NOTCHECKED
+
+;!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\ReadMe.txt"
+
+!define MUI_FINISHPAGE_LINK_LOCATION "${homepage}"
+!define MUI_FINISHPAGE_NOREBOOTSUPPORT
+!define MUI_FINISHPAGE_TEXT_LARGE
+!define MUI_FINISHPAGE_TEXT "$(fp_text)"
+
+!define MUI_UNFINISHPAGE_LINK_LOCATION "${forum}"
+
+!define MUI_COMPONENTSPAGE_SMALLDESC
+
+; The other (multi) language Strings are at the bottom of this file
+
+; --------------------------------------------------
+; Begin of the installation wizard
+; --------------------------------------------------
+
+Name "${p_name} V.${version}"
+Brandingtext "${p_name} Installation"
+OutFile "ultrastardx-${version}-installer-full.exe"
+!define ins_name "Install ${p_name} V.${version}.exe"
+
+InstallDir "$PROGRAMFILES\${p_name}"
+
+ShowInstDetails show
+ShowUnInstDetails show
+
+!define PRODUCT_NAME "${p_name}"
+!define PRODUCT_VERSION "${version}"
+!define PRODUCT_PUBLISHER "${publisher}"
+!define PRODUCT_WEB_SITE "${homepage}"
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
+!define PRODUCT_UNINST_ROOT_KEY "HKLM"
+!define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir"
+
+; Modern User Interface (MUI) Stuff
+
+!define MUI_ICON "${icon_inst}" ; Icon for Installation
+!define MUI_UNICON "${icon_uninst}" ; Icon for Uninstallation
+
+!define MUI_HEADERIMAGE
+!define MUI_HEADERIMAGE_BITMAP "${bmp_header}" ; Header Bitmap of the installation (Size: 150x57 px)
+!define MUI_HEADERIMAGE_UNBITMAP "${bmp_header}" ; Header Bitmap of the uninstallation (Size: 150x57 px)
+!define MUI_WELCOMEFINISHPAGE_BITMAP "${bmp_side}" ; Left Side Bitmap of Welcome & Finish Page while Installation (Size: 164x314 px)
+!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${bmp_side}" ; Left Side Bitmap of Welcome & Finish Page while Uninstallation (Size: 164x314 px)
+!define MUI_BGCOLOR "FFFFFF" ; RGB Background color (for header, welcome & finish page)
+!define MUI_WELCOMEFINISHPAGE_INI "${mui_ini}" ; Installation Options for Welcome & Finish Page (Installation)
+!define MUI_UNWELCOMEFINISHPAGE_INI "${mui_ini}" ; Installation Options for Welcome & Finish Page (Uninstallation)
+!define MUI_LICENSEPAGE_BGCOLOR "${license_bgcolor}" ; Background Color of Licence agreement
+!define MUI_COMPONENTSPAGE_CHECKBITMAP "${bmp_check}" ; Bitmap of Checks at Components Selection Page
+!define MUI_DIRECTORYPAGE_BGCOLOR "${directory_bgcolor}" ; RGB Background Color for Directory textbox
+!define MUI_STARTMENUPAGE_BGCOLOR "${smp_bgcolor}" ; RGB Background of Startmenu List and Textbox
+;!define MUI_INSTFILESPAGE_COLORS "${dets_bgcolor}" ; Background Color of Details Screen while files are being extracted
+
+
+!define MUI_LANGDLL_WINDOWTITLE "USdx In-/Uninstaller: Choose language"
+!define MUI_LANGDLL_ALWAYSSHOW
+
+!define MUI_FINISHPAGE_NOAUTOCLOSE ; Allows user to check the log file of installation (Comment out if unwanted)
+!define MUI_UNFINISHPAGE_NOAUTOCLOSE ; Allows user to check the log file of uninstallation (Comment out if unwanted)
+
+!define MUI_ABORTWARNING
+!define MUI_ABORTWARNING_TEXT $(str_abort) ; Abort Warning message
+!define MUI_ABORTWARNING_CANCEL_DEFAULT ; Default: Cancel abort (Comment out if unwanted)
+
+!define MUI_FINISHPAGE_SHOWREADME
+!define MUI_FINISHPAGE_SHOWREADME_TEXT $(sc_desktop)
+!define MUI_FINISHPAGE_SHOWREADME_FUNCTION CreateDesktopShortCuts
+
+; --------------------------------------------------
+; Begin of the installation routine
+; --------------------------------------------------
+
+; Pages for MUI Installation
+
+!insertmacro MUI_PAGE_WELCOME
+!insertmacro MUI_PAGE_LICENSE "${file_license}"
+!insertmacro MUI_PAGE_COMPONENTS
+!insertmacro MUI_PAGE_DIRECTORY
+
+
+; Start menu page
+
+var ICONS_GROUP
+!define MUI_STARTMENUPAGE_NODISABLE
+!define MUI_STARTMENUPAGE_DEFAULTFOLDER "UltraStar Deluxe"
+!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
+!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
+!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}"
+!insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP
+
+!insertmacro MUI_PAGE_INSTFILES
+Page custom Settings
+
+; USDX Settings Page
+
+Function Settings
+
+!insertmacro MUI_HEADER_TEXT "$(Settings_TITLE)" "$(Settings_SUBTITLE)"
+
+ !insertmacro MUI_INSTALLOPTIONS_DISPLAY "Settings-$LANGUAGE"
+
+; Get all the variables:
+
+var /GLOBAL fullscreen
+var /GLOBAL language2
+var /GLOBAL resolution
+var /GLOBAL tabs
+var /GLOBAL animations
+ !insertmacro MUI_INSTALLOPTIONS_READ $fullscreen "Settings-$LANGUAGE" "Field 6" "State"
+ !insertmacro MUI_INSTALLOPTIONS_READ $language2 "Settings-$LANGUAGE" "Field 7" "State"
+ !insertmacro MUI_INSTALLOPTIONS_READ $resolution "Settings-$LANGUAGE" "Field 8" "State"
+ !insertmacro MUI_INSTALLOPTIONS_READ $tabs "Settings-$LANGUAGE" "Field 9" "State"
+ !insertmacro MUI_INSTALLOPTIONS_READ $animations "Settings-$LANGUAGE" "Field 10" "State"
+
+; Write all variables to config.ini
+
+FileOpen $0 '$INSTDIR\config.ini' w
+FileWrite $0 '[Game]$\r$\n'
+FileClose $0
+
+${If} $language2 != ""
+
+${WriteToConfig} "Language=$language2$\r$\n" "$INSTDIR\config.ini"
+
+${EndIf}
+
+${If} $tabs != ""
+
+${WriteToConfig} "Tabs=$tabs$\r$\n" "$INSTDIR\config.ini"
+
+${EndIf}
+
+${WriteToConfig} "[Graphics]$\r$\n" "$INSTDIR\config.ini"
+
+${If} $fullscreen != ""
+
+${WriteToConfig} "FullScreen=$fullscreen$\r$\n" "$INSTDIR\config.ini"
+
+${EndIf}
+
+${If} $resolution != ""
+
+${WriteToConfig} "Resolution=$resolution$\r$\n" "$INSTDIR\config.ini"
+
+${EndIf}
+
+${WriteToConfig} "[Advanced]$\r$\n" "$INSTDIR\config.ini"
+
+; Animations On / Off Tasks
+
+${If} $animations == "Off"
+
+${WriteToConfig} "LoadAnimation=Off$\r$\n" "$INSTDIR\config.ini"
+
+${WriteToConfig} "EffectSing=Off$\r$\n" "$INSTDIR\config.ini"
+
+${WriteToConfig} "ScreenFade=Off$\r$\n" "$INSTDIR\config.ini"
+
+${EndIf}
+
+
+FunctionEnd ;Custom page end
+
+!insertmacro MUI_PAGE_FINISH
+
+; Pages for MUI Uninstallation
+
+!insertmacro MUI_UNPAGE_WELCOME
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+; Language files
+
+!insertmacro MUI_LANGUAGE "English"
+!insertmacro MUI_LANGUAGE "German"
+
+; Finish Page
+
+!insertmacro MUI_UNPAGE_FINISH
+
+; ---------------------------------------------------------
+; Section1: Main components of UltraStar Deluxe
+; ---------------------------------------------------------
+
+LangString DESC_Section1 ${LANG_ENGLISH} "${eng_sec1_desc}" ; Adds the description to section1
+LangString DESC_Section1 ${LANG_GERMAN} "${ger_sec1_desc}"
+
+LangString sec1 ${LANG_ENGLISH} "${eng_sec1}" ; Name of section1
+LangString sec1 ${LANG_GERMAN} "${ger_sec1}"
+
+Section $(sec1) Section1
+ SectionIn RO ; readonly
+ SetOutPath $INSTDIR
+ SetOverwrite try
+
+!include ".\settings\files_in.nsh"
+
+; Create shortcuts
+
+ SetOutPath "$INSTDIR"
+
+ !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+ SetShellVarContext all
+ SetOutPath "$INSTDIR"
+
+ CreateDirectory "${p_name}"
+ CreateDirectory "$SMPROGRAMS\$ICONS_GROUP"
+ CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_shortcut).lnk" "$INSTDIR\${exe}.exe"
+; CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_documentation).lnk" "$INSTDIR\documentation.pdf"
+ CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_website).lnk" "http://www.ultrastardeluxe.org/"
+ CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_readme).lnk" "$INSTDIR\ReadMe.txt"
+ CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_license).lnk" "$INSTDIR\License.txt"
+ CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_uninstall).lnk" "$INSTDIR\Uninstall.exe"
+ !insertmacro MUI_STARTMENU_WRITE_END
+
+; WINDOWS VISTA GAME EXPLORER
+
+${If} ${AtLeastWinVista}
+
+${GameExplorer_GenerateGUID}
+Pop $0
+
+${GameExplorer_AddGame} all "${gdf_path}" $WINDIR $INSTDIR\${exe}.exe $0
+
+CreateDirectory $APPDATA\Microsoft\Windows\GameExplorer\$0\PlayTasks\1
+CreateShortcut "$APPDATA\Microsoft\Windows\GameExplorer\$0\PlayTasks\1\Benchmark.lnk" \
+ "$INSTDIR\${exe}.exe" "-Benchmark"
+
+CreateDirectory $APPDATA\Microsoft\Windows\GameExplorer\$0\PlayTasks\2
+CreateShortcut "$APPDATA\Microsoft\Windows\GameExplorer\$0\PlayTasks\2\Joypad.lnk" \
+ "$INSTDIR\${exe}.exe" "-Joypad"
+
+CreateDirectory $APPDATA\Microsoft\Windows\GameExplorer\$0\PlayTasks\3
+CreateShortcut "$APPDATA\Microsoft\Windows\GameExplorer\$0\PlayTasks\3\Fullscreen.lnk" \
+ "$INSTDIR\${exe}.exe" "-FullScreen"
+
+CreateDirectory $APPDATA\Microsoft\Windows\GameExplorer\$0\PlayTasks\3
+CreateShortcut "$APPDATA\Microsoft\Windows\GameExplorer\$0\PlayTasks\3\Dual Screen.lnk" \
+ "$INSTDIR\${exe}.exe" "-Screen 2"
+
+CreateDirectory $APPDATA\Microsoft\Windows\GameExplorer\$0\SupportTasks\0
+CreateShortcut "$APPDATA\Microsoft\Windows\GameExplorer\$0\SupportTasks\0\Support Forum.lnk" \
+ "http://forum.ultrastardeluxe.org"
+
+${EndIf}
+
+; Create Uninstaller:
+
+ WriteUninstaller "$INSTDIR\Uninstall.exe"
+
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${p_name}"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
+
+SectionEnd
+
+; ---------------------------------------------------------
+; Section2: Example Song "Dead Smiling Pirates"
+; ---------------------------------------------------------
+
+ LangString DESC_g2Section1 ${LANG_ENGLISH} "${eng_g2Section1_desc}"
+ LangString DESC_g2Section1 ${LANG_GERMAN} "${ger_g2Section1_desc}"
+
+ LangString DESC_g2Section2 ${LANG_ENGLISH} "${eng_g2Section2_desc}"
+ LangString DESC_g2Section2 ${LANG_GERMAN} "${ger_g2Section2_desc}"
+
+ LangString sec2 ${LANG_ENGLISH} "${eng_sec2}"
+ LangString sec2 ${LANG_GERMAN} "${ger_sec2}"
+
+SectionGroup $(sec2) Section2
+
+Section /o "Dead Smiling Pirates - I 18" g2Section1
+ AddSize 2816
+ SetOverwrite try
+ SetOutPath "$INSTDIR"
+ CreateDirectory "$INSTDIR\Songs\Dead Smiling Pirates - I 18 [DEMO]"
+ SetOutPath "$INSTDIR\Songs\Dead Smiling Pirates - I 18 [DEMO]\"
+
+; Download song:
+; NSISdl::download /TIMEOUT=30000 ${demosong} $TEMP\Song-I-18.zip
+;
+; Pop $R0 ;Get the return value
+; StrCmp $R0 "success" dlok
+; MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+; dlok:
+; nsisunz::Unzip "$TEMP\Song-I-18.zip" "$INSTDIR\Songs\Dead Smiling Pirates - I 18 [DEMO]\"
+
+; Delete "$TEMP\Song-I-18.zip"
+
+
+ SetOutPath "$INSTDIR"
+
+!include ".\settings\optional\in_song1.nsh"
+
+ SetOutPath "$INSTDIR"
+
+ SectionEnd
+
+Section /o "Steven Dunston - Northern Star" g2Section2
+ AddSize 3769
+ SetOverwrite try
+ SetOutPath "$INSTDIR"
+ CreateDirectory "$INSTDIR\Songs\Steven Dunston - Northern Star [DEMO]"
+ SetOutPath "$INSTDIR\Songs\Steven Dunston - Northern Star [DEMO]\"
+
+; Download song:
+; NSISdl::download /TIMEOUT=30000 ${demosong2} $TEMP\Song-Northern-Star.zip
+
+; Pop $R0 ;Get the return value
+; StrCmp $R0 "success" dlok
+; MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+; dlok:
+; nsisunz::Unzip "$TEMP\Song-Northern-Star.zip" "$INSTDIR\Songs\Steven Dunston - Northern Star [DEMO]\"
+
+; Delete "$TEMP\Song-Northern-Star.zip"
+
+ SetOutPath "$INSTDIR"
+
+!include ".\settings\optional\in_song2.nsh"
+
+ SetOutPath "$INSTDIR"
+
+ SectionEnd
+
+ SectionGroupEnd
+
+; ---------------------------------------------------------
+; Section3: Optional Themes
+; ---------------------------------------------------------
+
+LangString DESC_Section3 ${LANG_ENGLISH} "${eng_sec3_desc}"
+LangString DESC_Section3 ${LANG_GERMAN} "${ger_sec3_desc}"
+
+LangString DESC_g1Sec1 ${LANG_ENGLISH} "${eng_g1Sec1_desc}"
+LangString DESC_g1Sec1 ${LANG_GERMAN} "${ger_g1Sec1_desc}"
+
+LangString DESC_g1Sec2 ${LANG_ENGLISH} "${eng_g1Sec2_desc}"
+LangString DESC_g1Sec2 ${LANG_GERMAN} "${ger_g1Sec2_desc}"
+
+LangString DESC_g1Sec3 ${LANG_ENGLISH} "${eng_g1Sec3_desc}"
+LangString DESC_g1Sec3 ${LANG_GERMAN} "${ger_g1Sec3_desc}"
+
+LangString sec_group ${LANG_ENGLISH} "${eng_sec3}"
+LangString sec_group ${LANG_GERMAN} "${ger_sec3}"
+
+SectionGroup $(sec_group) Section3
+
+ Section "Orange" g1Sec1
+
+; Download theme orange:
+; NSISdl::download /TIMEOUT=30000 ${dl_orange} $TEMP\Theme-Orange.zip
+
+; Pop $R0 ;Get the return value
+; StrCmp $R0 "success" dlok
+; MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+; dlok:
+; nsisunz::Unzip "$TEMP\Theme-Orange.zip" "$INSTDIR\"
+
+; Delete "$TEMP\Theme-Orange.zip"
+
+ SetOutPath "$INSTDIR"
+
+!include ".\settings\optional\in_orange.nsh"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+ Section "Streetlight" g1Sec2
+
+; Download theme Streetlight:
+; NSISdl::download /TIMEOUT=30000 ${dl_streetlight} $TEMP\Theme-Streetlight.zip
+
+; Pop $R0 ;Get the return value
+; StrCmp $R0 "success" dlok
+; MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+; dlok:
+; nsisunz::Unzip "$TEMP\Theme-Streetlight.zip" "$INSTDIR\"
+
+; Delete "$TEMP\Theme-Streetlight.zip"
+
+ SetOutPath "$INSTDIR"
+
+!include ".\settings\optional\in_streetlight.nsh"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+ Section "Vistar" g1Sec3
+
+; Download theme Vistar:
+
+; NSISdl::download /TIMEOUT=30000 ${dl_vistar} $TEMP\Theme-Vistar.zip
+
+; Pop $R0 ;Get the return value
+; StrCmp $R0 "success" dlok
+; MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+; dlok:
+; nsisunz::Unzip "$TEMP\Theme-Vistar.zip" "$INSTDIR\"
+
+; Delete "$TEMP\Theme-Vistar.zip"
+
+ SetOutPath "$INSTDIR"
+
+!include ".\settings\optional\in_vistar.nsh"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+
+SectionGroupEnd
+
+; ---------------------------------------------------------
+; Section4: Uninstallation Wizard
+; ---------------------------------------------------------
+
+Section Uninstall
+ !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP
+
+ !include ".\settings\optional\opt_uninstall.nsh"
+ !include ".\settings\files_un.nsh"
+
+ DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
+
+; Unregister from Windows Vista Game Explorer
+
+${If} ${AtLeastWinVista}
+
+${GameExplorer_RemoveGame} $0
+
+${EndIf}
+
+SectionEnd
+
+!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+ !insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1)
+
+; !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)
+; !insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3)
+
+ !insertmacro MUI_DESCRIPTION_TEXT ${g1Sec1} $(DESC_g1Sec1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g1Sec2} $(DESC_g1Sec2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g1Sec3} $(DESC_g1Sec3)
+
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section1} $(DESC_g2Section1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section2} $(DESC_g2Section2)
+
+!insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+; -----------------------------------------------------------------------
+; Language Strings for Installation / Uninstallation Wizard
+; can be found at .\settings\langstrings.nsh
+; -----------------------------------------------------------------------
+
+!include .\settings\langstrings.nsh
+
+; ------------------------------------------------------------------
+; Functions for the beginning of the installation and uninstallation
+; ------------------------------------------------------------------
+
+; Function for Installation
+
+Function .onInit
+
+ System::Call 'kernel32::CreateMutexA(i 0, i 0, t "USdx Installer.exe") ?e'
+
+ Pop $R0
+
+ StrCmp $R0 0 +3
+ MessageBox MB_OK "The installer is already running."
+ Abort
+
+ !insertmacro MUI_LANGDLL_DISPLAY
+
+ ReadRegStr $R0 HKLM \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \
+ "UninstallString"
+ StrCmp $R0 "" done
+
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION \
+ "${PRODUCT_NAME} is already installed. $\n$\nAre you sure you want to \
+ install it again?" \
+ IDYES done
+ Abort
+
+
+done:
+
+ !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS ".\settings\settings-1031.ini" "Settings-1031"
+ !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS ".\settings\settings-1033.ini" "Settings-1033"
+
+FunctionEnd
+
+; Function for Uninstallation
+
+Function un.onInit
+
+ ${nsProcess::FindProcess} "USdx.exe" $R0
+ StrCmp $R0 0 0 +2
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION 'UltraStar Deluxe cannot be uninstalled while its running! Do you want to close it?' IDYES closeit IDNO end
+
+ closeit:
+ ${nsProcess::KillProcess} "USdx.exe" $R0
+ goto continue
+
+ end:
+ ${nsProcess::Unload}
+ Abort
+
+ continue:
+ !insertmacro MUI_LANGDLL_DISPLAY
+
+FunctionEnd \ No newline at end of file