Subversion Repositories duke3d_hrp

Rev

Rev 645 | 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