All pastes #473809 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-05-06 13:04 UTC
rendered paste body
;--------------------------------
; Setup Settings
    !define PRODUCT_NAME "6thSense Mod"
    !define PRODUCT_VERSION "0.69"
    !define PRODUCT_PUBLISHER "6thSense.eu"
    !define PRODUCT_WEB_SITE "http://trac.6thsense.eu:800/arma/trac/wiki/6thSense.eu%20Mod"
    !define PRODUCT_DIR_REGKEY "Software\Bohemia Interactive Studio\ArmA\MAIN"
    !define PRODUCT_DIR_REGKEY_SIX "Software\6thSense.eu\${PRODUCT_NAME}"
    !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
    !define PRODUCT_UNINST_ROOT_KEY "HKLM"
    !define PRODUCT_UNINSTALLER "$INSTDIR\${PRODUCT_NAME} uninst.exe"
    !define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir"
    !define PRODUCT_OUT "$INSTDIR\@6thSenseMod"
    !define PRODUCT_REG_LAUNCHER "Software\Kegetys\ArmA Launcher"
    !define PRODUCT_STARTROOT "6thSense.eu ArmA"
    !define PRODUCT_LICENSE "misc\license.rtf"
    
    ; Required Version, only used in Update and 1st
    !define PRODUCT_REQVER "0.68"
    
    ; Define Product Type: Setup, Update or 1st
    !define PRODUCT_1st
    ;!define PRODUCT_setup
    ;!define PRODUCT_update
 
;--------------------------------
; Different Setups
     !ifdef PRODUCT_1st
        !define PRODUCT_ROOT "1st"
        !define PRODUCT_shortcuts
        !define PRODUCT_launcher
        !define PRODUCT_check
        !define PRODUCT_OUTNAME "${PRODUCT_NAME} ${PRODUCT_VERSION} Update"
        !define PRODUCT_OUTFILE "6th-ArmA_Mod_v${PRODUCT_VERSION}update.exe"
    !endif
    
    !ifdef PRODUCT_setup
        !define PRODUCT_ROOT "full"
        !define PRODUCT_shortcuts
        !define PRODUCT_launcher
        !define PRODUCT_OUTNAME "${PRODUCT_NAME} ${PRODUCT_VERSION}"
        !define PRODUCT_OUTFILE "6th-ArmA_Mod_v${PRODUCT_VERSION}setup.exe"
    !endif
    
    !ifdef PRODUCT_update
        !define PRODUCT_ROOT "update"
        !define PRODUCT_check
        !define PRODUCT_OUTNAME "${PRODUCT_NAME} ${PRODUCT_VERSION} Update"
        !define PRODUCT_OUTFILE "6th-ArmA_Mod_v${PRODUCT_VERSION}update.exe"
    !endif

;--------------------------------
;General
    ;Name and file
    Name "${PRODUCT_OUTNAME}"
    OutFile "${PRODUCT_OUTFILE}"
    
    ;Default installation folder
    InstallDir "$INSTDIR"
    
    ;Get installation folder from registry if available
    InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
    
    ShowInstDetails show ; (can be show to have them shown, or nevershow to disable)
    ShowUnInstDetails show ; (can be show to have them shown, or nevershow to disable)

;--------------------------------
;Custom settings
    ;//   Some default compiler settings (uncomment and change at will):
    ;//   SetCompress auto ; (can be off or force)
    SetCompressor /SOLID lzma
    SetCompressorDictSize 128
    SetDatablockOptimize on
    ;//   CRCCheck on ; (can be off)
    ;//   AutoCloseWindow false ; (can be true for the window go away automatically at end)
    ;//   SetDateSave off ; (can be on to have files restored to their orginal date)

;--------------------------------
;Include Modern UI
    !include "MUI.nsh"

;--------------------------------
;Include LogicLib - it provides macros for logical structures such as conditional execution and loops.
    !include LogicLib.nsh

;--------------------------------
;Interface Settings
    !define MUI_ABORTWARNING
    !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
    !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
    
    !define MUI_HEADERIMAGE
    ; Display an image on the header of the page.
    
    !define MUI_HEADERIMAGE_BITMAP misc\banner.bmp
    ; Bitmap image to display on the header of installers pages (recommended size: 150x57 pixels).
    ; Default: ${NSISDIR}\Contrib\Graphics\Header\nsis.bmp
    
    !define MUI_INSTFILESPAGE_PROGRESSBAR smooth ; ("" | colored | smooth)
    ; The style of the progress bar. Default: smooth
    
    ; // Language Selection Dialog Settings
    !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"

;--------------------------------
;Macros
!macro REGSTR REG KEY VAL INSERT
    ReadRegStr $1 "${REG}" "${KEY}" "${VAL}"
    IfErrors 0 +2
    WriteRegStr "${REG}" "${KEY}" "${VAL}" "${INSERT}"
!macroend

!macro REGDWORD REG KEY VAL INSERT
    ReadRegDWORD $1 "${REG}" "${KEY}" "${VAL}"
    IfErrors 0 +2
    WriteRegDWORD "${REG}" "${KEY}" "${VAL}" "${INSERT}"
!macroend

;--------------------------------
;Pages
    ; // Welcome page
    !insertmacro MUI_PAGE_WELCOME
    
    ; // License page
    !define MUI_LICENSEPAGE_CHECKBOX
    !insertmacro MUI_PAGE_LICENSE ${PRODUCT_LICENSE}
    
    ; // Components page
    !insertmacro MUI_PAGE_COMPONENTS
    
    ; // Directory page
    ;//  !define MUI_PAGE_CUSTOMFUNCTION_PRE directorySkipPre
    !insertmacro MUI_PAGE_DIRECTORY
    
    ; // Start menu page
    !define MUI_PAGE_CUSTOMFUNCTION_PRE startMenuSkipPre
    var STARTMENU_FOLDER
    !define MUI_STARTMENUPAGE_NODISABLE
    !define MUI_STARTMENUPAGE_DEFAULTFOLDER $(DESC_DefaultFolder)
    
    ; // Language specific folder
    !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 "$STARTMENU_FOLDER"
    
    ; // Instfiles page
    ;//  !define MUI_PAGE_CUSTOMFUNCTION_PRE locationSkipPre
    !insertmacro MUI_PAGE_INSTFILES
    
    ; // Finish page
    ;//  !define MUI_FINISHPAGE_RUN "$INSTDIR\AppMainExe.exe"
    ;//  !define MUI_FINISHPAGE_RUN_PARAMETERS "param"
    !define MUI_FINISHPAGE_SHOWREADME "${PRODUCT_OUT}\Readmes\6th-ArmA Mod Readme.rtf"
    !insertmacro MUI_PAGE_FINISH
    
    
    ; // Uninstaller pages
    !insertmacro MUI_UNPAGE_WELCOME
    !insertmacro MUI_UNPAGE_CONFIRM
    !insertmacro MUI_UNPAGE_INSTFILES
    !insertmacro MUI_UNPAGE_FINISH
;--------------------------------
;Languages

    !insertmacro MUI_LANGUAGE "English"
    !insertmacro MUI_LANGUAGE "Czech"
    !insertmacro MUI_LANGUAGE "Danish"
    !insertmacro MUI_LANGUAGE "Dutch"
    !insertmacro MUI_LANGUAGE "Finnish"
    !insertmacro MUI_LANGUAGE "French"
    !insertmacro MUI_LANGUAGE "German"
    !insertmacro MUI_LANGUAGE "Italian"
    !insertmacro MUI_LANGUAGE "Japanese"
    !insertmacro MUI_LANGUAGE "Norwegian"
    !insertmacro MUI_LANGUAGE "Polish"
    !insertmacro MUI_LANGUAGE "Russian"

;--------------------------------
; Language Strings
    LangString DESC_DefaultFolder ${LANG_ENGLISH} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"
    LangString DESC_DefaultFolder ${LANG_GERMAN} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"
    LangString DESC_DefaultFolder ${LANG_CZECH} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"
    LangString DESC_DefaultFolder ${LANG_DANISH} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"
    LangString DESC_DefaultFolder ${LANG_DUTCH} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"
    LangString DESC_DefaultFolder ${LANG_FINNISH} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"
    LangString DESC_DefaultFolder ${LANG_FRENCH} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"
    LangString DESC_DefaultFolder ${LANG_ITALIAN} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"
    LangString DESC_DefaultFolder ${LANG_JAPANESE} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"
    LangString DESC_DefaultFolder ${LANG_NORWEGIAN} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"
    LangString DESC_DefaultFolder ${LANG_POLISH} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"
    LangString DESC_DefaultFolder ${LANG_RUSSIAN} "${PRODUCT_STARTROOT}\${PRODUCT_NAME}"

;--------------------------------
;Reserve Files
  ;These files should be inserted before other files in the data block
  ;Keep these lines before any File command
  ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)

  !insertmacro MUI_RESERVEFILE_LANGDLL
; MUI end ------

Function .onInit
    !insertmacro MUI_LANGDLL_DISPLAY
    ReadRegStr $INSTDIR HKLM "SOFTWARE\Bohemia Interactive Studio\ArmA" "MAIN"
    IfErrors 0 end
    MessageBox MB_YESNO "Armed Assault is not installed. Do you want to continue?" IDYES yes IDNO no
    yes:
        MessageBox MB_OK "You will have to specify the path your ArmA folder manually"
        Goto End
    no:
        Abort
    end:
FunctionEnd

;--------------------------------
; Define shortcuts
    !define PRODUCT_STARTMENU "$SMPROGRAMS\$STARTMENU_FOLDER"
    !define PRODUCT_SHORTCUT_DESKTOP "$DESKTOP\Play ArmA With ${PRODUCT_NAME}.lnk"
    !define PRODUCT_SHORTCUT_DESKTOP_LAUNCHER "$DESKTOP\Start ArmA Launcher.lnk"
    !define PRODUCT_SHORTCUT_START "${PRODUCT_STARTMENU}\Play ArmA With ${PRODUCT_NAME}.lnk"
    !define PRODUCT_SHORTCUT_START_README "${PRODUCT_STARTMENU}\${PRODUCT_NAME} Readme.lnk"
    !define PRODUCT_SHORTCUT_START_UNINST "${PRODUCT_STARTMENU}\${PRODUCT_NAME} Uninstall.lnk"
    !define PRODUCT_SHORTCUT_START_UPDATER "${PRODUCT_STARTMENU}\${PRODUCT_NAME} Update Check.lnk"
    !define PRODUCT_SHORTCUT_START_URL "${PRODUCT_STARTMENU}\${PRODUCT_NAME} Wiki.url"
    !define PRODUCT_SHORTCUT_START_LAUNCHER "${PRODUCT_STARTMENU}\Start ArmA Launcher.lnk"

;--------------------------------
;Installer Sections
    Section
        ClearErrors
        !ifdef PRODUCT_check
            FileOpen $0 "${PRODUCT_OUT}\tools\version.txt" r
            IfErrors errors
            FileRead $0 $1
            IfErrors errors
            FileClose $0
            StrCmp "$1" "${PRODUCT_REQVER}" ok wrongver
            errors:
                MessageBox MB_OK "Version.txt not found or unreadable, can not continue"
                Abort
            wrongver:
                MessageBox MB_OK "Version.txt found, but wrong Version, expected ${PRODUCT_REQVER} found $1"
                Abort
            ok:
        !endif
        SetOutPath "${PRODUCT_OUT}\"
        SetOverwrite ifdiff
        File /a /r "${PRODUCT_ROOT}\*.*"
        WriteRegStr HKLM "${PRODUCT_DIR_REGKEY_SIX}" "Version" "${PRODUCT_VERSION}"
        WriteRegStr HKLM "${PRODUCT_DIR_REGKEY_SIX}" "Path" "$INSTDIR"
    
        ;//Temporary
        !ifdef PRODUCT_1st
            Delete "${PRODUCT_OUT}\Addons\NEM_DEFS_ZWOOD.pbo"
            Delete "${PRODUCT_OUT}\Addons\voice.pbo"
        !endif
    SectionEnd

    !ifdef PRODUCT_shortcuts
        Section "Desktop shortcuts" SEC02
            SetOutPath "$INSTDIR"
            SetOverwrite ifdiff
            CreateShortCut "${PRODUCT_SHORTCUT_DESKTOP}" "$INSTDIR\ArmA.exe" "-nosplash -mod=@6thSenseMod"
        SectionEnd
        
        Section "Start menu shortcuts" SEC03
        ; Startmenu
            !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
            ;Create shortcuts
            CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
            WriteIniStr "${PRODUCT_SHORTCUT_START_URL}" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
            SetOutPath "$INSTDIR"
            SetOverwrite ifdiff
            CreateShortCut "${PRODUCT_SHORTCUT_START}" "$INSTDIR\ArmA.exe" "-nosplash -mod=@6thSenseMod"
            CreateShortCut "${PRODUCT_SHORTCUT_START_README}" "${PRODUCT_OUT}\Readmes\6th-ArmA Mod Readme.rtf"
            SetOutPath "${PRODUCT_OUT}\tools"
            CreateShortCut "${PRODUCT_SHORTCUT_START_UPDATER}" "${PRODUCT_OUT}\tools\updater.bat"
            !insertmacro MUI_STARTMENU_WRITE_END
        SectionEnd
    !endif

    !ifdef PRODUCT_launcher
        Section "ArmA Launcher (By Kegetys)" SEC04
            SetOutPath "${PRODUCT_OUT}\tools\"
            SetOverwrite ifdiff
            File /a /r "keg-armalauncher\*.*"

            !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
            SetOutPath "${PRODUCT_OUT}\tools\"
            CreateShortCut "${PRODUCT_SHORTCUT_START_LAUNCHER}" "${PRODUCT_OUT}\tools\ArmA Launcher.exe"
            CreateShortCut "${PRODUCT_SHORTCUT_DESKTOP_LAUNCHER}" "${PRODUCT_OUT}\tools\ArmA Launcher.exe"
            !insertmacro MUI_STARTMENU_WRITE_END

            ClearErrors
            !insertmacro REGSTR HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "executable" "$INSTDIR\arma.exe"
            !insertmacro REGDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "nosplash" 0x1
            !insertmacro REGDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "window" 0x0
            !insertmacro REGDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "close" 0x0
            !insertmacro REGDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "watchers" 0x1
            !insertmacro REGSTR HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "o_sound1" "none"
            !insertmacro REGSTR HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "o_sound2" "none"
            !insertmacro REGDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "runtir" 0x0
            !insertmacro REGDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "flash" 0x1
            !insertmacro REGSTR HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "sound1" "none"
            !insertmacro REGSTR HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "sound2" "none"
            !insertmacro REGDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "maxmem" 0x0
            !insertmacro REGSTR HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "extraParams" ""
            !insertmacro REGSTR HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}" "extraExec" ""
        
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\mods" "" ""
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\mods\6327921" "name" "6thSenseMod"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\mods\6327921" "dir" "@6thSenseMod"
            WriteRegDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\mods\6327921" "checked" 0x1
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers" "" ""
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\3161232" "name" "6thSense.eu Coop 01"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\3161232" "ip" "s01.6thsense.eu"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\3161232" "port" "2351"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\3161232" "mods" "@6thSenseMod;"
            WriteRegDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\3161232" "sockets" 0x1
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\3963395" "name" "6thSense.eu Coop 02"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\3963395" "ip" "s02.6thsense.eu"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\3963395" "port" "2361"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\3963395" "mods" "@6thSenseMod;"
            WriteRegDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\3963395" "sockets" 0x1
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\5072121" "name" "6thSense.eu Coop 03"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\5072121" "ip" "62.101.81.254"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\5072121" "port" "2355"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\5072121" "mods" "@6thSenseMod;"
            WriteRegDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\5072121" "sockets" 0x1
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\8855384" "name" "6thSense.eu Coop Night 01"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\8855384" "ip" "s02.6thsense.eu"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\8855384" "port" "2341"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\8855384" "mods" "@6thSenseMod;"
            WriteRegDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\8855384" "sockets" 0x1
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\895416" "name" "6thSense.eu Coop Night 02"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\895416" "ip" "s01.6thsense.eu"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\895416" "port" "2341"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\895416" "mods" "@6thSenseMod;"
            WriteRegDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\895416" "sockets" 0x1
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\8977097" "name" "6thSense.eu Mission Test"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\8977097" "ip" "s02.6thsense.eu"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\8977097" "port" "2381"
            WriteRegStr HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\8977097" "mods" "@6thSenseMod;"
            WriteRegDWORD HKEY_CURRENT_USER "${PRODUCT_REG_LAUNCHER}\servers\8977097" "sockets" 0x1
        SectionEnd
    !endif  
  
    Section "Uninstaller" SEC05
        !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
        CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
        CreateShortCut "${PRODUCT_SHORTCUT_START_UNINST}" "${PRODUCT_UNINSTALLER}"
        !insertmacro MUI_STARTMENU_WRITE_END
        
        WriteUninstaller "${PRODUCT_UNINSTALLER}"
        WriteRegStr "${PRODUCT_UNINST_ROOT_KEY}" "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
        WriteRegStr "${PRODUCT_UNINST_ROOT_KEY}" "${PRODUCT_UNINST_KEY}" "UninstallString" "${PRODUCT_UNINSTALLER}"
        ;// WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "${PRODUCT_OUT}\${PRODUCT_NAME}.ico"
        WriteRegStr "${PRODUCT_UNINST_ROOT_KEY}" "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
        WriteRegStr "${PRODUCT_UNINST_ROOT_KEY}" "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
        WriteRegStr "${PRODUCT_UNINST_ROOT_KEY}" "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
    SectionEnd

;--------------------------------
;Uninstaller Section
    Section "Uninstall"
        ;ADD YOUR OWN FILES HERE...
        RMDir /r "${PRODUCT_OUT}"
        Delete "${PRODUCT_UNINSTALLER}"
        !insertmacro MUI_STARTMENU_GETFOLDER "Application" $STARTMENU_FOLDER
        Delete "${PRODUCT_SHORTCUT_START}"
        Delete "${PRODUCT_SHORTCUT_START_UNINST}"
        Delete "${PRODUCT_SHORTCUT_START_URL}"
        Delete "${PRODUCT_SHORTCUT_START_README}"
        Delete "${PRODUCT_SHORTCUT_START_UPDATER}"
        Delete "${PRODUCT_SHORTCUT_START_LAUNCHER}"
        Delete "${PRODUCT_SHORTCUT_DESKTOP}"
        ;//  RMDir "$SMPROGRAMS\$STARTMENU_FOLDER"
        
        ;Delete empty start menu parent diretories
        StrCpy $STARTMENU_FOLDER "$SMPROGRAMS\$STARTMENU_FOLDER"
        
        startMenuDeleteLoop:
        RMDir $STARTMENU_FOLDER
        GetFullPathName $STARTMENU_FOLDER "$STARTMENU_FOLDER\.."
        
        IfErrors startMenuDeleteLoopDone
        
        StrCmp $STARTMENU_FOLDER $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
        startMenuDeleteLoopDone:
        
        DeleteRegKey "${PRODUCT_UNINST_ROOT_KEY}" "${PRODUCT_UNINST_KEY}"
        DeleteRegKey /ifempty HKLM "${PRODUCT_DIR_REGKEY}"
        DeleteRegKey /ifempty HKLM "${PRODUCT_DIR_REGKEY_SIX}"
        
        ;// SetAutoClose true
    SectionEnd

;--------------------------------
;Descriptions
    ;Language strings
    ;//LangString DESC_SecDummy ${LANG_ENGLISH} "A test section."

    ;Assign language strings to sections
    !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
    ;//  !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "Install Core files - REQUIRED."
    !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "Install ArmA Launcher by Kegetys"
    !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Create a desktop shortcut to run ${PRODUCT_NAME}"
    !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} "Create a start menu entry for ${PRODUCT_NAME}"
    !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} "Add uninstall ability for ${PRODUCT_NAME}"
    !insertmacro MUI_FUNCTION_DESCRIPTION_END

;--------------------------------
;Uninstaller Functions
Function un.onInit
    !insertmacro MUI_UNGETLANGUAGE
    MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Do you want to uninstall $(^Name) and all of its components?" IDYES +2
    Abort
FunctionEnd

Function un.onUninstSuccess
    HideWindow
    MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was uninstalled successfully."
FunctionEnd

;--------------------------------
;Skipping Pages Functions
Function startMenuSkipPre
    SectionGetFlags ${SEC03} $R0
    IntOp $R0 $R0 & ${SF_SELECTED}
    IntCmp $R0 ${SF_SELECTED} show

    SectionGetFlags ${SEC04} $R0
    IntOp $R0 $R0 & ${SF_SELECTED}
    IntCmp $R0 ${SF_SELECTED} show

    Abort

    show:
FunctionEnd

/*
Function directorySkipPre

  SectionGetFlags ${SEC01} $R0
  IntOp $R0 $R0 & ${SF_SELECTED}
  IntCmp $R0 ${SF_SELECTED} show

  Abort

  show:

FunctionEnd

Function locationSkipPre

  SectionGetFlags ${SEC01} $R0
  IntOp $R0 $R0 & ${SF_SELECTED}
  IntCmp $R0 ${SF_SELECTED} show

  Abort

  show:

FunctionEnd
*/