aboutsummaryrefslogtreecommitdiffstats
path: root/Lua/installer
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2009-03-21 19:16:07 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2009-03-21 19:16:07 +0000
commit5d69ab51fd28961fd43b7e7646768b5a6dcbcb25 (patch)
tree5323292fcb46269f7dbbafe5a15ee399ad74675e /Lua/installer
parent220ae11b40e104d09e2c1ac08203c2a631294d99 (diff)
downloadusdx-5d69ab51fd28961fd43b7e7646768b5a6dcbcb25.tar.gz
usdx-5d69ab51fd28961fd43b7e7646768b5a6dcbcb25.tar.xz
usdx-5d69ab51fd28961fd43b7e7646768b5a6dcbcb25.zip
lua stuff moved to experimental folder
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/experimental@1642 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'Lua/installer')
-rw-r--r--Lua/installer/UltraStar Deluxe.nsi1189
-rw-r--r--Lua/installer/languages/English.nsh94
-rw-r--r--Lua/installer/languages/German.nsh93
-rw-r--r--Lua/installer/settings/GameExplorer.nsh198
-rw-r--r--Lua/installer/settings/files_main_install.nsh55
-rw-r--r--Lua/installer/settings/files_main_uninstall.nsh83
-rw-r--r--Lua/installer/settings/functions.nsh77
-rw-r--r--Lua/installer/settings/settings-1031.ini131
-rw-r--r--Lua/installer/settings/settings-1033.ini131
-rw-r--r--Lua/installer/settings/variables.nsh76
10 files changed, 2127 insertions, 0 deletions
diff --git a/Lua/installer/UltraStar Deluxe.nsi b/Lua/installer/UltraStar Deluxe.nsi
new file mode 100644
index 00000000..c8df95dd
--- /dev/null
+++ b/Lua/installer/UltraStar Deluxe.nsi
@@ -0,0 +1,1189 @@
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; UltraStar Deluxe Installer: Main
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+!include MUI2.nsh
+!include WinVer.nsh
+!include LogicLib.nsh
+!include InstallOptions.nsh
+
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; Variables
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+; Installer Paths:
+
+!define path_settings ".\settings"
+!define path_languages ".\languages"
+!define path_images "..\installerdependencies\images"
+!define path_plugins "..\installerdependencies\plugins"
+!define path_gdf "$WINDIR\gdf.dll"
+
+!addPluginDir "${path_plugins}\"
+
+!include "${path_settings}\variables.nsh"
+!include "${path_settings}\GameExplorer.nsh"
+!include "${path_settings}\functions.nsh"
+
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; Export Settings
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+SetCompress Auto
+SetCompressor /SOLID lzma
+SetCompressorDictSize 32
+SetDatablockOptimize On
+
+XPStyle on
+
+Name "${name} v.${version}"
+Brandingtext "${name} v.${version} Installation"
+OutFile "ultrastardx-${version}-installer-full.exe"
+
+InstallDir "$PROGRAMFILES\${name}"
+
+; Windows Vista:
+
+RequestExecutionLevel user
+
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; Interface Settings
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+; Icons:
+
+!define MUI_ICON "${path_images}\${img_install}"
+!define MUI_UNICON "${path_images}\${img_uninstall}"
+
+; Header and Side Images:
+
+!define MUI_HEADERIMAGE
+!define MUI_HEADERIMAGE_BITMAP "${path_images}\${img_header}"
+!define MUI_HEADERIMAGE_UNBITMAP "${path_images}\${img_header}"
+
+!define MUI_WELCOMEFINISHPAGE_BITMAP "${path_images}\${img_side}"
+!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${path_images}\${img_side}"
+
+; Abort Warnings:
+
+!define MUI_ABORTWARNING
+!define MUI_ABORTWARNING_TEXT "$(abort_install)"
+!define MUI_ABORTWARNING_CANCEL_DEFAULT
+
+!define MUI_UNABORTWARNING
+!define MUI_UNABORTWARNING_TEXT "$(abort_uninstall)"
+!define MUI_UNABORTWARNING_CANCEL_DEFAULT
+
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; Pages Installation Routine Settings
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+; Welcome Page:
+
+!define MUI_WELCOMEPAGE_TITLE_3LINES
+!define MUI_WELCOMEPAGE_TITLE "$(page_welcome_title)"
+!define MUI_WELCOMEPAGE_TEXT "$(page_welcome_txt)"
+
+; License Page:
+
+!define MUI_LICENSEPAGE_RADIOBUTTONS
+
+; Components Page:
+
+!define MUI_COMPONENTSPAGE_SMALLDESC
+!define MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO $(page_components_info)
+
+; Finish Pages:
+
+!define MUI_FINISHPAGE_TITLE_3LINES
+
+!define MUI_FINISHPAGE_TEXT_LARGE
+!define MUI_FINISHPAGE_TEXT "$(page_finish_txt)"
+
+!define MUI_FINISHPAGE_RUN "$INSTDIR\${exe}.exe"
+!define MUI_FINISHPAGE_RUN_NOTCHECKED
+
+!define MUI_FINISHPAGE_LINK "$(page_finish_linktxt)"
+!define MUI_FINISHPAGE_LINK_LOCATION "${homepage}"
+
+!define MUI_FINISHPAGE_SHOWREADME
+!define MUI_FINISHPAGE_SHOWREADME_TEXT $(page_finish_desktop)
+!define MUI_FINISHPAGE_SHOWREADME_FUNCTION CreateDesktopShortCuts
+
+!define MUI_FINISHPAGE_NOAUTOCLOSE
+!define MUI_UNFINISHPAGE_NOAUTOCLOSE
+
+!define MUI_FINISHPAGE_NOREBOOTSUPPORT
+
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; Pages Installation Routine
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+!insertmacro MUI_PAGE_WELCOME
+!insertmacro MUI_PAGE_LICENSE "${license}"
+!insertmacro MUI_PAGE_COMPONENTS
+!insertmacro MUI_PAGE_DIRECTORY
+
+; Start menu page
+
+var ICONS_GROUP
+!define MUI_STARTMENUPAGE_NODISABLE
+!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${name}"
+!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
+
+; USDX Settings Page
+
+Page custom Settings
+
+Function Settings
+
+!insertmacro MUI_HEADER_TEXT " " "$(page_settings_subtitle)"
+
+ !insertmacro INSTALLOPTIONS_DISPLAY "Settings-$LANGUAGE"
+
+; Get all the variables:
+
+var /GLOBAL fullscreen
+var /GLOBAL language2
+var /GLOBAL resolution
+var /GLOBAL tabs
+var /GLOBAL animations
+
+ !insertmacro INSTALLOPTIONS_READ $fullscreen "Settings-$LANGUAGE" "Field 6" "State"
+ !insertmacro INSTALLOPTIONS_READ $language2 "Settings-$LANGUAGE" "Field 7" "State"
+ !insertmacro INSTALLOPTIONS_READ $resolution "Settings-$LANGUAGE" "Field 8" "State"
+ !insertmacro INSTALLOPTIONS_READ $tabs "Settings-$LANGUAGE" "Field 9" "State"
+ !insertmacro 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 ; Settings page End
+
+
+!insertmacro MUI_PAGE_FINISH
+
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; Pages UnInstallation Routine
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+!insertmacro MUI_UNPAGE_WELCOME
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+!insertmacro MUI_UNPAGE_FINISH
+
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; Sections Installation Routine
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+;------------------------------------
+; MAIN COMPONENTS (Section 1)
+;------------------------------------
+
+Section $(name_section1) Section1
+ SectionIn RO
+ SetOutPath $INSTDIR
+ SetOverwrite try
+
+!include "${path_settings}\files_main_install.nsh"
+
+
+; Create Shortcuts:
+
+SetOutPath "$INSTDIR"
+
+!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+ SetShellVarContext all
+ SetOutPath "$INSTDIR"
+
+ CreateDirectory "${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
+
+; Vista Game Explorer:
+
+${If} ${AtLeastWinVista}
+
+${GameExplorer_GenerateGUID}
+Pop $0
+
+${GameExplorer_AddGame} all "${path_gdf}" $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" "-Screens 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" "${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}"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+;------------------------------------
+; OPTIONAL SONGS (Section 2)
+;------------------------------------
+
+SectionGroup $(name_section2) Section2
+
+;
+; Dead Smiling Pirates - I 18
+;
+
+Section /o "Dead Smiling Pirates - I 18" g2Section1
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR"
+ CreateDirectory "$INSTDIR\Songs\Dead Smiling Pirates - I 18"
+ SetOutPath "$INSTDIR\Songs\Dead Smiling Pirates - I 18\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_song1} $TEMP\Song-I-18.zip
+
+ Pop $R0
+ 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\"
+
+ Delete "$TEMP\Song-I-18.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+;
+; Jonathan Coulton Songs
+;
+
+SectionGroup $(name_s2_sub1) s2_sub1
+
+Section /o "Monkey Shines" s2_sub1_Section1
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song1} $TEMP\Song-JC-MS.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-MS.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-MS.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "I Crush Everything" s2_sub1_Section2
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song2} $TEMP\Song-JC-ICE.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-ICE.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-ICE.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Not About You" s2_sub1_Section3
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song3} $TEMP\Song-JC-NAY.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-NAY.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-NAY.zip"
+
+ SetOutPath "$INSTDIR"
+
+
+SectionEnd
+
+Section /o "Mr. Fancy Pants" s2_sub1_Section4
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song4} $TEMP\Song-JC-MFP.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-MFP.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-MFP.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Big Bad World One" s2_sub1_Section5
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song5} $TEMP\Song-JC-BBWO.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-BBWO.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-BBWO.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Flickr" s2_sub1_Section6
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song6} $TEMP\Song-JC-Flickr.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-Flickr.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-Flickr.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "My Beige Bear" s2_sub1_Section7
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song7} $TEMP\Song-JC-MBB.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-MBB.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-MBB.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "The Future Soon" s2_sub1_Section8
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song8} $TEMP\Song-JC-TFS.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-TFS.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-TFS.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Ikea" s2_sub1_Section9
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song9} $TEMP\Song-JC-Ikea.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-Ikea.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-Ikea.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Furry Old Lobster" s2_sub1_Section10
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song10} $TEMP\Song-JC-FOL.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-FOL.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-FOL.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Code Monkey" s2_sub1_Section11
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song11} $TEMP\Song-JC-CM.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-CM.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-CM.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "I´m Your Moon" s2_sub1_Section12
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song12} $TEMP\Song-JC-IYM.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-IYM.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-IYM.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "First Of May" s2_sub1_Section13
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song13} $TEMP\Song-JC-FOM.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-FOM.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-FOM.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Dance, Soterious Johnson, Dance" s2_sub1_Section14
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song14} $TEMP\Song-JC-DSJD.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-DSJD.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-DSJD.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "A Walk With George" s2_sub1_Section15
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song15} $TEMP\Song-JC-AWWG.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-AWWG.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-AWWG.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Creepy Doll" s2_sub1_Section16
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song16} $TEMP\Song-JC-CD.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-CD.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-CD.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "That Spells DNA" s2_sub1_Section17
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song17} $TEMP\Song-JC-TSDNA.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-TSDNA.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-TSDNA.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "When You Go" s2_sub1_Section18
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song18} $TEMP\Song-JC-WYG.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-WYG.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-WYG.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Better" s2_sub1_Section19
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song19} $TEMP\Song-JC-Better.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-Better.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-Better.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Shop Vac" s2_sub1_Section20
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song20} $TEMP\Song-JC-SV.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-SV.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-SV.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "I Feel Fantastic" s2_sub1_Section21
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song21} $TEMP\Song-JC-IFF.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-IFF.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-IFF.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Re: Your Brains" s2_sub1_Section22
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song22} $TEMP\Song-JC-ReYB.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-ReYB.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-ReYB.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Skullcrusher Mountain" s2_sub1_Section23
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song23} $TEMP\Song-JC-SCM.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-SCM.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-SCM.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Chiron Beta Prime" s2_sub1_Section24
+
+; AddSize 1400
+ SetOverwrite try
+ SetOutPath "$INSTDIR\Songs\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_sub1_song24} $TEMP\Song-JC-CBP.zip
+
+ Pop $R0
+ StrCmp $R0 "success" dlok
+ MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
+ dlok:
+ nsisunz::Unzip "$TEMP\Song-JC-CBP.zip" "$INSTDIR\Songs\"
+
+ Delete "$TEMP\Song-JC-CBP.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+
+SectionGroupEnd
+
+;
+; Joshua Morin - On The Run
+;
+
+Section /o "Joshua Morin - On The Run" g2Section2
+; AddSize 2200
+ SetOverwrite try
+ SetOutPath "$INSTDIR"
+ CreateDirectory "$INSTDIR\Songs\Joshua Morin - On The Run"
+ SetOutPath "$INSTDIR\Songs\Joshua Morin - On The Run\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_song3} $TEMP\Song-On-the-run.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-On-the-run.zip" "$INSTDIR\Songs\Joshua Morin - On The Run\"
+
+ Delete "$TEMP\Song-On-the-run.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Pornophonique - Space Invaders" g2Section3
+; AddSize 2200
+ SetOverwrite try
+ SetOutPath "$INSTDIR"
+ CreateDirectory "$INSTDIR\Songs\Pornophonique - Space Invaders"
+ SetOutPath "$INSTDIR\Songs\Pornophonique - Space Invaders\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_song3} $TEMP\Song-Space-Invaders.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-Space-Invaders.zip" "$INSTDIR\Songs\Pornophonique - Space Invaders\"
+
+ Delete "$TEMP\Song-Space-Invaders.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+Section /o "Steven Dunston - Northern Star" g2Section4
+; AddSize 1500
+ SetOverwrite try
+ SetOutPath "$INSTDIR"
+ CreateDirectory "$INSTDIR\Songs\Steven Dunston - Northern Star"
+ SetOutPath "$INSTDIR\Songs\Steven Dunston - Northern Star\"
+
+; Download song:
+ NSISdl::download /TIMEOUT=30000 ${download_song2} $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\"
+
+ Delete "$TEMP\Song-Northern-Star.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+SectionGroupEnd
+
+;------------------------------------
+; OPTIONAL THEMES (Section 3)
+;------------------------------------
+
+SectionGroup $(name_section3) Section3
+
+ Section /o "Orange" g3Section1
+; AddSize 700
+
+; Download theme orange:
+ NSISdl::download /TIMEOUT=30000 ${download_theme1} $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"
+
+SectionEnd
+
+ Section /o "Streetlight" g3Section2
+; AddSize 1000
+
+; Download theme Streetlight:
+ NSISdl::download /TIMEOUT=30000 ${download_theme2} $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"
+
+SectionEnd
+
+ Section /o "Vistar" g3Section3
+; AddSize 1000
+
+; Download theme Vistar:
+
+ NSISdl::download /TIMEOUT=30000 ${download_theme3} $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"
+
+SectionEnd
+
+ Section /o "BlueSensation" g3Section4
+; AddSize 1000
+
+; Download theme BlueSensation:
+
+ NSISdl::download /TIMEOUT=30000 ${download_theme4} $TEMP\Theme-BlueSensation.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-BlueSensation.zip" "$INSTDIR\"
+
+ Delete "$TEMP\Theme-BlueSensation.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+ Section /o "WiiStar" g3Section5
+; AddSize 1000
+
+; Download theme WiiStar:
+
+ NSISdl::download /TIMEOUT=30000 ${download_theme5} $TEMP\Theme-WiiStar.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-WiiStar.zip" "$INSTDIR\"
+
+ Delete "$TEMP\Theme-WiiStar.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+ Section /o "iStar" g3Section6
+; AddSize 1000
+
+; Download theme iStar:
+
+ NSISdl::download /TIMEOUT=30000 ${download_theme6} $TEMP\Theme-iStar.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-iStar.zip" "$INSTDIR\"
+
+ Delete "$TEMP\Theme-iStar.zip"
+
+ SetOutPath "$INSTDIR"
+
+SectionEnd
+
+SectionGroupEnd
+
+;------------------------------------
+; UNINSTALL (Section 4)
+;------------------------------------
+
+Section Uninstall
+
+ !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP
+
+ !include "${path_settings}\files_main_uninstall.nsh"
+
+ DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
+
+; Unregister from Windows Vista Game Explorer
+
+${If} ${AtLeastWinVista}
+
+${GameExplorer_RemoveGame} $0
+
+${EndIf}
+
+
+
+SectionEnd
+
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; Section Descriptions
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+
+!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+
+ !insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1} $(DESC_Section2_sub1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3)
+
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section1} $(DESC_g2Section1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section2} $(DESC_g2Section2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section3} $(DESC_g2Section3)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section4} $(DESC_g2Section4)
+
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section1} $(DESC_s2_sub1_Section1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section2} $(DESC_s2_sub1_Section2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section3} $(DESC_s2_sub1_Section3)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section4} $(DESC_s2_sub1_Section4)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section5} $(DESC_s2_sub1_Section5)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section6} $(DESC_s2_sub1_Section6)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section7} $(DESC_s2_sub1_Section7)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section8} $(DESC_s2_sub1_Section8)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section9} $(DESC_s2_sub1_Section9)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section10} $(DESC_s2_sub1_Section10)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section11} $(DESC_s2_sub1_Section11)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section12} $(DESC_s2_sub1_Section12)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section13} $(DESC_s2_sub1_Section13)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section14} $(DESC_s2_sub1_Section14)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section15} $(DESC_s2_sub1_Section15)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section16} $(DESC_s2_sub1_Section16)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section17} $(DESC_s2_sub1_Section17)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section18} $(DESC_s2_sub1_Section18)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section19} $(DESC_s2_sub1_Section19)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section20} $(DESC_s2_sub1_Section20)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section21} $(DESC_s2_sub1_Section21)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section22} $(DESC_s2_sub1_Section22)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section23} $(DESC_s2_sub1_Section23)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section24} $(DESC_s2_sub1_Section24)
+
+ !insertmacro MUI_DESCRIPTION_TEXT ${g3Section1} $(DESC_g3Section1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g3Section2} $(DESC_g3Section2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g3Section3} $(DESC_g3Section3)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g3Section4} $(DESC_g3Section4)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g3Section5} $(DESC_g3Section5)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g3Section6} $(DESC_g3Section6)
+
+!insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; Language Support
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+!insertmacro MUI_LANGUAGE "English"
+!insertmacro MUI_LANGUAGE "German"
+
+!insertmacro MUI_RESERVEFILE_LANGDLL
+
+!include "${path_languages}\*.nsh"
+
+Function .onInit
+
+var /GLOBAL version
+StrCpy $version "1.1a"
+
+
+ System::Call 'kernel32::CreateMutexA(i 0, i 0, t "USdx Installer.exe") ?e'
+
+ Pop $R0
+
+ StrCmp $R0 0 +3
+ MessageBox MB_OK|MB_ICONEXCLAMATION $(oninit_running)
+ Abort
+
+ ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${name}" 'DisplayVersion'
+
+ ${If} $R0 == $version
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION \
+ "${name} v.$R0 $(oninit_alreadyinstalled). $\n$\n $(oninit_installagain)" \
+ IDYES done
+ Abort
+ ${EndIf}
+
+ ReadRegStr $R1 HKLM \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\${name}" \
+ "UninstallString"
+ StrCmp $R1 "" done
+
+ ${If} $R0 != $version
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION \
+ "${name} v.$R0 $(oninit_alreadyinstalled). $\n$\n $(oninit_updateusdx) v.$R0 -> v.${version}" \
+ IDYES done
+ Abort
+ ${EndIf}
+
+done:
+
+ !insertmacro MUI_LANGDLL_DISPLAY
+
+ !insertmacro INSTALLOPTIONS_EXTRACT_AS ".\settings\settings-1031.ini" "Settings-1031"
+ !insertmacro INSTALLOPTIONS_EXTRACT_AS ".\settings\settings-1033.ini" "Settings-1033"
+
+FunctionEnd
+
+Function un.onInit
+
+ ${nsProcess::FindProcess} "USdx.exe" $R0
+ StrCmp $R0 0 0 +2
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION '$(oninit_closeusdx)' IDYES closeit IDNO end
+
+ closeit:
+ ${nsProcess::KillProcess} "USdx.exe" $R0
+ goto continue
+
+ end:
+ ${nsProcess::Unload}
+ Abort
+
+ continue:
+ !insertmacro MUI_LANGDLL_DISPLAY
+
+FunctionEnd
diff --git a/Lua/installer/languages/English.nsh b/Lua/installer/languages/English.nsh
new file mode 100644
index 00000000..b539a0e2
--- /dev/null
+++ b/Lua/installer/languages/English.nsh
@@ -0,0 +1,94 @@
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; UltraStar Deluxe Installer - Language file: English
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+LangString abort_install ${LANG_ENGLISH} "Are you sure to abort Installation?"
+LangString abort_uninstall ${LANG_ENGLISH} "Are you sure to abort UnInstallation?"
+LangString oninit_running ${LANG_ENGLISH} "The installer is already running."
+LangString oninit_installagain ${LANG_ENGLISH} "Are you sure you want to install it again?"
+LangString oninit_alreadyinstalled ${LANG_ENGLISH} "is already installed"
+LangString oninit_closeusdx ${LANG_ENGLISH} "cannot be uninstalled while its running! Do you want to close it?"
+LangString oninit_updateusdx ${LANG_ENGLISH} "Do you want to update the installation from:"
+
+; Welcome Page:
+
+LangString page_welcome_title ${LANG_ENGLISH} "Welcome to the UltraStar Deluxe Setup Wizard"
+LangString page_welcome_txt ${LANG_ENGLISH} "This wizard will guide you through the Installation of UltraStar Deluxe. UltraStar Deluxe is a free open source Karaoke game, which can be compared with Singstar.$\n$\r$\n$\rThe UltraStar Deluxe Team wishes you fun.$\n$\rProject website: http://www.ultrastardeluxe.org$\n$\rSupport Forum: http://forum.ultrastardeluxe.org"
+
+; Components Page:
+
+LangString page_components_info ${LANG_ENGLISH} "Hover the component to get details"
+
+; Custom Page
+
+LangString page_settings_fullscreen ${LANG_ENGLISH} "Fullscreen Mode"
+LangString page_settings_subtitle ${LANG_ENGLISH} "Specify your favorite settings for UltraStar Deluxe."
+
+; Finish Page:
+
+LangString page_finish_txt ${LANG_ENGLISH} "UltraStar Deluxe was installed successfully on you system.$\n$\r$\n$\rVisit out project website to get latest news and updates."
+LangString page_finish_linktxt ${LANG_ENGLISH} "Project website"
+LangString page_finish_desktop ${LANG_ENGLISH} "Create Desktop Shortcut?"
+
+; Start Menu and Shortcuts
+
+LangString sm_shortcut ${LANG_ENGLISH} "Play UltraStar Deluxe"
+LangString sm_uninstall ${LANG_ENGLISH} "Uninstall"
+LangString sm_website ${LANG_ENGLISH} "Website"
+LangString sm_license ${LANG_ENGLISH} "License"
+LangString sm_readme ${LANG_ENGLISH} "Readme"
+LangString sm_documentation ${LANG_ENGLISH} "Documentation"
+
+LangString sc_play ${LANG_ENGLISH} "Play"
+LangString sc_desktop ${LANG_ENGLISH} "Create Desktop Shortcut?"
+
+; Sections and SectionGroups
+
+LangString name_section1 ${LANG_ENGLISH} "Main components"
+LangString name_section2 ${LANG_ENGLISH} "Optional songs"
+LangString name_s2_sub1 ${LANG_ENGLISH} "Jonathan Coulton"
+LangString name_section3 ${LANG_ENGLISH} "Optional themes"
+
+LangString DESC_Section1 ${LANG_ENGLISH} "These are the basic files needed by UltraStar Deluxe"
+LangString DESC_Section2 ${LANG_ENGLISH} "You can choose which songs should be installed."
+LangString DESC_Section2_sub1 ${LANG_ENGLISH} "You can choose which Jonathan Coulton Songs (CC by-nc 3.0) should be installed."
+LangString DESC_Section3 ${LANG_ENGLISH} "You can choose which optional themes should be installed."
+
+LangString DESC_g2Section1 ${LANG_ENGLISH} "This will install the song 'Dead Smiling Pirates - I 18' (CC by-nc-nd 2.5)."
+LangString DESC_g2Section2 ${LANG_ENGLISH} "This will install the song 'Joshua Morin - On The Run' (CC by-sa 2.5)."
+LangString DESC_g2Section3 ${LANG_ENGLISH} "This will install the song 'Pornophonique - Space Invaders' (CC by-nc-nd 2.0)."
+LangString DESC_g2Section4 ${LANG_ENGLISH} "This will install the song 'Steven Dunston - Northern Star' (CC by-nc-sa 2.5)."
+
+LangString DESC_s2_sub1_Section1 ${LANG_ENGLISH} "This will install the song 'Monkey Shines'."
+LangString DESC_s2_sub1_Section2 ${LANG_ENGLISH} "This will install the song 'I Crush Everything'."
+LangString DESC_s2_sub1_Section3 ${LANG_ENGLISH} "This will install the song 'Not About You'."
+LangString DESC_s2_sub1_Section4 ${LANG_ENGLISH} "This will install the song 'Mr. Fancy Pants'."
+LangString DESC_s2_sub1_Section5 ${LANG_ENGLISH} "This will install the song 'Big Bad World One'."
+LangString DESC_s2_sub1_Section6 ${LANG_ENGLISH} "This will install the song 'Flickr'."
+LangString DESC_s2_sub1_Section7 ${LANG_ENGLISH} "This will install the song 'My Beige Bear'."
+LangString DESC_s2_sub1_Section8 ${LANG_ENGLISH} "This will install the song 'The Future Soon'."
+LangString DESC_s2_sub1_Section9 ${LANG_ENGLISH} "This will install the song 'Ikea'."
+LangString DESC_s2_sub1_Section10 ${LANG_ENGLISH} "This will install the song 'Furry Old Lobster'."
+LangString DESC_s2_sub1_Section11 ${LANG_ENGLISH} "This will install the song 'Code Monkey'."
+LangString DESC_s2_sub1_Section12 ${LANG_ENGLISH} "This will install the song 'I´m Your Moon'."
+LangString DESC_s2_sub1_Section13 ${LANG_ENGLISH} "This will install the song 'First Of May'."
+LangString DESC_s2_sub1_Section14 ${LANG_ENGLISH} "This will install the song 'Dance, Soterios Johnson, Dance'."
+LangString DESC_s2_sub1_Section15 ${LANG_ENGLISH} "This will install the song 'A Talk With George'."
+LangString DESC_s2_sub1_Section16 ${LANG_ENGLISH} "This will install the song 'Creepy Doll'."
+LangString DESC_s2_sub1_Section17 ${LANG_ENGLISH} "This will install the song 'That Spells DNA'."
+LangString DESC_s2_sub1_Section18 ${LANG_ENGLISH} "This will install the song 'When You Go'."
+LangString DESC_s2_sub1_Section19 ${LANG_ENGLISH} "This will install the song 'Better'."
+LangString DESC_s2_sub1_Section20 ${LANG_ENGLISH} "This will install the song 'Shop Vac'."
+LangString DESC_s2_sub1_Section21 ${LANG_ENGLISH} "This will install the song 'I Feel Fantastic'."
+LangString DESC_s2_sub1_Section22 ${LANG_ENGLISH} "This will install the song 'Re: Your Brains'."
+LangString DESC_s2_sub1_Section23 ${LANG_ENGLISH} "This will install the song 'Skullcrusher Mountain'."
+LangString DESC_s2_sub1_Section24 ${LANG_ENGLISH} "This will install the song 'Chiron Beta Prime'."
+
+LangString DESC_g3Section1 ${LANG_ENGLISH} "This will install the optional theme 'Orange' by Skar"
+LangString DESC_g3Section2 ${LANG_ENGLISH} "This will install the optional theme 'Streetlight' by Skar"
+LangString DESC_g3Section3 ${LANG_ENGLISH} "This will install the optional theme 'Vistar' by Skar"
+LangString DESC_g3Section4 ${LANG_ENGLISH} "This will install the optional theme 'BlueSensation v5' by Charis"
+LangString DESC_g3Section5 ${LANG_ENGLISH} "This will install the optional theme 'WiiStar' by MasterPhW"
+LangString DESC_g3Section6 ${LANG_ENGLISH} "This will install the optional theme 'iStar' by MezzoX"
+
+
diff --git a/Lua/installer/languages/German.nsh b/Lua/installer/languages/German.nsh
new file mode 100644
index 00000000..0939b236
--- /dev/null
+++ b/Lua/installer/languages/German.nsh
@@ -0,0 +1,93 @@
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; UltraStar Deluxe Installer - Language file: German
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+LangString abort_install ${LANG_GERMAN} "Wollen Sie die Installation wirklich abbrechen?"
+LangString abort_uninstall ${LANG_GERMAN} "Wollen Sie die Deinstallation wirklich abbrechen?"
+LangString oninit_running ${LANG_GERMAN} "Die Installation wird bereits ausgeführt."
+LangString oninit_installagain ${LANG_GERMAN} "Sind Sie sicher, dass Sie es erneut installieren möchten?"
+LangString oninit_alreadyinstalled ${LANG_GERMAN} "ist bereits installiert"
+LangString oninit_closeusdx ${LANG_GERMAN} "kann nicht während der Laufzeit deinstalliert werden. Soll es geschlossen werden?"
+LangString oninit_updateusdx ${LANG_GERMAN} "Möchten Sie das Programm aktualisieren von"
+
+; Welcome Page:
+
+LangString page_welcome_title ${LANG_GERMAN} "Willkommen zur Installationsroutine von UltraStar Deluxe"
+LangString page_welcome_txt ${LANG_GERMAN} "Dieser Assistent wird Sie durch die Installation von UltraStar Deluxe begleiten. UltraStar Deluxe ist ein kostenloses quelloffenes Karaokespiel, welches Singstar ähnelt. $\n$\r$\n$\rDas UltraStar Deluxe Team wünscht viel Spaß.$\n$\rProjekthomepage: http://www.ultrastardeluxe.org$\n$\rSupport Forum: http://forum.ultrastardeluxe.org"
+
+; Components Page:
+
+LangString page_components_info ${LANG_GERMAN} "Schieben Sie den Mauszeiger über die Komponente um Details einzusehen"
+
+; Custom Page
+
+LangString page_settings_fullscreen ${LANG_GERMAN} "Vollbild Modus:"
+LangString page_settings_subtitle ${LANG_GERMAN} "Lege deine favorisierten Einstellungen für UltraStar Deluxe fest."
+
+; Finish Page:
+
+LangString page_finish_txt ${LANG_GERMAN} "UltraStar Deluxe wurde erfolgreich auf Ihrem System installiert.$\n$\r$\n$\rBesuchen Sie unsere Projektwebseite um die neusten Updates und News zu erhalten."
+LangString page_finish_linktxt ${LANG_GERMAN} "Projektwebseite"
+LangString page_finish_desktop ${LANG_GERMAN} "Verknüpfung auf dem Desktop erstellen?"
+
+; Start Menu and Shortcuts
+
+LangString sm_website ${LANG_GERMAN} "Internetseite"
+LangString sm_uninstall ${LANG_GERMAN} "Deinstallieren"
+LangString sm_shortcut ${LANG_GERMAN} "UltraStar Deluxe spielen"
+LangString sm_license ${LANG_GERMAN} "Lizenz"
+LangString sm_readme ${LANG_GERMAN} "Lies mich"
+LangString sm_documentation ${LANG_GERMAN} "Dokumentation"
+
+LangString sc_play ${LANG_GERMAN} "Spielen"
+LangString sc_desktop ${LANG_GERMAN} "Verknüpfung auf dem Desktop erstellen?"
+
+; Sections and SectionGroups
+
+LangString name_section1 ${LANG_GERMAN} "Hauptkomponenten"
+LangString name_section2 ${LANG_GERMAN} "Optionale Songs"
+LangString name_s2_sub1 ${LANG_GERMAN} "Jonathan Coulton"
+LangString name_section3 ${LANG_GERMAN} "Optionale Themen"
+
+LangString DESC_Section1 ${LANG_GERMAN} "Dies sind die von UltraStar Deluxe benötigten Grunddateien"
+LangString DESC_Section2 ${LANG_GERMAN} "Hier können Songs zum Installieren gewählt werden."
+LangString DESC_Section2_sub1 ${LANG_GERMAN} "Hier können Jonathan Coulton Songs (CC by-nc 3.0) zum Installieren gewählt werden."
+LangString DESC_Section3 ${LANG_GERMAN} "Hier können alternative Motive zum Installieren gewählt werden."
+
+LangString DESC_g2Section1 ${LANG_GERMAN} "Installiert das Beispiellied 'Dead Smiling Pirates - I 18' (CC by-nc-nd 2.5)."
+LangString DESC_g2Section2 ${LANG_GERMAN} "Installiert das Beispiellied 'Joshua Morin - On The Run' (CC by-sa 2.5)."
+LangString DESC_g2Section3 ${LANG_GERMAN} "Installiert das Beispiellied 'Pornophonique - Space Invaders' (CC by-nc-nd 2.0)."
+LangString DESC_g2Section4 ${LANG_GERMAN} "Installiert das Beispiellied 'Steven Dunston - Northern Star' (CC by-nc-sa 2.5)."
+
+LangString DESC_s2_sub1_Section1 ${LANG_GERMAN} "Installiert das Beispiellied 'Monkey Shines'."
+LangString DESC_s2_sub1_Section2 ${LANG_GERMAN} "Installiert das Beispiellied 'I Crush Everything'."
+LangString DESC_s2_sub1_Section3 ${LANG_GERMAN} "Installiert das Beispiellied 'Not About You'."
+LangString DESC_s2_sub1_Section4 ${LANG_GERMAN} "Installiert das Beispiellied 'Mr. Fancy Pants'."
+LangString DESC_s2_sub1_Section5 ${LANG_GERMAN} "Installiert das Beispiellied 'Big Bad World One'."
+LangString DESC_s2_sub1_Section6 ${LANG_GERMAN} "Installiert das Beispiellied 'Flickr'."
+LangString DESC_s2_sub1_Section7 ${LANG_GERMAN} "Installiert das Beispiellied 'My Beige Bear'."
+LangString DESC_s2_sub1_Section8 ${LANG_GERMAN} "Installiert das Beispiellied 'The Future Soon'."
+LangString DESC_s2_sub1_Section9 ${LANG_GERMAN} "Installiert das Beispiellied 'Ikea'."
+LangString DESC_s2_sub1_Section10 ${LANG_GERMAN} "Installiert das Beispiellied 'Furry Old Lobster'."
+LangString DESC_s2_sub1_Section11 ${LANG_GERMAN} "Installiert das Beispiellied 'Code Monkey'."
+LangString DESC_s2_sub1_Section12 ${LANG_GERMAN} "Installiert das Beispiellied 'I´m Your Moon'."
+LangString DESC_s2_sub1_Section13 ${LANG_GERMAN} "Installiert das Beispiellied 'First Of May'."
+LangString DESC_s2_sub1_Section14 ${LANG_GERMAN} "Installiert das Beispiellied 'Dance, Soterios Johnson, Dance'."
+LangString DESC_s2_sub1_Section15 ${LANG_GERMAN} "Installiert das Beispiellied 'A Talk With George'."
+LangString DESC_s2_sub1_Section16 ${LANG_GERMAN} "Installiert das Beispiellied 'Creepy Doll'."
+LangString DESC_s2_sub1_Section17 ${LANG_GERMAN} "Installiert das Beispiellied 'That Spells DNA'."
+LangString DESC_s2_sub1_Section18 ${LANG_GERMAN} "Installiert das Beispiellied 'When You Go'."
+LangString DESC_s2_sub1_Section19 ${LANG_GERMAN} "Installiert das Beispiellied 'Better'."
+LangString DESC_s2_sub1_Section20 ${LANG_GERMAN} "Installiert das Beispiellied 'Shop Vac'."
+LangString DESC_s2_sub1_Section21 ${LANG_GERMAN} "Installiert das Beispiellied 'I Feel Fantastic'."
+LangString DESC_s2_sub1_Section22 ${LANG_GERMAN} "Installiert das Beispiellied 'Re: Your Brains'."
+LangString DESC_s2_sub1_Section23 ${LANG_GERMAN} "Installiert das Beispiellied 'Skullcrusher Mountain'."
+LangString DESC_s2_sub1_Section24 ${LANG_GERMAN} "Installiert das Beispiellied 'Chiron Beta Prime'."
+
+LangString DESC_g3Section1 ${LANG_GERMAN} "Installiert das Motiv 'Orange' von Skar"
+LangString DESC_g3Section2 ${LANG_GERMAN} "Installiert das Motiv 'Streetlight' von Skar"
+LangString DESC_g3Section3 ${LANG_GERMAN} "Installiert das Motiv 'Vistar' von Skar"
+LangString DESC_g3Section4 ${LANG_GERMAN} "Installiert das Motiv 'BlueSensation v5' von Charis"
+LangString DESC_g3Section5 ${LANG_GERMAN} "Installiert das Motiv 'WiiStar' von MasterPhW"
+LangString DESC_g3Section6 ${LANG_GERMAN} "Installiert das Motiv 'iStar' von MezzoX"
+
diff --git a/Lua/installer/settings/GameExplorer.nsh b/Lua/installer/settings/GameExplorer.nsh
new file mode 100644
index 00000000..d5056661
--- /dev/null
+++ b/Lua/installer/settings/GameExplorer.nsh
@@ -0,0 +1,198 @@
+# user interface
+
+!define GameExplorer_GenerateGUID '!insertmacro GameExplorer_GenerateGUID'
+!define GameExplorer_AddGame '!insertmacro GameExplorer_AddGame'
+!define GameExplorer_UpdateGame '!insertmacro GameExplorer_UpdateGame'
+!define GameExplorer_RemoveGame '!insertmacro GameExplorer_RemoveGame'
+
+# internal stuff
+
+!define CLSCTX_INPROC_SERVER 1
+!define IID_IGameExplorer {E7B2FB72-D728-49B3-A5F2-18EBF5F1349E}
+!define CLSID_GameExplorer {9A5EA990-3034-4D6F-9128-01F3C61022BC}
+
+!define GIS_CURRENT_USER 2
+!define GIS_ALL_USERS 3
+
+!define IGameExplorer_QueryInterface 0
+!define IGameExplorer_AddRef 1
+!define IGameExplorer_Release 2
+!define IGameExplorer_AddGame 3
+!define IGameExplorer_RemoveGame 4
+!define IGameExplorer_UpdateGame 5
+!define IGameExplorer_VerifyAccess 6
+
+# includes
+
+!include LogicLib.nsh
+
+# the actual code
+
+!macro GameExplorer_GenerateGUID
+
+ System::Call 'ole32::CoCreateGuid(g .s)'
+
+!macroend
+
+!macro GameExplorer_AddGame CONTEXT GDF INSTDIR EXE GUID
+
+ !define __GAME_EXPLORER_UNIQUE "${__LINE__}${__FILE__}"
+
+ Push $0
+ Push $1
+
+ Push $R0
+ Push $R1
+ Push $R2
+ Push $R3
+
+ Push "${EXE}"
+ Push "${GUID}"
+ Push "${INSTDIR}"
+ Push "${GDF}"
+
+ Pop $R0 # == ${GDF}
+ Pop $R1 # == ${INSTDIR}
+ Pop $R2 # == ${GUID}
+ Pop $R3 # == ${EXE}
+
+ ClearErrors
+
+ System::Call "ole32::CoCreateInstance( \
+ g '${CLSID_GameExplorer}', i 0, \
+ i ${CLSCTX_INPROC_SERVER}, \
+ g '${IID_IGameExplorer}', *i .r1) i .r0"
+
+ ${If} $0 != 0 # S_OK
+
+ SetErrors
+ Goto "done_${__GAME_EXPLORER_UNIQUE}"
+
+ ${EndIf}
+
+ !if ${CONTEXT} == all
+
+ System::Call "$1->${IGameExplorer_AddGame}(w R0, w R1, i ${GIS_ALL_USERS}, g R2) i .r0"
+
+ !else if ${CONTEXT} == user
+
+ System::Call "$1->${IGameExplorer_AddGame}(w R1, w R0, i ${GIS_CURRENT_USER}, g R2) i .r0"
+
+ !else
+
+ !error "Invalid CONTEXT passed to GameExplorer_AddGame! Must be `user` or `all`."
+
+ !endif
+
+ ${If} $0 != 0 # S_OK
+
+ SetErrors
+
+ ${Else}
+
+ # Create play task
+
+ !if ${CONTEXT} == all
+
+ SetShellVarContext all
+
+ !else if if ${CONTEXT} == user
+
+ SetShellVarContext user
+
+ !endif
+
+ CreateDirectory $APPDATA\Microsoft\Windows\GameExplorer\$R2\PlayTasks\0
+ CreateShortcut $APPDATA\Microsoft\Windows\GameExplorer\$R2\PlayTasks\0\Play.lnk $R3
+
+ ${EndIf}
+
+ System::Call "$1->${IGameExplorer_Release}()"
+
+ "done_${__GAME_EXPLORER_UNIQUE}:"
+
+ Pop $R3
+ Pop $R2
+ Pop $R1
+ Pop $R0
+
+ Pop $1
+ Pop $0
+
+ !undef __GAME_EXPLORER_UNIQUE
+
+!macroend
+
+!macro _GameExplorer_GUID_Function Function GUID
+
+ !define __GAME_EXPLORER_UNIQUE "${__LINE__}${__FILE__}"
+
+ Push $0
+ Push $1
+ Push $2
+ Push $3
+ Push $4
+ Push $5
+
+ Push $R0
+
+ Push "${GUID}"
+
+ Pop $R0 # == ${GUID}
+
+ System::Alloc 16
+ Exch $R0
+ System::Call "ole32::CLSIDFromString(w s, i R0)"
+ System::Call "*$R0(i .r2, i .r3, i .r4, i .r5)"
+ System::Free $R0
+
+ ClearErrors
+
+ System::Call "ole32::CoCreateInstance( \
+ g '${CLSID_GameExplorer}', i 0, \
+ i ${CLSCTX_INPROC_SERVER}, \
+ g '${IID_IGameExplorer}', *i .r1) i .r0"
+
+ ${If} $0 != 0 # S_OK
+
+ SetErrors
+ Goto "done_${__GAME_EXPLORER_UNIQUE}"
+
+ ${EndIf}
+
+ System::Call "$1->${Function}(i r2, i r3, i r4, i r5) i .r0"
+
+ ${If} $0 != 0 # S_OK
+
+ SetErrors
+
+ ${EndIf}
+
+ System::Call "$1->${IGameExplorer_Release}()"
+
+ "done_${__GAME_EXPLORER_UNIQUE}:"
+
+ Pop $R0
+
+ Pop $5
+ Pop $4
+ Pop $3
+ Pop $2
+ Pop $1
+ Pop $0
+
+ !undef __GAME_EXPLORER_UNIQUE
+
+!macroend
+
+!macro GameExplorer_UpdateGame GUID
+
+ !insertmacro _GameExplorer_GUID_Function ${IGameExplorer_UpdateGame} "${GUID}"
+
+!macroend
+
+!macro GameExplorer_RemoveGame GUID
+
+ !insertmacro _GameExplorer_GUID_Function ${IGameExplorer_RemoveGame} "${GUID}"
+
+!macroend \ No newline at end of file
diff --git a/Lua/installer/settings/files_main_install.nsh b/Lua/installer/settings/files_main_install.nsh
new file mode 100644
index 00000000..605725aa
--- /dev/null
+++ b/Lua/installer/settings/files_main_install.nsh
@@ -0,0 +1,55 @@
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; UltraStar Deluxe Installer: Main components
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+; Create Directories:
+
+CreateDirectory $INSTDIR\plugins
+CreateDirectory $INSTDIR\songs
+CreateDirectory $INSTDIR\screenshots
+CreateDirectory $INSTDIR\playlists
+
+SetOutPath "$INSTDIR"
+
+; themes, languages, sounds, visuals dir
+
+File /r ..\game\themes
+File /r ..\game\languages
+File /r ..\game\sounds
+File /r ..\installerdependencies\visuals
+
+; Root dir:
+
+File ..\installerdependencies\dll\*.dll
+
+
+File ..\ChangeLog.txt
+File ..\ChangeLog.german.txt
+File ..\README.txt
+File ..\installerdependencies\documents\documentation.pdf
+File ..\installerdependencies\documents\license.txt
+
+File "..\ScoreConverter.exe"
+File "..\${exe}.exe"
+
+; Covers dir:
+
+SetOutPath "$INSTDIR\covers"
+
+IfFileExists $INSTDIR\covers\covers.ini +2 0
+File ..\game\covers\Covers.ini
+File ..\game\covers\NoCover.jpg
+
+; Plugins dir:
+
+SetOutPath "$INSTDIR\Plugins\"
+ File "..\Plugins\*.dll"
+
+${If} ${AtLeastWinVista}
+
+ SetOutPath "$WINDIR"
+ File "..\installerdependencies\plugins\gdf.dll"
+
+${EndIf}
+
+SetOutPath "$INSTDIR"
diff --git a/Lua/installer/settings/files_main_uninstall.nsh b/Lua/installer/settings/files_main_uninstall.nsh
new file mode 100644
index 00000000..b3d69da2
--- /dev/null
+++ b/Lua/installer/settings/files_main_uninstall.nsh
@@ -0,0 +1,83 @@
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; UltraStar Deluxe Uninstaller: Main components
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+
+; Delete created Icons in startmenu
+
+ SetShellVarContext all
+
+ RMDir /r "$SMPROGRAMS\$ICONS_GROUP\"
+
+; Delete created Icon on Desktop
+
+ Delete "$Desktop\Play UltraStar Deluxe.lnk"
+ Delete "$Desktop\UltraStar Deluxe spielen.lnk"
+
+; Remove dirs
+
+ RMDir /r "$INSTDIR\plugins"
+ RMDir /r "$INSTDIR\themes"
+ RMDir /r "$INSTDIR\languages"
+ RMDir /r "$INSTDIR\visuals"
+ RMDir /r "$INSTDIR\sounds"
+
+; Delete remaining files
+
+ Delete "$INSTDIR\ScoreConverter.exe"
+ Delete "$INSTDIR\${exe}.exe"
+ Delete "$INSTDIR\Changelog.german.txt"
+ Delete "$INSTDIR\Changelog.txt"
+ Delete "$INSTDIR\documentation.pdf"
+ Delete "$INSTDIR\License.txt"
+ Delete "$INSTDIR\config.ini"
+ Delete "$INSTDIR\README.txt"
+ Delete "$INSTDIR\Error.log"
+ Delete "$INSTDIR\covers.cache"
+
+ Delete "$INSTDIR\avcodec-51.dll"
+ Delete "$INSTDIR\avformat-50.dll"
+ Delete "$INSTDIR\avutil-49.dll"
+ Delete "$INSTDIR\bass.dll"
+ Delete "$INSTDIR\glew32.dll"
+ Delete "$INSTDIR\jpeg.dll"
+ Delete "$INSTDIR\libfreetype-6.dll"
+ Delete "$INSTDIR\libpng12-0.dll"
+ Delete "$INSTDIR\libprojectM.dll"
+ Delete "$INSTDIR\libtiff-3.dll"
+ Delete "$INSTDIR\portaudio_x86.dll"
+ Delete "$INSTDIR\portmixer.dll"
+ Delete "$INSTDIR\projectM-cwrapper.dll"
+ Delete "$INSTDIR\SDL.dll"
+ Delete "$INSTDIR\SDL_image.dll"
+ Delete "$INSTDIR\SDL_ttf.dll"
+ Delete "$INSTDIR\sqlite3.dll"
+ Delete "$INSTDIR\zlib1.dll"
+
+${If} ${AtLeastWinVista}
+ Delete "$WINDIR\gdf.dll"
+${EndIf}
+
+
+ RMDir "$INSTDIR\songs\Dead Smiling Pirates - I 18"
+ RMDir "$INSTDIR\songs\Joshua Morin - On The Run"
+ RMDir "$INSTDIR\songs\Pornophonique - Space Invaders"
+ RMDir "$INSTDIR\songs\Steven Dunston - Northern Star"
+
+ StrCpy $0 "$INSTDIR\songs"
+ Call un.DeleteIfEmpty
+
+ Delete "$INSTDIR\covers\NoCover.jpg"
+
+ StrCpy $0 "$INSTDIR\screenshots"
+ Call un.DeleteIfEmpty
+
+ StrCpy $0 "$INSTDIR\playlists"
+ Call un.DeleteIfEmpty
+
+; Self delete:
+
+ Delete "$INSTDIR\Uninstall.exe"
+
+ StrCpy $0 "$INSTDIR"
+ Call un.DeleteIfEmpty \ No newline at end of file
diff --git a/Lua/installer/settings/functions.nsh b/Lua/installer/settings/functions.nsh
new file mode 100644
index 00000000..8345c4cc
--- /dev/null
+++ b/Lua/installer/settings/functions.nsh
@@ -0,0 +1,77 @@
+; Creates Desktop Shortcut(s) if
+; checked on Finish Page
+
+Function CreateDesktopShortCuts
+
+SetOutPath "$INSTDIR"
+
+CreateShortcut "$Desktop\$(sm_shortcut).lnk" "$INSTDIR\USdx.exe"
+
+FunctionEnd
+
+; Deletes only empty dirs which are
+; at the top of the stack.
+
+Function un.DeleteIfEmpty
+ FindFirst $R0 $R1 "$0\*.*"
+ strcmp $R1 "." 0 NoDelete
+ FindNext $R0 $R1
+ strcmp $R1 ".." 0 NoDelete
+ ClearErrors
+ FindNext $R0 $R1
+ IfErrors 0 NoDelete
+ FindClose $R0
+ Sleep 1000
+ RMDir "$0"
+ NoDelete:
+ FindClose $R0
+FunctionEnd
+
+; This is used to write a
+; string to config.ini
+
+Function WriteToConfig
+ Exch $0
+ Exch
+ Exch $1
+
+ FileOpen $0 $0 a
+ FileSeek $0 0 END
+ FileWrite $0 $1
+ FileClose $0
+
+ Pop $1
+ Pop $0
+FunctionEnd
+
+!macro WriteToConfig String File
+ Push "${String}"
+ Push "${File}"
+ Call WriteToConfig
+!macroend
+!define WriteToConfig "!insertmacro WriteToConfig"
+
+; Finds UltraStar Deluxe process
+;
+
+!define nsProcess::FindProcess `!insertmacro nsProcess::FindProcess`
+
+!macro nsProcess::FindProcess _FILE _ERR
+ nsProcess::_FindProcess /NOUNLOAD `${_FILE}`
+ Pop ${_ERR}
+!macroend
+
+
+!define nsProcess::KillProcess `!insertmacro nsProcess::KillProcess`
+
+!macro nsProcess::KillProcess _FILE _ERR
+ nsProcess::_KillProcess /NOUNLOAD `${_FILE}`
+ Pop ${_ERR}
+!macroend
+
+
+!define nsProcess::Unload `!insertmacro nsProcess::Unload`
+
+!macro nsProcess::Unload
+ nsProcess::_Unload
+!macroend \ No newline at end of file
diff --git a/Lua/installer/settings/settings-1031.ini b/Lua/installer/settings/settings-1031.ini
new file mode 100644
index 00000000..642f577e
--- /dev/null
+++ b/Lua/installer/settings/settings-1031.ini
@@ -0,0 +1,131 @@
+[Settings]
+NumFields=16
+
+[Field 1]
+Type=Label
+Text="Vollbild Modus:"
+Left=0
+Right=53
+Top=27
+Bottom=35
+
+[Field 2]
+Type=Label
+Text="Sprache:"
+Left=0
+Right=53
+Top=51
+Bottom=59
+
+[Field 3]
+Type=Label
+Text="Auflösung:"
+Left=0
+Right=53
+Top=73
+Bottom=81
+
+[Field 4]
+Type=Label
+Text="Ordnerstruktur:"
+Left=0
+Right=53
+Top=97
+Bottom=105
+
+[Field 5]
+Type=Label
+Text="Animationen/Effekte:"
+Left=0
+Right=70
+Top=124
+Bottom=132
+
+[Field 6]
+Type=Droplist
+ListItems=On|Off
+Left=71
+Right=161
+Top=25
+Bottom=38
+
+[Field 7]
+Type=Droplist
+ListItems=Catalan|Croatian|Danish|Dutch|English|Euskara|French|German|Italian|Norwegian|Polish|Portuguese|Serbian|Slovak|Spanish|Swedish
+Left=71
+Right=161
+Top=48
+Bottom=62
+
+[Field 8]
+Type=Droplist
+ListItems=320x200|640x480|800x600|1024x768|1280x1024|1440x900|1680x1050|1920x1200
+Left=71
+Right=161
+Top=72
+Bottom=86
+
+[Field 9]
+Type=Droplist
+ListItems=On|Off
+Left=71
+Right=161
+Top=96
+Bottom=110
+
+[Field 10]
+Type=Droplist
+ListItems=On|Off
+Left=71
+Right=161
+Top=121
+Bottom=136
+
+[Field 11]
+Type=Label
+Text="Wähle aus, ob das Spiel im Fenster oder \r\nals Vollbild gestartet werden soll."
+Left=170
+Right=315
+Top=24
+Bottom=44
+
+[Field 12]
+Type=Label
+Text="Hier können einige Einstellungen für UltraStar Deluxe vorgenommen werden.\r\nAlle Einstellungen können später im Spielmenü geändert werden."
+Left=0
+Right=315
+Top=3
+Bottom=20
+
+[Field 13]
+Type=Label
+Text="Wähle deine favorisierte Sprache, in der UltraStar Deluxe angezeigt werden soll."
+Left=170
+Right=315
+Top=46
+Bottom=68
+
+[Field 14]
+Type=Label
+Text="Wähle deine, dem Monitor angepasste, bevorzugte Auflösung."
+Left=170
+Right=315
+Top=70
+Bottom=96
+
+[Field 15]
+Type=Label
+Text="Wähle aus, ob UltraStar Deluxe eine Ordnerstruktur zum Anzeigen der Lieder verwenden soll."
+Left=170
+Right=315
+Top=92
+Bottom=116
+
+[Field 16]
+Type=Label
+Text="Wähle, ob Spezialeffekte und \r\nAnimationen benutzt werden sollen."
+Left=170
+Right=315
+Top=121
+Bottom=137
+
diff --git a/Lua/installer/settings/settings-1033.ini b/Lua/installer/settings/settings-1033.ini
new file mode 100644
index 00000000..2a3dfdba
--- /dev/null
+++ b/Lua/installer/settings/settings-1033.ini
@@ -0,0 +1,131 @@
+[Settings]
+NumFields=16
+
+[Field 1]
+Type=Label
+Text="Fullscreen Mode:"
+Left=0
+Right=50
+Top=27
+Bottom=35
+
+[Field 2]
+Type=Label
+Text="Language:"
+Left=0
+Right=50
+Top=51
+Bottom=59
+
+[Field 3]
+Type=Label
+Text="Resolution:"
+Left=0
+Right=50
+Top=73
+Bottom=81
+
+[Field 4]
+Type=Label
+Text="Tabs:"
+Left=0
+Right=50
+Top=100
+Bottom=108
+
+[Field 5]
+Type=Label
+Text="Animations/Effects:"
+Left=0
+Right=67
+Top=124
+Bottom=132
+
+[Field 6]
+Type=Droplist
+ListItems=On|Off
+Left=70
+Right=160
+Top=24
+Bottom=36
+
+[Field 7]
+Type=Droplist
+ListItems=Catalan|Croatian|Danish|Dutch|English|Euskara|French|German|Italian|Norwegian|Polish|Portuguese|Serbian|Slovak|Spanish|Swedish
+Left=70
+Right=160
+Top=48
+Bottom=60
+
+[Field 8]
+Type=Droplist
+ListItems=320x200|640x480|800x600|1024x768|1280x1024|1440x900|1680x1050|1920x1200
+Left=70
+Right=160
+Top=72
+Bottom=86
+
+[Field 9]
+Type=Droplist
+ListItems=On|Off
+Left=70
+Right=160
+Top=99
+Bottom=113
+
+[Field 10]
+Type=Droplist
+ListItems=On|Off
+Left=70
+Right=160
+Top=123
+Bottom=137
+
+[Field 11]
+Type=Label
+Text="Choose if you want to run UltraStar Deluxe in a window or fullscreen."
+Left=170
+Right=305
+Top=25
+Bottom=46
+
+[Field 12]
+Type=Label
+Text="Choose your favorite language, in that UltraStar Deluxe should be displayed."
+Left=170
+Right=305
+Top=48
+Bottom=70
+
+[Field 13]
+Type=Label
+Text="Choose your favorite screen resolution for UltraStar Deluxe adjusted to your display device."
+Left=170
+Right=305
+Top=72
+Bottom=97
+
+[Field 14]
+Type=Label
+Text="Choose whether you would like to view folders in UltraStar Deluxe or not."
+Left=170
+Right=305
+Top=99
+Bottom=122
+
+[Field 15]
+Type=Label
+Text="Here you can define some settings for UltraStar Deluxe. The settings can\r\nalso be changed in the GUI later."
+Left=0
+Right=289
+Top=3
+Bottom=20
+
+[Field 16]
+Type=Label
+Text="Choose if special effects or animations should be used by UltraStar Deluxe. Recommended: On"
+Left=170
+Right=305
+Top=123
+Bottom=139
+
diff --git a/Lua/installer/settings/variables.nsh b/Lua/installer/settings/variables.nsh
new file mode 100644
index 00000000..bf5668d7
--- /dev/null
+++ b/Lua/installer/settings/variables.nsh
@@ -0,0 +1,76 @@
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; UltraStar Deluxe Un/Installer: Variables
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+; Product Information:
+
+!define version "1.1a" ; Make sure version is also set in onInit
+
+
+!define name "UltraStar Deluxe"
+!define publisher "USDX Team"
+!define homepage "http://www.ultrastardeluxe.org"
+!define forum "http://forum.ultrastardeluxe.org"
+
+!define exe "USdx"
+
+!define license "license.txt"
+
+; Icons
+
+!define img_install "install.ico"
+!define img_uninstall "uninstall.ico"
+
+; Header Images
+
+!define img_header "header.bmp" ; Header image (150x57)
+!define img_side "side.bmp" ; Side image (162x314)
+
+; Registry for Start menu entries:
+
+!define PRODUCT_NAME "${name}"
+!define PRODUCT_VERSION "${version}"
+!define PRODUCT_PUBLISHER "${publisher}"
+!define PRODUCT_WEB_SITE "${homepage}"
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${name}"
+!define PRODUCT_UNINST_ROOT_KEY "HKLM"
+!define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir"
+
+; Download URLs for Songs and Themes:
+
+!define download_song1 "http://downloads.sourceforge.net/ultrastardx/usdx_song-dead_smiling_pirates_-_i_18.zip"
+!define download_song2 "http://downloads.sourceforge.net/ultrastardx/usdx_song-joshua_morin_-_on_the_run.zip"
+!define download_song3 "http://downloads.sourceforge.net/ultrastardx/usdx_song-pornophonique_-_space_-_invaders.zip"
+!define download_song4 "http://downloads.sourceforge.net/ultrastardx/usdx_song-steven_dunston_-_northern_star.zip"
+
+!define download_sub1_song1 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_monkey_shines.zip"
+!define download_sub1_song2 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_i_crush_everything.zip"
+!define download_sub1_song3 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_not_about_you.zip"
+!define download_sub1_song4 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_mr_fancy_pants.zip"
+!define download_sub1_song5 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_big_bad_world_one.zip"
+!define download_sub1_song6 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_flickr.zip"
+!define download_sub1_song7 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_my_beige_bear.zip"
+!define download_sub1_song8 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_the_future_soon.zip"
+!define download_sub1_song9 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_ikea.zip"
+!define download_sub1_song10 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_furry_old_lobster.zip"
+!define download_sub1_song11 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_code_monkey.zip"
+!define download_sub1_song12 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_im_your_moon.zip"
+!define download_sub1_song13 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_first_of_may.zip"
+!define download_sub1_song14 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_dance_soterios_johnson_dance.zip"
+!define download_sub1_song15 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_a_talk_with_george.zip"
+!define download_sub1_song16 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_creepy_doll.zip"
+!define download_sub1_song17 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_that_spells_dna.zip"
+!define download_sub1_song18 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_when_you_go.zip"
+!define download_sub1_song19 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_better.zip"
+!define download_sub1_song20 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_shop_vac.zip"
+!define download_sub1_song21 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_i_feel_fantastic.zip"
+!define download_sub1_song22 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_re-_your_brains.zip"
+!define download_sub1_song23 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_skullcrusher_mountain.zip"
+!define download_sub1_song24 "http://downloads.sourceforge.net/ultrastardx/usdx_song-jonathan_coulton_-_chiron_beta_prime.zip"
+
+!define download_theme1 "http://downloads.sourceforge.net/ultrastardx/usdx_skin-orange_by_Skar.zip"
+!define download_theme2 "http://downloads.sourceforge.net/ultrastardx/usdx_skin-Streetlight_by_Skar.zip"
+!define download_theme3 "http://downloads.sourceforge.net/ultrastardx/usdx_skin-Vistar_by_Skar.zip"
+!define download_theme4 "http://downloads.sourceforge.net/ultrastardx/usdx_skin-bluesensationV5_by_Charis.zip"
+!define download_theme5 "http://downloads.sourceforge.net/ultrastardx/usdx_skin-WiiStar_by_MasterPhW.zip"
+!define download_theme6 "http://downloads.sourceforge.net/ultrastardx/usdx_skin-istar_by_MezzoX.zip" \ No newline at end of file