; Script generated by the HM NIS Edit Script Wizard.

; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "Baafen VHETools Pack"
!define PRODUCT_VERSION "0.1 Beta"
!define PRODUCT_PUBLISHER "Baafen"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\hammer.exe"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"

; MUI 1.67 compatible ------
!include "MUI.nsh"

; MUI Settings
!define MUI_ABORTWARNIN G
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp" ; optional

; Uninstall log
!define UninstLog "uninstall.log"
Var UninstLog
 
; Uninstall log file missing.
LangString UninstLogMissing ${LANG_ENGLISH} "${UninstLog} not found!$\r$\nUninstallation cannot proceed!"
 
; AddItem macro
!macro AddItem Path
 FileWrite $UninstLog "${Path}$\r$\n"
!macroend
!define AddItem "!insertmacro AddItem"
 
; File macro
!macro File FilePath FileName
 IfFileExists "$OUTDIR\${FileName}" +2
  FileWrite $UninstLog "$OUTDIR\${FileName}$\r$\n"
 File "${FilePath}${FileName}"
!macroend
!define File "!insertmacro File"
 
; Copy files macro
!macro CopyFiles SourcePath DestPath
 IfFileExists "${DestPath}" +2
  FileWrite $UninstLog "${DestPath}$\r$\n"
 CopyFiles "${SourcePath}" "${DestPath}"
!macroend
!define CopyFiles "!insertmacro CopyFiles"
 
; Rename macro
!macro Rename SourcePath DestPath
 IfFileExists "${DestPath}" +2
  FileWrite $UninstLog "${DestPath}$\r$\n"
 Rename "${SourcePath}" "${DestPath}"
!macroend
!define Rename "!insertmacro Rename"
 
; CreateDirectory macro
!macro CreateDirectory Path
 CreateDirectory "${Path}"
 FileWrite $UninstLog "${Path}$\r$\n"
!macroend
!define CreateDirectory "!insertmacro CreateDirectory"
 
; SetOutPath macro
!macro SetOutPath Path
 SetOutPath "${Path}"
 FileWrite $UninstLog "${Path}$\r$\n"
!macroend
!define SetOutPath "!insertmacro SetOutPath"
 
Section -openlogfile
 IfFileExists "$INSTDIR\${UninstLog}" +3
  FileOpen $UninstLog "$INSTDIR\${UninstLog}" w
 Goto +4
  SetFileAttributes "$INSTDIR\${UninstLog}" NORMAL
  FileOpen $UninstLog "$INSTDIR\${UninstLog}" a
  FileSeek $UninstLog 0 END
SectionEnd

; Welcome page
!insertmacro MUI_PAGE_WELCOME
; License page
!insertmacro MUI_PAGE_LICENSE "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\license.txt"
; Components page
!insertmacro MUI_PAGE_COMPONENTS
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Readme Baafen VHETOOLS Pack.txt"
!insertmacro MUI_PAGE_FINISH

; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES

; Language files
!insertmacro MUI_LANGUAGE "Swedish"

; MUI end ------

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "Baafen_VHETools_pack_Beta.exe"
InstallDir "$PROGRAMFILES\Valve Hammer Editor"
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
ShowInstDetails show
ShowUnInstDetails show

Section "Uppdatera till 3.5" SEC02
  ${AddItem} "$INSTDIR"
  ${SetOutPath} "$INSTDIR"
  SetOverwrite on
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\Hammer 3.5\" "hammer.exe"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\" "Readme Baafen VHETOOLS Pack.txt"
SectionEnd

Section "FGDs" SEC03
  ${AddItem} "$INSTDIR"
  ${AddItem} "$INSTDIR\fgd"
  ${SetOutPath} "$INSTDIR\fgd\counter-strike"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\FGD\fgd\counter-strike\" "cs_expert-tom793c.fgd"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\FGD\fgd\counter-strike\" "halflife-cs_expert.fgd"
  ${SetOutPath} "$INSTDIR"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\" "Readme Baafen VHETOOLS Pack.txt"
SectionEnd

Section "ZHLT" SEC04
  ${AddItem} "$INSTDIR"
  ${AddItem} "$INSTDIR\tools"
  ${SetOutPath} "$INSTDIR\tools\Docs"
  SetOverwrite on
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\Docs\" "Online Docs Shortcut.url"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\Docs\" "ZHLT 3.0 Changelog.txt"
  ${AddItem} "$INSTDIR"
  ${SetOutPath} "$INSTDIR\tools"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\" "hlbsp.exe"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\" "hlcsg.exe"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\" "hlrad.exe"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\" "hlvis.exe"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\" "lights.rad"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\" "Microsoft.VC80.CRT.manifest"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\" "msvcp80.dll"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\" "msvcr80.dll"
  ${AddItem} "$INSTDIR"  
  ${AddItem} "$INSTDIR\tools"
  ${SetOutPath} "$INSTDIR\tools\Power Tools"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\Power Tools\" "count_ents.exe"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\Power Tools\" "ripent.exe"
  ${SetOutPath} "$INSTDIR\tools"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\" "valve.rad"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\" "wad.cfg"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\ZHLT\tools\" "zhlt.wad"
  ${SetOutPath} "$INSTDIR"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\" "Readme Baafen VHETOOLS Pack.txt"
SectionEnd

Section "WADs" SEC05
  ${AddItem} "$INSTDIR"
  ${SetOutPath} "$INSTDIR\WADs"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\WADs\WADs\" "halflife.wad"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\WADs\WADs\" "de_aztec.wad"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\WADs\WADs\" "cs_dust.wad"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\WADs\WADs\" "decals.wad"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\WADs\WADs\" "cstrike.wad"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\WADs\WADs\" "liquids.wad"
  ${SetOutPath} "$INSTDIR"
  ${File} "C:\Documents and Settings\Jocke\Skrivbord\Baafens mapp\instaler\Mapping\instalfiler\" "Readme Baafen VHETOOLS Pack.txt"
SectionEnd

Section -AdditionalIcons
  ${SetOutPath} $INSTDIR
  CreateShortCut "$SMPROGRAMS\Valve Hammer Editor\Avinstallera Valve Hammer Editor + Tools.lnk" "$INSTDIR\Avinstallera Baafen VHETools Pack.exe"
SectionEnd

Section -Post
  WriteUninstaller "$INSTDIR\Avinstallera Baafen VHETools Pack.exe"
  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\hammer.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Avinstallera Baafen VHETools Pack.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\hammer.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
SectionEnd

; Section descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "Valve Hammer Editor kommer uppdateras till 3.5"
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "Två expert FGDs för counter-strike kommer att installeras"
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "ZHLT tools kommer att installeras"
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} "Några wad filer kommer att installeras"
!insertmacro MUI_FUNCTION_DESCRIPTION_END


Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) avinstallerades utan problem"
FunctionEnd

Function un.onInit
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Vill du avinstallera $(^Name) och alla dess komponenter?" IDYES +2
  Abort
FunctionEnd

Section -closelogfile
 FileClose $UninstLog
 SetFileAttributes "$INSTDIR\${UninstLog}" READONLY|SYSTEM|HIDDEN
SectionEnd
 
Section Uninstall
 

Delete "$INSTDIR\Avinstallera Baafen VHETools Pack.exe"
Delete "$INSTDIR\Readme Baafen VHETOOLS Pack.txt"

 ; Can't uninstall if uninstall log is missing!
 IfFileExists "$INSTDIR\${UninstLog}" +3
  MessageBox MB_OK|MB_ICONSTOP "$(UninstLogMissing)"
   Abort
 
 Push $R0
 Push $R1
 Push $R2
 SetFileAttributes "$INSTDIR\${UninstLog}" NORMAL
 FileOpen $UninstLog "$INSTDIR\${UninstLog}" r
 StrCpy $R1 0
 
 GetLineCount:
  ClearErrors
   FileRead $UninstLog $R0
   IntOp $R1 $R1 + 1
   IfErrors 0 GetLineCount
 
 LoopRead:
  FileSeek $UninstLog 0 SET
  StrCpy $R2 0
  FindLine:
   FileRead $UninstLog $R0
   IntOp $R2 $R2 + 1
   StrCmp $R1 $R2 0 FindLine
 
   StrCpy $R0 $R0 -2
   IfFileExists "$R0\*.*" 0 +3
    RMDir $R0  #is dir
   Goto +3
   IfFileExists $R0 0 +2
    Delete $R0 #is file
 
  StrCmp $R1 0 LoopDone
  IntOp $R1 $R1 - 1
  Goto LoopRead
 LoopDone:
 FileClose $UninstLog
 Delete "$INSTDIR\${UninstLog}"
 Pop $R2
 Pop $R1
 Pop $R0

SectionEnd