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 "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe" 49InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" 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 "" done 70 71 MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "$(^Name) is already installed, do you wish to re-install?" IDOK done 72 Abort 73done: 74 75FunctionEnd 76 77Section "MainSection" SEC01 78 SetOutPath "$INSTDIR" 79 SetOverwrite try 80 81 RMDir /r "$INSTDIR\data" 82 83 File /r /x ".svn" /x "*.db" "data" 84 File /r /x ".svn" /x "*.db" "documentation" 85 File "*.dll" 86 File "*.manifest" 87 File "README" 88 File "CHANGELOG" 89 File "Release\scorched.exe" 90 File "Release\scorchedc.exe" 91 File "Release\scorcheds.exe" 92 93 ${registerExtension} "$INSTDIR\scorchedc.exe" ".s3l" "Scorched3D_Launch" 94 95 FileOpen $9 "$INSTDIR\data\lang\language.ini" w 96 StrCmp $LANGUAGE ${LANG_ENGLISH} 0 +2 97 FileWrite $9 "EN" 98 StrCmp $LANGUAGE ${LANG_RUSSIAN} 0 +2 99 FileWrite $9 "RU" 100 FileClose $9 101SectionEnd 102 103Section -AdditionalIcons 104 WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" 105 WriteIniStr "$INSTDIR\${PRODUCT_NAME}-docs.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}\wiki" 106 WriteIniStr "$INSTDIR\${PRODUCT_NAME}-donate.url" "InternetShortcut" "URL" "${PRODUCT_DONATE_WEB_SITE}" 107 108 CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}" 109 110 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall Scorched3D.lnk" "$INSTDIR\uninst.exe" 111 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Scorched3D.lnk" "$INSTDIR\scorched.exe" "" "$INSTDIR\data\images\tank2.ico" 112 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Scorched3D Documentation.lnk" "$INSTDIR\${PRODUCT_NAME}-docs.url" "" "$INSTDIR\data\images\tank2.ico" 113 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Scorched3D Homepage.lnk" "$INSTDIR\${PRODUCT_NAME}.url" "" "$INSTDIR\data\images\tank2.ico" 114 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Scorched3D Donations.lnk" "$INSTDIR\${PRODUCT_NAME}-donate.url" "" "$INSTDIR\data\images\tank2.ico" 115SectionEnd 116 117Section -Post 118 WriteUninstaller "$INSTDIR\uninst.exe" 119 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" 120 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" 121 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" 122 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" 123 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" 124SectionEnd 125 126Function un.onUninstSuccess 127 HideWindow 128 MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." 129FunctionEnd 130 131Var DEL_USER 132Function un.onInit 133 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES remove 134 Abort 135remove: 136 137 StrCpy $DEL_USER "FALSE" 138 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 139 StrCpy $DEL_USER "TRUE"; 140nodel: 141FunctionEnd 142 143Section Uninstall 144 145 RMDir /r "$INSTDIR\data" 146 RMDir /r "$INSTDIR\documentation" 147 RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}" 148 149 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" 150 SetAutoClose true 151 152 ${unregisterExtension} ".s3l" "Scorched3D_Launch" 153 154 StrCmp $DEL_USER "FALSE" nodel 155 RMDir /r "$INSTDIR\.${PRODUCT_NAME}" 156 RMDir /r "$PROFILE\.${PRODUCT_NAME}" 157nodel: 158 159 Delete "$INSTDIR\*.*" 160 RMDir "$INSTDIR" 161 162SectionEnd 163