Hello Fabian,
> Fabian Greffrath <fab...@greffrath.com> schrieb am 20:18 Donnerstag,
> 30.Januar 2014:
> > Am Donnerstag, den 30.01.2014, 19:09 +0000 schrieb Johey Shmit:
>> Yes, that's true of course. But aren't the games startet by the
> desktop
>> entries which point to a wad file directly anyway? The built in wad
>> browsers of the game engines aren't really used in that scenario, so we
>> could split up the wad files into separate directories.
>
> I regularly run e.g. "doom -iwad doom2.wad -file ~/doom/whatever.wad"
> in
> a Terminal and would find it very inconvenient if I had to specify a
> specific path to the IWAD files just because they happen to be
> heretic.wad or hexen.wad.
Ok, I see your point. Attached is a patch against git that adds support
for the following games:
- heretic shareware
- hexen shareware
- strife shareware
- hexen add on hexdd
- strife registered
All files are put into /usr/share/games/doom/.
Thanks for considering including the patch!
From 37d8986a9917983d164e258cf5f4706ca0665bb1 Mon Sep 17 00:00:00 2001
From: Johey Shmit <joheysh...@yahoo.com>
Date: Fri, 31 Jan 2014 16:05:09 +0100
Subject: [PATCH] added support for Heretic SW, Hexen SW, Hexen addon hexdd,
Strife SW and Strife registered
Signed-off-by: Johey Shmit <joheysh...@yahoo.com>
---
Makefile | 30 ++++++
doom-common.mk | 30 +++++-
.../usr/share/applications/doom-common.desktop.in | 2 +-
.../applications/heretic-shareware.desktop.in | 9 ++
.../usr/share/applications/hexdd.desktop.in | 9 ++
.../share/applications/hexen-shareware.desktop.in | 9 ++
.../share/applications/strife-shareware.desktop.in | 9 ++
.../usr/share/applications/strife.desktop.in | 9 ++
heretic-shareware/DEBIAN/control.in | 15 +++
hexdd/DEBIAN/control.in | 16 +++
hexen-shareware/DEBIAN/control.in | 15 +++
lib/doom-common | 111 +++++++++++++++++++--
lib/game-data-packager-shared | 9 +-
lib/heretic-shareware-mirrors | 3 +
lib/hexen-shareware-mirrors | 3 +
lib/strife-shareware-mirrors | 2 +
strife-shareware/DEBIAN/control.in | 15 +++
strife/DEBIAN/control.in | 15 +++
supported/heretic-shareware | 37 +++++++
supported/hexdd | 17 ++++
supported/hexen-shareware | 35 +++++++
supported/strife | 28 ++++++
supported/strife-shareware | 34 +++++++
23 files changed, 445 insertions(+), 17 deletions(-)
create mode 100644 doom-common/usr/share/applications/heretic-shareware.desktop.in
create mode 100644 doom-common/usr/share/applications/hexdd.desktop.in
create mode 100644 doom-common/usr/share/applications/hexen-shareware.desktop.in
create mode 100644 doom-common/usr/share/applications/strife-shareware.desktop.in
create mode 100644 doom-common/usr/share/applications/strife.desktop.in
create mode 100644 heretic-shareware/DEBIAN/control.in
create mode 100644 hexdd/DEBIAN/control.in
create mode 100644 hexen-shareware/DEBIAN/control.in
create mode 100644 lib/heretic-shareware-mirrors
create mode 100644 lib/hexen-shareware-mirrors
create mode 100644 lib/strife-shareware-mirrors
create mode 100644 strife-shareware/DEBIAN/control.in
create mode 100644 strife/DEBIAN/control.in
create mode 100644 supported/heretic-shareware
create mode 100644 supported/hexdd
create mode 100644 supported/hexen-shareware
create mode 100644 supported/strife
create mode 100644 supported/strife-shareware
diff --git a/Makefile b/Makefile
index ee1b938..88f3cc3 100644
--- a/Makefile
+++ b/Makefile
@@ -12,12 +12,27 @@ default: $(DIRS)
LONG="Final Doom: TNT: Evilution" VERSION=$(VERSION)
make -f doom-common.mk IWAD=plutonia \
LONG="Final Doom: The Plutonia Experiment" VERSION=$(VERSION)
+ make -f doom-common.mk IWAD=heretic-shareware GAME=heretic VERSION=$(VERSION) \
+ CONTROLIN=heretic-shareware/DEBIAN/control.in \
+ LONG="Heretic Shareware"
make -f doom-common.mk IWAD=heretic GAME=heretic VERSION=$(VERSION) \
CONTROLIN=heretic/DEBIAN/control.in \
LONG="Heretic: Shadow of the Serpent Riders"
+ make -f doom-common.mk IWAD=hexen-shareware GAME=hexen VERSION=$(VERSION) \
+ CONTROLIN=hexen-shareware/DEBIAN/control.in \
+ LONG="Hexen Shareware"
make -f doom-common.mk IWAD=hexen GAME=hexen VERSION=$(VERSION) \
CONTROLIN=hexen/DEBIAN/control.in \
LONG="Hexen: Beyond Heretic"
+ make -f doom-common.mk IWAD=hexdd GAME=hexen VERSION=$(VERSION) \
+ CONTROLIN=hexdd/DEBIAN/control.in \
+ LONG="Hexen: Deathkings of the Dark Citadel"
+ make -f doom-common.mk IWAD=strife-shareware GAME=strife VERSION=$(VERSION) \
+ CONTROLIN=strife-shareware/DEBIAN/control.in \
+ LONG="Strife Shareware"
+ make -f doom-common.mk IWAD=strife GAME=strife VERSION=$(VERSION) \
+ CONTROLIN=strife/DEBIAN/control.in \
+ LONG="Strife Quest for the Sigil"
make -f quake.mk LONG="Quake" VERSION=$(VERSION) PACKAGE=quake-registered \
FOLDER=id1
make -f quake.mk LONG="Quake music" VERSION=$(VERSION) \
@@ -56,12 +71,27 @@ clean:
LONG="Final Doom: TNT: Evilution" VERSION=$(VERSION) clean
make -f doom-common.mk IWAD=plutonia \
LONG="Final Doom: The Plutonia Experiment" VERSION=$(VERSION) clean
+ make -f doom-common.mk IWAD=heretic-shareware VERSION=$(VERSION) \
+ CONTROLIN=heretic-shareware/DEBIAN/control.in \
+ LONG="Heretic Shareware" clean
make -f doom-common.mk IWAD=heretic VERSION=$(VERSION) \
CONTROLIN=heretic/DEBIAN/control.in \
LONG="Heretic: Shadow of the Serpent Riders" clean
+ make -f doom-common.mk IWAD=hexen-shareware VERSION=$(VERSION) \
+ CONTROLIN=hexen-shareware/DEBIAN/control.in \
+ LONG="Hexen Shareware" clean
make -f doom-common.mk IWAD=hexen VERSION=$(VERSION) \
CONTROLIN=hexen/DEBIAN/control.in \
LONG="Hexen: Beyond Heretic" clean
+ make -f doom-common.mk IWAD=hexdd VERSION=$(VERSION) \
+ CONTROLIN=hexdd/DEBIAN/control.in \
+ LONG="Hexen: Deathkings of the Dark Citadel" clean
+ make -f doom-common.mk IWAD=strife-shareware VERSION=$(VERSION) \
+ CONTROLIN=strife-shareware/DEBIAN/control.in \
+ LONG="Strife Shareware" clean
+ make -f doom-common.mk IWAD=strife VERSION=$(VERSION) \
+ CONTROLIN=strife/DEBIAN/control.in \
+ LONG="Strife: Quest for the Sigil" clean
make -f quake.mk LONG="Quake" VERSION=$(VERSION) PACKAGE=quake-registered \
FOLDER=id1 clean
make -f quake.mk LONG="Quake music" VERSION=$(VERSION) \
diff --git a/doom-common.mk b/doom-common.mk
index b8ac970..c316ba5 100644
--- a/doom-common.mk
+++ b/doom-common.mk
@@ -19,7 +19,7 @@ DIRS := \
$(IWAD)-wad/usr/share/doc/$(IWAD)-wad \
$(IWAD)-wad/usr/share/doc \
$(IWAD)-wad/usr/share/games/game-data-packager \
- $(IWAD)-wad/usr/share/games/$(GAME) \
+ $(IWAD)-wad/usr/share/games/doom \
$(IWAD)-wad/usr/share/games \
$(IWAD)-wad/usr/share \
$(IWAD)-wad/usr \
@@ -42,9 +42,31 @@ build/$(IWAD)-wad/usr/share/doc/$(IWAD)-wad/README.Debian:
> $@
build/$(IWAD)-wad/usr/share/applications/$(IWAD)-wad.desktop:
- m4 -DGAME=$(IWAD) -DLONG="$(LONG)" -DENGINE=$(GAME) \
- doom-common/usr/share/applications/doom-common.desktop.in \
- > $@
+ if [ "$(IWAD)" = heretic-shareware ] ; then \
+ m4 -DGAME=heretic -DLONG="$(LONG)" -DENGINE=$(GAME) \
+ doom-common/usr/share/applications/heretic-shareware.desktop.in \
+ > $@ ; \
+ elif [ "$(IWAD)" = hexen-shareware ] ; then \
+ m4 -DGAME=hexen -DLONG="$(LONG)" -DENGINE=$(GAME) \
+ doom-common/usr/share/applications/hexen-shareware.desktop.in \
+ > $@ ; \
+ elif [ "$(IWAD)" = hexdd ] ; then \
+ m4 -DGAME=hexen -DLONG="$(LONG)" -DENGINE=$(GAME) \
+ doom-common/usr/share/applications/hexdd.desktop.in \
+ > $@ ; \
+ elif [ "$(IWAD)" = strife ] ; then \
+ m4 -DGAME=strife -DLONG="$(LONG)" -DENGINE=$(GAME) \
+ doom-common/usr/share/applications/strife.desktop.in \
+ > $@ ; \
+ elif [ "$(IWAD)" = strife-shareware ] ; then \
+ m4 -DGAME=strife -DLONG="$(LONG)" -DENGINE=$(GAME) \
+ doom-common/usr/share/applications/strife-shareware.desktop.in \
+ > $@ ; \
+ else \
+ m4 -DGAME=$(IWAD) -DLONG="$(LONG)" -DENGINE=$(GAME) \
+ doom-common/usr/share/applications/doom-common.desktop.in \
+ > $@ ; \
+ fi
build/$(IWAD)-wad/DEBIAN/preinst:
m4 -DIWAD=$(IWAD).wad \
diff --git a/doom-common/usr/share/applications/doom-common.desktop.in b/doom-common/usr/share/applications/doom-common.desktop.in
index b0eebfd..db03790 100644
--- a/doom-common/usr/share/applications/doom-common.desktop.in
+++ b/doom-common/usr/share/applications/doom-common.desktop.in
@@ -2,7 +2,7 @@
Name=LONG
GenericName=First Person Shooter Game
TryExec=ENGINE
-Exec=ENGINE -iwad /usr/share/games/ENGINE/GAME.wad
+Exec=ENGINE -iwad /usr/share/games/doom/GAME.wad
Icon=GAME.xpm
Terminal=false
Type=Application
diff --git a/doom-common/usr/share/applications/heretic-shareware.desktop.in b/doom-common/usr/share/applications/heretic-shareware.desktop.in
new file mode 100644
index 0000000..2932fd0
--- /dev/null
+++ b/doom-common/usr/share/applications/heretic-shareware.desktop.in
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=LONG
+GenericName=First Person Shooter Game
+TryExec=ENGINE
+Exec=ENGINE -iwad /usr/share/games/doom/heretic1.wad
+Icon=heretic-shareware.xpm
+Terminal=false
+Type=Application
+Categories=Game
diff --git a/doom-common/usr/share/applications/hexdd.desktop.in b/doom-common/usr/share/applications/hexdd.desktop.in
new file mode 100644
index 0000000..10467b1
--- /dev/null
+++ b/doom-common/usr/share/applications/hexdd.desktop.in
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=LONG
+GenericName=First Person Shooter Game
+TryExec=ENGINE
+Exec=ENGINE -iwad /usr/share/games/doom/hexen.wad -file /usr/share/games/doom/hexdd.wad
+Icon=hexdd.xpm
+Terminal=false
+Type=Application
+Categories=Game
diff --git a/doom-common/usr/share/applications/hexen-shareware.desktop.in b/doom-common/usr/share/applications/hexen-shareware.desktop.in
new file mode 100644
index 0000000..2653344
--- /dev/null
+++ b/doom-common/usr/share/applications/hexen-shareware.desktop.in
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=LONG
+GenericName=First Person Shooter Game
+TryExec=ENGINE
+Exec=ENGINE -iwad /usr/share/games/doom/hexendemo.wad
+Icon=hexen-shareware.xpm
+Terminal=false
+Type=Application
+Categories=Game
diff --git a/doom-common/usr/share/applications/strife-shareware.desktop.in b/doom-common/usr/share/applications/strife-shareware.desktop.in
new file mode 100644
index 0000000..5a154b2
--- /dev/null
+++ b/doom-common/usr/share/applications/strife-shareware.desktop.in
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=LONG
+GenericName=First Person Shooter Game
+TryExec=ENGINE
+Exec=ENGINE -iwad /usr/share/games/doom/strife0.wad
+Icon=strife-shareware.xpm
+Terminal=false
+Type=Application
+Categories=Game
diff --git a/doom-common/usr/share/applications/strife.desktop.in b/doom-common/usr/share/applications/strife.desktop.in
new file mode 100644
index 0000000..97d1945
--- /dev/null
+++ b/doom-common/usr/share/applications/strife.desktop.in
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=LONG
+GenericName=First Person Shooter Game
+TryExec=ENGINE
+Exec=ENGINE -iwad /usr/share/games/doom/strife1.wad
+Icon=ENGINE.xpm
+Terminal=false
+Type=Application
+Categories=Game
diff --git a/heretic-shareware/DEBIAN/control.in b/heretic-shareware/DEBIAN/control.in
new file mode 100644
index 0000000..fb7df9b
--- /dev/null
+++ b/heretic-shareware/DEBIAN/control.in
@@ -0,0 +1,15 @@
+Package: PACKAGE
+Section: non-free/games
+Priority: optional
+Architecture: all
+Multi-Arch: foreign
+Recommends: chocolate-doom | heretic-engine
+Breaks: chocolate-doom (<< 2)
+Provides: heretic-shareware-wad
+Installed-Size: 56
+Version: VERSION
+Maintainer: Debian Games Team <pkg-games-de...@lists.alioth.debian.org>
+Description: Shareware IWAD from Raven Software's heretic computer game
+ Heretic requires both a heretic-engine and a heretic-wad to play. This package
+ contains the shareware IWAD from Raven Software's game "Heretic"
+ and was generated using the "game-data-packager" program.
diff --git a/hexdd/DEBIAN/control.in b/hexdd/DEBIAN/control.in
new file mode 100644
index 0000000..f7eec54
--- /dev/null
+++ b/hexdd/DEBIAN/control.in
@@ -0,0 +1,16 @@
+Package: PACKAGE
+Section: non-free/games
+Priority: optional
+Architecture: all
+Multi-Arch: foreign
+Depends: hexen-wad
+Recommends: chocolate-doom | hexen-engine
+Breaks: chocolate-doom (<< 2)
+Provides: hexdd-wad
+Installed-Size: 56
+Version: VERSION
+Maintainer: Debian Games Team <pkg-games-de...@lists.alioth.debian.org>
+Description: Hexen: Deathkings of the Dark Citadel
+ This expansion pack requires both a hexen-engine and a hexen-wad to play.
+ This package contains add-on levels to Raven Software's game "hexen"
+ and was generated using the "game-data-packager" program.
diff --git a/hexen-shareware/DEBIAN/control.in b/hexen-shareware/DEBIAN/control.in
new file mode 100644
index 0000000..84e537c
--- /dev/null
+++ b/hexen-shareware/DEBIAN/control.in
@@ -0,0 +1,15 @@
+Package: PACKAGE
+Section: non-free/games
+Priority: optional
+Architecture: all
+Multi-Arch: foreign
+Recommends: chocolate-doom | hexen-engine
+Breaks: chocolate-doom (<< 2)
+Provides: hexen-shareware-wad
+Installed-Size: 56
+Version: VERSION
+Maintainer: Debian Games Team <pkg-games-de...@lists.alioth.debian.org>
+Description: Shareware IWAD from Raven Software's hexen computer game
+ Hexen requires both a Hexen-engine and a Hexen-wad to play. This package
+ contains the shareware IWAD from Raven Software's game "Hexen"
+ and was generated using the "game-data-packager" program.
diff --git a/lib/doom-common b/lib/doom-common
index 9491169..6d7b6da 100644
--- a/lib/doom-common
+++ b/lib/doom-common
@@ -2,17 +2,70 @@ DEBBASE="${SHORTNAME}-wad_${GAME_PACKAGE_VERSION}_all.deb"
doom_usage() {
echo "${SHORTNAME} arguments:" >&2
- printf "\twadfile - path to a ${SHORTNAME}.wad\n" >&2
+ case ${SHORTNAME} in
+ *-shareware)
+ printf "\tgame-data-packager ${SHORTNAME} [ wadfile ] | [ -w ]
+\t\twadfile\t\tpath to a ${SHORTNAME} wad\n\
+\t\t-w\t\tfetch archive from the World Wide Web\n" >&2
+ ;;
+ strife)
+ printf "\tstrifewad - path to strife iwad\n" >&2
+ printf "\tvoiceswad - path to strife voices iwad\n" >&2
+ ;;
+ *)
+ printf "\twadfile - path to a ${SHORTNAME}.wad\n" >&2
+ ;;
+ esac
}
verify_args() {
- if [ $# -ne 1 ]; then
- echo "error: no wadfile specified" >&2
+ case ${SHORTNAME} in
+ strife)
+ numargs=2
+ errormsg="error: too few arguments"
+ ;;
+ *)
+ numargs=1
+ errormsg="error: no wadfile specified"
+ ;;
+ esac
+ if [ $# -ne "$numargs" ]; then
+ echo $errormsg >&2
usage >&2
doom_usage >&2
exit 1
fi
+
+ if [ "$1" = "-w" ] ; then
+ downloadzip $SHORTNAME
+ downloaded=true
+ else
+ downloaded=false
+ WADFILE=$1
+ fi
+}
+
+mirrors=$LIBDIR/${SHORTNAME}-mirrors
+downloadzip() {
+ [ -e $mirrors ] || die "error: no readable mirror list for $SHORTNAME found at $LIBDIR"
+ mirror=$(grep -v ^# "$mirrors" | sort -R | head -n1)
+ dest="$WORKDIR/$(echo $mirror | awk -F/ '{print $NF}')"
+ for try in $mirror; do
+ if wget --progress=dot --directory-prefix "$WORKDIR" -c "$try"
+ then
+ gamezip="$dest"
+ debug "downloaded '$gamezip' to '$dest'"
+ ZIPSUM=`md5sum "$dest" | cut -d' ' -f1`
+ debug "checksum of $dest = $ZIPSUM"
+ check_zip
+ debug running \'unpack_zip $dest\'
+ unpack_zip $dest $WORKDIR # sets $WADFILE
+ return
+ fi
+ done
+ die "error: could not find $SHORTNAME at our chosen mirror"
}
+
checksum() {
CHECKSUM=`md5sum "$1" | cut -d' ' -f1`
debug "checksum = $CHECKSUM"
@@ -23,19 +76,55 @@ DEB="$DATADIR/$DEBBASE"
go() {
verify_args "$@"
- WADFILE=`unravel "$1"`
- [ -f "$WADFILE" ] || die "ERROR: '$WADFILE' does not exist."
+ WADFILE=`unravel "$WADFILE"`
+ debug WADFILE=$WADFILE
+ [ -f "$WADFILE" ] || die "ERROR: '$WADFILE' does not exist."
checksum "$WADFILE"
- debug "WADFILE=$WADFILE"
+
+ if [ ${SHORTNAME} = strife ] ; then
+ VOICESWAD=`unravel "$2"`
+ [ -f "$VOICESWAD" ] || die "ERROR: '$VOICESWAD' does not exist."
+ debug "VOICESWAD=$VOICESWAD"
+ VOICESSUM=`md5sum "$2" | cut -d' ' -f1`
+ debug "checksum of voices.wad = $VOICESSUM"
+ fi
check_for_v19
DEST=`echo $WADDIR | sed 's,^/,,'`
+ debug "DEST=$DEST"
OUTFILE=`unravel "$OUTDIR"`"/$DEBBASE"
+ debug "OUTFILE=$OUTFILE"
+ debug "DEB=$DEB"
+
cp -p "$DEB" "$OUTFILE"
- # Force lower case for *.wad files
- WADFILENAME=`basename "$WADFILE" | tr '[:upper:]' '[:lower:]'`
- ln -sf "$WADFILE" "$WORKDIR/$WADFILENAME"
- slipstream "$OUTFILE" "$DEST" "$WORKDIR/$WADFILENAME"
- rm -f "$WORKDIR/$WADFILENAME"
+
+ case ${SHORTNAME} in
+ strife)
+ # generate known file names
+ strifetmp=$WORKDIR/strife1.wad
+ voicestmp=$WORKDIR/voices.wad
+
+ debug "copying data files to $WORKDIR"
+ cp "$WADFILE" $strifetmp
+ cp "$VOICESWAD" $voicestmp
+
+ debug "running slipstream $OUTFILE $DEST $strifetmp $voicestmp"
+ slipstream "$OUTFILE" "$DEST" $strifetmp $voicestmp
+ rm $strifetmp $voicestmp
+ ;;
+ *-shareware)
+ debug "running slipstream $OUTFILE $DEST $WADFILE"
+ slipstream "$OUTFILE" "$DEST" "$WADFILE"
+ ;;
+ *)
+ # Force lower case for *.wad files
+ WADFILENAME=`basename "$WADFILE" | tr '[:upper:]' '[:lower:]'`
+ ln -sf "$WADFILE" "$WORKDIR/$WADFILENAME"
+ debug "running slipstream $OUTFILE $DEST $WORKDIR/$WADFILENAME"
+ slipstream "$OUTFILE" "$DEST" "$WORKDIR/$WADFILENAME"
+ rm -f "$WORKDIR/$WADFILENAME"
+ ;;
+ esac
+ [ $downloaded = true ] && rm $WADFILE
}
diff --git a/lib/game-data-packager-shared b/lib/game-data-packager-shared
index c5a7d75..b4e2897 100644
--- a/lib/game-data-packager-shared
+++ b/lib/game-data-packager-shared
@@ -7,7 +7,14 @@ supported() {
find $SUPPORTED -type f | grep -v '\.svn' | grep -v 'swp$' | sort |
while read file; do
. $file
- printf "\t%8s\t%s\n" "$SHORTNAME" "$LONGNAME"
+ case "$SHORTNAME" in
+ *-shareware)
+ printf "%16s\t%s\n" "$SHORTNAME" "$LONGNAME"
+ ;;
+ *)
+ printf "\t%8s\t%s\n" "$SHORTNAME" "$LONGNAME"
+ ;;
+ esac
done
}
options() {
diff --git a/lib/heretic-shareware-mirrors b/lib/heretic-shareware-mirrors
new file mode 100644
index 0000000..fcf0810
--- /dev/null
+++ b/lib/heretic-shareware-mirrors
@@ -0,0 +1,3 @@
+ftp://ftp.idsoftware.com/idstuff/heretic/htic_v12.zip
+ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/heretic/htic_v12.zip
+ftp://ftp.ntua.gr/pub/vendors/idgames/idstuff/heretic/htic_v12.zip
diff --git a/lib/hexen-shareware-mirrors b/lib/hexen-shareware-mirrors
new file mode 100644
index 0000000..9671228
--- /dev/null
+++ b/lib/hexen-shareware-mirrors
@@ -0,0 +1,3 @@
+ftp://ftp.idsoftware.com/idstuff/hexen/hexndemo.zip
+ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/hexen/hexndemo.zip
+ftp://ftp.ntua.gr/pub/vendors/idgames/idstuff/hexen/hexndemo.zip
diff --git a/lib/strife-shareware-mirrors b/lib/strife-shareware-mirrors
new file mode 100644
index 0000000..e2c354f
--- /dev/null
+++ b/lib/strife-shareware-mirrors
@@ -0,0 +1,2 @@
+ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/roguestuff/strife11.zip
+ftp://ftp.ntua.gr/pub/vendors/idgames/roguestuff/strife11.zip
diff --git a/strife-shareware/DEBIAN/control.in b/strife-shareware/DEBIAN/control.in
new file mode 100644
index 0000000..588000d
--- /dev/null
+++ b/strife-shareware/DEBIAN/control.in
@@ -0,0 +1,15 @@
+Package: PACKAGE
+Section: non-free/games
+Priority: optional
+Architecture: all
+Multi-Arch: foreign
+Recommends: chocolate-doom | strife-engine
+Breaks: chocolate-doom (<< 2)
+Provides: strife-shareware-wad
+Installed-Size: 56
+Version: VERSION
+Maintainer: Debian Games Team <pkg-games-de...@lists.alioth.debian.org>
+Description: Shareware IWAD from Rogue Entertainment's strife computer game
+ Strife requires both a strife-engine and two IWAD files to play. This package
+ contains the shareware IWAD from Rogue Entertainment's game "Strife"
+ and was generated using the "game-data-packager" program.
diff --git a/strife/DEBIAN/control.in b/strife/DEBIAN/control.in
new file mode 100644
index 0000000..ae1ea43
--- /dev/null
+++ b/strife/DEBIAN/control.in
@@ -0,0 +1,15 @@
+Package: PACKAGE
+Section: non-free/games
+Priority: optional
+Architecture: all
+Multi-Arch: foreign
+Recommends: chocolate-doom | strife-engine
+Breaks: chocolate-doom (<< 2)
+Provides: strife-wad
+Installed-Size: 56
+Version: VERSION
+Maintainer: Debian Games Team <pkg-games-de...@lists.alioth.debian.org>
+Description: IWADs from Rogue Entertainment's strife computer game
+ Strife requires both a strife-engine and two IWAD files to play. This package
+ contains the two IWADs from Rogue Entertainment's game "Strife"
+ and was generated using the "game-data-packager" program.
diff --git a/supported/heretic-shareware b/supported/heretic-shareware
new file mode 100644
index 0000000..3f661d8
--- /dev/null
+++ b/supported/heretic-shareware
@@ -0,0 +1,37 @@
+SHORTNAME=heretic-shareware
+LONGNAME="Heretic Shareware"
+
+check_for_v19() {
+ case "$CHECKSUM" in
+ "ae779722390ec32fa37b0d361f7d82f8")
+ debug "heretic1.wad is newest version 1.2"
+ ;;
+ *)
+ warn "the heretic1.wad file is not the newest version 1.2"
+ warn "(or has been modified)"
+ warn "you may have some problems playing some PWADs or demos"
+ ;;
+ esac
+
+}
+
+check_zip() {
+ case "$ZIPSUM" in
+ "420b23b3d8f2cbd164c121369eaa2b09")
+ debug "htic_v12.zip is v1.2 Heretic shareware"
+ ;;
+ *)
+ die "unknown zipfile downloaded to '$WORKDIR'! Cannot continue!"
+ ;;
+ esac
+}
+
+unpack_zip() {
+ unzip -LLqqod $2 $1
+ cat $2/htic_v12.[12] > $2/tmp.zip
+ unzip -LLqqod $2 $2/tmp.zip
+ (cd $2 && rm *.bat *.cfg *.dat *.diz *.doc *.exe *.frm *.num *.srv *.str *.tmp *.txt *.zip htic_v12.?)
+ WADFILE=$2/heretic1.wad
+ debug "WADFILE=$WADFILE"
+}
+. $LIBDIR/doom-common
diff --git a/supported/hexdd b/supported/hexdd
new file mode 100644
index 0000000..874d1dd
--- /dev/null
+++ b/supported/hexdd
@@ -0,0 +1,17 @@
+SHORTNAME=hexdd
+LONGNAME="Hexen: Deathkings of the Dark Citadel"
+
+check_for_v19() {
+ case "$CHECKSUM" in
+ "78d5898e99e220e4de64edaa0e479593")
+ debug "hexdd.wad is newest version 1.1"
+ ;;
+ *)
+ warn "the hexdd.wad file is not the newest version 1.1"
+ warn "(or has been modified)"
+ warn "you may have some problems playing some PWADs or demos"
+ ;;
+ esac
+}
+
+. $LIBDIR/doom-common
diff --git a/supported/hexen-shareware b/supported/hexen-shareware
new file mode 100644
index 0000000..32954f4
--- /dev/null
+++ b/supported/hexen-shareware
@@ -0,0 +1,35 @@
+SHORTNAME=hexen-shareware
+LONGNAME="Hexen Shareware"
+
+check_for_v19() {
+ case "$CHECKSUM" in
+ "876a5a44c7b68f04b3bb9bc7a5bd69d6")
+ debug "hexendemo.wad is newest version 1.0"
+ ;;
+ *)
+ warn "the hexendemo.wad file is not the newest version 1.0"
+ warn "(or has been modified)"
+ warn "you may have some problems playing some PWADs or demos"
+ ;;
+ esac
+
+}
+
+check_zip() {
+ case "$ZIPSUM" in
+ "b30672df8b41fd35fafe40ce0c3855c3")
+ debug "hexndemo.zip is v1.0 Hexen shareware"
+ ;;
+ *)
+ die "unknown zipfile downloaded to '$WORKDIR'! Cannot continue!"
+ ;;
+ esac
+}
+
+unpack_zip() {
+ unzip -LLqqod $2 $1
+ mv $2/hexen.wad $2/hexendemo.wad
+ (cd $2 && rm *.cfg *.doc *.exe *.num *.str *.txt *.zip)
+ WADFILE=$2/hexendemo.wad
+}
+. $LIBDIR/doom-common
diff --git a/supported/strife b/supported/strife
new file mode 100644
index 0000000..58482f2
--- /dev/null
+++ b/supported/strife
@@ -0,0 +1,28 @@
+SHORTNAME=strife
+LONGNAME="Strife: Quest for the Sigil"
+
+check_for_v19() {
+ case "$CHECKSUM" in
+ "2fed2031a5b03892106e0f117f17901f")
+ debug "strife1.wad is newest version 1.2"
+ ;;
+ *)
+ warn "the strife1.wad file is not the newest version 1.2"
+ warn "(or has been modified)"
+ warn "you may have some problems playing some PWADs or demos"
+ ;;
+ esac
+
+ case "$VOICESSUM" in
+ "082234d6a3f7086424856478b5aa9e95")
+ debug "voices.wad is newest version 1.2"
+ ;;
+ *)
+ warn "the voices.wad file is not the newest version 1.2"
+ warn "(or has been modified)"
+ warn "you may have some problems playing some PWADs or demos"
+ ;;
+ esac
+
+}
+. $LIBDIR/doom-common
diff --git a/supported/strife-shareware b/supported/strife-shareware
new file mode 100644
index 0000000..b46737d
--- /dev/null
+++ b/supported/strife-shareware
@@ -0,0 +1,34 @@
+SHORTNAME=strife-shareware
+LONGNAME="Strife Shareware"
+
+check_for_v19() {
+ case "$CHECKSUM" in
+ "bb545b9c4eca0ff92c14d466b3294023")
+ debug "strife0.wad is newest version 1.1"
+ ;;
+ *)
+ warn "the strife0.wad file is not the newest version 1.0"
+ warn "(or has been modified)"
+ warn "you may have some problems playing some PWADs or demos"
+ ;;
+ esac
+
+}
+
+check_zip() {
+ case "$ZIPSUM" in
+ "972070afb30c96fc3c69d954dfab2424")
+ debug "strife11.zip is v1.0 Strife shareware"
+ ;;
+ *)
+ die "unknown zipfile downloaded to '$WORKDIR'! Cannot continue!"
+ ;;
+ esac
+}
+
+unpack_zip() {
+ unzip -LLqqod $2 $1
+ (cd $2 && rm *.cfg *.exe *.key *.num *.str *.txt *.zip)
+ WADFILE=$2/strife0.wad
+}
+. $LIBDIR/doom-common
--
1.9.rc1