; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ; UltraStar Deluxe Installer - Version 1.1: Main ; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ !include MUI2.nsh !include "WinVer.nsh" !include "LogicLib.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 "..\installerdependencies\gdf" !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 Name "${name} V.${version}" Brandingtext "${name} Installation" OutFile "ultrastardx-${version}-installer-full.exe" ; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ; 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_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 !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\${name}.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" "-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" "${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 ; ; Steven Dunston - Northern Star ; 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_opt_uninstall.nsh" !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 ${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 ${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" !include "${path_languages}\English.nsh" !include "${path_languages}\German.nsh" Function .onInit !insertmacro MUI_LANGDLL_DISPLAY FunctionEnd Function un.onInit !insertmacro MUI_LANGDLL_DISPLAY FunctionEnd