diff options
30 files changed, 1746 insertions, 0 deletions
diff --git a/games/nethack-qt/Makefile b/games/nethack-qt/Makefile new file mode 100644 index 000000000000..483e458f4174 --- /dev/null +++ b/games/nethack-qt/Makefile @@ -0,0 +1,59 @@ +# New ports collection makefile for: nethack-qt +# Version required: 3.2.2 +# Date created: So 6 Apr 1997 04:25:57 MET DST +# Whom: Andreas Klemm <andreas@klemm.gtn.com> +# +# $Id$ +# + +DISTNAME= nethack-3.2.2 +PKGNAME= nethack-3.2.2-qt +CATEGORIES= games x11 +MASTER_SITES= ftp://ftp.uu.net/pub/games/nethack/sources/ \ + http://www.uq.edu.au/~cswallis/nhqt/ \ + http://student.uq.edu.au/~s002434/ \ + ${MASTER_SITE_GNU} +QT_PATCH= nhqt0.9.tar.gz +QT_SOUND= nhs.tar.gz +DISTFILES= nethack-3.2.2.tar.gz ${QT_PATCH} ${QT_SOUND} + +MAINTAINER= andreas@FreeBSD.ORG + +LIB_DEPENDS= Xpm\\.4\\.:${PORTSDIR}/graphics/xpm +RUN_DEPENDS= auplay:${PORTSDIR}/audio/nas + +EXTRACT_ONLY= nethack-3.2.2.tar.gz +USE_GMAKE= yes +SHELL= /bin/sh +MAN6= dgn_comp.6 dlb.6 lev_comp.6 nethack.6 recover.6 + +pre-configure: + @cd ${WRKSRC}/win; tar xvzf ${DISTDIR}/${QT_PATCH} + @cd ${WRKSRC}; patch < win/Qt/nhqt.patch + @cd ${WRKSRC}/sys/unix; ${SHELL} setup.sh + @cd ${WRKSRC}/src; patch < ${FILESDIR}/src-Makefile.diff + @cd ${WRKSRC}/src; patch < ${FILESDIR}/src-sounds.c.diff + @cd ${WRKSRC}; patch < ${FILESDIR}/include-unixconf.h.diff + +post-install: + @cd ${WRKSRC}/doc; chmod 644 *.6 + @cd ${WRKSRC}/doc; PREFIX=${PREFIX} ${MAKE} manpages +.if !defined(NOPORTDOCS) + ${MKDIR} ${PREFIX}/share/doc/nethack + ${CP} ${WRKSRC}/doc/Guidebook.txt ${PREFIX}/share/doc/nethack +.endif + @cd ${PREFIX}/lib/nethackdir; tar xzf ${DISTDIR}/${QT_SOUND} + @cd ${PREFIX}/lib/nethackdir; chown games.games *.au .nethackrc + @cd ${PREFIX}/lib/nethackdir; chmod 444 *.au .nethackrc + echo "-----------------------" + echo "post-installation hints + echo "-----------------------" + echo "a) Add this to your user environment:" + echo " setenv AUDIOSERVER `hostname`:0" + echo "b) Start the NAS audio server" + echo " auvoxware -aa & # -aa allows any host access" + echo "c) Copy the example nethackrc file from $FILESDIR to your" + echo " login directory:" + echo " cp $FILESDIR/sample.nethackrc $HOME/.nethackrc" + +.include <bsd.port.mk> diff --git a/games/nethack-qt/distinfo b/games/nethack-qt/distinfo new file mode 100644 index 000000000000..abd07b3b68a8 --- /dev/null +++ b/games/nethack-qt/distinfo @@ -0,0 +1,3 @@ +MD5 (nethack-3.2.2.tar.gz) = c85de4d14453b3a2d182d1dfc2ca04df +MD5 (nhqt0.9.tar.gz) = 9e59311148cc944978d8d04cb87adf9d +MD5 (nhs.tar.gz) = 605f8bac130a9ad9857efd859d7a0dcf diff --git a/games/nethack-qt/files/include-unixconf.h.diff b/games/nethack-qt/files/include-unixconf.h.diff new file mode 100644 index 000000000000..53150d818111 --- /dev/null +++ b/games/nethack-qt/files/include-unixconf.h.diff @@ -0,0 +1,11 @@ +--- include/unixconf.h.orig Thu Mar 20 23:17:16 1997 ++++ include/unixconf.h Thu Mar 20 23:17:29 1997 +@@ -42,7 +42,7 @@ + /* #define AIX_31 /* In AIX 3.1 (IBM RS/6000) use BSD ioctl's to gain + * job control (note that AIX is SYSV otherwise) + * Also define this for AIX 3.2 */ +-#define TEXTCOLOR /* Use System V r3.2 terminfo color support */ ++/* #define TEXTCOLOR /* Use System V r3.2 terminfo color support */ + /* and/or ANSI color support on termcap systems */ + /* and/or X11 color */ + #define POSIX_JOB_CONTROL /* use System V / POSIX job control diff --git a/games/nethack-qt/files/patch-aa b/games/nethack-qt/files/patch-aa new file mode 100644 index 000000000000..4f8040adbbc0 --- /dev/null +++ b/games/nethack-qt/files/patch-aa @@ -0,0 +1,127 @@ +--- ./include/system.h.org Mon Mar 25 17:18:32 1996 ++++ ./include/system.h Sun Apr 21 18:10:01 1996 +@@ -78,7 +78,7 @@ + # if !defined(SUNOS4) || defined(RANDOM) + E void FDECL(srandom, (unsigned int)); + # else +-# ifndef bsdi ++# if !defined(bsdi) && !defined(__FreeBSD__) + E int FDECL(srandom, (unsigned int)); + # endif + # endif +--- ./include/unixconf.h.org Mon Mar 25 12:47:47 1996 ++++ ./include/unixconf.h Sun Apr 21 18:10:02 1996 +@@ -31,7 +31,7 @@ + + /* define any of the following that are appropriate */ + /* #define SVR4 /* use in addition to SYSV for System V Release 4 */ +-#define NETWORK /* if running on a networked system */ ++/* #define NETWORK /* if running on a networked system */ + /* e.g. Suns sharing a playground through NFS */ + #define SUNOS4 /* SunOS 4.x */ + /* #define LINUX /* Another Unix clone */ +@@ -42,12 +42,12 @@ + /* #define AIX_31 /* In AIX 3.1 (IBM RS/6000) use BSD ioctl's to gain + * job control (note that AIX is SYSV otherwise) + * Also define this for AIX 3.2 */ +-/* #define TEXTCOLOR /* Use System V r3.2 terminfo color support */ ++#define TEXTCOLOR /* Use System V r3.2 terminfo color support */ + /* and/or ANSI color support on termcap systems */ + /* and/or X11 color */ +-/* #define POSIX_JOB_CONTROL /* use System V / POSIX job control ++#define POSIX_JOB_CONTROL /* use System V / POSIX job control + * (e.g., VSUSP) */ +-/* #define POSIX_TYPES /* use POSIX types for system calls and termios */ ++#define POSIX_TYPES /* use POSIX types for system calls and termios */ + /* define for many recent OS releases, including + * those with specific defines (since types are + * changing toward the standard from earlier chaos). +@@ -125,7 +125,7 @@ + * A stat system call is done on the mailbox every MAILCKFREQ moves. + */ + +-#define MAIL /* Deliver mail during the game */ ++/* #define MAIL /* Deliver mail during the game */ + + /* The Andrew Message System does mail a little differently from normal + * UNIX. Mail is deposited in the user's own directory in ~/Mailbox +--- ./include/config.h.org Thu Feb 29 11:00:26 1996 ++++ ./include/config.h Sun Apr 21 18:10:06 1996 +@@ -248,7 +248,7 @@ + * would allow: + * xpmtoppm <x11tiles.xpm | pnmscale 1.25 | ppmquant 90 >x11tiles_big.xpm + */ +-/* # define USE_XPM /* Disable if you do not have the XPM library */ ++# define USE_XPM /* Disable if you do not have the XPM library */ + # ifdef USE_XPM + # define GRAPHIC_TOMBSTONE /* Use graphical tombstone (rip.xpm) */ + # endif +@@ -288,12 +288,12 @@ + + #ifdef UNIX + /* path and file name extension for compression program */ +-# define COMPRESS "/usr/ucb/compress" /* Lempel-Ziv compression */ +-# define COMPRESS_EXTENSION ".Z" /* compress's extension */ ++/* # define COMPRESS "/usr/ucb/compress" /* Lempel-Ziv compression */ ++/* # define COMPRESS_EXTENSION ".Z" /* compress's extension */ + + /* An example of one alternative you might want to use: */ +-/* # define COMPRESS "/usr/local/bin/gzip" /* FSF gzip compression */ +-/* # define COMPRESS_EXTENSION ".gz" /* normal gzip extension */ ++# define COMPRESS "/usr/bin/gzip" /* FSF gzip compression */ ++# define COMPRESS_EXTENSION ".gz" /* normal gzip extension */ + #endif + #ifndef COMPRESS + # define INTERNAL_COMP /* control use of NetHack's compression routines */ +@@ -323,7 +323,7 @@ + * otherwise it will be the current directory. + */ + # ifndef HACKDIR +-# define HACKDIR "/usr/games/lib/nethackdir" /* nethack directory */ ++# define HACKDIR "/usr/local/lib/nethackdir" /* nethack directory */ + # endif + + /* +--- ./sys/unix/Makefile.doc.org Wed Apr 3 21:17:35 1996 ++++ ./sys/unix/Makefile.doc Sun Apr 21 18:10:03 1996 +@@ -31,7 +31,7 @@ + + + GAME = nethack +-MANDIR = /usr/man/man6 ++MANDIR = ${PREFIX}/man/man6 + MANEXT = 6 + + # manual installation for most BSD-style systems +--- ./sys/unix/Makefile.top.org Mon Mar 25 17:22:00 1996 ++++ ./sys/unix/Makefile.top Sun Apr 21 18:28:09 1996 +@@ -16,14 +16,14 @@ + # make NetHack + GAME = nethack + GAMEUID = games +-GAMEGRP = bin ++GAMEGRP = games + + # Permissions - some places use setgid instead of setuid, for instance + # See also the option "SECURE" in include/config.h +-GAMEPERM = 04755 +-FILEPERM = 0644 ++GAMEPERM = 02755 ++FILEPERM = 0664 + EXEPERM = 0755 +-DIRPERM = 0755 ++DIRPERM = 0775 + + # GAMEDIR also appears in config.h as "HACKDIR". + # +@@ -32,8 +32,8 @@ + # therefore there should not be anything in GAMEDIR that you want to keep + # (if there is, you'll have to do the installation by hand or modify the + # instructions) +-GAMEDIR = /usr/games/lib/$(GAME)dir +-SHELLDIR = /usr/games ++GAMEDIR = ${PREFIX}/lib/$(GAME)dir ++SHELLDIR = ${PREFIX}/bin + + # per discussion in Install.X11 + VARDATND = diff --git a/games/nethack-qt/files/sample.nethackrc b/games/nethack-qt/files/sample.nethackrc new file mode 100644 index 000000000000..33dbe47118fc --- /dev/null +++ b/games/nethack-qt/files/sample.nethackrc @@ -0,0 +1,88 @@ +OPTIONS=!silent +OPTIONS=!time +OPTIONS=catname:Ghisteslwchlohm +OPTIONS=color +OPTIONS=dogname:Dhairrhuwyth +OPTIONS=hilite_pet +OPTIONS=lit_corridor +OPTIONS=menustyle:partial +OPTIONS=msghistory:200 +OPTIONS=news +OPTIONS=noautopickup +OPTIONS=rest_on_space +OPTIONS=safe_pet +OPTIONS=showexp +OPTIONS=showscore +OPTIONS=sortpack +OPTIONS=time +OPTIONS=tombstone +OPTIONS=toptenwin +OPTIONS=verbose +SOUNDDIR=/usr/local/lib/nethackdir +SOUND=MESG "needs food, badly" "weak.au" 100 +SOUND=MESG "feel weak" "weak.au" 100 +SOUND=MESG "bear trap closes" "beartrap.au" 100 +SOUND=MESG "board beneath you squeaks" "squeek.au" 100 +SOUND=MESG "board beneath .....* squeaks" "squeek.au" 60 +SOUND=MESG "a distant squeak" "squeek.au" 25 +SOUND=MESG "mind releases itself from" "memories.au" 100 +SOUND=MESG "on itself, you forget" "memories.au" 100 +SOUND=MESG "Who was that Maud person" "memories.au" 100 +SOUND=MESG "Thinking of Maud you forget" "memories.au" 100 +SOUND=MESG "you forget everything" "memories.au" 100 +SOUND=MESG "smell marsh gas" "frogs.au" 100 +SOUND=MESG "must have been exercising" "tada.au" 100 +SOUND=MESG "must have been very obs" "tada.au" 100 +SOUND=MESG "must have been working on" "tada.au" 100 +SOUND=MESG "must be leading a healthy" "tada.au" 100 +SOUND=MESG "Keystone Kops appear!" "kops.au" 100 +SOUND=MESG "Keystone Kops are after you" "kops.au" 100 +SOUND=MESG "interesting topological ex" "mock.au" 100 +SOUND=MESG "Interesting\.\.\." "mock.au" 100 +SOUND=MESG "deathly sick\." "ohdear.au" 80 +SOUND=MESG "feel feverish" "ohdear.au" 80 +SOUND=MESG "brain is eaten" "minderode.au" 80 +SOUND=MESG "thought thou couldst kill" "yendor.au" 120 +SOUND=MESG "begin praying to" "latin_short.au" 70 +SOUND=MESG "sense of peace" "latin.au" 20 +SOUND=MESG "have a.* forbidding feeling" "latin.au" 20 +#SOUND=MESG "door opens\." "dooropen2.au" 100 +#SOUND=MESG "You drop " "drop.au" 10 +#SOUND=MESG "You destroy " "destroy2.au" 30 +#SOUND=MESG "You kill " "destroy2.au" 20 +#SOUND=MESG "is killed" "destroy2.au" 10 +#SOUND=MESG "You miss " "miss2.au" 20 +#SOUND=MESG "fiery blade burns" "hit2.au" 30 +#SOUND=MESG "ice-cold blade freezes" "hit2.au" 30 +#SOUND=MESG "You hit " "hit2.au" 20 +#SOUND=MESG "The spell hits" "hit2.au" 20 +SOUND=MESG "breathes" "breath.au" 100 +SOUND=MESG "a door open\." "dooropen2.au" 100 +SOUND=MESG "Klunk" "clunk.au" 100 +SOUND=MESG "guard on patrol" "coin.au" 50 +SOUND=MESG "quarterback calling" "coin.au" 50 +SOUND=MESG "someone counting" "coin.au" 50 +SOUND=MESG "Ebenezer Scrooge" "coin.au" 50 +SOUND=MESG "someone cursing shoplifters" "gong.au" 50 +SOUND=MESG "chime of a cash register" "gong.au" 50 +SOUND=MESG "Neiman and Marcus" "gong.au" 50 +SOUND=MESG "You die" "death.au" 100 +SOUND=MESG "sad feeling" "death.au" 50 +SOUND=MESG "door closes\." "doorclos.au" 100 +SOUND=MESG "cosmic" "hallu.au" 100 +SOUND=MESG "explosion" "landmine.au" 100 +SOUND=MESG "KABOOM" "landmine.au" 100 +#SOUND=MESG "KAABLAM" "landmine.au" 100 +SOUND=MESG "trigger.* a land *mine" "landmine.au" 100 +SOUND=MESG "elcome to experi" "level_up.au" 100 +SOUND=MESG "memorize" "memor.au" 100 +#SOUND=MESG "Ouch" "ouch2.au" 100 +#SOUND=MESG "XXXfall through\.\.\." "trapdoor.au" 100 +SOUND=MESG "vomit" "vomit.au" 100 +SOUND=MESG "whistling" "whistle2.au" 100 +SOUND=MESG "crashes open" "thump.au" 100 +SOUND=MESG "You break open the lock" "thump.au" 100 +#SOUND=MESG "THUD" "thump.au" 40 +#SOUND=MESG "WHAMM" "thump.au" 50 +SOUND=MESG "welcome to NetHack" "awaits.au" 100 +SOUND=MESG "strange vibration under" "forcefld.au" 100 diff --git a/games/nethack-qt/files/src-Makefile.diff b/games/nethack-qt/files/src-Makefile.diff new file mode 100644 index 000000000000..f43c85bacc75 --- /dev/null +++ b/games/nethack-qt/files/src-Makefile.diff @@ -0,0 +1,39 @@ +--- src/Makefile.orig Sat Apr 5 19:43:25 1997 ++++ src/Makefile Sat Apr 5 19:51:26 1997 +@@ -124,11 +124,11 @@ + # flags for debugging: + # CFLAGS = -g -I../include + +-CFLAGS = -O2 -I../include +-LFLAGS = -L/usr/X11/lib -L$(QTDIR)/lib ++CFLAGS = -pipe -O -I../include ++LFLAGS = -L/usr/X11R6/lib -L$(QTDIR)/lib + + # For USER_SOUNDS support, include -I/usr/X11/include +-CXXFLAGS = $(CFLAGS) -I. -I$(QTDIR)/include -I/usr/X11/include ++CXXFLAGS = $(CFLAGS) -I. -I/usr/X11R6/include -I/usr/X11R6/include/X11/qt + + # Set the WINSRC, WINOBJ, and WINLIB lines to correspond to your desired + # combination of windowing systems. Also set windowing systems in config.h. +@@ -213,7 +213,7 @@ + # IRIX 4.0.x needs -lsun if NIS (YP) is being used for passwd file lookup + # LIBS = -lsun + # +-LIBS = ++LIBS = -lgnuregex + + # make NetHack + GAME = nethack +@@ -536,6 +536,12 @@ + + # DO NOT DELETE THIS LINE + ++qaudio-p.moc: ../win/Qt/qaudio-p.h ++ moc ../win/Qt/qaudio-p.h > qaudio-p.moc ++qaudio-p.o: ../win/Qt/qaudio-p.cc qaudio-p.moc ++ $(CXX) $(CXXFLAGS) -c ../win/Qt/qaudio-p.cc ++qaudio.o: ../win/Qt/qaudio.cc ++ $(CXX) $(CXXFLAGS) -c ../win/Qt/qaudio.cc + qt_win.o: ../win/Qt/qt_win.cc ../include/hack.h ../include/qt_win.h ../include/cluster.h qt_win.moc + $(CXX) $(CXXFLAGS) -c ../win/Qt/qt_win.cc + qviewp.o: ../win/Qt/qviewp.cc ../include/qviewp.h qviewp.moc diff --git a/games/nethack-qt/files/src-sounds.c.diff b/games/nethack-qt/files/src-sounds.c.diff new file mode 100644 index 000000000000..de1fdf62b02f --- /dev/null +++ b/games/nethack-qt/files/src-sounds.c.diff @@ -0,0 +1,14 @@ +--- src/sounds.c.orig Thu Mar 20 22:48:36 1997 ++++ src/sounds.c Thu Mar 20 22:50:00 1997 +@@ -5,7 +5,11 @@ + #include "hack.h" + #include "edog.h" + #ifdef USER_SOUNDS ++#if defined(__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) ++#include <gnuregex.h> ++#else + #include <regex.h> ++#endif + #endif + + #ifdef OVLB diff --git a/games/nethack-qt/pkg-comment b/games/nethack-qt/pkg-comment new file mode 100644 index 000000000000..d4eae3170b88 --- /dev/null +++ b/games/nethack-qt/pkg-comment @@ -0,0 +1 @@ +A dungeon explorin', slashin', hackin' game with graphic and sound support diff --git a/games/nethack-qt/pkg-descr b/games/nethack-qt/pkg-descr new file mode 100644 index 000000000000..a96d2d7b08fa --- /dev/null +++ b/games/nethack-qt/pkg-descr @@ -0,0 +1,54 @@ +From: http://www.uq.edu.au/~cswallis/nhqt/ + +NetHack QT - What is it? + +NetHack is a Free graphical one-player roleplaying game with a +highly modular window system interface supporting TTY, VGA, Mac, +Amiga, and other displays. Qt is a graphical user interface toolkit. +So, "NetHack with Qt interface" is a version of NetHack which has +a user interface module written using the Qt toolkit. + +How is it better than the plain X11 interface? +The Qt interface has these extra features: + +o Tiles (graphics) in the inventory and other item-menu windows. +o The player cursor changes colour as your relative hit-points drop. +o The message window greys-out older message. +o The item menus allow a count (click to left of icon - hidden feature). +o Icons for the major attributes and player states. +o Menus (only needed by newbie dungeon fodder). +o Variable size fonts and tiles. +o More space for the map as messages and status are side-by-side. +o You rarely need to put the mouse in a pop-up to interact with it. +o Macros - hidden feature - F1=multi-rest F2=multi-search F3=try-it +o It is much easier to code, so new feature-requests are more easily done. +o Sound support. + +The standard NetHack X11 interface is written in C using the Athena +Widgets toolkit. The strongest reason for doing it that way was +that NetHack is one of the most incredibly portable programs of +any kind, and the Athena Widget Set is also available for free on +a large number of X11 implementations. The problem is that Athena +Widgets (also known as Xaw) is very ugly, difficult to program in, +and buggy. The Qt interface toolkit on the other hand is written +in C++ and is freely portable to any X11 implementation, but is +less widespread, making it inappropriate for the standard NetHack +X11 interface. + +Sound support + +The QtNetHack patch includes experimental support for sounds to be +played based on messages. For example, you can arrange for a gong +to sound when the message "... cursing shoplifter..." appears. The +system maps any regular expression (can be just some text) to a +sound. The QtNetHack windowport is the only one providing this +method, and it does so using the NAS (Network Audio System) . As +distributed, the patch enables this feature - see include/config.h +once you have applied the patch, and look for USER_SOUNDS for an +explanation of how to disable it if you want to. + +You will also want to collect some sound samples to try it out, +and a .nethackrc attaching them to messages. This package contains +the .au files that I use, and my ~/.nethackrc. Many of the sounds +are from the nhsound package, which you can find referenced on the +NetHack Home Page. diff --git a/games/nethack-qt/pkg-plist b/games/nethack-qt/pkg-plist new file mode 100644 index 000000000000..b9b6c3bae250 --- /dev/null +++ b/games/nethack-qt/pkg-plist @@ -0,0 +1,186 @@ +bin/nethack +lib/nethackdir/nethack +@exec mkdir %D/lib/nethackdir/save +@exec chmod 775 %D/lib/nethackdir/save +@exec chown games.games %D/lib/nethackdir/save +@unexec rmdir %D/lib/nethackdir/save +man/man6/dgn_comp.6.gz +man/man6/dlb.6.gz +man/man6/lev_comp.6.gz +man/man6/nethack.6.gz +man/man6/recover.6.gz +lib/nethackdir/.nethackrc +lib/nethackdir/A-filla.lev +lib/nethackdir/A-fillb.lev +lib/nethackdir/A-goal.lev +lib/nethackdir/A-locate.lev +lib/nethackdir/A-start.lev +lib/nethackdir/B-filla.lev +lib/nethackdir/B-fillb.lev +lib/nethackdir/B-goal.lev +lib/nethackdir/B-locate.lev +lib/nethackdir/B-start.lev +lib/nethackdir/C-filla.lev +lib/nethackdir/C-fillb.lev +lib/nethackdir/C-goal.lev +lib/nethackdir/C-locate.lev +lib/nethackdir/C-start.lev +lib/nethackdir/E-filla.lev +lib/nethackdir/E-fillb.lev +lib/nethackdir/E-goal.lev +lib/nethackdir/E-locate.lev +lib/nethackdir/E-start.lev +lib/nethackdir/H-filla.lev +lib/nethackdir/H-fillb.lev +lib/nethackdir/H-goal.lev +lib/nethackdir/H-locate.lev +lib/nethackdir/H-start.lev +lib/nethackdir/K-filla.lev +lib/nethackdir/K-fillb.lev +lib/nethackdir/K-goal.lev +lib/nethackdir/K-locate.lev +lib/nethackdir/K-start.lev +lib/nethackdir/P-filla.lev +lib/nethackdir/P-fillb.lev +lib/nethackdir/P-goal.lev +lib/nethackdir/P-locate.lev +lib/nethackdir/P-start.lev +lib/nethackdir/R-filla.lev +lib/nethackdir/R-fillb.lev +lib/nethackdir/R-goal.lev +lib/nethackdir/R-locate.lev +lib/nethackdir/R-start.lev +lib/nethackdir/S-filla.lev +lib/nethackdir/S-fillb.lev +lib/nethackdir/S-goal.lev +lib/nethackdir/S-locate.lev +lib/nethackdir/S-start.lev +lib/nethackdir/T-filla.lev +lib/nethackdir/T-fillb.lev +lib/nethackdir/T-goal.lev +lib/nethackdir/T-locate.lev +lib/nethackdir/T-start.lev +lib/nethackdir/V-filla.lev +lib/nethackdir/V-fillb.lev +lib/nethackdir/V-goal.lev +lib/nethackdir/V-locate.lev +lib/nethackdir/V-start.lev +lib/nethackdir/W-filla.lev +lib/nethackdir/W-fillb.lev +lib/nethackdir/W-goal.lev +lib/nethackdir/W-locate.lev +lib/nethackdir/W-start.lev +lib/nethackdir/air.lev +lib/nethackdir/asmodeus.lev +lib/nethackdir/astral.lev +lib/nethackdir/awaits.au +lib/nethackdir/baalz.lev +lib/nethackdir/beartrap.au +lib/nethackdir/bigrm-1.lev +lib/nethackdir/bigrm-2.lev +lib/nethackdir/bigrm-3.lev +lib/nethackdir/bigrm-4.lev +lib/nethackdir/bigrm-5.lev +lib/nethackdir/blind.ppm +lib/nethackdir/breath.au +lib/nethackdir/castle.lev +lib/nethackdir/cha.ppm +lib/nethackdir/chaotic.ppm +lib/nethackdir/clunk.au +lib/nethackdir/cmdhelp +lib/nethackdir/coin.au +lib/nethackdir/con.ppm +lib/nethackdir/confused.ppm +lib/nethackdir/data +lib/nethackdir/death.au +lib/nethackdir/destroy2.au +lib/nethackdir/dex.ppm +lib/nethackdir/doorclos.au +lib/nethackdir/dooropen2.au +lib/nethackdir/drop.au +lib/nethackdir/dungeon +lib/nethackdir/earth.lev +lib/nethackdir/ext_encumber.ppm +lib/nethackdir/fakewiz1.lev +lib/nethackdir/fakewiz2.lev +lib/nethackdir/fire.lev +lib/nethackdir/forcefld.au +lib/nethackdir/frogs.au +lib/nethackdir/gong.au +lib/nethackdir/hallu.au +lib/nethackdir/hallu.ppm +lib/nethackdir/help +lib/nethackdir/hh +lib/nethackdir/history +lib/nethackdir/hit2.au +lib/nethackdir/hungry.ppm +lib/nethackdir/hvy_encumber.ppm +lib/nethackdir/int.ppm +lib/nethackdir/juiblex.lev +lib/nethackdir/knox.lev +lib/nethackdir/kops.au +lib/nethackdir/landmine.au +lib/nethackdir/latin.au +lib/nethackdir/latin_short.au +lib/nethackdir/lawful.ppm +lib/nethackdir/level_up.au +lib/nethackdir/license +lib/nethackdir/logfile +lib/nethackdir/medusa-1.lev +lib/nethackdir/medusa-2.lev +lib/nethackdir/memor.au +lib/nethackdir/memories.au +lib/nethackdir/minderode.au +lib/nethackdir/minefill.lev +lib/nethackdir/minend-1.lev +lib/nethackdir/minend-2.lev +lib/nethackdir/minetn-1.lev +lib/nethackdir/minetn-2.lev +lib/nethackdir/miss2.au +lib/nethackdir/mock.au +lib/nethackdir/mod_encumber.ppm +lib/nethackdir/neutral.ppm +lib/nethackdir/ohdear.au +lib/nethackdir/opthelp +lib/nethackdir/options +lib/nethackdir/oracle.lev +lib/nethackdir/oracles +lib/nethackdir/orcus.lev +lib/nethackdir/ouch2.au +lib/nethackdir/ovr_encumber.ppm +lib/nethackdir/perm +lib/nethackdir/pet_mark.pbm +lib/nethackdir/pet_mark.ppm +lib/nethackdir/qt_tiles_0.ppm +lib/nethackdir/qt_tiles_1.ppm +lib/nethackdir/qt_tiles_2.ppm +lib/nethackdir/qt_tiles_3.ppm +lib/nethackdir/quest.dat +lib/nethackdir/record +lib/nethackdir/rip.ppm +lib/nethackdir/rumors +lib/nethackdir/sanctum.lev +lib/nethackdir/satiated.ppm +lib/nethackdir/sick_fp.ppm +lib/nethackdir/sick_il.ppm +lib/nethackdir/slt_encumber.ppm +lib/nethackdir/squeek.au +lib/nethackdir/str.ppm +lib/nethackdir/stunned.ppm +lib/nethackdir/tada.au +lib/nethackdir/thump.au +lib/nethackdir/tower1.lev +lib/nethackdir/tower2.lev +lib/nethackdir/tower3.lev +lib/nethackdir/trapdoor.au +lib/nethackdir/valley.lev +lib/nethackdir/vomit.au +lib/nethackdir/water.lev +lib/nethackdir/weak.au +lib/nethackdir/whistle2.au +lib/nethackdir/wis.ppm +lib/nethackdir/wizard1.lev +lib/nethackdir/wizard2.lev +lib/nethackdir/wizard3.lev +lib/nethackdir/wizhelp +lib/nethackdir/yendor.au diff --git a/games/nethack33-qt/Makefile b/games/nethack33-qt/Makefile new file mode 100644 index 000000000000..483e458f4174 --- /dev/null +++ b/games/nethack33-qt/Makefile @@ -0,0 +1,59 @@ +# New ports collection makefile for: nethack-qt +# Version required: 3.2.2 +# Date created: So 6 Apr 1997 04:25:57 MET DST +# Whom: Andreas Klemm <andreas@klemm.gtn.com> +# +# $Id$ +# + +DISTNAME= nethack-3.2.2 +PKGNAME= nethack-3.2.2-qt +CATEGORIES= games x11 +MASTER_SITES= ftp://ftp.uu.net/pub/games/nethack/sources/ \ + http://www.uq.edu.au/~cswallis/nhqt/ \ + http://student.uq.edu.au/~s002434/ \ + ${MASTER_SITE_GNU} +QT_PATCH= nhqt0.9.tar.gz +QT_SOUND= nhs.tar.gz +DISTFILES= nethack-3.2.2.tar.gz ${QT_PATCH} ${QT_SOUND} + +MAINTAINER= andreas@FreeBSD.ORG + +LIB_DEPENDS= Xpm\\.4\\.:${PORTSDIR}/graphics/xpm +RUN_DEPENDS= auplay:${PORTSDIR}/audio/nas + +EXTRACT_ONLY= nethack-3.2.2.tar.gz +USE_GMAKE= yes +SHELL= /bin/sh +MAN6= dgn_comp.6 dlb.6 lev_comp.6 nethack.6 recover.6 + +pre-configure: + @cd ${WRKSRC}/win; tar xvzf ${DISTDIR}/${QT_PATCH} + @cd ${WRKSRC}; patch < win/Qt/nhqt.patch + @cd ${WRKSRC}/sys/unix; ${SHELL} setup.sh + @cd ${WRKSRC}/src; patch < ${FILESDIR}/src-Makefile.diff + @cd ${WRKSRC}/src; patch < ${FILESDIR}/src-sounds.c.diff + @cd ${WRKSRC}; patch < ${FILESDIR}/include-unixconf.h.diff + +post-install: + @cd ${WRKSRC}/doc; chmod 644 *.6 + @cd ${WRKSRC}/doc; PREFIX=${PREFIX} ${MAKE} manpages +.if !defined(NOPORTDOCS) + ${MKDIR} ${PREFIX}/share/doc/nethack + ${CP} ${WRKSRC}/doc/Guidebook.txt ${PREFIX}/share/doc/nethack +.endif + @cd ${PREFIX}/lib/nethackdir; tar xzf ${DISTDIR}/${QT_SOUND} + @cd ${PREFIX}/lib/nethackdir; chown games.games *.au .nethackrc + @cd ${PREFIX}/lib/nethackdir; chmod 444 *.au .nethackrc + echo "-----------------------" + echo "post-installation hints + echo "-----------------------" + echo "a) Add this to your user environment:" + echo " setenv AUDIOSERVER `hostname`:0" + echo "b) Start the NAS audio server" + echo " auvoxware -aa & # -aa allows any host access" + echo "c) Copy the example nethackrc file from $FILESDIR to your" + echo " login directory:" + echo " cp $FILESDIR/sample.nethackrc $HOME/.nethackrc" + +.include <bsd.port.mk> diff --git a/games/nethack33-qt/distinfo b/games/nethack33-qt/distinfo new file mode 100644 index 000000000000..abd07b3b68a8 --- /dev/null +++ b/games/nethack33-qt/distinfo @@ -0,0 +1,3 @@ +MD5 (nethack-3.2.2.tar.gz) = c85de4d14453b3a2d182d1dfc2ca04df +MD5 (nhqt0.9.tar.gz) = 9e59311148cc944978d8d04cb87adf9d +MD5 (nhs.tar.gz) = 605f8bac130a9ad9857efd859d7a0dcf diff --git a/games/nethack33-qt/files/include-unixconf.h.diff b/games/nethack33-qt/files/include-unixconf.h.diff new file mode 100644 index 000000000000..53150d818111 --- /dev/null +++ b/games/nethack33-qt/files/include-unixconf.h.diff @@ -0,0 +1,11 @@ +--- include/unixconf.h.orig Thu Mar 20 23:17:16 1997 ++++ include/unixconf.h Thu Mar 20 23:17:29 1997 +@@ -42,7 +42,7 @@ + /* #define AIX_31 /* In AIX 3.1 (IBM RS/6000) use BSD ioctl's to gain + * job control (note that AIX is SYSV otherwise) + * Also define this for AIX 3.2 */ +-#define TEXTCOLOR /* Use System V r3.2 terminfo color support */ ++/* #define TEXTCOLOR /* Use System V r3.2 terminfo color support */ + /* and/or ANSI color support on termcap systems */ + /* and/or X11 color */ + #define POSIX_JOB_CONTROL /* use System V / POSIX job control diff --git a/games/nethack33-qt/files/patch-aa b/games/nethack33-qt/files/patch-aa new file mode 100644 index 000000000000..4f8040adbbc0 --- /dev/null +++ b/games/nethack33-qt/files/patch-aa @@ -0,0 +1,127 @@ +--- ./include/system.h.org Mon Mar 25 17:18:32 1996 ++++ ./include/system.h Sun Apr 21 18:10:01 1996 +@@ -78,7 +78,7 @@ + # if !defined(SUNOS4) || defined(RANDOM) + E void FDECL(srandom, (unsigned int)); + # else +-# ifndef bsdi ++# if !defined(bsdi) && !defined(__FreeBSD__) + E int FDECL(srandom, (unsigned int)); + # endif + # endif +--- ./include/unixconf.h.org Mon Mar 25 12:47:47 1996 ++++ ./include/unixconf.h Sun Apr 21 18:10:02 1996 +@@ -31,7 +31,7 @@ + + /* define any of the following that are appropriate */ + /* #define SVR4 /* use in addition to SYSV for System V Release 4 */ +-#define NETWORK /* if running on a networked system */ ++/* #define NETWORK /* if running on a networked system */ + /* e.g. Suns sharing a playground through NFS */ + #define SUNOS4 /* SunOS 4.x */ + /* #define LINUX /* Another Unix clone */ +@@ -42,12 +42,12 @@ + /* #define AIX_31 /* In AIX 3.1 (IBM RS/6000) use BSD ioctl's to gain + * job control (note that AIX is SYSV otherwise) + * Also define this for AIX 3.2 */ +-/* #define TEXTCOLOR /* Use System V r3.2 terminfo color support */ ++#define TEXTCOLOR /* Use System V r3.2 terminfo color support */ + /* and/or ANSI color support on termcap systems */ + /* and/or X11 color */ +-/* #define POSIX_JOB_CONTROL /* use System V / POSIX job control ++#define POSIX_JOB_CONTROL /* use System V / POSIX job control + * (e.g., VSUSP) */ +-/* #define POSIX_TYPES /* use POSIX types for system calls and termios */ ++#define POSIX_TYPES /* use POSIX types for system calls and termios */ + /* define for many recent OS releases, including + * those with specific defines (since types are + * changing toward the standard from earlier chaos). +@@ -125,7 +125,7 @@ + * A stat system call is done on the mailbox every MAILCKFREQ moves. + */ + +-#define MAIL /* Deliver mail during the game */ ++/* #define MAIL /* Deliver mail during the game */ + + /* The Andrew Message System does mail a little differently from normal + * UNIX. Mail is deposited in the user's own directory in ~/Mailbox +--- ./include/config.h.org Thu Feb 29 11:00:26 1996 ++++ ./include/config.h Sun Apr 21 18:10:06 1996 +@@ -248,7 +248,7 @@ + * would allow: + * xpmtoppm <x11tiles.xpm | pnmscale 1.25 | ppmquant 90 >x11tiles_big.xpm + */ +-/* # define USE_XPM /* Disable if you do not have the XPM library */ ++# define USE_XPM /* Disable if you do not have the XPM library */ + # ifdef USE_XPM + # define GRAPHIC_TOMBSTONE /* Use graphical tombstone (rip.xpm) */ + # endif +@@ -288,12 +288,12 @@ + + #ifdef UNIX + /* path and file name extension for compression program */ +-# define COMPRESS "/usr/ucb/compress" /* Lempel-Ziv compression */ +-# define COMPRESS_EXTENSION ".Z" /* compress's extension */ ++/* # define COMPRESS "/usr/ucb/compress" /* Lempel-Ziv compression */ ++/* # define COMPRESS_EXTENSION ".Z" /* compress's extension */ + + /* An example of one alternative you might want to use: */ +-/* # define COMPRESS "/usr/local/bin/gzip" /* FSF gzip compression */ +-/* # define COMPRESS_EXTENSION ".gz" /* normal gzip extension */ ++# define COMPRESS "/usr/bin/gzip" /* FSF gzip compression */ ++# define COMPRESS_EXTENSION ".gz" /* normal gzip extension */ + #endif + #ifndef COMPRESS + # define INTERNAL_COMP /* control use of NetHack's compression routines */ +@@ -323,7 +323,7 @@ + * otherwise it will be the current directory. + */ + # ifndef HACKDIR +-# define HACKDIR "/usr/games/lib/nethackdir" /* nethack directory */ ++# define HACKDIR "/usr/local/lib/nethackdir" /* nethack directory */ + # endif + + /* +--- ./sys/unix/Makefile.doc.org Wed Apr 3 21:17:35 1996 ++++ ./sys/unix/Makefile.doc Sun Apr 21 18:10:03 1996 +@@ -31,7 +31,7 @@ + + + GAME = nethack +-MANDIR = /usr/man/man6 ++MANDIR = ${PREFIX}/man/man6 + MANEXT = 6 + + # manual installation for most BSD-style systems +--- ./sys/unix/Makefile.top.org Mon Mar 25 17:22:00 1996 ++++ ./sys/unix/Makefile.top Sun Apr 21 18:28:09 1996 +@@ -16,14 +16,14 @@ + # make NetHack + GAME = nethack + GAMEUID = games +-GAMEGRP = bin ++GAMEGRP = games + + # Permissions - some places use setgid instead of setuid, for instance + # See also the option "SECURE" in include/config.h +-GAMEPERM = 04755 +-FILEPERM = 0644 ++GAMEPERM = 02755 ++FILEPERM = 0664 + EXEPERM = 0755 +-DIRPERM = 0755 ++DIRPERM = 0775 + + # GAMEDIR also appears in config.h as "HACKDIR". + # +@@ -32,8 +32,8 @@ + # therefore there should not be anything in GAMEDIR that you want to keep + # (if there is, you'll have to do the installation by hand or modify the + # instructions) +-GAMEDIR = /usr/games/lib/$(GAME)dir +-SHELLDIR = /usr/games ++GAMEDIR = ${PREFIX}/lib/$(GAME)dir ++SHELLDIR = ${PREFIX}/bin + + # per discussion in Install.X11 + VARDATND = diff --git a/games/nethack33-qt/files/sample.nethackrc b/games/nethack33-qt/files/sample.nethackrc new file mode 100644 index 000000000000..33dbe47118fc --- /dev/null +++ b/games/nethack33-qt/files/sample.nethackrc @@ -0,0 +1,88 @@ +OPTIONS=!silent +OPTIONS=!time +OPTIONS=catname:Ghisteslwchlohm +OPTIONS=color +OPTIONS=dogname:Dhairrhuwyth +OPTIONS=hilite_pet +OPTIONS=lit_corridor +OPTIONS=menustyle:partial +OPTIONS=msghistory:200 +OPTIONS=news +OPTIONS=noautopickup +OPTIONS=rest_on_space +OPTIONS=safe_pet +OPTIONS=showexp +OPTIONS=showscore +OPTIONS=sortpack +OPTIONS=time +OPTIONS=tombstone +OPTIONS=toptenwin +OPTIONS=verbose +SOUNDDIR=/usr/local/lib/nethackdir +SOUND=MESG "needs food, badly" "weak.au" 100 +SOUND=MESG "feel weak" "weak.au" 100 +SOUND=MESG "bear trap closes" "beartrap.au" 100 +SOUND=MESG "board beneath you squeaks" "squeek.au" 100 +SOUND=MESG "board beneath .....* squeaks" "squeek.au" 60 +SOUND=MESG "a distant squeak" "squeek.au" 25 +SOUND=MESG "mind releases itself from" "memories.au" 100 +SOUND=MESG "on itself, you forget" "memories.au" 100 +SOUND=MESG "Who was that Maud person" "memories.au" 100 +SOUND=MESG "Thinking of Maud you forget" "memories.au" 100 +SOUND=MESG "you forget everything" "memories.au" 100 +SOUND=MESG "smell marsh gas" "frogs.au" 100 +SOUND=MESG "must have been exercising" "tada.au" 100 +SOUND=MESG "must have been very obs" "tada.au" 100 +SOUND=MESG "must have been working on" "tada.au" 100 +SOUND=MESG "must be leading a healthy" "tada.au" 100 +SOUND=MESG "Keystone Kops appear!" "kops.au" 100 +SOUND=MESG "Keystone Kops are after you" "kops.au" 100 +SOUND=MESG "interesting topological ex" "mock.au" 100 +SOUND=MESG "Interesting\.\.\." "mock.au" 100 +SOUND=MESG "deathly sick\." "ohdear.au" 80 +SOUND=MESG "feel feverish" "ohdear.au" 80 +SOUND=MESG "brain is eaten" "minderode.au" 80 +SOUND=MESG "thought thou couldst kill" "yendor.au" 120 +SOUND=MESG "begin praying to" "latin_short.au" 70 +SOUND=MESG "sense of peace" "latin.au" 20 +SOUND=MESG "have a.* forbidding feeling" "latin.au" 20 +#SOUND=MESG "door opens\." "dooropen2.au" 100 +#SOUND=MESG "You drop " "drop.au" 10 +#SOUND=MESG "You destroy " "destroy2.au" 30 +#SOUND=MESG "You kill " "destroy2.au" 20 +#SOUND=MESG "is killed" "destroy2.au" 10 +#SOUND=MESG "You miss " "miss2.au" 20 +#SOUND=MESG "fiery blade burns" "hit2.au" 30 +#SOUND=MESG "ice-cold blade freezes" "hit2.au" 30 +#SOUND=MESG "You hit " "hit2.au" 20 +#SOUND=MESG "The spell hits" "hit2.au" 20 +SOUND=MESG "breathes" "breath.au" 100 +SOUND=MESG "a door open\." "dooropen2.au" 100 +SOUND=MESG "Klunk" "clunk.au" 100 +SOUND=MESG "guard on patrol" "coin.au" 50 +SOUND=MESG "quarterback calling" "coin.au" 50 +SOUND=MESG "someone counting" "coin.au" 50 +SOUND=MESG "Ebenezer Scrooge" "coin.au" 50 +SOUND=MESG "someone cursing shoplifters" "gong.au" 50 +SOUND=MESG "chime of a cash register" "gong.au" 50 +SOUND=MESG "Neiman and Marcus" "gong.au" 50 +SOUND=MESG "You die" "death.au" 100 +SOUND=MESG "sad feeling" "death.au" 50 +SOUND=MESG "door closes\." "doorclos.au" 100 +SOUND=MESG "cosmic" "hallu.au" 100 +SOUND=MESG "explosion" "landmine.au" 100 +SOUND=MESG "KABOOM" "landmine.au" 100 +#SOUND=MESG "KAABLAM" "landmine.au" 100 +SOUND=MESG "trigger.* a land *mine" "landmine.au" 100 +SOUND=MESG "elcome to experi" "level_up.au" 100 +SOUND=MESG "memorize" "memor.au" 100 +#SOUND=MESG "Ouch" "ouch2.au" 100 +#SOUND=MESG "XXXfall through\.\.\." "trapdoor.au" 100 +SOUND=MESG "vomit" "vomit.au" 100 +SOUND=MESG "whistling" "whistle2.au" 100 +SOUND=MESG "crashes open" "thump.au" 100 +SOUND=MESG "You break open the lock" "thump.au" 100 +#SOUND=MESG "THUD" "thump.au" 40 +#SOUND=MESG "WHAMM" "thump.au" 50 +SOUND=MESG "welcome to NetHack" "awaits.au" 100 +SOUND=MESG "strange vibration under" "forcefld.au" 100 diff --git a/games/nethack33-qt/files/src-Makefile.diff b/games/nethack33-qt/files/src-Makefile.diff new file mode 100644 index 000000000000..f43c85bacc75 --- /dev/null +++ b/games/nethack33-qt/files/src-Makefile.diff @@ -0,0 +1,39 @@ +--- src/Makefile.orig Sat Apr 5 19:43:25 1997 ++++ src/Makefile Sat Apr 5 19:51:26 1997 +@@ -124,11 +124,11 @@ + # flags for debugging: + # CFLAGS = -g -I../include + +-CFLAGS = -O2 -I../include +-LFLAGS = -L/usr/X11/lib -L$(QTDIR)/lib ++CFLAGS = -pipe -O -I../include ++LFLAGS = -L/usr/X11R6/lib -L$(QTDIR)/lib + + # For USER_SOUNDS support, include -I/usr/X11/include +-CXXFLAGS = $(CFLAGS) -I. -I$(QTDIR)/include -I/usr/X11/include ++CXXFLAGS = $(CFLAGS) -I. -I/usr/X11R6/include -I/usr/X11R6/include/X11/qt + + # Set the WINSRC, WINOBJ, and WINLIB lines to correspond to your desired + # combination of windowing systems. Also set windowing systems in config.h. +@@ -213,7 +213,7 @@ + # IRIX 4.0.x needs -lsun if NIS (YP) is being used for passwd file lookup + # LIBS = -lsun + # +-LIBS = ++LIBS = -lgnuregex + + # make NetHack + GAME = nethack +@@ -536,6 +536,12 @@ + + # DO NOT DELETE THIS LINE + ++qaudio-p.moc: ../win/Qt/qaudio-p.h ++ moc ../win/Qt/qaudio-p.h > qaudio-p.moc ++qaudio-p.o: ../win/Qt/qaudio-p.cc qaudio-p.moc ++ $(CXX) $(CXXFLAGS) -c ../win/Qt/qaudio-p.cc ++qaudio.o: ../win/Qt/qaudio.cc ++ $(CXX) $(CXXFLAGS) -c ../win/Qt/qaudio.cc + qt_win.o: ../win/Qt/qt_win.cc ../include/hack.h ../include/qt_win.h ../include/cluster.h qt_win.moc + $(CXX) $(CXXFLAGS) -c ../win/Qt/qt_win.cc + qviewp.o: ../win/Qt/qviewp.cc ../include/qviewp.h qviewp.moc diff --git a/games/nethack33-qt/files/src-sounds.c.diff b/games/nethack33-qt/files/src-sounds.c.diff new file mode 100644 index 000000000000..de1fdf62b02f --- /dev/null +++ b/games/nethack33-qt/files/src-sounds.c.diff @@ -0,0 +1,14 @@ +--- src/sounds.c.orig Thu Mar 20 22:48:36 1997 ++++ src/sounds.c Thu Mar 20 22:50:00 1997 +@@ -5,7 +5,11 @@ + #include "hack.h" + #include "edog.h" + #ifdef USER_SOUNDS ++#if defined(__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) ++#include <gnuregex.h> ++#else + #include <regex.h> ++#endif + #endif + + #ifdef OVLB diff --git a/games/nethack33-qt/pkg-comment b/games/nethack33-qt/pkg-comment new file mode 100644 index 000000000000..d4eae3170b88 --- /dev/null +++ b/games/nethack33-qt/pkg-comment @@ -0,0 +1 @@ +A dungeon explorin', slashin', hackin' game with graphic and sound support diff --git a/games/nethack33-qt/pkg-descr b/games/nethack33-qt/pkg-descr new file mode 100644 index 000000000000..a96d2d7b08fa --- /dev/null +++ b/games/nethack33-qt/pkg-descr @@ -0,0 +1,54 @@ +From: http://www.uq.edu.au/~cswallis/nhqt/ + +NetHack QT - What is it? + +NetHack is a Free graphical one-player roleplaying game with a +highly modular window system interface supporting TTY, VGA, Mac, +Amiga, and other displays. Qt is a graphical user interface toolkit. +So, "NetHack with Qt interface" is a version of NetHack which has +a user interface module written using the Qt toolkit. + +How is it better than the plain X11 interface? +The Qt interface has these extra features: + +o Tiles (graphics) in the inventory and other item-menu windows. +o The player cursor changes colour as your relative hit-points drop. +o The message window greys-out older message. +o The item menus allow a count (click to left of icon - hidden feature). +o Icons for the major attributes and player states. +o Menus (only needed by newbie dungeon fodder). +o Variable size fonts and tiles. +o More space for the map as messages and status are side-by-side. +o You rarely need to put the mouse in a pop-up to interact with it. +o Macros - hidden feature - F1=multi-rest F2=multi-search F3=try-it +o It is much easier to code, so new feature-requests are more easily done. +o Sound support. + +The standard NetHack X11 interface is written in C using the Athena +Widgets toolkit. The strongest reason for doing it that way was +that NetHack is one of the most incredibly portable programs of +any kind, and the Athena Widget Set is also available for free on +a large number of X11 implementations. The problem is that Athena +Widgets (also known as Xaw) is very ugly, difficult to program in, +and buggy. The Qt interface toolkit on the other hand is written +in C++ and is freely portable to any X11 implementation, but is +less widespread, making it inappropriate for the standard NetHack +X11 interface. + +Sound support + +The QtNetHack patch includes experimental support for sounds to be +played based on messages. For example, you can arrange for a gong +to sound when the message "... cursing shoplifter..." appears. The +system maps any regular expression (can be just some text) to a +sound. The QtNetHack windowport is the only one providing this +method, and it does so using the NAS (Network Audio System) . As +distributed, the patch enables this feature - see include/config.h +once you have applied the patch, and look for USER_SOUNDS for an +explanation of how to disable it if you want to. + +You will also want to collect some sound samples to try it out, +and a .nethackrc attaching them to messages. This package contains +the .au files that I use, and my ~/.nethackrc. Many of the sounds +are from the nhsound package, which you can find referenced on the +NetHack Home Page. diff --git a/games/nethack33-qt/pkg-plist b/games/nethack33-qt/pkg-plist new file mode 100644 index 000000000000..b9b6c3bae250 --- /dev/null +++ b/games/nethack33-qt/pkg-plist @@ -0,0 +1,186 @@ +bin/nethack +lib/nethackdir/nethack +@exec mkdir %D/lib/nethackdir/save +@exec chmod 775 %D/lib/nethackdir/save +@exec chown games.games %D/lib/nethackdir/save +@unexec rmdir %D/lib/nethackdir/save +man/man6/dgn_comp.6.gz +man/man6/dlb.6.gz +man/man6/lev_comp.6.gz +man/man6/nethack.6.gz +man/man6/recover.6.gz +lib/nethackdir/.nethackrc +lib/nethackdir/A-filla.lev +lib/nethackdir/A-fillb.lev +lib/nethackdir/A-goal.lev +lib/nethackdir/A-locate.lev +lib/nethackdir/A-start.lev +lib/nethackdir/B-filla.lev +lib/nethackdir/B-fillb.lev +lib/nethackdir/B-goal.lev +lib/nethackdir/B-locate.lev +lib/nethackdir/B-start.lev +lib/nethackdir/C-filla.lev +lib/nethackdir/C-fillb.lev +lib/nethackdir/C-goal.lev +lib/nethackdir/C-locate.lev +lib/nethackdir/C-start.lev +lib/nethackdir/E-filla.lev +lib/nethackdir/E-fillb.lev +lib/nethackdir/E-goal.lev +lib/nethackdir/E-locate.lev +lib/nethackdir/E-start.lev +lib/nethackdir/H-filla.lev +lib/nethackdir/H-fillb.lev +lib/nethackdir/H-goal.lev +lib/nethackdir/H-locate.lev +lib/nethackdir/H-start.lev +lib/nethackdir/K-filla.lev +lib/nethackdir/K-fillb.lev +lib/nethackdir/K-goal.lev +lib/nethackdir/K-locate.lev +lib/nethackdir/K-start.lev +lib/nethackdir/P-filla.lev +lib/nethackdir/P-fillb.lev +lib/nethackdir/P-goal.lev +lib/nethackdir/P-locate.lev +lib/nethackdir/P-start.lev +lib/nethackdir/R-filla.lev +lib/nethackdir/R-fillb.lev +lib/nethackdir/R-goal.lev +lib/nethackdir/R-locate.lev +lib/nethackdir/R-start.lev +lib/nethackdir/S-filla.lev +lib/nethackdir/S-fillb.lev +lib/nethackdir/S-goal.lev +lib/nethackdir/S-locate.lev +lib/nethackdir/S-start.lev +lib/nethackdir/T-filla.lev +lib/nethackdir/T-fillb.lev +lib/nethackdir/T-goal.lev +lib/nethackdir/T-locate.lev +lib/nethackdir/T-start.lev +lib/nethackdir/V-filla.lev +lib/nethackdir/V-fillb.lev +lib/nethackdir/V-goal.lev +lib/nethackdir/V-locate.lev +lib/nethackdir/V-start.lev +lib/nethackdir/W-filla.lev +lib/nethackdir/W-fillb.lev +lib/nethackdir/W-goal.lev +lib/nethackdir/W-locate.lev +lib/nethackdir/W-start.lev +lib/nethackdir/air.lev +lib/nethackdir/asmodeus.lev +lib/nethackdir/astral.lev +lib/nethackdir/awaits.au +lib/nethackdir/baalz.lev +lib/nethackdir/beartrap.au +lib/nethackdir/bigrm-1.lev +lib/nethackdir/bigrm-2.lev +lib/nethackdir/bigrm-3.lev +lib/nethackdir/bigrm-4.lev +lib/nethackdir/bigrm-5.lev +lib/nethackdir/blind.ppm +lib/nethackdir/breath.au +lib/nethackdir/castle.lev +lib/nethackdir/cha.ppm +lib/nethackdir/chaotic.ppm +lib/nethackdir/clunk.au +lib/nethackdir/cmdhelp +lib/nethackdir/coin.au +lib/nethackdir/con.ppm +lib/nethackdir/confused.ppm +lib/nethackdir/data +lib/nethackdir/death.au +lib/nethackdir/destroy2.au +lib/nethackdir/dex.ppm +lib/nethackdir/doorclos.au +lib/nethackdir/dooropen2.au +lib/nethackdir/drop.au +lib/nethackdir/dungeon +lib/nethackdir/earth.lev +lib/nethackdir/ext_encumber.ppm +lib/nethackdir/fakewiz1.lev +lib/nethackdir/fakewiz2.lev +lib/nethackdir/fire.lev +lib/nethackdir/forcefld.au +lib/nethackdir/frogs.au +lib/nethackdir/gong.au +lib/nethackdir/hallu.au +lib/nethackdir/hallu.ppm +lib/nethackdir/help +lib/nethackdir/hh +lib/nethackdir/history +lib/nethackdir/hit2.au +lib/nethackdir/hungry.ppm +lib/nethackdir/hvy_encumber.ppm +lib/nethackdir/int.ppm +lib/nethackdir/juiblex.lev +lib/nethackdir/knox.lev +lib/nethackdir/kops.au +lib/nethackdir/landmine.au +lib/nethackdir/latin.au +lib/nethackdir/latin_short.au +lib/nethackdir/lawful.ppm +lib/nethackdir/level_up.au +lib/nethackdir/license +lib/nethackdir/logfile +lib/nethackdir/medusa-1.lev +lib/nethackdir/medusa-2.lev +lib/nethackdir/memor.au +lib/nethackdir/memories.au +lib/nethackdir/minderode.au +lib/nethackdir/minefill.lev +lib/nethackdir/minend-1.lev +lib/nethackdir/minend-2.lev +lib/nethackdir/minetn-1.lev +lib/nethackdir/minetn-2.lev +lib/nethackdir/miss2.au +lib/nethackdir/mock.au +lib/nethackdir/mod_encumber.ppm +lib/nethackdir/neutral.ppm +lib/nethackdir/ohdear.au +lib/nethackdir/opthelp +lib/nethackdir/options +lib/nethackdir/oracle.lev +lib/nethackdir/oracles +lib/nethackdir/orcus.lev +lib/nethackdir/ouch2.au +lib/nethackdir/ovr_encumber.ppm +lib/nethackdir/perm +lib/nethackdir/pet_mark.pbm +lib/nethackdir/pet_mark.ppm +lib/nethackdir/qt_tiles_0.ppm +lib/nethackdir/qt_tiles_1.ppm +lib/nethackdir/qt_tiles_2.ppm +lib/nethackdir/qt_tiles_3.ppm +lib/nethackdir/quest.dat +lib/nethackdir/record +lib/nethackdir/rip.ppm +lib/nethackdir/rumors +lib/nethackdir/sanctum.lev +lib/nethackdir/satiated.ppm +lib/nethackdir/sick_fp.ppm +lib/nethackdir/sick_il.ppm +lib/nethackdir/slt_encumber.ppm +lib/nethackdir/squeek.au +lib/nethackdir/str.ppm +lib/nethackdir/stunned.ppm +lib/nethackdir/tada.au +lib/nethackdir/thump.au +lib/nethackdir/tower1.lev +lib/nethackdir/tower2.lev +lib/nethackdir/tower3.lev +lib/nethackdir/trapdoor.au +lib/nethackdir/valley.lev +lib/nethackdir/vomit.au +lib/nethackdir/water.lev +lib/nethackdir/weak.au +lib/nethackdir/whistle2.au +lib/nethackdir/wis.ppm +lib/nethackdir/wizard1.lev +lib/nethackdir/wizard2.lev +lib/nethackdir/wizard3.lev +lib/nethackdir/wizhelp +lib/nethackdir/yendor.au diff --git a/games/nethack34-qt/Makefile b/games/nethack34-qt/Makefile new file mode 100644 index 000000000000..483e458f4174 --- /dev/null +++ b/games/nethack34-qt/Makefile @@ -0,0 +1,59 @@ +# New ports collection makefile for: nethack-qt +# Version required: 3.2.2 +# Date created: So 6 Apr 1997 04:25:57 MET DST +# Whom: Andreas Klemm <andreas@klemm.gtn.com> +# +# $Id$ +# + +DISTNAME= nethack-3.2.2 +PKGNAME= nethack-3.2.2-qt +CATEGORIES= games x11 +MASTER_SITES= ftp://ftp.uu.net/pub/games/nethack/sources/ \ + http://www.uq.edu.au/~cswallis/nhqt/ \ + http://student.uq.edu.au/~s002434/ \ + ${MASTER_SITE_GNU} +QT_PATCH= nhqt0.9.tar.gz +QT_SOUND= nhs.tar.gz +DISTFILES= nethack-3.2.2.tar.gz ${QT_PATCH} ${QT_SOUND} + +MAINTAINER= andreas@FreeBSD.ORG + +LIB_DEPENDS= Xpm\\.4\\.:${PORTSDIR}/graphics/xpm +RUN_DEPENDS= auplay:${PORTSDIR}/audio/nas + +EXTRACT_ONLY= nethack-3.2.2.tar.gz +USE_GMAKE= yes +SHELL= /bin/sh +MAN6= dgn_comp.6 dlb.6 lev_comp.6 nethack.6 recover.6 + +pre-configure: + @cd ${WRKSRC}/win; tar xvzf ${DISTDIR}/${QT_PATCH} + @cd ${WRKSRC}; patch < win/Qt/nhqt.patch + @cd ${WRKSRC}/sys/unix; ${SHELL} setup.sh + @cd ${WRKSRC}/src; patch < ${FILESDIR}/src-Makefile.diff + @cd ${WRKSRC}/src; patch < ${FILESDIR}/src-sounds.c.diff + @cd ${WRKSRC}; patch < ${FILESDIR}/include-unixconf.h.diff + +post-install: + @cd ${WRKSRC}/doc; chmod 644 *.6 + @cd ${WRKSRC}/doc; PREFIX=${PREFIX} ${MAKE} manpages +.if !defined(NOPORTDOCS) + ${MKDIR} ${PREFIX}/share/doc/nethack + ${CP} ${WRKSRC}/doc/Guidebook.txt ${PREFIX}/share/doc/nethack +.endif + @cd ${PREFIX}/lib/nethackdir; tar xzf ${DISTDIR}/${QT_SOUND} + @cd ${PREFIX}/lib/nethackdir; chown games.games *.au .nethackrc + @cd ${PREFIX}/lib/nethackdir; chmod 444 *.au .nethackrc + echo "-----------------------" + echo "post-installation hints + echo "-----------------------" + echo "a) Add this to your user environment:" + echo " setenv AUDIOSERVER `hostname`:0" + echo "b) Start the NAS audio server" + echo " auvoxware -aa & # -aa allows any host access" + echo "c) Copy the example nethackrc file from $FILESDIR to your" + echo " login directory:" + echo " cp $FILESDIR/sample.nethackrc $HOME/.nethackrc" + +.include <bsd.port.mk> diff --git a/games/nethack34-qt/distinfo b/games/nethack34-qt/distinfo new file mode 100644 index 000000000000..abd07b3b68a8 --- /dev/null +++ b/games/nethack34-qt/distinfo @@ -0,0 +1,3 @@ +MD5 (nethack-3.2.2.tar.gz) = c85de4d14453b3a2d182d1dfc2ca04df +MD5 (nhqt0.9.tar.gz) = 9e59311148cc944978d8d04cb87adf9d +MD5 (nhs.tar.gz) = 605f8bac130a9ad9857efd859d7a0dcf diff --git a/games/nethack34-qt/files/include-unixconf.h.diff b/games/nethack34-qt/files/include-unixconf.h.diff new file mode 100644 index 000000000000..53150d818111 --- /dev/null +++ b/games/nethack34-qt/files/include-unixconf.h.diff @@ -0,0 +1,11 @@ +--- include/unixconf.h.orig Thu Mar 20 23:17:16 1997 ++++ include/unixconf.h Thu Mar 20 23:17:29 1997 +@@ -42,7 +42,7 @@ + /* #define AIX_31 /* In AIX 3.1 (IBM RS/6000) use BSD ioctl's to gain + * job control (note that AIX is SYSV otherwise) + * Also define this for AIX 3.2 */ +-#define TEXTCOLOR /* Use System V r3.2 terminfo color support */ ++/* #define TEXTCOLOR /* Use System V r3.2 terminfo color support */ + /* and/or ANSI color support on termcap systems */ + /* and/or X11 color */ + #define POSIX_JOB_CONTROL /* use System V / POSIX job control diff --git a/games/nethack34-qt/files/patch-aa b/games/nethack34-qt/files/patch-aa new file mode 100644 index 000000000000..4f8040adbbc0 --- /dev/null +++ b/games/nethack34-qt/files/patch-aa @@ -0,0 +1,127 @@ +--- ./include/system.h.org Mon Mar 25 17:18:32 1996 ++++ ./include/system.h Sun Apr 21 18:10:01 1996 +@@ -78,7 +78,7 @@ + # if !defined(SUNOS4) || defined(RANDOM) + E void FDECL(srandom, (unsigned int)); + # else +-# ifndef bsdi ++# if !defined(bsdi) && !defined(__FreeBSD__) + E int FDECL(srandom, (unsigned int)); + # endif + # endif +--- ./include/unixconf.h.org Mon Mar 25 12:47:47 1996 ++++ ./include/unixconf.h Sun Apr 21 18:10:02 1996 +@@ -31,7 +31,7 @@ + + /* define any of the following that are appropriate */ + /* #define SVR4 /* use in addition to SYSV for System V Release 4 */ +-#define NETWORK /* if running on a networked system */ ++/* #define NETWORK /* if running on a networked system */ + /* e.g. Suns sharing a playground through NFS */ + #define SUNOS4 /* SunOS 4.x */ + /* #define LINUX /* Another Unix clone */ +@@ -42,12 +42,12 @@ + /* #define AIX_31 /* In AIX 3.1 (IBM RS/6000) use BSD ioctl's to gain + * job control (note that AIX is SYSV otherwise) + * Also define this for AIX 3.2 */ +-/* #define TEXTCOLOR /* Use System V r3.2 terminfo color support */ ++#define TEXTCOLOR /* Use System V r3.2 terminfo color support */ + /* and/or ANSI color support on termcap systems */ + /* and/or X11 color */ +-/* #define POSIX_JOB_CONTROL /* use System V / POSIX job control ++#define POSIX_JOB_CONTROL /* use System V / POSIX job control + * (e.g., VSUSP) */ +-/* #define POSIX_TYPES /* use POSIX types for system calls and termios */ ++#define POSIX_TYPES /* use POSIX types for system calls and termios */ + /* define for many recent OS releases, including + * those with specific defines (since types are + * changing toward the standard from earlier chaos). +@@ -125,7 +125,7 @@ + * A stat system call is done on the mailbox every MAILCKFREQ moves. + */ + +-#define MAIL /* Deliver mail during the game */ ++/* #define MAIL /* Deliver mail during the game */ + + /* The Andrew Message System does mail a little differently from normal + * UNIX. Mail is deposited in the user's own directory in ~/Mailbox +--- ./include/config.h.org Thu Feb 29 11:00:26 1996 ++++ ./include/config.h Sun Apr 21 18:10:06 1996 +@@ -248,7 +248,7 @@ + * would allow: + * xpmtoppm <x11tiles.xpm | pnmscale 1.25 | ppmquant 90 >x11tiles_big.xpm + */ +-/* # define USE_XPM /* Disable if you do not have the XPM library */ ++# define USE_XPM /* Disable if you do not have the XPM library */ + # ifdef USE_XPM + # define GRAPHIC_TOMBSTONE /* Use graphical tombstone (rip.xpm) */ + # endif +@@ -288,12 +288,12 @@ + + #ifdef UNIX + /* path and file name extension for compression program */ +-# define COMPRESS "/usr/ucb/compress" /* Lempel-Ziv compression */ +-# define COMPRESS_EXTENSION ".Z" /* compress's extension */ ++/* # define COMPRESS "/usr/ucb/compress" /* Lempel-Ziv compression */ ++/* # define COMPRESS_EXTENSION ".Z" /* compress's extension */ + + /* An example of one alternative you might want to use: */ +-/* # define COMPRESS "/usr/local/bin/gzip" /* FSF gzip compression */ +-/* # define COMPRESS_EXTENSION ".gz" /* normal gzip extension */ ++# define COMPRESS "/usr/bin/gzip" /* FSF gzip compression */ ++# define COMPRESS_EXTENSION ".gz" /* normal gzip extension */ + #endif + #ifndef COMPRESS + # define INTERNAL_COMP /* control use of NetHack's compression routines */ +@@ -323,7 +323,7 @@ + * otherwise it will be the current directory. + */ + # ifndef HACKDIR +-# define HACKDIR "/usr/games/lib/nethackdir" /* nethack directory */ ++# define HACKDIR "/usr/local/lib/nethackdir" /* nethack directory */ + # endif + + /* +--- ./sys/unix/Makefile.doc.org Wed Apr 3 21:17:35 1996 ++++ ./sys/unix/Makefile.doc Sun Apr 21 18:10:03 1996 +@@ -31,7 +31,7 @@ + + + GAME = nethack +-MANDIR = /usr/man/man6 ++MANDIR = ${PREFIX}/man/man6 + MANEXT = 6 + + # manual installation for most BSD-style systems +--- ./sys/unix/Makefile.top.org Mon Mar 25 17:22:00 1996 ++++ ./sys/unix/Makefile.top Sun Apr 21 18:28:09 1996 +@@ -16,14 +16,14 @@ + # make NetHack + GAME = nethack + GAMEUID = games +-GAMEGRP = bin ++GAMEGRP = games + + # Permissions - some places use setgid instead of setuid, for instance + # See also the option "SECURE" in include/config.h +-GAMEPERM = 04755 +-FILEPERM = 0644 ++GAMEPERM = 02755 ++FILEPERM = 0664 + EXEPERM = 0755 +-DIRPERM = 0755 ++DIRPERM = 0775 + + # GAMEDIR also appears in config.h as "HACKDIR". + # +@@ -32,8 +32,8 @@ + # therefore there should not be anything in GAMEDIR that you want to keep + # (if there is, you'll have to do the installation by hand or modify the + # instructions) +-GAMEDIR = /usr/games/lib/$(GAME)dir +-SHELLDIR = /usr/games ++GAMEDIR = ${PREFIX}/lib/$(GAME)dir ++SHELLDIR = ${PREFIX}/bin + + # per discussion in Install.X11 + VARDATND = diff --git a/games/nethack34-qt/files/sample.nethackrc b/games/nethack34-qt/files/sample.nethackrc new file mode 100644 index 000000000000..33dbe47118fc --- /dev/null +++ b/games/nethack34-qt/files/sample.nethackrc @@ -0,0 +1,88 @@ +OPTIONS=!silent +OPTIONS=!time +OPTIONS=catname:Ghisteslwchlohm +OPTIONS=color +OPTIONS=dogname:Dhairrhuwyth +OPTIONS=hilite_pet +OPTIONS=lit_corridor +OPTIONS=menustyle:partial +OPTIONS=msghistory:200 +OPTIONS=news +OPTIONS=noautopickup +OPTIONS=rest_on_space +OPTIONS=safe_pet +OPTIONS=showexp +OPTIONS=showscore +OPTIONS=sortpack +OPTIONS=time +OPTIONS=tombstone +OPTIONS=toptenwin +OPTIONS=verbose +SOUNDDIR=/usr/local/lib/nethackdir +SOUND=MESG "needs food, badly" "weak.au" 100 +SOUND=MESG "feel weak" "weak.au" 100 +SOUND=MESG "bear trap closes" "beartrap.au" 100 +SOUND=MESG "board beneath you squeaks" "squeek.au" 100 +SOUND=MESG "board beneath .....* squeaks" "squeek.au" 60 +SOUND=MESG "a distant squeak" "squeek.au" 25 +SOUND=MESG "mind releases itself from" "memories.au" 100 +SOUND=MESG "on itself, you forget" "memories.au" 100 +SOUND=MESG "Who was that Maud person" "memories.au" 100 +SOUND=MESG "Thinking of Maud you forget" "memories.au" 100 +SOUND=MESG "you forget everything" "memories.au" 100 +SOUND=MESG "smell marsh gas" "frogs.au" 100 +SOUND=MESG "must have been exercising" "tada.au" 100 +SOUND=MESG "must have been very obs" "tada.au" 100 +SOUND=MESG "must have been working on" "tada.au" 100 +SOUND=MESG "must be leading a healthy" "tada.au" 100 +SOUND=MESG "Keystone Kops appear!" "kops.au" 100 +SOUND=MESG "Keystone Kops are after you" "kops.au" 100 +SOUND=MESG "interesting topological ex" "mock.au" 100 +SOUND=MESG "Interesting\.\.\." "mock.au" 100 +SOUND=MESG "deathly sick\." "ohdear.au" 80 +SOUND=MESG "feel feverish" "ohdear.au" 80 +SOUND=MESG "brain is eaten" "minderode.au" 80 +SOUND=MESG "thought thou couldst kill" "yendor.au" 120 +SOUND=MESG "begin praying to" "latin_short.au" 70 +SOUND=MESG "sense of peace" "latin.au" 20 +SOUND=MESG "have a.* forbidding feeling" "latin.au" 20 +#SOUND=MESG "door opens\." "dooropen2.au" 100 +#SOUND=MESG "You drop " "drop.au" 10 +#SOUND=MESG "You destroy " "destroy2.au" 30 +#SOUND=MESG "You kill " "destroy2.au" 20 +#SOUND=MESG "is killed" "destroy2.au" 10 +#SOUND=MESG "You miss " "miss2.au" 20 +#SOUND=MESG "fiery blade burns" "hit2.au" 30 +#SOUND=MESG "ice-cold blade freezes" "hit2.au" 30 +#SOUND=MESG "You hit " "hit2.au" 20 +#SOUND=MESG "The spell hits" "hit2.au" 20 +SOUND=MESG "breathes" "breath.au" 100 +SOUND=MESG "a door open\." "dooropen2.au" 100 +SOUND=MESG "Klunk" "clunk.au" 100 +SOUND=MESG "guard on patrol" "coin.au" 50 +SOUND=MESG "quarterback calling" "coin.au" 50 +SOUND=MESG "someone counting" "coin.au" 50 +SOUND=MESG "Ebenezer Scrooge" "coin.au" 50 +SOUND=MESG "someone cursing shoplifters" "gong.au" 50 +SOUND=MESG "chime of a cash register" "gong.au" 50 +SOUND=MESG "Neiman and Marcus" "gong.au" 50 +SOUND=MESG "You die" "death.au" 100 +SOUND=MESG "sad feeling" "death.au" 50 +SOUND=MESG "door closes\." "doorclos.au" 100 +SOUND=MESG "cosmic" "hallu.au" 100 +SOUND=MESG "explosion" "landmine.au" 100 +SOUND=MESG "KABOOM" "landmine.au" 100 +#SOUND=MESG "KAABLAM" "landmine.au" 100 +SOUND=MESG "trigger.* a land *mine" "landmine.au" 100 +SOUND=MESG "elcome to experi" "level_up.au" 100 +SOUND=MESG "memorize" "memor.au" 100 +#SOUND=MESG "Ouch" "ouch2.au" 100 +#SOUND=MESG "XXXfall through\.\.\." "trapdoor.au" 100 +SOUND=MESG "vomit" "vomit.au" 100 +SOUND=MESG "whistling" "whistle2.au" 100 +SOUND=MESG "crashes open" "thump.au" 100 +SOUND=MESG "You break open the lock" "thump.au" 100 +#SOUND=MESG "THUD" "thump.au" 40 +#SOUND=MESG "WHAMM" "thump.au" 50 +SOUND=MESG "welcome to NetHack" "awaits.au" 100 +SOUND=MESG "strange vibration under" "forcefld.au" 100 diff --git a/games/nethack34-qt/files/src-Makefile.diff b/games/nethack34-qt/files/src-Makefile.diff new file mode 100644 index 000000000000..f43c85bacc75 --- /dev/null +++ b/games/nethack34-qt/files/src-Makefile.diff @@ -0,0 +1,39 @@ +--- src/Makefile.orig Sat Apr 5 19:43:25 1997 ++++ src/Makefile Sat Apr 5 19:51:26 1997 +@@ -124,11 +124,11 @@ + # flags for debugging: + # CFLAGS = -g -I../include + +-CFLAGS = -O2 -I../include +-LFLAGS = -L/usr/X11/lib -L$(QTDIR)/lib ++CFLAGS = -pipe -O -I../include ++LFLAGS = -L/usr/X11R6/lib -L$(QTDIR)/lib + + # For USER_SOUNDS support, include -I/usr/X11/include +-CXXFLAGS = $(CFLAGS) -I. -I$(QTDIR)/include -I/usr/X11/include ++CXXFLAGS = $(CFLAGS) -I. -I/usr/X11R6/include -I/usr/X11R6/include/X11/qt + + # Set the WINSRC, WINOBJ, and WINLIB lines to correspond to your desired + # combination of windowing systems. Also set windowing systems in config.h. +@@ -213,7 +213,7 @@ + # IRIX 4.0.x needs -lsun if NIS (YP) is being used for passwd file lookup + # LIBS = -lsun + # +-LIBS = ++LIBS = -lgnuregex + + # make NetHack + GAME = nethack +@@ -536,6 +536,12 @@ + + # DO NOT DELETE THIS LINE + ++qaudio-p.moc: ../win/Qt/qaudio-p.h ++ moc ../win/Qt/qaudio-p.h > qaudio-p.moc ++qaudio-p.o: ../win/Qt/qaudio-p.cc qaudio-p.moc ++ $(CXX) $(CXXFLAGS) -c ../win/Qt/qaudio-p.cc ++qaudio.o: ../win/Qt/qaudio.cc ++ $(CXX) $(CXXFLAGS) -c ../win/Qt/qaudio.cc + qt_win.o: ../win/Qt/qt_win.cc ../include/hack.h ../include/qt_win.h ../include/cluster.h qt_win.moc + $(CXX) $(CXXFLAGS) -c ../win/Qt/qt_win.cc + qviewp.o: ../win/Qt/qviewp.cc ../include/qviewp.h qviewp.moc diff --git a/games/nethack34-qt/files/src-sounds.c.diff b/games/nethack34-qt/files/src-sounds.c.diff new file mode 100644 index 000000000000..de1fdf62b02f --- /dev/null +++ b/games/nethack34-qt/files/src-sounds.c.diff @@ -0,0 +1,14 @@ +--- src/sounds.c.orig Thu Mar 20 22:48:36 1997 ++++ src/sounds.c Thu Mar 20 22:50:00 1997 +@@ -5,7 +5,11 @@ + #include "hack.h" + #include "edog.h" + #ifdef USER_SOUNDS ++#if defined(__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) ++#include <gnuregex.h> ++#else + #include <regex.h> ++#endif + #endif + + #ifdef OVLB diff --git a/games/nethack34-qt/pkg-comment b/games/nethack34-qt/pkg-comment new file mode 100644 index 000000000000..d4eae3170b88 --- /dev/null +++ b/games/nethack34-qt/pkg-comment @@ -0,0 +1 @@ +A dungeon explorin', slashin', hackin' game with graphic and sound support diff --git a/games/nethack34-qt/pkg-descr b/games/nethack34-qt/pkg-descr new file mode 100644 index 000000000000..a96d2d7b08fa --- /dev/null +++ b/games/nethack34-qt/pkg-descr @@ -0,0 +1,54 @@ +From: http://www.uq.edu.au/~cswallis/nhqt/ + +NetHack QT - What is it? + +NetHack is a Free graphical one-player roleplaying game with a +highly modular window system interface supporting TTY, VGA, Mac, +Amiga, and other displays. Qt is a graphical user interface toolkit. +So, "NetHack with Qt interface" is a version of NetHack which has +a user interface module written using the Qt toolkit. + +How is it better than the plain X11 interface? +The Qt interface has these extra features: + +o Tiles (graphics) in the inventory and other item-menu windows. +o The player cursor changes colour as your relative hit-points drop. +o The message window greys-out older message. +o The item menus allow a count (click to left of icon - hidden feature). +o Icons for the major attributes and player states. +o Menus (only needed by newbie dungeon fodder). +o Variable size fonts and tiles. +o More space for the map as messages and status are side-by-side. +o You rarely need to put the mouse in a pop-up to interact with it. +o Macros - hidden feature - F1=multi-rest F2=multi-search F3=try-it +o It is much easier to code, so new feature-requests are more easily done. +o Sound support. + +The standard NetHack X11 interface is written in C using the Athena +Widgets toolkit. The strongest reason for doing it that way was +that NetHack is one of the most incredibly portable programs of +any kind, and the Athena Widget Set is also available for free on +a large number of X11 implementations. The problem is that Athena +Widgets (also known as Xaw) is very ugly, difficult to program in, +and buggy. The Qt interface toolkit on the other hand is written +in C++ and is freely portable to any X11 implementation, but is +less widespread, making it inappropriate for the standard NetHack +X11 interface. + +Sound support + +The QtNetHack patch includes experimental support for sounds to be +played based on messages. For example, you can arrange for a gong +to sound when the message "... cursing shoplifter..." appears. The +system maps any regular expression (can be just some text) to a +sound. The QtNetHack windowport is the only one providing this +method, and it does so using the NAS (Network Audio System) . As +distributed, the patch enables this feature - see include/config.h +once you have applied the patch, and look for USER_SOUNDS for an +explanation of how to disable it if you want to. + +You will also want to collect some sound samples to try it out, +and a .nethackrc attaching them to messages. This package contains +the .au files that I use, and my ~/.nethackrc. Many of the sounds +are from the nhsound package, which you can find referenced on the +NetHack Home Page. diff --git a/games/nethack34-qt/pkg-plist b/games/nethack34-qt/pkg-plist new file mode 100644 index 000000000000..b9b6c3bae250 --- /dev/null +++ b/games/nethack34-qt/pkg-plist @@ -0,0 +1,186 @@ +bin/nethack +lib/nethackdir/nethack +@exec mkdir %D/lib/nethackdir/save +@exec chmod 775 %D/lib/nethackdir/save +@exec chown games.games %D/lib/nethackdir/save +@unexec rmdir %D/lib/nethackdir/save +man/man6/dgn_comp.6.gz +man/man6/dlb.6.gz +man/man6/lev_comp.6.gz +man/man6/nethack.6.gz +man/man6/recover.6.gz +lib/nethackdir/.nethackrc +lib/nethackdir/A-filla.lev +lib/nethackdir/A-fillb.lev +lib/nethackdir/A-goal.lev +lib/nethackdir/A-locate.lev +lib/nethackdir/A-start.lev +lib/nethackdir/B-filla.lev +lib/nethackdir/B-fillb.lev +lib/nethackdir/B-goal.lev +lib/nethackdir/B-locate.lev +lib/nethackdir/B-start.lev +lib/nethackdir/C-filla.lev +lib/nethackdir/C-fillb.lev +lib/nethackdir/C-goal.lev +lib/nethackdir/C-locate.lev +lib/nethackdir/C-start.lev +lib/nethackdir/E-filla.lev +lib/nethackdir/E-fillb.lev +lib/nethackdir/E-goal.lev +lib/nethackdir/E-locate.lev +lib/nethackdir/E-start.lev +lib/nethackdir/H-filla.lev +lib/nethackdir/H-fillb.lev +lib/nethackdir/H-goal.lev +lib/nethackdir/H-locate.lev +lib/nethackdir/H-start.lev +lib/nethackdir/K-filla.lev +lib/nethackdir/K-fillb.lev +lib/nethackdir/K-goal.lev +lib/nethackdir/K-locate.lev +lib/nethackdir/K-start.lev +lib/nethackdir/P-filla.lev +lib/nethackdir/P-fillb.lev +lib/nethackdir/P-goal.lev +lib/nethackdir/P-locate.lev +lib/nethackdir/P-start.lev +lib/nethackdir/R-filla.lev +lib/nethackdir/R-fillb.lev +lib/nethackdir/R-goal.lev +lib/nethackdir/R-locate.lev +lib/nethackdir/R-start.lev +lib/nethackdir/S-filla.lev +lib/nethackdir/S-fillb.lev +lib/nethackdir/S-goal.lev +lib/nethackdir/S-locate.lev +lib/nethackdir/S-start.lev +lib/nethackdir/T-filla.lev +lib/nethackdir/T-fillb.lev +lib/nethackdir/T-goal.lev +lib/nethackdir/T-locate.lev +lib/nethackdir/T-start.lev +lib/nethackdir/V-filla.lev +lib/nethackdir/V-fillb.lev +lib/nethackdir/V-goal.lev +lib/nethackdir/V-locate.lev +lib/nethackdir/V-start.lev +lib/nethackdir/W-filla.lev +lib/nethackdir/W-fillb.lev +lib/nethackdir/W-goal.lev +lib/nethackdir/W-locate.lev +lib/nethackdir/W-start.lev +lib/nethackdir/air.lev +lib/nethackdir/asmodeus.lev +lib/nethackdir/astral.lev +lib/nethackdir/awaits.au +lib/nethackdir/baalz.lev +lib/nethackdir/beartrap.au +lib/nethackdir/bigrm-1.lev +lib/nethackdir/bigrm-2.lev +lib/nethackdir/bigrm-3.lev +lib/nethackdir/bigrm-4.lev +lib/nethackdir/bigrm-5.lev +lib/nethackdir/blind.ppm +lib/nethackdir/breath.au +lib/nethackdir/castle.lev +lib/nethackdir/cha.ppm +lib/nethackdir/chaotic.ppm +lib/nethackdir/clunk.au +lib/nethackdir/cmdhelp +lib/nethackdir/coin.au +lib/nethackdir/con.ppm +lib/nethackdir/confused.ppm +lib/nethackdir/data +lib/nethackdir/death.au +lib/nethackdir/destroy2.au +lib/nethackdir/dex.ppm +lib/nethackdir/doorclos.au +lib/nethackdir/dooropen2.au +lib/nethackdir/drop.au +lib/nethackdir/dungeon +lib/nethackdir/earth.lev +lib/nethackdir/ext_encumber.ppm +lib/nethackdir/fakewiz1.lev +lib/nethackdir/fakewiz2.lev +lib/nethackdir/fire.lev +lib/nethackdir/forcefld.au +lib/nethackdir/frogs.au +lib/nethackdir/gong.au +lib/nethackdir/hallu.au +lib/nethackdir/hallu.ppm +lib/nethackdir/help +lib/nethackdir/hh +lib/nethackdir/history +lib/nethackdir/hit2.au +lib/nethackdir/hungry.ppm +lib/nethackdir/hvy_encumber.ppm +lib/nethackdir/int.ppm +lib/nethackdir/juiblex.lev +lib/nethackdir/knox.lev +lib/nethackdir/kops.au +lib/nethackdir/landmine.au +lib/nethackdir/latin.au +lib/nethackdir/latin_short.au +lib/nethackdir/lawful.ppm +lib/nethackdir/level_up.au +lib/nethackdir/license +lib/nethackdir/logfile +lib/nethackdir/medusa-1.lev +lib/nethackdir/medusa-2.lev +lib/nethackdir/memor.au +lib/nethackdir/memories.au +lib/nethackdir/minderode.au +lib/nethackdir/minefill.lev +lib/nethackdir/minend-1.lev +lib/nethackdir/minend-2.lev +lib/nethackdir/minetn-1.lev +lib/nethackdir/minetn-2.lev +lib/nethackdir/miss2.au +lib/nethackdir/mock.au +lib/nethackdir/mod_encumber.ppm +lib/nethackdir/neutral.ppm +lib/nethackdir/ohdear.au +lib/nethackdir/opthelp +lib/nethackdir/options +lib/nethackdir/oracle.lev +lib/nethackdir/oracles +lib/nethackdir/orcus.lev +lib/nethackdir/ouch2.au +lib/nethackdir/ovr_encumber.ppm +lib/nethackdir/perm +lib/nethackdir/pet_mark.pbm +lib/nethackdir/pet_mark.ppm +lib/nethackdir/qt_tiles_0.ppm +lib/nethackdir/qt_tiles_1.ppm +lib/nethackdir/qt_tiles_2.ppm +lib/nethackdir/qt_tiles_3.ppm +lib/nethackdir/quest.dat +lib/nethackdir/record +lib/nethackdir/rip.ppm +lib/nethackdir/rumors +lib/nethackdir/sanctum.lev +lib/nethackdir/satiated.ppm +lib/nethackdir/sick_fp.ppm +lib/nethackdir/sick_il.ppm +lib/nethackdir/slt_encumber.ppm +lib/nethackdir/squeek.au +lib/nethackdir/str.ppm +lib/nethackdir/stunned.ppm +lib/nethackdir/tada.au +lib/nethackdir/thump.au +lib/nethackdir/tower1.lev +lib/nethackdir/tower2.lev +lib/nethackdir/tower3.lev +lib/nethackdir/trapdoor.au +lib/nethackdir/valley.lev +lib/nethackdir/vomit.au +lib/nethackdir/water.lev +lib/nethackdir/weak.au +lib/nethackdir/whistle2.au +lib/nethackdir/wis.ppm +lib/nethackdir/wizard1.lev +lib/nethackdir/wizard2.lev +lib/nethackdir/wizard3.lev +lib/nethackdir/wizhelp +lib/nethackdir/yendor.au |