aboutsummaryrefslogblamecommitdiffstats
path: root/unicode/installer/UltraStar Deluxe.nsi
blob: a6f37e2aa52d46d78fe045d2cc1a922cfc25eab8 (plain) (tree)
1
2
3
4
5
6
7
8
9







                                                  
                       



































                                                        
                             
 
                            




































                                                                    
 

































































                                                                           


                           











































                                                                                       

                                                                    




                            

                                                          





                                                                 













                                                                  











                                                  
                                                         

                                




































                                                             
























































































                                                                                                            





















                                                                                          



                              

                                                    





                                                                
                                                                        




                                                                                          
                                                                                         







                               






                                            
                



                                
                                                                              




                                                                                          
                                                              








                                                 
                



                                
                                                                               




                                                                                          
                                                               








                                            
                



                                
                                                                               




                                                                                          
                                                               









                                              
                



                                
                                                                               




                                                                                          
                                                               








                                                
                



                                
                                                                                




                                                                                          
                                                                








                                     
                 



                                
                                                                                  




                                                                                          
                                                                  








                                            
                



                                
                                                                               




                                                                                          
                                                               








                                              
                



                                
                                                                               




                                                                                          
                                                               








                                   
                



                                
                                                                                




                                                                                          
                                                                








                                                 
                



                                
                                                                                




                                                                                          
                                                               








                                           
                 



                                
                                                                               




                                                                                          
                                                              








                                             
                



                                
                                                                                




                                                                                          
                                                               








                                            
                



                                
                                                                                




                                                                                          
                                                               








                                                               
                



                                
                                                                                 




                                                                                          
                                                                






                                  
                                                  
 
                



                                
                                                                                 




                                                                                          
                                                                
 
                                  






                                           
                 



                                
                                                                               




                                                                                          
                                                              








                                               
                



                                
                                                                                  




                                                                                          
                                                                 








                                           
                



                                
                                                                                




                                                                                          
                                                               








                                      
                



                                
                                                                                   




                                                                                          
                                                                  








                                        
                



                                
                                                                               




                                                                                          
                                                              








                                                
                



                                
                                                                                




                                                                                          
                                                               








                                               
                



                                
                                                                                 




                                                                                          
                                                                








                                                     
                



                                
                                                                                




                                                                                          
                                                               








                                                 
                 



                                
                                                                                




                                                                                          
                                                               











                                 

   

                                                  





                                                              
                                                                              




                                                                                          
                                                                                             






                                     

                                                       





                                                                   
                                                                                  




                                                                                          
                                                                                                      






                                         



































































































































































































                                                                                          





                                                                   
                                                                                 




                                                                                          

                                                                                                     






                                        















































                                                                                          








                                       
                

                         
                                                                            




                                                                                          
                                                          







                                     
               

                              
                                                                                 




                                                                                          
                                                               







                                       
                 


                         
                                                                            




                                                                                         
                                                          







                                       
                 


                                
                                                                                   




                                                                                         
                                                                 






                                         





















                                                                                         


                          
                                                                             




                                                                                         
                                                           






                                   

                               


                        
                                                                           




                                                                                         
                                                         









































                                                                 
                                                                     

                                                                     





                                                                     
                                                                     
 
























                                                                                   












                                                                                 





                                                                     
                                                                     











































































                                                                                                          
; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
; UltraStar Deluxe Installer: Main
; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~

!include MUI2.nsh
!include WinVer.nsh
!include LogicLib.nsh
!include InstallOptions.nsh
!include nsDialogs.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 / Windows 7:

RequestExecutionLevel admin

; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
; 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 CHECKBOX
Var /GLOBAL checkbox_state

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} "[Sound]$\r$\n" "$INSTDIR\config.ini"
${WriteToConfig} "PreviewFading=3 Secs$\r$\n" "$INSTDIR\config.ini"

; Animations On / Off Tasks

${If} $animations == "Off"

${WriteToConfig} "[Advanced]$\r$\n" "$INSTDIR\config.ini"

${WriteToConfig} "LoadAnimation=Off$\r$\n" "$INSTDIR\config.ini"

${WriteToConfig} "EffectSing=Off$\r$\n" "$INSTDIR\config.ini"

${WriteToConfig} "ScreenFade=Off$\r$\n" "$INSTDIR\config.ini"

${WriteToConfig} "LineBonus=At Notes$\r$\n" "$INSTDIR\config.ini"

${EndIf}

${WriteToConfig} "[Lyrics]$\r$\n" "$INSTDIR\config.ini"
${WriteToConfig} "LyricsFont=Plain$\r$\n" "$INSTDIR\config.ini"
${WriteToConfig} "LyricsEffect=Slide$\r$\n" "$INSTDIR\config.ini"

${If} $animations != "Off"

${WriteToConfig} "[Advanced]$\r$\n" "$INSTDIR\config.ini"

${WriteToConfig} "LineBonus=At Notes$\r$\n" "$INSTDIR\config.ini"

${EndIf}


FunctionEnd ; Settings page End


!insertmacro MUI_PAGE_FINISH

; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
; Pages UnInstallation Routine
; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~

!define MUI_WELCOMEPAGE_TITLE "$(page_un_welcome_title)"
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM

UninstPage custom un.AskDelete un.DeleteAll

Function un.AskDelete

nsDialogs::Create /NOUNLOAD 1018

	${NSD_CreateCheckbox} 0 -150 100% 8u "$(delete_all)"
	Pop $CHECKBOX

	nsDialogs::OnClick /NOUNLOAD $CHECKBOX $0


nsDialogs::Show

FunctionEnd

Function un.DeleteAll

${NSD_GetState} $CHECKBOX $checkbox_state

${If} $checkbox_state == "1"

 RMDir /r "$INSTDIR\Songs"
 RMDir /r "$INSTDIR\Covers"
 Delete "$INSTDIR\Ultrastar.db"

${Else}

; If checkbox_state = 0


${EndIf}


FunctionEnd

!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

Section /o "Bodo Wartke - Liebeslied (Love Song)" g2Section1

   AddSize 10342
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_song1} $TEMP\Song-BodoWartke-LoveSong.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:
  ZipDLL::extractall "$TEMP\Song-BodoWartke-LoveSong.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-BodoWartke-LoveSong.zip"

  SetOutPath "$INSTDIR"


SectionEnd

;
; Dead Smiling Pirates - I 18
; 

Section /o "Dead Smiling Pirates - I 18" g2Section2
   AddSize 2816
   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=50000 ${download_song2} $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:
  ZipDLL::extractall "$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 1455
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 7127
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 3492
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 2427
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 4424
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Song-JC-BBWO.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-JC-BBWO.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Flickr" s2_sub1_Section6

   AddSize 21607
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 4926
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 5612
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Song-JC-TFS.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-JC-TFS.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Ikea" s2_sub1_Section9

   AddSize 4608
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 3288
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Song-JC-FOL.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-JC-FOL.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Code Monkey" s2_sub1_Section11

   AddSize 21402
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 4916
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 6257
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 5929
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Song-JC-DSJD.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-JC-DSJD.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "A Talk With George" s2_sub1_Section15

   AddSize 4076
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub1_song15} $TEMP\Song-JC-ATWG.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:
  ZipDLL::extractall "$TEMP\Song-JC-ATWG.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-JC-ATWG.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Creepy Doll" s2_sub1_Section16

   AddSize 66560
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 4158
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 5755
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Song-JC-WYG.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-JC-WYG.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Better" s2_sub1_Section19

   AddSize 4199
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Song-JC-Better.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-JC-Better.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Shop Vac" s2_sub1_Section20

   AddSize 5448
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 3851
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 7087
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Song-JC-ReYB.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-JC-ReYB.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Skullcrusher Mountain" s2_sub1_Section23

   AddSize 6298
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 38298
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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" g2Section3
   AddSize 3881
   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=50000 ${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:
  ZipDLL::extractall "$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" g2Section4
   AddSize 3646
   SetOverwrite try
   SetOutPath "$INSTDIR"
   CreateDirectory "$INSTDIR\Songs\Pornophonique - Space Invaders"
   SetOutPath "$INSTDIR\Songs\Pornophonique - Space Invaders\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_song4} $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:
  ZipDLL::extractall "$TEMP\Song-Space-Invaders.zip" "$INSTDIR\Songs\Pornophonique - Space Invaders\"

  Delete "$TEMP\Song-Space-Invaders.zip"

  SetOutPath "$INSTDIR"

SectionEnd

SectionGroup $(name_s2_sub2) s2_sub2

Section /o "Shearer - 69" s2_sub2_Section1

   AddSize 4557
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub2_song1} $TEMP\Song-Shearer-69.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:
  ZipDLL::extractall "$TEMP\Song-Shearer-69.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-Shearer-69.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Shearer - 69 (Karaoke)" s2_sub2_Section2

   AddSize 4772
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub2_song2} $TEMP\Song-Shearer-69-Kar.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:
  ZipDLL::extractall "$TEMP\Song-Shearer-69-Kar.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-Shearer-69-Kar.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Shearer - Can't stop it" s2_sub2_Section3

   AddSize 5510
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub2_song3} $TEMP\Song-Shearer-CSI.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:
  ZipDLL::extractall "$TEMP\Song-Shearer-CSI.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-Shearer-CSI.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Shearer - Can't stop it (Karaoke)" s2_sub2_Section4

   AddSize 4178
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub2_song4} $TEMP\Song-Shearer-CSI-Kar.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:
  ZipDLL::extractall "$TEMP\Song-Shearer-CSI-Kar.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-Shearer-CSI-Kar.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Shearer - In My Hand" s2_sub2_Section5

   AddSize 5960
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub2_song5} $TEMP\Song-Shearer-IMH.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:
  ZipDLL::extractall "$TEMP\Song-Shearer-IMH.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-Shearer-IMH.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Shearer - Man Song" s2_sub2_Section6

   AddSize 7270
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub2_song6} $TEMP\Song-Shearer-MS.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:
  ZipDLL::extractall "$TEMP\Song-Shearer-MS.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-Shearer-MS.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Shearer - Man Song (Karaoke)" s2_sub2_Section7

   AddSize 5807
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub2_song7} $TEMP\Song-Shearer-MS-Kar.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:
  ZipDLL::extractall "$TEMP\Song-Shearer-MS-Kar.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-Shearer-MS-Kar.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Shearer - Stay With Me" s2_sub2_Section8

   AddSize 6400
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub2_song8} $TEMP\Song-Shearer-SWM.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:
  ZipDLL::extractall "$TEMP\Song-Shearer-SWM.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-Shearer-SWM.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Shearer - Stay With Me (Karaoke)" s2_sub2_Section9

   AddSize 5417
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub2_song9} $TEMP\Song-Shearer-SWM-Kar.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:

  ZipDLL::extractall "$TEMP\Song-Shearer-SWM-Kar.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-Shearer-SWM-Kar.zip"

  SetOutPath "$INSTDIR"

SectionEnd

SectionGroupEnd

Section /o "Steven Dunston - Northern Star" g2Section5
   AddSize 2427
   SetOverwrite try
   SetOutPath "$INSTDIR"
   CreateDirectory "$INSTDIR\Songs\Steven Dunston - Northern Star"
   SetOutPath "$INSTDIR\Songs\Steven Dunston - Northern Star\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_song5} $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:

  ZipDLL::extractall "$TEMP\Song-Northern-Star.zip" "$INSTDIR\Songs\Steven Dunston - Northern Star\"

  Delete "$TEMP\Song-Northern-Star.zip"

  SetOutPath "$INSTDIR"

SectionEnd

SectionGroup $(name_s2_sub3) s2_sub3

Section /o "Wise Guys - Lebendig und kr�ftig und sch�rfer" s2_sub3_Section1

   AddSize 4015
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub3_song1} $TEMP\Song-WiseGuys-LUKUS.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:

  ZipDLL::extractall "$TEMP\Song-WiseGuys-LUKUS.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-WiseGuys-LUKUS.zip"

  SetOutPath "$INSTDIR"

SectionEnd

Section /o "Wise Guys - Mensch, wo bist du?" s2_sub3_Section2

   AddSize 5335
   SetOverwrite try
   SetOutPath "$INSTDIR\Songs\"

; Download song:
  NSISdl::download /TIMEOUT=50000 ${download_sub3_song2} $TEMP\Song-WiseGuys-MWBD.zip
 
  Pop $R0
    StrCmp $R0 "success" dlok
      MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to Continue" /SD IDOK
  dlok:

  ZipDLL::extractall "$TEMP\Song-WiseGuys-MWBD.zip" "$INSTDIR\Songs\"

  Delete "$TEMP\Song-WiseGuys-MWBD.zip"

  SetOutPath "$INSTDIR"

SectionEnd

SectionGroupEnd

SectionGroupEnd

;------------------------------------
; OPTIONAL THEMES (Section 3)
;------------------------------------

SectionGroup $(name_section3) Section3

 Section /o "Orange" g3Section1
   AddSize 1291

; Download theme orange:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Theme-Orange.zip" "$INSTDIR\"

  Delete "$TEMP\Theme-Orange.zip"

  SetOutPath "$INSTDIR"

SectionEnd

 Section /o "Streetlight" g3Section2
  AddSize 1905

; Download theme Streetlight:
  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Theme-Streetlight.zip" "$INSTDIR\"

  Delete "$TEMP\Theme-Streetlight.zip"

  SetOutPath "$INSTDIR"

SectionEnd

 Section /o "Vistar" g3Section3
    AddSize 1936

; Download theme Vistar:

  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Theme-Vistar.zip" "$INSTDIR\"

  Delete "$TEMP\Theme-Vistar.zip"

  SetOutPath "$INSTDIR"

SectionEnd

 Section /o "BlueSensation" g3Section4
    AddSize 2109

; Download theme BlueSensation:

  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Theme-BlueSensation.zip" "$INSTDIR\"

  Delete "$TEMP\Theme-BlueSensation.zip"

  SetOutPath "$INSTDIR"

SectionEnd


 Section /o "WhiteSensation" g3Section5
  AddSize 1168

; Download theme WhiteSensation:

  NSISdl::download /TIMEOUT=50000 ${download_theme7} $TEMP\Theme-WhiteSensation.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:
  ZipDLL::extractall "$TEMP\Theme-WhiteSensation.zip" "$INSTDIR\"

  Delete "$TEMP\Theme-WhiteSensation.zip"

  SetOutPath "$INSTDIR"

SectionEnd

 Section /o "WiiStar" g3Section6
   AddSize 850

; Download theme WiiStar:

  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$TEMP\Theme-WiiStar.zip" "$INSTDIR\"

  Delete "$TEMP\Theme-WiiStar.zip"

  SetOutPath "$INSTDIR"

SectionEnd

 Section /o "iStar" g3Section7
  AddSize 1588

; Download theme iStar:

  NSISdl::download /TIMEOUT=50000 ${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:
  ZipDLL::extractall "$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 ${s2_sub2} $(DESC_Section2_sub2)
  !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub3} $(DESC_Section2_sub3)
  !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 ${g2Section5} $(DESC_g2Section5)

  !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 ${s2_sub2_Section1} $(DESC_s2_sub2_Section1)
  !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section2} $(DESC_s2_sub2_Section2)
  !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section3} $(DESC_s2_sub2_Section3)
  !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section4} $(DESC_s2_sub2_Section4)
  !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section5} $(DESC_s2_sub2_Section5)
  !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section6} $(DESC_s2_sub2_Section6)
  !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section7} $(DESC_s2_sub2_Section7)
  !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section8} $(DESC_s2_sub2_Section8)
  !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section9} $(DESC_s2_sub2_Section9)

  !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub3_Section1} $(DESC_s2_sub3_Section1)
  !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub3_Section2} $(DESC_s2_sub3_Section2)

  !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_DESCRIPTION_TEXT ${g3Section7} $(DESC_g3Section7)

!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