Rev 711 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 711 | Rev 714 | ||
|---|---|---|---|
| Line 1... | Line 1... | ||
| 1 | #!/bin/bash |
1 | #!/bin/bash |
| 2 | 2 | ||
| 3 | # Duke Nukem 3D CON/DEF/HRP File Extractor v0.9.1 2019-09-17 |
3 | # Duke Nukem 3D CON/DEF/HRP File Extractor v0.9.2 2020-02-21 |
| 4 | # |
4 | # |
| 5 | # Author: LeoD |
5 | # Author: LeoD |
| 6 | # License: ISC License -> https://opensource.org/licenses/isc-license.txt |
6 | # License: ISC License -> https://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 236... | Line 236... | ||
| 236 | cp -pv voxelpack_art_license.txt "${EXTRACTDIR}" |
236 | cp -pv voxelpack_art_license.txt "${EXTRACTDIR}" |
| 237 | cp -pv duke3d.def "${EXTRACTDIR}" |
237 | cp -pv duke3d.def "${EXTRACTDIR}" |
| 238 | cp -pv duke3d_voxels.def "${EXTRACTDIR}" |
238 | cp -pv duke3d_voxels.def "${EXTRACTDIR}" |
| 239 | cp -pv dukegdx.def "${EXTRACTDIR}" |
239 | cp -pv dukegdx.def "${EXTRACTDIR}" |
| 240 | cp -pv voxels/pickups_gdx.def "${EXTRACTDIR}/voxels/" |
240 | cp -pv voxels/pickups_gdx.def "${EXTRACTDIR}/voxels/" |
| - | 241 | #cp -pv voxels/monsters.def "${EXTRACTDIR}/voxels/" |
|
| - | 242 | #cp -pv voxels/monsters/*.kvx "${EXTRACTDIR}/voxels/monsters/" |
|
| - | 243 | cp -pv voxels/hrp_undefines.def "${EXTRACTDIR}/voxels/" |
|
| 241 | cp -pv eduke.con "${EXTRACTDIR}" |
244 | cp -pv eduke.con "${EXTRACTDIR}" |
| 242 | if [ -d scripts/ ] ; then |
245 | if [ -d scripts/ ] ; then |
| 243 | cp -pv scripts/*.con "${EXTRACTDIR}/scripts/" |
246 | cp -pv scripts/*.con "${EXTRACTDIR}/scripts/" |
| 244 | fi |
247 | fi |
| 245 | ### LeoD ### |
248 | ### LeoD ### |
| 246 | if [ -f EDUKE.CON ] ; then |
249 | if [ -f EDUKE.CON ] ; then |
| 247 | cp -pv EDUKE.CON "${EXTRACTDIR}" |
250 | cp -pv EDUKE.CON "${EXTRACTDIR}" |
| 248 | fi |
251 | fi |
| 249 | if [ -d voxels/scripts/ ] ; then |
252 | if [ -d voxels/scripts/ ] ; then |
| - | 253 | #cp -pv voxels/scripts/faucet2.con "${EXTRACTDIR}/voxels/scripts/" |
|
| 250 | #cp -pv voxels/scripts/freezeammo.con "${EXTRACTDIR}/voxels/scripts/" |
254 | #cp -pv voxels/scripts/freezeammo.con "${EXTRACTDIR}/voxels/scripts/" |
| 251 | #cp -pv voxels/scripts/holoduke.con "${EXTRACTDIR}/voxels/scripts/" |
255 | #cp -pv voxels/scripts/holoduke.con "${EXTRACTDIR}/voxels/scripts/" |
| 252 | #cp -pv voxels/scripts/pigtank.con "${EXTRACTDIR}/voxels/scripts/" |
256 | #cp -pv voxels/scripts/pigtank.con "${EXTRACTDIR}/voxels/scripts/" |
| 253 | #cp -pv voxels/scripts/rotation.con "${EXTRACTDIR}/voxels/scripts/" |
257 | #cp -pv voxels/scripts/rotation.con "${EXTRACTDIR}/voxels/scripts/" |
| 254 | cp -pv voxels/scripts/*.con "${EXTRACTDIR}/voxels/scripts/" |
258 | cp -pv voxels/scripts/*.con "${EXTRACTDIR}/voxels/scripts/" |
| Line 550... | Line 554... | ||
| 550 | ;; |
554 | ;; |
| 551 | esac ; fi |
555 | esac ; fi |
| 552 | 556 | ||
| 553 | if [ "${HRP_FILE}" ] ; then |
557 | if [ "${HRP_FILE}" ] ; then |
| 554 | extract_file "${HRP_FILE}" |
558 | extract_file "${HRP_FILE}" |
| - | 559 | HRP_FILE="" |
|
| 555 | fi |
560 | fi |
| 556 | 561 | ||
| 557 | done |
562 | done |
| 558 | } # parse_defs() |
563 | } # parse_defs() |
| 559 | 564 | ||
| Line 842... | Line 847... | ||
| 842 | fi |
847 | fi |
| 843 | elif [ -f "duke3d.def" ] ; then |
848 | elif [ -f "duke3d.def" ] ; then |
| 844 | DEF_TOP="duke3d.def" |
849 | DEF_TOP="duke3d.def" |
| 845 | info "Auto mode found ${DEF_TOP}" |
850 | info "Auto mode found ${DEF_TOP}" |
| 846 | parse_defs "${DEF_TOP}" |
851 | parse_defs "${DEF_TOP}" |
| - | 852 | elif [ -f "dukegdx.def" ] ; then |
|
| - | 853 | DEF_TOP="dukegdx.def" |
|
| - | 854 | info "Auto mode found ${DEF_TOP}" |
|
| - | 855 | parse_defs "${DEF_TOP}" |
|
| 847 | fi |
856 | fi |
| 848 | elif [ -f "duke3d.def" ] ; then |
857 | elif [ -f "duke3d.def" ] ; then |
| 849 | DEF_TOP="duke3d.def" |
858 | DEF_TOP="duke3d.def" |
| 850 | info "Auto mode found ${DEF_TOP}" |
859 | info "Auto mode found ${DEF_TOP}" |
| 851 | parse_defs "${DEF_TOP}" |
860 | parse_defs "${DEF_TOP}" |
| - | 861 | elif [ -f "dukegdx.def" ] ; then |
|
| - | 862 | DEF_TOP="dukegdx.def" |
|
| - | 863 | info "Auto mode found ${DEF_TOP}" |
|
| - | 864 | parse_defs "${DEF_TOP}" |
|
| 852 | else |
865 | else |
| 853 | exit_on_error "Please report to LeoD" |
866 | exit_on_error "Please report to LeoD" |
| 854 | fi |
867 | fi |
| - | 868 | ||
| 855 | fi |
869 | fi |
| 856 | 870 | ||
| 857 | info "Copying 'known' files ..." |
871 | info "Copying 'known' files ..." |
| 858 | copy_known_files |
872 | copy_known_files |
| 859 | 873 | ||
| Line 861... | Line 875... | ||
| 861 | delete_empty_folders |
875 | delete_empty_folders |
| 862 | 876 | ||
| 863 | #date +%F" "%H:%M:%S |
877 | #date +%F" "%H:%M:%S |
| 864 | 878 | ||
| 865 | #echo "Command line example for creating a ZIP package:" |
879 | #echo "Command line example for creating a ZIP package:" |
| 866 | #echo "sh -c \"cd ${EXTRACTDIR}; zip -9rqn .jpg:.png:.zip ${EXTRACTDIR}.zip\ |
880 | #echo "sh -c \"cd ${EXTRACTDIR}; zip -9rqn .jpg:.png:.svn:.zip \ |
| 867 | #highpal highres maphacks *.def *.txt\"" |
881 | # ${EXTRACTDIR}.zip highpal highres maphacks *.def *.txt\"" |
| 868 | } # main() |
882 | } # main() |
| 869 | 883 | ||
| 870 | 884 | ||
| 871 | 885 | ||
| 872 | PRGPATH=$0 |
886 | PRGPATH=$0 |
| Line 935... | Line 949... | ||
| 935 | ${PRGPATH} sw_highres y |
949 | ${PRGPATH} sw_highres y |
| 936 | ;; |
950 | ;; |
| 937 | auto) |
951 | auto) |
| 938 | SET_VERSION=NO |
952 | SET_VERSION=NO |
| 939 | EXTRACT_COMMENTED_FILES=NO |
953 | EXTRACT_COMMENTED_FILES=NO |
| 940 | if [ -f "EDUKE.CON" ] || [ -f "GAME.CON" ] || [ -f "duke3d.def" ] ; then |
954 | if [ -f "EDUKE.CON" ] || [ -f "GAME.CON" ] || [ -f "duke3d.def" ] || [ -f "dukegdx.def" ] ; then |
| 941 | main $HRPTYPE |
955 | main $HRPTYPE |
| 942 | else |
956 | else |
| 943 | exit_on_error "Auto mode found no suitable toplevel file (EDUKE.CON|GAME.CON|duke3d.def)." |
957 | exit_on_error "Auto mode found no suitable toplevel file (EDUKE.CON|GAME.CON|duke3d.def|dukegdx.def)." |
| 944 | fi |
958 | fi |
| 945 | ;; |
959 | ;; |
| 946 | unused) |
960 | unused) |
| 947 | exit_on_error "Option \"$1\" not yet implemented." |
961 | exit_on_error "Option \"$1\" not yet implemented." |
| 948 | ;; |
962 | ;; |