1; Helper defines 2!define PRODUCT_NAME "Scorched3D" 3!define PRODUCT_VERSION "43.3d" 4!define PRODUCT_PUBLISHER "Scorched" 5!define PRODUCT_WEB_SITE "http://www.scorched3d.co.uk" 6!define PRODUCT_DONATE_WEB_SITE "https://www.paypal.com/xclick/business=donations%40scorched3d.co.uk&item_name=Scorched3D&no_note=1&tax=0¤cy_code=GBP" 7!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" 8!define PRODUCT_UNINST_ROOT_KEY "HKLM" 9 10RequestExecutionLevel admin 11 12SetCompressor lzma 13 14; MUI 1.67 compatible ------ 15!include "MUI.nsh" 16!include "scripts\FileAssociation.nsh" 17 18; MUI Settings 19!define MUI_ABORTWARNING 20!define MUI_ICON "data\images\tank2.ico" 21!define MUI_UNICON "data\images\tank2.ico" 22 23; Welcome page 24!insertmacro MUI_PAGE_WELCOME 25; License page 26!insertmacro MUI_PAGE_LICENSE "COPYING" 27; Directory page 28!insertmacro MUI_PAGE_DIRECTORY 29; Instfiles page 30!insertmacro MUI_PAGE_INSTFILES 31; Finish page 32!insertmacro MUI_PAGE_FINISH 33 34; Uninstaller pages 35!insertmacro MUI_UNPAGE_INSTFILES 36 37; Language files 38!insertmacro MUI_LANGUAGE "English" 39!insertmacro MUI_LANGUAGE "Russian" 40 41; Reserve files 42!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS 43!insertmacro MUI_RESERVEFILE_LANGDLL 44 45; MUI end ------ 46 47Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" 48OutFile "Scorched3D-${PRODUCT_VERSION}-patch.exe" 49InstallDir "$PROGRAMFILES\Scorched3D" 50ShowInstDetails show 51ShowUnInstDetails show 52 53Function .onInit 54 ;Language selection dialog 55 Push "" 56 Push ${LANG_ENGLISH} 57 Push English 58 Push ${LANG_RUSSIAN} 59 Push Russian 60 Push A ; A means auto count languages 61 ; for the auto count to work the first empty push (Push "") must remain 62 LangDLL::LangDialog "Installer Language" "Please select the language of the installer" 63 64 Pop $LANGUAGE 65 StrCmp $LANGUAGE "cancel" 0 +2 66 Abort 67 68 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" 69 StrCmp $R0 "" 0 done 70 MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "${PRODUCT_NAME} is not already installed, do you wish to patch anyway?" IDOK done 71 Abort 72done: 73 74FunctionEnd 75 76Section "MainSection" SEC01 77 SetOutPath "$INSTDIR" 78 SetOverwrite try 79 80File "/oname=$INSTDIR\.\data\globalmods\apoc\data\landscapes\ambientsoundhelicopter.xml" ".\data\globalmods\apoc\data\landscapes\ambientsoundhelicopter.xml" 81File "/oname=$INSTDIR\.\data\globalmods\apoc\data\modinfo.xml" ".\data\globalmods\apoc\data\modinfo.xml" 82File "/oname=$INSTDIR\.\data\globalmods\none\data\landscapes\boidsbats.xml" ".\data\globalmods\none\data\landscapes\boidsbats.xml" 83File "/oname=$INSTDIR\.\data\globalmods\none\data\landscapes.xml" ".\data\globalmods\none\data\landscapes.xml" 84File "/oname=$INSTDIR\.\data\globalmods\none\data\modinfo.xml" ".\data\globalmods\none\data\modinfo.xml" 85File "/oname=$INSTDIR\.\data\keys.xml" ".\data\keys.xml" 86File "/oname=$INSTDIR\.\scorched.exe" ".\scorched.exe" 87File "/oname=$INSTDIR\.\scorchedc.exe" ".\scorchedc.exe" 88File "/oname=$INSTDIR\.\scorcheds.exe" ".\scorcheds.exe" 89File "/oname=$INSTDIR\.\uninst.exe" ".\uninst.exe" 90 91 ${registerExtension} "$INSTDIR\scorchedc.exe" ".s3l" "Scorched3D_Launch" 92 93 FileOpen $9 "$INSTDIR\data\lang\language.ini" w 94 StrCmp $LANGUAGE ${LANG_ENGLISH} 0 +2 95 FileWrite $9 "EN" 96 StrCmp $LANGUAGE ${LANG_RUSSIAN} 0 +2 97 FileWrite $9 "RU" 98 FileClose $9 99SectionEnd 100 101Section -AdditionalIcons 102 WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" 103 WriteIniStr "$INSTDIR\${PRODUCT_NAME}-docs.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}\wiki" 104 WriteIniStr "$INSTDIR\${PRODUCT_NAME}-donate.url" "InternetShortcut" "URL" "${PRODUCT_DONATE_WEB_SITE}" 105 106 CreateDirectory "$SMPROGRAMS\Scorched3D" 107 108 CreateShortCut "$SMPROGRAMS\Scorched3D\Uninstall Scorched3D.lnk" "$INSTDIR\uninst.exe" 109 CreateShortCut "$SMPROGRAMS\Scorched3D\Scorched3D.lnk" "$INSTDIR\scorched.exe" "" "$INSTDIR\data\images\tank2.ico" 110 CreateShortCut "$SMPROGRAMS\Scorched3D\Scorched3D Documentation.lnk" "$INSTDIR\${PRODUCT_NAME}-docs.url" "" "$INSTDIR\data\images\tank2.ico" 111 CreateShortCut "$SMPROGRAMS\Scorched3D\Scorched3D Homepage.lnk" "$INSTDIR\${PRODUCT_NAME}.url" "" "$INSTDIR\data\images\tank2.ico" 112 CreateShortCut "$SMPROGRAMS\Scorched3D\Scorched3D Donations.lnk" "$INSTDIR\${PRODUCT_NAME}-donate.url" "" "$INSTDIR\data\images\tank2.ico" 113SectionEnd 114 115Section -Post 116 WriteUninstaller "$INSTDIR\uninst.exe" 117 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" 118 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" 119 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" 120 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" 121 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" 122SectionEnd 123 124Function un.onUninstSuccess 125 HideWindow 126 MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." 127FunctionEnd 128 129Var DEL_USER 130Function un.onInit 131 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES remove 132 Abort 133remove: 134 135 StrCpy $DEL_USER "FALSE" 136 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Do you want to remove all $(^Name) user data. Warning: this includes STATS, saved games, mods etc?" IDNO nodel 137 StrCpy $DEL_USER "TRUE"; 138nodel: 139FunctionEnd 140 141Section Uninstall 142 143 RMDir /r "$INSTDIR\data" 144 RMDir /r "$INSTDIR\documentation" 145 RMDir /r "$SMPROGRAMS\Scorched3D" 146 147 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" 148 SetAutoClose true 149 150 ${unregisterExtension} ".s3l" "Scorched3D_Launch" 151 152 StrCmp $DEL_USER "FALSE" nodel 153 RMDir /r "$INSTDIR\.scorched3d" 154 RMDir /r "$PROFILE\.scorched3d" 155nodel: 156 157 Delete "$INSTDIR\*.*" 158 RMDir "$INSTDIR" 159 160SectionEnd 161