Rev 645 | Rev 657 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 645 | Rev 656 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | #!/bin/sh |
1 | #!/bin/bash |
2 | 2 | ||
3 | # Duke Nukem 3D High Resolution Pack Extractor v0.5.4 2014-09-07 |
3 | # Duke Nukem 3D High Resolution Pack Extractor v0.7 2014-12-05 |
4 | # |
4 | # |
5 | # Author: LeoD |
5 | # Author: LeoD |
6 | # License: ISC license : http://opensource.org/licenses/isc-license.txt |
6 | # License: ISC license : http://opensource.org/licenses/isc-license.txt |
7 | # |
7 | # |
8 | # This script extracts a working copy of your local Duke Nukem 3D High |
8 | # This script extracts a working copy of your local Duke Nukem 3D High |
Line 82... | Line 82... | ||
82 | >> "${TARGET_FILE}" |
82 | >> "${TARGET_FILE}" |
83 | fi |
83 | fi |
84 | ;; |
84 | ;; |
85 | duke3d_hrp_polymost.def | \ |
85 | duke3d_hrp_polymost.def | \ |
86 | installer/polymost_override/duke3d_hrp_polymost_override.def | \ |
86 | installer/polymost_override/duke3d_hrp_polymost_override.def | \ |
- | 87 | duke3d_hrp_megaton.def | \ |
|
87 | installer/megaton_override/duke3d_hrp_megaton_override.def ) |
88 | installer/megaton_override/duke3d_hrp_megaton_override.def ) |
88 | cat "${VER_FILE}" | sed -r --posix \ |
89 | cat "${VER_FILE}" | sed -r --posix \ |
89 | s/\(Version\ *\)\([0-9\.]*\)\(.*\)/\\1${VERSION}\\3/ \ |
90 | s/\(Version\ *\)\([0-9\.]*\)\(.*\)/\\1${VERSION}\\3/ \ |
90 | >> "${TARGET_FILE}" |
91 | >> "${TARGET_FILE}" |
91 | ;; |
92 | ;; |
Line 121... | Line 122... | ||
121 | if [ "${SET_VERSION}" = "YES" ] ; then |
122 | if [ "${SET_VERSION}" = "YES" ] ; then |
122 | copy_set_version duke3d_hrp_polymost.def "${EXTRACTDIR}/duke3d_hrp.def" |
123 | copy_set_version duke3d_hrp_polymost.def "${EXTRACTDIR}/duke3d_hrp.def" |
123 | else |
124 | else |
124 | cp -pv duke3d_hrp_polymost.def "${EXTRACTDIR}/duke3d_hrp.def" |
125 | cp -pv duke3d_hrp_polymost.def "${EXTRACTDIR}/duke3d_hrp.def" |
125 | fi |
126 | fi |
- | 127 | cp -pv duke3d_hrp_polymost.def "${EXTRACTDIR}/duke3d_hrp_polymost.def" |
|
- | 128 | cp -rpv installer/polymost_override/dukedc "${EXTRACTDIR}" |
|
126 | fi |
129 | fi |
127 | 130 | ||
128 | if [ "${HRPTYPE}" = "megaton" ] ; then |
131 | if [ "${HRPTYPE}" = "megaton" ] ; then |
129 | if [ "${SET_VERSION}" = "YES" ] ; then |
132 | if [ "${SET_VERSION}" = "YES" ] ; then |
130 | copy_set_version duke3d_hrp_megaton.def "${EXTRACTDIR}/duke3d_hrp.def" |
133 | copy_set_version duke3d_hrp_megaton.def "${EXTRACTDIR}/duke3d_hrp.def" |
131 | else |
134 | else |
132 | cp -pv duke3d_hrp_megaton.def "${EXTRACTDIR}/duke3d_hrp.def" |
135 | cp -pv duke3d_hrp_megaton.def "${EXTRACTDIR}/duke3d_hrp.def" |
133 | fi |
136 | fi |
- | 137 | cp -pv duke3d_hrp_megaton.def "${EXTRACTDIR}/duke3d_hrp_megaton.def" |
|
- | 138 | cp -pv highres/screen/menu/2492_ver_megaton.png \ |
|
- | 139 | "${EXTRACTDIR}/highres/screen/menu/2492_ver_polymost.png" |
|
- | 140 | cp -rpv installer/megaton_override/dukedc* "${EXTRACTDIR}" |
|
- | 141 | cp -rpv installer/megaton_override/highres "${EXTRACTDIR}" |
|
134 | fi |
142 | fi |
135 | 143 | ||
136 | if [ "${HRPTYPE}" = "polymost_override" ] ; then |
144 | if [ "${HRPTYPE}" = "polymost_override" ] ; then |
137 | if [ "${SET_VERSION}" = "YES" ] ; then |
145 | if [ "${SET_VERSION}" = "YES" ] ; then |
138 | copy_set_version \ |
146 | copy_set_version \ |
139 | installer/polymost_override/duke3d_hrp_polymost_override.def \ |
147 | installer/polymost_override/duke3d_hrp_polymost_override.def \ |
140 | "${EXTRACTDIR}/duke3d_hrp.def" |
148 | "${EXTRACTDIR}/duke3d_hrp.def" |
- | 149 | copy_set_version \ |
|
- | 150 | installer/polymost_override/duke3d_hrp_polymost_override.def \ |
|
- | 151 | "${EXTRACTDIR}/duke3d_hrp_polymost.def" |
|
141 | else |
152 | else |
142 | cp -pv installer/polymost_override/duke3d_hrp_polymost_override.def \ |
153 | cp -pv installer/polymost_override/duke3d_hrp_polymost_override.def \ |
143 | "${EXTRACTDIR}/duke3d_hrp.def" |
154 | "${EXTRACTDIR}/duke3d_hrp.def" |
- | 155 | cp -pv installer/polymost_override/duke3d_hrp_polymost_override.def \ |
|
- | 156 | "${EXTRACTDIR}/duke3d_hrp_polymost.def" |
|
144 | fi |
157 | fi |
- | 158 | cp -rpv installer/polymost_override/dukedc "${EXTRACTDIR}" |
|
145 | fi |
159 | fi |
146 | 160 | ||
147 | if [ "${HRPTYPE}" = "megaton_override" ] ; then |
161 | if [ "${HRPTYPE}" = "megaton_override" ] ; then |
148 | if [ "${SET_VERSION}" = "YES" ] ; then |
162 | if [ "${SET_VERSION}" = "YES" ] ; then |
149 | copy_set_version \ |
163 | copy_set_version \ |
150 | installer/megaton_override/duke3d_hrp_megaton_override.def \ |
164 | installer/megaton_override/duke3d_hrp_megaton_override.def \ |
151 | "${EXTRACTDIR}/duke3d_hrp.def" |
165 | "${EXTRACTDIR}/duke3d_hrp.def" |
- | 166 | copy_set_version \ |
|
- | 167 | installer/megaton_override/duke3d_hrp_megaton_override.def \ |
|
- | 168 | "${EXTRACTDIR}/duke3d_hrp_megaton.def" |
|
152 | else |
169 | else |
153 | cp -pv installer/megaton_override/duke3d_hrp_megaton_override.def \ |
170 | cp -pv installer/megaton_override/duke3d_hrp_megaton_override.def \ |
154 | "${EXTRACTDIR}/duke3d_hrp.def" |
171 | "${EXTRACTDIR}/duke3d_hrp.def" |
- | 172 | cp -pv installer/megaton_override/duke3d_hrp_megaton_override.def \ |
|
- | 173 | "${EXTRACTDIR}/duke3d_hrp_megaton.def" |
|
155 | fi |
174 | fi |
- | 175 | cp -pv installer/megaton_override/*.bat "${EXTRACTDIR}" |
|
- | 176 | cp -rpv installer/megaton_override/dukedc* "${EXTRACTDIR}" |
|
- | 177 | cp -rpv installer/megaton_override/highres "${EXTRACTDIR}" |
|
156 | fi |
178 | fi |
157 | 179 | ||
158 | if [ "${HRPTYPE}" = "polymost" ] || [ "${HRPTYPE}" = "megaton" ] ; then |
180 | if [ "${HRPTYPE}" = "polymost" ] || [ "${HRPTYPE}" = "megaton" ] ; then |
159 | cp -pv duke3d.def "${EXTRACTDIR}" |
181 | cp -pv duke3d.def "${EXTRACTDIR}" |
160 | #cp -pv duke3d_hrp_polymost.def "${EXTRACTDIR}" |
182 | #cp -pv duke3d_hrp_polymost.def "${EXTRACTDIR}" |
Line 187... | Line 209... | ||
187 | 209 | ||
188 | if [ "${HRPTYPE}" = "megaton_override" ] ; then |
210 | if [ "${HRPTYPE}" = "megaton_override" ] ; then |
189 | cp -pv installer/megaton_override/hrp_megaton_override.txt \ |
211 | cp -pv installer/megaton_override/hrp_megaton_override.txt \ |
190 | "${EXTRACTDIR}" |
212 | "${EXTRACTDIR}" |
191 | cp -pv installer/megaton_override/2492_ver_megaton_override.png \ |
213 | cp -pv installer/megaton_override/2492_ver_megaton_override.png \ |
192 | "${EXTRACTDIR}/highres/screen/menu/2492_ver_megaton.png" |
214 | "${EXTRACTDIR}/highres/screen/menu/2492_ver_polymost.png" |
193 | fi |
215 | fi |
194 | 216 | ||
195 | if [ "${HRPTYPE}" = "polymer" ] || [ "${HRPTYPE}" = "full" ] ; then |
217 | if [ "${HRPTYPE}" = "polymer" ] || [ "${HRPTYPE}" = "full" ] ; then |
196 | cp -pv duke3d.def "${EXTRACTDIR}" |
218 | cp -pv duke3d.def "${EXTRACTDIR}" |
197 | if [ "${SET_VERSION}" = "YES" ] ; then |
219 | if [ "${SET_VERSION}" = "YES" ] ; then |
Line 255... | Line 277... | ||
255 | fi |
277 | fi |
256 | 278 | ||
257 | } # copy_known_files() |
279 | } # copy_known_files() |
258 | 280 | ||
259 | 281 | ||
260 | polymost_mhk_patch() |
- | |
261 | { |
- | |
262 | MHKFILE="$1" |
- | |
263 | MHK_LINE="$2" |
- | |
264 | - | ||
265 | case "${MHKFILE}" in |
- | |
266 | "E3L1.mhk") |
- | |
267 | echo "${MHK_LINE}" >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
268 | MHK_INSERT=`echo "${MHK_LINE}" | grep -oE "Fixes\ for\ badly\ aligned\ sprites"` |
- | |
269 | if [ ! "${MHK_INSERT}" = "" ] ; then |
- | |
270 | echo "sprite 591 mdxoff 425000 // tile0603 naked1 hangbabe (Polymost HRP)\r" \ |
- | |
271 | >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
272 | echo "sprite 591 pitch 1 // tile0603 naked1 hangbabe (Polymost HRP)\r" \ |
- | |
273 | >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
274 | echo "sprite 592 mdxoff 425000 // tile0603 naked1 hangbabe (Polymost HRP)\r" \ |
- | |
275 | >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
276 | echo "sprite 592 pitch 1 // tile0603 naked1 hangbabe (Polymost HRP)\r" \ |
- | |
277 | >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
278 | echo "sprite 593 mdxoff 425000 // tile0603 naked1 hangbabe (Polymost HRP)\r" \ |
- | |
279 | >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
280 | echo "sprite 593 pitch 1 // tile0603 naked1 hangbabe (Polymost HRP)\r" \ |
- | |
281 | >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
282 | fi |
- | |
283 | ;; |
- | |
284 | "E3L3.mhk") |
- | |
285 | MHK_REPLACE=`echo "${MHK_LINE}" | grep -oE "sprite\ 105\ angoff -128"` |
- | |
286 | if [ ! "${MHK_REPLACE}" = "" ] ; then |
- | |
287 | echo "sprite 105 angoff 768 // (Polymost HRP)\r" >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
288 | else |
- | |
289 | echo "${MHK_LINE}" >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
290 | MHK_INSERT=`echo "${MHK_LINE}" | grep -oE "sprite\ 96\ pitch\ 1"` |
- | |
291 | if [ ! "${MHK_INSERT}" = "" ] ; then |
- | |
292 | echo "sprite 105 mdxoff 450000 // underwater slime babe (Polymost HRP)\r" \ |
- | |
293 | >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
294 | echo "sprite 105 pitch 1\r" >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
295 | echo "sprite 447 mdxoff 462000 // underwater slime babe (Polymost HRP)\r" \ |
- | |
296 | >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
297 | echo "sprite 447 pitch 1\r" >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
298 | fi |
- | |
299 | fi |
- | |
300 | ;; |
- | |
301 | "E3L6.mhk") |
- | |
302 | MHK_REPLACE1=`echo "${MHK_LINE}" | grep -oE "sprite\ 307\ angoff -210"` |
- | |
303 | MHK_REPLACE2=`echo "${MHK_LINE}" | grep -oE "sprite\ 307\ mdxoff -125000 \\/\\/\ flipped hanging babe"` |
- | |
304 | MHK_REPLACE3=`echo "${MHK_LINE}" | grep -oE "sprite\ 307\ mdzoff -11000"` |
- | |
305 | if [ ! "${MHK_REPLACE1}" = "" ] ; then |
- | |
306 | echo "sprite 307 angoff 200 // (Polymost HRP)\r" >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
307 | elif [ ! "${MHK_REPLACE2}" = "" ] ; then |
- | |
308 | echo "sprite 307 mdxoff 750000 // flipped hanging babe (Polymost HRP)\r" \ |
- | |
309 | >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
310 | elif [ ! "${MHK_REPLACE3}" = "" ] ; then |
- | |
311 | echo "sprite 307 mdzoff 625000 // flipped hanging babe (Polymost HRP)\r" \ |
- | |
312 | >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
313 | else |
- | |
314 | echo "${MHK_LINE}" >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
315 | fi |
- | |
316 | ;; |
- | |
317 | *) |
- | |
318 | echo "${MHK_LINE}" >> "${EXTRACTDIR}/${MHKFILE}" |
- | |
319 | ;; |
- | |
320 | esac |
- | |
321 | } # polymost_mhk_patch() |
- | |
322 | - | ||
323 | - | ||
324 | create_polymost_mhk() |
282 | copy_polymost_mhk() |
325 | { |
283 | { |
326 | for MHKFILE in *.mhk ; do |
- | |
327 | MHKSTOP="0" |
- | |
328 | cat ${MHKFILE} | while read MHK_LINE; do |
284 | cp -p maphacks/3drealms_polymost/E?L*.mhk "${EXTRACTDIR}" |
329 | if [ "${MHKSTOP}" = "0" ] ; then |
285 | rm -f "${EXTRACTDIR}"/*_13d_*.mhk |
330 | - | ||
331 | if [ "${MHKFILE}" = "E3L1.mhk" ] || [ "${MHKFILE}" = "E3L3.mhk" ] || \ |
- | |
332 | [ "${MHKFILE}" = "E3L6.mhk" ] ; then |
- | |
333 | polymost_mhk_patch ${MHKFILE} "${MHK_LINE}" |
- | |
334 | else |
286 | # bashism: |
335 | echo "${MHK_LINE}" >> "${EXTRACTDIR}/${MHKFILE}" |
287 | for i in "${EXTRACTDIR}"/*.mhk ; do mv "$i" "${i/_polymost.mhk}".mhk ; done |
336 | fi |
- | |
337 | - | ||
338 | MHK_TERM=`echo "${MHK_LINE}" | grep -owE "\\/\\/\\ LIGHTS"` |
288 | for i in "${EXTRACTDIR}"/*_atomic.mhk ; do mv "$i" "${i/_atomic}" ; done |
339 | if [ "${MHK_TERM}" = "// LIGHTS" ] ; then |
289 | # Some people prefer unusual setups ... |
340 | MHKSTOP="1" |
- | |
341 | fi |
- | |
342 | fi |
- | |
343 | done |
- | |
344 | done |
- | |
345 | # Some people prefer unusual setups ... polymost_mhk_patch not applied automatically |
290 | if [ "${HRPTYPE}" = "polymost" ]||[ "${HRPTYPE}" = "polymost_override" ];then |
346 | zip -rq9 ${EXTRACTDIR}/polymost_hrp_polymer_maphacks.zip *.mhk |
291 | zip -rq9 ${EXTRACTDIR}/polymost_hrp_polymer_maphacks.zip *.mhk |
- | 292 | fi |
|
347 | } # create_polymost_mhk() |
293 | } # copy_polymost_mhk() |
348 | 294 | ||
349 | 295 | ||
350 | # I really don't know yet if this will become necessary, or if it does make |
296 | # I really don't know yet if this will become necessary, or if it does make |
351 | # sense at all, but at least the files involved are listed. |
297 | # sense at all, but at least the files involved are listed. |
352 | dukeplus_polymost_hrp_compatibility() |
298 | dukeplus_polymost_hrp_compatibility() |
Line 616... | Line 562... | ||
616 | rm -rf ${EXTRACTDIR} |
562 | rm -rf ${EXTRACTDIR} |
617 | 563 | ||
618 | echo "### Copying directory tree ... ###" |
564 | echo "### Copying directory tree ... ###" |
619 | copy_folders |
565 | copy_folders |
620 | 566 | ||
621 | echo "### Copying 'known' files ... ###" |
- | |
622 | copy_known_files |
- | |
623 | - | ||
624 | if [ "${HRPTYPE}" = "polymost" ] || [ "${HRPTYPE}" = "polymost_override" ] ||\ |
567 | if [ "${HRPTYPE}" = "polymost" ] || [ "${HRPTYPE}" = "polymost_override" ] ||\ |
625 | [ "${HRPTYPE}" = "megaton" ] || [ "${HRPTYPE}" = "megaton_override" ] ; then |
568 | [ "${HRPTYPE}" = "megaton" ] || [ "${HRPTYPE}" = "megaton_override" ] ; then |
626 | echo "### Creating Polymost maphacks ... ###" |
569 | echo "### Creating Polymost maphacks ... ###" |
627 | create_polymost_mhk |
570 | copy_polymost_mhk |
628 | 571 | ||
629 | echo "### DukePlus<>Polymost HRP compatibility patch ... ###" |
572 | echo "### DukePlus<>Polymost HRP compatibility patch ... ###" |
630 | dukeplus_polymost_hrp_compatibility $DUKEPLUS_POLYMOST_COMPATIBILTY_APPROACH |
573 | dukeplus_polymost_hrp_compatibility $DUKEPLUS_POLYMOST_COMPATIBILTY_APPROACH |
631 | 574 | ||
632 | echo "### Attrition<>Polymost HRP compatibility patch ... ###" |
575 | echo "### Attrition<>Polymost HRP compatibility patch ... ###" |
Line 659... | Line 602... | ||
659 | fi |
602 | fi |
660 | if [ "${HRPTYPE}" = "default" ] ; then |
603 | if [ "${HRPTYPE}" = "default" ] ; then |
661 | parse_defs "${DEF_TOP}" |
604 | parse_defs "${DEF_TOP}" |
662 | fi |
605 | fi |
663 | 606 | ||
- | 607 | echo "### Copying 'known' files ... ###" |
|
- | 608 | copy_known_files |
|
- | 609 | ||
664 | echo "### Deleting empty directories in ${EXTRACTDIR} ... ###" |
610 | echo "### Deleting empty directories in ${EXTRACTDIR} ... ###" |
665 | delete_empty_folders |
611 | delete_empty_folders |
666 | 612 | ||
667 | date +%F" "%H:%M:%S |
613 | date +%F" "%H:%M:%S |
668 | 614 |