Rev 257 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
257 | parkar | 1 | ; Script generated by the HM NIS Edit Script Wizard. |
2 | |||
3 | ; HM NIS Edit Wizard helper defines |
||
4 | !define PRODUCT_NAME "Duke Nukem 3D HRP" |
||
5 | !define PRODUCT_VERSION "V 4.0 (321)" |
||
6 | !define PRODUCT_WEB_SITE "http://hrp.duke4.net" |
||
7 | !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\eduke32.exe" |
||
8 | !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" |
||
9 | !define PRODUCT_UNINST_ROOT_KEY "HKLM" |
||
10 | !define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir" |
||
11 | |||
12 | SetCompressor lzma |
||
13 | |||
14 | ; MUI 1.67 compatible ------ |
||
15 | !include "MUI.nsh" |
||
16 | !include "Sections.nsh" |
||
17 | |||
18 | ; MUI Settings |
||
19 | !define MUI_ABORTWARNING |
||
20 | !define MUI_ICON "icon.ico" |
||
21 | !define MUI_UNICON "uninst.ico" |
||
22 | |||
23 | !define MUI_HEADERIMAGE |
||
24 | !define MUI_WELCOMEFINISHPAGE_BITMAP "page.bmp" |
||
25 | !insertmacro MUI_DEFAULT MUI_HEADERIMAGE_BITMAP "banner.bmp" |
||
26 | |||
27 | ; Welcome page |
||
28 | !define MUI_WELCOMEPAGE_TITLE_3LINES |
||
29 | !insertmacro MUI_PAGE_WELCOME |
||
30 | |||
31 | ; License page (Build license) |
||
32 | !define MUI_PAGE_HEADER_TEXT "Build Source Code License Agreement (Build engine)" |
||
33 | !define MUI_PAGE_HEADER_SUBTEXT "Please review the license terms of the build source code before installing." |
||
34 | !insertmacro MUI_PAGE_LICENSE "BUILDLIC.TXT" |
||
35 | |||
36 | ; License page (GNU public license) |
||
37 | !define MUI_PAGE_HEADER_TEXT "GNU Public License Agreement (EDuke32)" |
||
38 | !define MUI_PAGE_HEADER_SUBTEXT "Please review the license terms of the EDuke32 port before installing." |
||
39 | !insertmacro MUI_PAGE_LICENSE "GNU.TXT" |
||
40 | |||
41 | ; License page (HRP art license) |
||
42 | !define MUI_PAGE_HEADER_TEXT "HRP Art License Agreement (High Resolution Content)" |
||
43 | !define MUI_PAGE_HEADER_SUBTEXT "Please review the license terms of the high resolution content port before installing." |
||
44 | !insertmacro MUI_PAGE_LICENSE "hrp_art_license.txt" |
||
45 | |||
46 | ; Components page |
||
47 | !insertmacro MUI_PAGE_COMPONENTS |
||
48 | ; Directory page |
||
49 | !insertmacro MUI_PAGE_DIRECTORY |
||
50 | ; Start menu page |
||
51 | var ICONS_GROUP |
||
52 | !define MUI_STARTMENUPAGE_NODISABLE |
||
53 | !define MUI_STARTMENUPAGE_DEFAULTFOLDER "Duke Nukem 3D" |
||
54 | !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" |
||
55 | !define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" |
||
56 | !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}" |
||
57 | !insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP |
||
58 | ; Instfiles page |
||
59 | !insertmacro MUI_PAGE_INSTFILES |
||
60 | ; Finish page |
||
61 | !define MUI_FINISHPAGE_RUN "$INSTDIR\eduke32.exe" |
||
62 | !define MUI_FINISHPAGE_RUN_PARAMETERS "" |
||
63 | !define MUI_FINISHPAGE_LINK "Visit the HRP website." |
||
64 | !define MUI_FINISHPAGE_LINK_LOCATION "http://hrp.duke4.net" |
||
65 | !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\hrp_readme.txt" |
||
66 | !insertmacro MUI_PAGE_FINISH |
||
67 | |||
68 | ; Uninstaller pages |
||
69 | !insertmacro MUI_UNPAGE_INSTFILES |
||
70 | |||
71 | ; Language files |
||
72 | !insertmacro MUI_LANGUAGE "English" |
||
73 | |||
74 | ; Reserve files |
||
75 | !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS |
||
76 | |||
77 | ; MUI end ------ |
||
78 | |||
79 | Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" |
||
80 | OutFile "dn3d_hrp-4.0(321).exe" |
||
81 | InstallDir "c:\duke3d" |
||
82 | InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" |
||
83 | ShowInstDetails show |
||
84 | ShowUnInstDetails show |
||
85 | |||
86 | Section "EDuke32" SEC01 |
||
87 | SetOutPath "$INSTDIR" |
||
88 | SetOverwrite ifnewer |
||
89 | File "eduke32\eduke32.exe" |
||
90 | File "eduke32\mapster32.exe" |
||
91 | File "eduke32\m32help.hlp" |
||
92 | File "eduke32\NAMES.H" |
||
93 | File "eduke32\tiles.cfg" |
||
94 | |||
95 | ; Shortcuts |
||
96 | !insertmacro MUI_STARTMENU_WRITE_BEGIN Application |
||
97 | CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" |
||
98 | CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Duke Nukem 3D (EDuke32).lnk" "$INSTDIR\eduke32.exe" |
||
99 | CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Mapster32.lnk" "$INSTDIR\eduke32.exe" |
||
100 | !insertmacro MUI_STARTMENU_WRITE_END |
||
101 | |||
102 | SectionEnd |
||
103 | |||
104 | Section "High resolution content" SEC02 |
||
105 | SetOutPath "$INSTDIR" |
||
106 | SetOverwrite ifnewer |
||
107 | |||
108 | File "hrp_content\hrp_readme.txt" |
||
109 | File "hrp_content\hrp_art_license.txt" |
||
673 | leod | 110 | SetOutPath "$INSTDIR\autoload" |
257 | parkar | 111 | File "hrp_content\duke3d_hrp.zip" |
112 | SectionEnd |
||
113 | |||
114 | Section "High Quality Muisc" SEC05 |
||
673 | leod | 115 | SetOutPath "$instdir\autoload" |
257 | parkar | 116 | SetOverwrite ifnewer |
117 | |||
118 | File "music\eduke32_mus.zip" |
||
119 | SectionEnd |
||
120 | |||
121 | Section "Duke Plus mod" SEC06 |
||
122 | |||
123 | SetOutPath "$INSTDIR" |
||
124 | SetOverwrite ifnewer |
||
125 | |||
126 | File "duke_plus\DPEFFECTS.html" |
||
127 | File "duke_plus\dukeplus.bat" |
||
128 | File "duke_plus\DukePlus_Manual.html" |
||
129 | File "duke_plus\mapster.bat" |
||
130 | |||
131 | SetOutPath "$INSTDIR\DukePlus" |
||
132 | |||
133 | File "duke_plus\DukePlus\dpmaps.zip" |
||
134 | File "duke_plus\DukePlus\dukeplus.def" |
||
135 | File "duke_plus\DukePlus\DUKEPLUS_RESOURCES.zip" |
||
136 | File "duke_plus\DukePlus\EDUKE.CON" |
||
137 | File "duke_plus\DukePlus\tiles005.art" |
||
138 | File "duke_plus\DukePlus\tiles024.art" |
||
139 | |||
140 | SetOutPath "$INSTDIR\DukePlus\dpcons" |
||
141 | |||
142 | File "duke_plus\DukePlus\dpcons\DEFSPLUS.CON" |
||
143 | File "duke_plus\DukePlus\dpcons\DUKEPLUS.CON" |
||
144 | File "duke_plus\DukePlus\dpcons\HUDPLUS.CON" |
||
145 | File "duke_plus\DukePlus\dpcons\LIGHTS.CON" |
||
146 | File "duke_plus\DukePlus\dpcons\PLAYERPLUS.CON" |
||
147 | File "duke_plus\DukePlus\dpcons\USERPLUS.CON" |
||
148 | |||
149 | ; Shortcuts |
||
150 | !insertmacro MUI_STARTMENU_WRITE_BEGIN Application |
||
151 | CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" |
||
152 | SetOutPath "$INSTDIR" |
||
153 | CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Duke Plus.lnk" "$INSTDIR\dukeplus.bat" |
||
154 | !insertmacro MUI_STARTMENU_WRITE_END |
||
155 | SectionEnd |
||
156 | |||
157 | Section "-grpinstaller" |
||
158 | SetOutPath "$INSTDIR" |
||
159 | SetOverwrite ifnewer |
||
160 | |||
161 | File "datainst.exe" |
||
162 | |||
163 | IfFileExists "$INSTDIR\duke3d.grp" SkipGrpIn |
||
164 | MessageBox MB_YESNO "Do you want to run the GRP installer to find your duke3d.grp file and copy it to your HRP folder?" IDNO SkipGrpIn |
||
165 | DetailPrint "Running grp installer..." |
||
166 | exec "$INSTDIR\datainst.exe" |
||
167 | SkipGrpIn: |
||
168 | |||
169 | SectionEnd |
||
170 | |||
171 | |||
172 | Function .onSelChange |
||
173 | !insertmacro StartRadioButtons $1 |
||
174 | !insertmacro RadioButton ${SEC03} |
||
175 | !insertmacro RadioButton ${SEC04} |
||
176 | !insertmacro EndRadioButtons |
||
177 | FunctionEnd |
||
178 | |||
179 | Function .onInit |
||
180 | |||
181 | System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${PRODUCT_NAME} ${PRODUCT_VERSION}") i .r1 ?e' |
||
182 | Pop $R0 |
||
183 | StrCmp $R0 0 +3 |
||
184 | MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." |
||
185 | Abort |
||
186 | |||
187 | SetOutPath $TEMP |
||
188 | File /oname=spltmp.bmp "hrp_splash.bmp" |
||
189 | advsplash::show 1500 600 250 -1 $TEMP\spltmp |
||
190 | Pop $0 |
||
191 | Delete $TEMP\spltmp.bmp |
||
192 | |||
193 | StrCpy $1 ${SEC04} ; Group 1 - Option 1 is selected by default |
||
194 | |||
195 | FunctionEnd |
||
196 | |||
197 | Section -AdditionalIcons |
||
198 | !insertmacro MUI_STARTMENU_WRITE_BEGIN Application |
||
199 | WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" |
||
200 | CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\HRP Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" |
||
201 | CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" "$INSTDIR\uninst.exe" |
||
202 | !insertmacro MUI_STARTMENU_WRITE_END |
||
203 | SectionEnd |
||
204 | |||
205 | Section -Post |
||
206 | WriteUninstaller "$INSTDIR\uninst.exe" |
||
207 | WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\eduke32.exe" |
||
208 | WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Path" "$INSTDIR" |
||
209 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" |
||
210 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" |
||
211 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" |
||
212 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" |
||
213 | SectionEnd |
||
214 | |||
215 | ; Section descriptions |
||
216 | !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN |
||
217 | !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "The eDuke32 port that is needed to use the high resolution content. Only uncheck this if you want to install it manualy or if you already have it installed." |
||
218 | !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "The high resoltution textures and models." |
||
219 | !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Map hacks for atomic and plutonium pack version of the game. fixes model related problems caused by original level design not being designed for 3D models." |
||
220 | !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} "Map hacks for 1.3d full or shareware version of the game. fixes model related problems caused by original level design not being designed for 3D models." |
||
221 | !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} "A pack of high quality replacements for the games music." |
||
222 | !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} "A game enhancement mod with bug fixes and (mostly optional) new features." |
||
223 | !insertmacro MUI_FUNCTION_DESCRIPTION_END |
||
224 | |||
225 | Function un.onUninstSuccess |
||
226 | HideWindow |
||
227 | MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." |
||
228 | FunctionEnd |
||
229 | |||
230 | Function un.onInit |
||
231 | MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2 |
||
232 | Abort |
||
233 | FunctionEnd |
||
234 | |||
235 | Section Uninstall |
||
236 | !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP |
||
237 | Delete "$INSTDIR\${PRODUCT_NAME}.url" |
||
238 | Delete "$INSTDIR\uninst.exe" |
||
239 | ;eduke32 files |
||
240 | Delete "$INSTDIR\eduke32.exe" |
||
241 | Delete "$INSTDIR\mapster32.exe" |
||
242 | Delete "$INSTDIR\m32help.hlp" |
||
243 | Delete "$INSTDIR\NAMES.H" |
||
244 | Delete "$INSTDIR\tiles.cfg" |
||
245 | |||
246 | ;hrp content |
||
247 | Delete "$INSTDIR\hrp_readme.txt" |
||
248 | Delete "$INSTDIR\hrp_art_license.txt" |
||
673 | leod | 249 | Delete "$INSTDIR\autoload\duke3d_hrp.zip" |
257 | parkar | 250 | |
251 | ;music content |
||
673 | leod | 252 | Delete "$INSTDIR\autoload\eduke32_mus.zip" |
257 | parkar | 253 | |
254 | ;duke plus |
||
255 | Delete "$INSTDIR\DPEFFECTS.html" |
||
256 | Delete "$INSTDIR\dukeplus.bat" |
||
257 | Delete "$INSTDIR\DukePlus_Manual.html" |
||
258 | Delete "$INSTDIR\mapster.bat" |
||
259 | |||
260 | Delete "$INSTDIR\DukePlus\dpmaps.zip" |
||
261 | Delete "$INSTDIR\DukePlus\dukeplus.def" |
||
262 | Delete "$INSTDIR\DukePlus\DUKEPLUS_RESOURCES.zip" |
||
263 | Delete "$INSTDIR\DukePlus\EDUKE.CON" |
||
264 | Delete "$INSTDIR\DukePlus\tiles005.art" |
||
265 | Delete "$INSTDIR\DukePlus\tiles024.art" |
||
266 | |||
267 | Delete "$INSTDIR\DukePlus\dpcons\DEFSPLUS.CON" |
||
268 | Delete "$INSTDIR\DukePlus\dpcons\DUKEPLUS.CON" |
||
269 | Delete "$INSTDIR\DukePlus\dpcons\HUDPLUS.CON" |
||
270 | Delete "$INSTDIR\DukePlus\dpcons\LIGHTS.CON" |
||
271 | Delete "$INSTDIR\DukePlus\dpcons\PLAYERPLUS.CON" |
||
272 | Delete "$INSTDIR\DukePlus\dpcons\USERPLUS.CON" |
||
273 | |||
274 | Delete "$INSTDIR\DukePlus\*.log" |
||
275 | |||
276 | IfFileExists "$INSTDIR\DukePlus\*.cfg" 0 SkipDnPlusCfg |
||
277 | MessageBox MB_YESNO "Do you want to remove Duke Plus configuration files? These files contain the configuration of the Duke Plus mod." IDNO SkipDnPlusCfg |
||
278 | Delete "$INSTDIR\DukePlus\*.cfg" |
||
279 | SkipDnPlusCfg: |
||
280 | |||
281 | IfFileExists "$INSTDIR\DukePlus\*.sav" 0 SkipDnPlusSav |
||
282 | MessageBox MB_YESNO "Do you want to remove your saved Duke Plus games?" IDNO SkipDnPlusSav |
||
283 | Delete "$INSTDIR\DukePlus\*.sav" |
||
284 | SkipDnPlusSav: |
||
285 | |||
286 | IfFileExists "$INSTDIR\DukePlus\*.dmo" 0 SkipDnPlusDmo |
||
287 | MessageBox MB_YESNO "Do you want to remove your Duke Plus demo recordings?" IDNO SkipDnPlusDmo |
||
288 | Delete "$INSTDIR\DukePlus\*.dmo" |
||
289 | SkipDnPlusDmo: |
||
290 | |||
291 | |||
292 | ;datainst |
||
293 | Delete "$INSTDIR\datainst.exe" |
||
294 | |||
295 | ;cahce files |
||
296 | Delete "$INSTDIR\textures" |
||
297 | Delete "$INSTDIR\*.cache" |
||
298 | Delete "$INSTDIR\DukePlus\textures" |
||
299 | Delete "$INSTDIR\DukePlus\*.cache" |
||
300 | |||
301 | ; shortcuts |
||
302 | Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall" |
||
303 | Delete "$SMPROGRAMS\$ICONS_GROUP\HRP Website" |
||
304 | Delete "$SMPROGRAMS\$ICONS_GROUP\Duke Nukem 3D (EDuke32)" |
||
305 | Delete "$SMPROGRAMS\$ICONS_GROUP\Mapster32" |
||
306 | Delete "$SMPROGRAMS\$ICONS_GROUP\Duke Plus" |
||
307 | Delete "$SMPROGRAMS\$ICONS_GROUP\Setup video audio and controls" |
||
308 | Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" |
||
309 | Delete "$SMPROGRAMS\$ICONS_GROUP\HRP Website.lnk" |
||
310 | Delete "$SMPROGRAMS\$ICONS_GROUP\Duke Nuke.lnkm 3D (EDuke32).lnk" |
||
311 | Delete "$SMPROGRAMS\$ICONS_GROUP\Mapster32" |
||
312 | Delete "$SMPROGRAMS\$ICONS_GROUP\Duke Plus.lnk" |
||
313 | Delete "$SMPROGRAMS\$ICONS_GROUP\Setup video audio and controls.lnk" |
||
314 | |||
315 | ;logfiles |
||
316 | Delete "$INSTDIR\*.log" |
||
317 | |||
318 | ;folders |
||
319 | SetOutPath $TEMP |
||
320 | RMDir "$SMPROGRAMS\$ICONS_GROUP" |
||
321 | RMDir "$INSTDIR\autoload" |
||
673 | leod | 322 | RMDir "$INSTDIR\autoload" |
257 | parkar | 323 | RMDir "$INSTDIR\texcache" |
324 | RMDir "$INSTDIR\DukePlus\dpcons" |
||
325 | RMDir "$INSTDIR\DukePlus" |
||
326 | RMDir "$INSTDIR" |
||
327 | |||
328 | IfFileExists "$INSTDIR\duke3d.grp" 0 SkipGrpUn |
||
329 | MessageBox MB_YESNO "Do you want to remove $INSTDIR\duke3d.grp? This file contains the original Duke Nukem 3D art, maps, sounds etc." IDNO SkipGrpUn |
||
330 | Delete "$INSTDIR\duke3d.grp" |
||
331 | SkipGrpUn: |
||
332 | |||
333 | IfFileExists "$INSTDIR\*.cfg" 0 SkipCfgUn |
||
334 | MessageBox MB_YESNO "Do you want to remove eDuke32 configuration files? These files contain the configuration of eDuke32 and Mapster32." IDNO SkipCfgUn |
||
335 | Delete "$INSTDIR\duke3d.cfg" |
||
336 | SkipCfgUn: |
||
337 | |||
338 | IfFileExists "$INSTDIR\*.sav" 0 SkipSavUn |
||
339 | MessageBox MB_YESNO "Do you want to remove your saved games?" IDNO SkipSavUn |
||
340 | Delete "$INSTDIR\*.sav" |
||
341 | SkipSavUn: |
||
342 | |||
343 | IfFileExists "$INSTDIR\*.dmo" 0 SkipDmoUn |
||
344 | MessageBox MB_YESNO "Do you want to remove your demo recordings?" IDNO SkipDmoUn |
||
345 | Delete "$INSTDIR\*.dmo" |
||
346 | SkipDmoUn: |
||
347 | |||
348 | DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" |
||
349 | DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" |
||
350 | SetAutoClose true |
||
351 | SectionEnd |