aboutsummaryrefslogtreecommitdiffstats
path: root/games
diff options
context:
space:
mode:
authorvs <vs@FreeBSD.org>2004-06-18 16:16:23 +0800
committervs <vs@FreeBSD.org>2004-06-18 16:16:23 +0800
commit8e3cf86fe51b7211677f5cbb1dc222cc33edb946 (patch)
treeefa6cf5a9bba0ee83c20a2da6c9229ef05deaeff /games
parentdde670cb055b99c60d69d8061b50705a86ee8c76 (diff)
downloadfreebsd-ports-gnome-8e3cf86fe51b7211677f5cbb1dc222cc33edb946.tar.gz
freebsd-ports-gnome-8e3cf86fe51b7211677f5cbb1dc222cc33edb946.tar.zst
freebsd-ports-gnome-8e3cf86fe51b7211677f5cbb1dc222cc33edb946.zip
Update to 0.31
PR: ports/65929 Submitted by: maintainer
Diffstat (limited to 'games')
-rw-r--r--games/fuhquake/Makefile80
-rw-r--r--games/fuhquake/distinfo10
-rw-r--r--games/fuhquake/files/Makefile22
-rw-r--r--games/fuhquake/files/fix^m.sh4
-rw-r--r--games/fuhquake/files/nonintel.c11
-rw-r--r--games/fuhquake/files/patch-common.c10
-rw-r--r--games/fuhquake/files/patch-keys.c45
-rw-r--r--games/fuhquake/files/patch-keys.h18
-rw-r--r--games/fuhquake/files/patch-menu.c190
-rw-r--r--games/fuhquake/files/patch-modules.c20
-rw-r--r--games/fuhquake/files/patch-modules.h11
-rw-r--r--games/fuhquake/files/patch-mp3_player.c26
-rw-r--r--games/fuhquake/files/patch-r_part.c20
-rw-r--r--games/fuhquake/files/patch-sv_sys_unix.c11
-rw-r--r--games/fuhquake/files/patch-version.h18
-rw-r--r--games/fuhquake/files/patch-vid_glx.c22
-rw-r--r--games/fuhquake/files/patch-vid_svga.c14
-rw-r--r--games/fuhquake/files/patch-vid_x11.c131
-rw-r--r--games/fuhquake/pkg-message10
-rw-r--r--games/fuhquake/pkg-plist4
20 files changed, 142 insertions, 535 deletions
diff --git a/games/fuhquake/Makefile b/games/fuhquake/Makefile
index 8adfc33c6110..ae46612d4ec6 100644
--- a/games/fuhquake/Makefile
+++ b/games/fuhquake/Makefile
@@ -6,32 +6,30 @@
#
PORTNAME= fuhquake
-PORTVERSION= 0.28
-PORTREVISION= 1
+PORTVERSION= 0.31
CATEGORIES= games
-MASTER_SITES= http://www.fuhquake.net/files/source/:src \
- http://www.fuhquake.net/files/releases/:dat \
- http://freebsd.nsu.ru/distfiles/:pak
+MASTER_SITES= http://www.fuhquake.net/files/releases/v${PORTVERSION}/:q \
+ ftp://gibbage.mine.nu/clients/fuhquake/releases/v${PORTVERSION}/:q \
+ http://danfe.machos.ru/distfiles/qw/:p \
+ http://freebsd.nsu.ru/distfiles/qw/:p
DISTNAME= ${PORTNAME}-source-v${PORTVERSION}
-DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:src \
- ${PORTNAME}-linux-v${PORTVERSION}${EXTRACT_SUFX}:dat \
- pak0.pak:pak
+
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:q \
+ ${PORTNAME}-linux-v${PORTVERSION}${EXTRACT_SUFX}:q
+DIST_SUBDIR= ${PORTNAME}
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} \
+ ${PORTNAME}-linux-v${PORTVERSION}${EXTRACT_SUFX}
MAINTAINER= danfe@regency.nsu.ru
COMMENT= An excellent QuakeWorld client
-BROKEN= "Checksum mismatch"
-
.if defined(WITH_SHAREWARE_DATA)
-DISTFILES+= q1-shareware-pak0.pak:pak
+DISTFILES+= q1-shareware-pak0.pak:p
PLIST_SUB+= SHAREWARE=""
.else
PLIST_SUB+= SHAREWARE="@comment "
.endif
-EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} \
- ${PORTNAME}-linux-v${PORTVERSION}${EXTRACT_SUFX}
-
.if exists(${LOCALBASE}/lib/libvga.so.1)
WITH_SVGA= yes
.endif
@@ -40,7 +38,11 @@ WITH_SVGA= yes
WITH_XMMS= yes
.endif
-.if ${MACHINE_ARCH} == "i386" && !defined(WITHOUT_SVGA) && defined(WITH_SVGA)
+USE_ZIP= yes
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == "i386" && !defined(WITHOUT_SVGA) && defined(WITH_SVGA)
LIB_DEPENDS+= vga.1:${PORTSDIR}/graphics/svgalib
END_TARGETS+= ${PORTNAME}-svga
PLIST_SUB+= SVGA=""
@@ -68,15 +70,21 @@ PLIST_SUB+= GLX="@comment "
.if !defined(WITHOUT_XMMS) && defined(WITH_XMMS) && !(defined(WITHOUT_X11) && defined(WITHOUT_GLX))
LIB_DEPENDS+= xmms.4:${PORTSDIR}/multimedia/xmms
-MAKE_ARGS+= -DWITH_XMMS
+MAKE_ARGS+= -DWITH_XMMS PTHREAD_CFLAGS=${PTHREAD_CFLAGS} PTHREAD_LIBS=${PTHREAD_LIBS}
.endif
+PKGMESSAGE= ${WRKDIR}/pkg-message
+
pre-everything::
-.if ${MACHINE_ARCH} == "i386" && !defined(WITH_SVGA)
+.if ${ARCH} == "i386" && !defined(WITH_SVGA)
@${ECHO_MSG} "Define WITH_SVGA to build SVGA client"
+.elif !defined(WITHOUT_SVGA)
+ @${ECHO_MSG} "Define WITHOUT_SVGA to disable building of SVGA client"
.endif
.if !defined(WITH_XMMS)
@${ECHO_MSG} "Define WITH_XMMS to enable \`\`MP3 Player'' feature"
+.elif !defined(WITHOUT_XMMS)
+ @${ECHO_MSG} "Define WITHOUT_XMMS to build without \`\`MP3 Player'' feature"
.endif
.if !defined(WITHOUT_X11)
@${ECHO_MSG} "Define WITHOUT_X11 to disable building of X11 client"
@@ -87,33 +95,21 @@ pre-everything::
.if defined(WITH_SHAREWARE_DATA)
@${ECHO_MSG} "Define WITH_SHAREWARE_DATA to install demo version game data"
.endif
-.if !defined(WITHOUT_XMMS) && exists(${X11BASE}/lib/libxmms.so.4)
- @${ECHO_MSG} "Define WITHOUT_XMMS to build without \`\`MP3 Player'' feature"
-.endif
.if !defined(WITH_OPTIMIZED_CFLAGS)
@${ECHO_MSG} "Define WITH_OPTIMIZED_CFLAGS to enable extra optimization options"
.endif
-.if ${MACHINE_ARCH} == "i386" && !defined(WITHOUT_X86_ASM)
+.if ${ARCH} == "i386" && !defined(WITHOUT_X86_ASM)
@${ECHO_MSG} "Define WITHOUT_X86_ASM to disable x86 assembly code"
.endif
MAKEFILE= ${FILESDIR}/Makefile
USE_REINPLACE= yes
-USE_ZIP= yes
WRKSRC= ${WRKDIR}/source
-post-extract:
- @${FIND} -E ${WRKDIR} -type f -iregex ".*\.(c|h|s|txt)" -exec ${FILESDIR}/fix^m.sh '{}' \;
- @${CP} ${FILESDIR}/*.c ${WRKSRC}
-
post-patch:
- @${REINPLACE_CMD} -e 's|%%%%BASEDIR%%%%|${DATADIR}|' ${WRKSRC}/common.c
-.for file in cmd.h common.h render.h console.h quakedef.h cvar.h cvar_groups.h \
- fmod.h config_manager.h auth.h logging.h ignore.h fchecks.h rulesets.h \
- modules.h mp3_player.h r_local.h movie.c logging.c quotes.h zone.c \
- gl_local.h gl_image.h gl_warp_sin.h
- @${ECHO_CMD} "" >> ${WRKSRC}/${file}
-.endfor
+ @${REINPLACE_CMD} -e 's|%%BASEDIR%%|${DATADIR}|' ${WRKSRC}/common.c
+ @${REINPLACE_CMD} -e 's|%%X11BASE%%|${X11BASE}|' ${WRKSRC}/mp3_player.c
+ @${CP} ${FILESDIR}/*.c ${WRKSRC}
do-build:
.if !defined(WITHOUT_X11)
@@ -124,7 +120,7 @@ do-build:
@(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} clean glx)
.endif
-.if ${MACHINE_ARCH} == "i386" && defined(WITH_SVGA)
+.if ${ARCH} == "i386" && defined(WITH_SVGA)
@(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} clean svga)
.endif
@@ -133,24 +129,26 @@ do-install:
${INSTALL_PROGRAM} ${WRKSRC}/${tgt} ${PREFIX}/bin
.endfor
@${MKDIR} ${DATADIR}/qw ${DATADIR}/${PORTNAME}
+ ${INSTALL_DATA} ${WRKDIR}/qw/fragfile.dat ${DATADIR}/qw
${INSTALL_DATA} ${WRKDIR}/qw/qwprogs.dat ${DATADIR}/qw
${INSTALL_DATA} ${WRKDIR}/qw/spprogs.dat ${DATADIR}/qw
- ${INSTALL_DATA} ${DISTDIR}/pak0.pak ${DATADIR}/${PORTNAME}
+ ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}/pak0.pak ${DATADIR}/${PORTNAME}
.if defined(WITH_SHAREWARE_DATA)
@${MKDIR} ${DATADIR}/id1
- ${INSTALL_DATA} ${DISTDIR}/q1-shareware-pak0.pak \
+ ${INSTALL_DATA} ${_DISTDIR}/q1-shareware-pak0.pak \
${DATADIR}/id1/pak0.pak
.endif
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
-. for txt in benchmark config_manager crosshairs linux logitech mp3 \
- particles pointing rulesets track
- ${INSTALL_DATA} ${WRKDIR}/doc/${txt}.txt ${DOCSDIR}
+. for txt in FAQ-v0.30-b585 FuhQuake-v0.31-FAQ benchmark config_manager crosshairs \
+ linux logitech match_tools mp3 particles pointing rulesets track
+ ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}/doc/${txt}.txt ${DOCSDIR}
. endfor
${INSTALL_DATA} ${WRKDIR}/${PORTNAME}.txt ${DOCSDIR}
.endif
post-install:
- @${SED} -e 's|$${DATADIR}|${DATADIR}|g' ${PKGMESSAGE}
+ @${SED} -e 's|$${DATADIR}|${DATADIR}|g' ${.CURDIR}/pkg-message >${PKGMESSAGE}
+ ${CAT} ${PKGMESSAGE}
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/games/fuhquake/distinfo b/games/fuhquake/distinfo
index 46e7592cd5f9..25e4bd03ca33 100644
--- a/games/fuhquake/distinfo
+++ b/games/fuhquake/distinfo
@@ -1,4 +1,6 @@
-MD5 (fuhquake-source-v0.28.zip) = 7e77a97a1e1524b289ffa6978ce5377e
-MD5 (fuhquake-linux-v0.28.zip) = 72e99f8df1baab11e0492b7cee93fdd3
-MD5 (pak0.pak) = 2fa37c49cb1d3902d97cb82a1c96115a
-MD5 (q1-shareware-pak0.pak) = 5906e5998fc3d896ddaf5e6a62e03abb
+MD5 (fuhquake/fuhquake-source-v0.31.zip) = 3db5852cfbdf4a4855072305c32f6075
+SIZE (fuhquake/fuhquake-source-v0.31.zip) = 789610
+MD5 (fuhquake/fuhquake-linux-v0.31.zip) = 479a6f8dad1174333819e850b3aca8c1
+SIZE (fuhquake/fuhquake-linux-v0.31.zip) = 4520020
+MD5 (fuhquake/q1-shareware-pak0.pak) = 5906e5998fc3d896ddaf5e6a62e03abb
+SIZE (fuhquake/q1-shareware-pak0.pak) = 18689235
diff --git a/games/fuhquake/files/Makefile b/games/fuhquake/files/Makefile
index c0af2581d6be..bb65bf3408c8 100644
--- a/games/fuhquake/files/Makefile
+++ b/games/fuhquake/files/Makefile
@@ -23,7 +23,7 @@ DO_CFLAGS += -Did386
.endif
.if make(glx)
-DO_CFLAGS += -DWITH_PNG -DWITH_JPEG -DGLQUAKE -DWITH_DGA -DWITH_VMODE
+DO_CFLAGS += -DWITH_ZLIB -DWITH_PNG -DWITH_JPEG -DGLQUAKE -DWITH_DGA -DWITH_VMODE
.endif
.if defined(WITH_OPTIMIZED_CFLAGS)
@@ -31,13 +31,9 @@ DO_CFLAGS += -O9 -pipe -s -ffast-math -funroll-loops -fomit-frame-pointer -fexpe
.endif
.if defined(WITH_XMMS) && !make(svga)
-DO_CFLAGS += -D__XMMS__ `xmms-config --cflags`
-XMMS_LIBS = -L${X11BASE}/lib -lxmms
-. if ${OSVERSION} < 500016
-XMMS_LIBS+= -pthread
-. else
-XMMS_LIBS+= -lc_r
-. endif
+XMMS_CFLAGS != glib-config --cflags
+DO_CFLAGS += -D__XMMS__ ${XMMS_CFLAGS} ${PTHREAD_CFLAGS}
+XMMS_LIBS = -L${X11BASE}/lib -lxmms ${PTHREAD_LIBS}
.endif
########################################################################
@@ -84,11 +80,13 @@ CL_COMMON_OBJS = \
cl_main.o \
cl_parse.o \
cl_pred.o \
+ cl_screen.o \
cl_slist.o \
cl_tent.o \
cl_view.o \
\
cmd.o \
+ com_msg.o \
common.o \
console.o \
crc.o \
@@ -108,8 +106,10 @@ CL_COMMON_OBJS = \
config_manager.o \
fchecks.o \
fmod.o \
+ fragstats.o \
ignore.o \
logging.o \
+ match_tools.o \
modules.o \
movie.o \
mp3_player.o \
@@ -129,7 +129,6 @@ CL_SOFT_OBJS = \
d_fill.o \
d_init.o \
d_modech.o \
- d_part.o \
d_polyse.o \
d_scan.o \
d_sky.o \
@@ -138,8 +137,6 @@ CL_SOFT_OBJS = \
d_vars.o \
d_zpoint.o \
\
- screen.o \
-\
r_aclip.o \
r_alias.o \
r_bsp.o \
@@ -171,7 +168,6 @@ CL_SOFT_AS_OBJS = \
r_drawa.o \
r_edgea.o \
r_varsa.o \
- surf16.o \
surf8.o
.endif
@@ -179,7 +175,6 @@ CL_X11_OBJS = vid_x11.o
CL_GLX_OBJS = \
gl_draw.o \
- gl_image.o \
gl_mesh.o \
gl_model.o \
gl_ngraph.o \
@@ -189,7 +184,6 @@ CL_GLX_OBJS = \
gl_rmisc.o \
gl_rpart.o \
gl_rsurf.o \
- gl_screen.o \
gl_texture.o \
gl_warp.o \
r_part.o \
diff --git a/games/fuhquake/files/fix^m.sh b/games/fuhquake/files/fix^m.sh
deleted file mode 100644
index 897e1062fd17..000000000000
--- a/games/fuhquake/files/fix^m.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-tr -d '\r' < $1 > $1_
-mv -f $1_ $1
diff --git a/games/fuhquake/files/nonintel.c b/games/fuhquake/files/nonintel.c
index 254bfaa72a1a..e97c68856a23 100644
--- a/games/fuhquake/files/nonintel.c
+++ b/games/fuhquake/files/nonintel.c
@@ -38,17 +38,6 @@ void R_Surf8Patch ()
/*
================
-R_Surf16Patch
-================
-*/
-void R_Surf16Patch ()
-{
- // we only patch code on Intel
-}
-
-
-/*
-================
R_SurfacePatch
================
*/
diff --git a/games/fuhquake/files/patch-common.c b/games/fuhquake/files/patch-common.c
index 34f60d192107..3437db0f11e4 100644
--- a/games/fuhquake/files/patch-common.c
+++ b/games/fuhquake/files/patch-common.c
@@ -1,11 +1,11 @@
---- common.c.orig Thu Aug 28 18:15:40 2003
-+++ common.c Thu Aug 28 18:16:04 2003
-@@ -1512,7 +1512,7 @@
+--- common.c.orig Thu Feb 5 01:05:19 2004
++++ common.c Thu Feb 5 01:09:07 2004
+@@ -1006,7 +1006,7 @@
if ((i = COM_CheckParm ("-basedir")) && i < com_argc - 1)
Q_strncpyz (com_basedir, com_argv[i + 1], sizeof(com_basedir));
else
-- strcpy (com_basedir, ".");
-+ strcpy (com_basedir, "%%%%BASEDIR%%%%");
+- getcwd(com_basedir, sizeof(com_basedir) - 1);
++ strcpy(com_basedir, "%%BASEDIR%%");
for (i = 0; i < strlen(com_basedir); i++)
if (com_basedir[i] == '\\')
diff --git a/games/fuhquake/files/patch-keys.c b/games/fuhquake/files/patch-keys.c
deleted file mode 100644
index fa7d9cce9015..000000000000
--- a/games/fuhquake/files/patch-keys.c
+++ /dev/null
@@ -1,45 +0,0 @@
---- keys.c.orig Mon Jun 2 22:41:44 2003
-+++ keys.c Mon Jun 2 22:41:52 2003
-@@ -139,6 +139,13 @@
- {"HOME", K_HOME},
- {"END", K_END},
-
-+ // Windows(tm) keys
-+
-+ {"K_WINDOW", K_WINDOW},
-+ {"K_LWINDOW", K_LWINDOW},
-+ {"K_RWINDOW", K_RWINDOW},
-+ {"K_POPUPMENU", K_POPUPMENU},
-+
- {"MOUSE1", K_MOUSE1},
- {"MOUSE2", K_MOUSE2},
- {"MOUSE3", K_MOUSE3},
-@@ -969,7 +976,7 @@
- if (b < 0 || b >= sizeof(keybindings))
- return false;
-
-- return (b == K_CTRL || b == K_ALT || b == K_SHIFT) &&
-+ return (b == K_CTRL || b == K_ALT || b == K_SHIFT || b == K_WINDOW) &&
- (keybindings[b + 1] && keybindings[b + 2] && !strcmp(keybindings[b + 1], keybindings[b + 2]));
- }
-
-@@ -1082,6 +1089,10 @@
- consolekeys[K_SHIFT] = true;
- consolekeys[K_LSHIFT] = true;
- consolekeys[K_RSHIFT] = true;
-+ consolekeys[K_WINDOW] = true;
-+ consolekeys[K_LWINDOW] = true;
-+ consolekeys[K_RWINDOW] = true;
-+ consolekeys[K_POPUPMENU] = true;
- consolekeys[K_MWHEELUP] = true;
- consolekeys[K_MWHEELDOWN] = true;
- consolekeys['`'] = false;
-@@ -1143,6 +1154,8 @@
- Key_Event (K_CTRL, down);
- else if (key == K_LSHIFT || key == K_RSHIFT)
- Key_Event (K_SHIFT, down);
-+ else if (key == K_LWINDOW || key == K_RWINDOW)
-+ Key_Event (K_WINDOW, down);
-
- keydown[key] = down;
-
diff --git a/games/fuhquake/files/patch-keys.h b/games/fuhquake/files/patch-keys.h
deleted file mode 100644
index 6a4923b10b90..000000000000
--- a/games/fuhquake/files/patch-keys.h
+++ /dev/null
@@ -1,18 +0,0 @@
---- keys.h.orig Wed May 21 17:18:36 2003
-+++ keys.h Sat May 24 18:25:24 2003
-@@ -96,6 +96,15 @@
- KP_ENTER,
-
- //
-+// Windows(tm) keys
-+//
-+
-+ K_WINDOW,
-+ K_LWINDOW,
-+ K_RWINDOW,
-+ K_POPUPMENU,
-+
-+//
- // mouse buttons generate virtual keys
- //
- K_MOUSE1 = 200,
diff --git a/games/fuhquake/files/patch-menu.c b/games/fuhquake/files/patch-menu.c
index 0f4336c1a895..5621baafddfe 100644
--- a/games/fuhquake/files/patch-menu.c
+++ b/games/fuhquake/files/patch-menu.c
@@ -1,77 +1,6 @@
---- menu.c.orig Wed May 21 17:18:36 2003
-+++ menu.c Tue May 27 23:06:19 2003
-@@ -62,6 +62,7 @@
- void M_Menu_Fps_f (void);
- void M_Menu_Video_f (void);
- void M_Menu_MP3_Control_f (void);
-+ void M_Menu_Help_f (void);
- void M_Menu_Quit_f (void);
-
- void M_Main_Draw (void);
-@@ -78,6 +79,7 @@
- void M_Keys_Draw (void);
- void M_Fps_Draw (void);
- void M_Video_Draw (void);
-+ void M_MP3_Control_Draw (void);
- void M_Help_Draw (void);
- void M_Quit_Draw (void);
-
-@@ -95,6 +97,7 @@
- void M_Keys_Key (int key);
- void M_Fps_Key (int key);
- void M_Video_Key (int key);
-+ void M_MP3_Control_Key (int key);
- void M_Help_Key (int key);
- void M_Quit_Key (int key);
-
-@@ -251,7 +254,11 @@
- /* MAIN MENU */
-
- int m_main_cursor;
-+#if defined(_WIN32) || defined(__XMMS__)
-+#define MAIN_ITEMS 6
-+#else
- #define MAIN_ITEMS 5
-+#endif
-
-
- void M_Menu_Main_f (void) {
-@@ -269,7 +276,13 @@
- M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") );
- p = Draw_CachePic ("gfx/ttl_main.lmp");
- M_DrawPic ( (320-p->width)/2, 4, p);
-- M_DrawTransPic (72, 32, Draw_CachePic ("gfx/mainmenu.lmp") );
-+ M_DrawTransPic (72, 32, Draw_CachePic
-+#if defined(_WIN32) || defined(__XMMS__)
-+ ("gfx/mainmenu_mp3.lmp")
-+#else
-+ ("gfx/mainmenu.lmp")
-+#endif
-+ );
-
- f = (int)(curtime * 10)%6;
-
-@@ -332,7 +345,19 @@
- break;
- #endif
-
-+ #if defined(_WIN32) || defined(__XMMS__)
- case 4:
-+ #else
-+ case 3:
-+ #endif
-+ M_Menu_Help_f ();
-+ break;
-+
-+ #if defined(_WIN32) || defined(__XMMS__)
-+ case 5:
-+ #else
-+ case 4:
-+ #endif
- M_Menu_Quit_f ();
- break;
- }
-@@ -442,9 +467,11 @@
+--- menu.c.orig Thu Feb 5 00:33:07 2004
++++ menu.c Thu Feb 5 00:34:32 2004
+@@ -411,9 +436,11 @@
Cvar_SetValue (&cl_hudswap, !cl_hudswap.value);
break;
@@ -83,126 +12,27 @@
}
}
-@@ -491,25 +518,25 @@
- r = v_contrast.value - 1.0;
- M_DrawSlider (220, 72, r);
-
-- M_Print (16, 80, " Mouse Speed");
-+ M_Print (16, 80, " Mouse speed");
- r = (sensitivity.value - 1)/10;
- M_DrawSlider (220, 80, r);
-
-- M_Print (16, 88, " CD Music Volume");
-+ M_Print (16, 88, " CD music volume");
- r = bgmvolume.value;
- M_DrawSlider (220, 88, r);
-
-- M_Print (16, 96, " Sound Volume");
-+ M_Print (16, 96, " Sound volume");
- r = s_volume.value;
- M_DrawSlider (220, 96, r);
-
-- M_Print (16, 104, " Always Run");
-+ M_Print (16, 104, " Always run");
- M_DrawCheckbox (220, 104, cl_forwardspeed.value > 200);
-
- M_Print (16, 112, " Mouse look");
- M_DrawCheckbox (220, 112, freelook.value);
-
-- M_Print (16, 120, " Invert Mouse");
-+ M_Print (16, 120, " Invert mouse");
- M_DrawCheckbox (220, 120, m_pitch.value < 0);
-
- M_Print (16, 128, " Lookstrafe");
-@@ -524,17 +551,19 @@
- M_Print (16, 152, " FPS settings");
-
- if (vid_menudrawfn)
-- M_Print (16, 160, " Video Modes");
-+ M_Print (16, 160, " Video modes");
-
-+#ifndef NO_WINDOWED_MOUSE
- #ifdef _WIN32
- if (modestate == MS_WINDOWED)
- {
- #endif
-- M_Print (16, 168, " Use Mouse");
-+ M_Print (16, 168, " Use mouse");
- M_DrawCheckbox (220, 168, _windowed_mouse.value);
- #ifdef _WIN32
- }
- #endif
-+#endif /* NO_WINDOWED_MOUSE */
-
- // cursor
- M_DrawCharacter (200, 32 + options_cursor*8, 12+((int)(curtime*4)&1));
-@@ -611,22 +640,34 @@
- break;
- }
-
-- if (options_cursor == 16 && vid_menudrawfn == NULL) {
-- if (k == K_UPARROW || k == K_END || k == K_PGDN)
-+ if (k == K_UPARROW || k == K_END || k == K_PGDN)
-+ {
-+#ifdef NO_WINDOWED_MOUSE
-+ if ((options_cursor == 17)
-+#ifdef _WIN32
-+ && (modestate != MS_WINDOWED)
-+#endif
-+ )
-+ options_cursor = 16;
-+#endif /* NO_WINDOWED_MOUSE */
-+
-+ if (options_cursor == 16 && vid_menudrawfn == NULL)
- options_cursor = 15;
-- else
-- options_cursor = 0;
- }
-+ else
-+ {
-+ if (options_cursor == 16 && vid_menudrawfn == NULL)
-+ options_cursor = 17;
-
-- if ((options_cursor == 17)
-+#ifdef NO_WINDOWED_MOUSE
-+ if ((options_cursor == 17)
- #ifdef _WIN32
-- && (modestate != MS_WINDOWED)
-+ && (modestate != MS_WINDOWED)
- #endif
-- )
-- if (k == K_UPARROW || k == K_END || k == K_PGDN)
-- options_cursor = 16;
-- else
-- options_cursor = 0;
-+ )
-+ options_cursor = 0;
-+#endif /* NO_WINDOWED_MOUSE */
-+ }
- }
-
-
-@@ -894,24 +935,24 @@
+@@ -873,24 +900,24 @@
M_Print (16, 96, " Pickup flashes");
- M_DrawCheckbox (220, 96, v_bonusflash.value);
+ M_DrawCheckbox (ALIGN_FPS_OPTIONS, 96, v_bonusflash.value);
- M_Print (16, 104, " Powerup glow");
+ M_Print (16, 104, " Powerup glow");
- M_Print (220, 104, r_powerupglow.value==2 ? "own off" :
+ M_Print (ALIGN_FPS_OPTIONS, 104, r_powerupglow.value==2 ? "own off" :
r_powerupglow.value ? "on" : "off");
- M_Print (16, 112, " Draw torches");
+ M_Print (16, 112, " Draw torches");
- M_DrawCheckbox (220, 112, r_drawflame.value);
+ M_DrawCheckbox (ALIGN_FPS_OPTIONS, 112, r_drawflame.value);
- M_Print (16, 120, " Fast sky");
+ M_Print (16, 120, " Fast sky");
- M_DrawCheckbox (220, 120, r_fastsky.value);
+ M_DrawCheckbox (ALIGN_FPS_OPTIONS, 120, r_fastsky.value);
#ifdef GLQUAKE
- M_Print (16, 128, " Fast lights");
+ M_Print (16, 128, " Fast lights");
- M_DrawCheckbox (220, 128, gl_flashblend.value);
+ M_DrawCheckbox (ALIGN_FPS_OPTIONS, 128, gl_flashblend.value);
#endif
- M_PrintWhite (16, 136, " Fast mode");
@@ -212,4 +42,4 @@
+ M_PrintWhite (16, 144, " High quality");
// cursor
- M_DrawCharacter (200, 32 + fps_cursor*8, 12+((int)(curtime*4)&1));
+ M_DrawCharacter (196, 32 + fps_cursor * 8, 12 + ((int) (curtime * 4) & 1));
diff --git a/games/fuhquake/files/patch-modules.c b/games/fuhquake/files/patch-modules.c
index 1f7b9677d38a..9504876fa6ef 100644
--- a/games/fuhquake/files/patch-modules.c
+++ b/games/fuhquake/files/patch-modules.c
@@ -1,11 +1,13 @@
---- modules.c.orig Wed May 21 17:18:36 2003
-+++ modules.c Wed May 21 17:22:37 2003
-@@ -22,7 +22,7 @@
- #include "modules.h"
- #include "version.h"
+--- modules.c.orig Wed Feb 4 21:05:56 2004
++++ modules.c Wed Feb 4 21:14:23 2004
+@@ -31,10 +31,6 @@
+ char _temp_modulename[MAX_OSPATH];
+ static registeredModule_t registeredModules[qlib_nummodules];
-#ifdef __linux
-+#if defined(__linux__) || defined(__FreeBSD__)
- #include <dlfcn.h>
- #endif
-
+-#include <dlfcn.h>
+-#endif
+-
+ #ifdef _WIN32
+ #define SECURITY_GETFUNC(f) (Security_##f = (Security_##f##_t) GetProcAddress(hSecurity, "Security_" #f))
+ #else
diff --git a/games/fuhquake/files/patch-modules.h b/games/fuhquake/files/patch-modules.h
new file mode 100644
index 000000000000..aff804349446
--- /dev/null
+++ b/games/fuhquake/files/patch-modules.h
@@ -0,0 +1,11 @@
+--- modules.h.orig Wed Feb 4 21:13:04 2004
++++ modules.h Wed Feb 4 21:13:36 2004
+@@ -24,7 +24,7 @@
+
+ #include "security.h"
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ #include <dlfcn.h>
+ #endif
+
diff --git a/games/fuhquake/files/patch-mp3_player.c b/games/fuhquake/files/patch-mp3_player.c
index 30218a638970..3f8501682e11 100644
--- a/games/fuhquake/files/patch-mp3_player.c
+++ b/games/fuhquake/files/patch-mp3_player.c
@@ -1,6 +1,6 @@
---- mp3_player.c.orig Mon Sep 1 18:18:40 2003
-+++ mp3_player.c Mon Sep 1 18:20:09 2003
-@@ -48,9 +48,10 @@
+--- mp3_player.c.orig Wed Feb 4 21:19:26 2004
++++ mp3_player.c Wed Feb 4 21:23:46 2004
+@@ -56,9 +56,10 @@
#ifdef __XMMS__
@@ -8,25 +8,7 @@
#include <sys/wait.h>
-cvar_t mp3_dir = {"mp3_xmms_dir", "/usr/local/bin"};
-+cvar_t mp3_dir = {"mp3_xmms_dir", "/usr/X11R6/bin"};
++cvar_t mp3_dir = {"mp3_xmms_dir", "%%X11BASE%%/bin"};
cvar_t mp3_xmms_session = {"mp3_xmms_session", "0"};
#endif
-@@ -288,7 +289,7 @@
- #define XMMS_COMMAND(Name, Param) \
- void MP3_##Name##_f(void) { \
- if (MP3_IsPlayerRunning()) { \
-- xmms_remote_##Param##(XMMS_SESSION); \
-+ xmms_remote_##Param(XMMS_SESSION); \
- } else { \
- Com_Printf("%s\n", mp3_notrunning_msg); \
- } \
-@@ -769,7 +770,7 @@
-
- #endif
-
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__)
-
- #ifdef __XMMS__
-
diff --git a/games/fuhquake/files/patch-r_part.c b/games/fuhquake/files/patch-r_part.c
new file mode 100644
index 000000000000..62257d2a90fc
--- /dev/null
+++ b/games/fuhquake/files/patch-r_part.c
@@ -0,0 +1,20 @@
+--- r_part.c.orig Wed Feb 4 23:15:44 2004
++++ r_part.c Wed Feb 4 23:32:01 2004
+@@ -60,6 +60,17 @@
+
+ #if !id386
+
++#define PARTICLE_Z_CLIP 8.0
++float xcenter, ycenter;
++int d_vrectx, d_vrecty, d_vrectright_particle, d_vrectbottom_particle;
++short *d_pzbuffer;
++unsigned int d_zwidth;
++pixel_t *d_viewbuffer;
++#define MAXHEIGHT 1024
++int d_scantable[MAXHEIGHT];
++int d_y_aspect_shift, d_pix_min, d_pix_max, d_pix_shift;
++int screenwidth;
++
+ void D_DrawParticle (particle_t *pparticle) {
+ vec3_t local, transformed;
+ float zi;
diff --git a/games/fuhquake/files/patch-sv_sys_unix.c b/games/fuhquake/files/patch-sv_sys_unix.c
deleted file mode 100644
index 5182ac61a7cc..000000000000
--- a/games/fuhquake/files/patch-sv_sys_unix.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- sv_sys_unix.c.orig Wed May 21 17:18:37 2003
-+++ sv_sys_unix.c Wed May 21 15:09:31 2003
-@@ -24,7 +24,7 @@
- #include <libc.h>
- #endif
-
--#if defined(__linux__) || defined(sun)
-+#if defined(__linux__) || defined(__FreeBSD__) || defined(sun)
- #include <sys/stat.h>
- #include <unistd.h>
- #include <sys/time.h>
diff --git a/games/fuhquake/files/patch-version.h b/games/fuhquake/files/patch-version.h
index 5f925395c19a..e879c12b896f 100644
--- a/games/fuhquake/files/patch-version.h
+++ b/games/fuhquake/files/patch-version.h
@@ -1,10 +1,16 @@
---- version.h.orig Thu Sep 18 23:36:30 2003
-+++ version.h Thu Sep 18 23:36:50 2003
-@@ -7,7 +7,7 @@
- #ifdef _WIN32
+--- version.h.orig Wed Sep 24 20:56:57 2003
++++ version.h Wed Sep 24 20:58:44 2003
+@@ -4,10 +4,12 @@
+ #define FUH_VERSION "0.30"
+ #define LINUX_VERSION 0.98
+
+-#ifdef _WIN32
++#if defined(_WIN32)
#define QW_PLATFORM "Win32"
- #else
--#define QW_PLATFORM "Linux"
+-#else
++#elif defined(__linux__)
+ #define QW_PLATFORM "Linux"
++#elif defined(__FreeBSD__)
+#define QW_PLATFORM "FreeBSD"
#endif
diff --git a/games/fuhquake/files/patch-vid_glx.c b/games/fuhquake/files/patch-vid_glx.c
index ec2c6c6964de..1e162f812a6d 100644
--- a/games/fuhquake/files/patch-vid_glx.c
+++ b/games/fuhquake/files/patch-vid_glx.c
@@ -10,25 +10,3 @@
#include <stdarg.h>
#include <stdio.h>
#include <signal.h>
-@@ -284,8 +286,8 @@
- case MotionNotify:
- #ifdef WITH_DGA
- if (dgamouse && _windowed_mouse.value) {
-- mouse_x = event.xmotion.x_root;
-- mouse_y = event.xmotion.y_root;
-+ mouse_x += event.xmotion.x_root;
-+ mouse_y += event.xmotion.y_root;
- } else
- #endif
- {
-@@ -601,8 +603,9 @@
- #ifdef WITH_VMODE
- // fullscreen
- if (vidmode_active) {
-- mask = CWBackPixel | CWColormap | CWSaveUnder | CWBackingStore | CWEventMask;
-+ mask = CWBackPixel | CWColormap | CWSaveUnder | CWBackingStore | CWEventMask | CWOverrideRedirect;
- attr.backing_store = NotUseful;
-+ attr.override_redirect = True;
- attr.save_under = False;
- }
- #endif
diff --git a/games/fuhquake/files/patch-vid_svga.c b/games/fuhquake/files/patch-vid_svga.c
index de3107eee109..de3fb99166bf 100644
--- a/games/fuhquake/files/patch-vid_svga.c
+++ b/games/fuhquake/files/patch-vid_svga.c
@@ -1,5 +1,5 @@
---- vid_svgalib.c.orig Thu May 29 17:56:45 2003
-+++ vid_svgalib.c Thu May 29 17:56:28 2003
+--- vid_svgalib.c.orig Thu Feb 5 00:41:00 2004
++++ vid_svgalib.c Thu Feb 5 00:51:44 2004
@@ -20,12 +20,18 @@
#include <termios.h>
#include <sys/ioctl.h>
@@ -27,7 +27,7 @@
cvar_t m_filter = {"m_filter","0"};
cvar_t cl_keypad = {"cl_keypad", "1"};
-@@ -330,45 +335,41 @@
+@@ -307,45 +312,41 @@
}
static byte scantokey_kp[128] = {
@@ -48,7 +48,7 @@
- KP_ENTER,K_RCTRL,KP_SLASH,0, K_RALT, K_PAUSE,K_HOME, K_UPARROW,
- K_PGUP, K_LEFTARROW,K_RIGHTARROW,K_END, K_DOWNARROW,K_PGDN,K_INS,K_DEL, // 6
- 0, 0, 0, 0, 0, 0, 0, K_PAUSE,
-- 0, 0, 0, 0, 0, 0, 0, 0 // 7
+- 0, 0, 0, 0, 0, K_LWIN, K_RWIN, K_MENU // 7
+ 0, K_ESCAPE, '1', '2', '3', '4', '5', '6',
+ '7', '8', '9', '0', '-', '=', K_BACKSPACE, 9,
+ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
@@ -62,7 +62,7 @@
+ KP_DOWNARROW, KP_PGDN, KP_INS, KP_DEL, 0, 0, 0, K_F11,
+ K_F12, KP_ENTER, K_RCTRL, KP_SLASH, K_PRINTSCR, K_RALT, K_HOME, K_UPARROW,
+ K_PGUP, K_LEFTARROW, K_RIGHTARROW, K_END, K_DOWNARROW, K_PGDN, K_INS, K_DEL,
-+ K_PAUSE, K_LWINDOW, K_RWINDOW, K_POPUPMENU, 0, 0, 0, 0,
++ K_PAUSE, K_LWIN, K_RWIN, K_MENU, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0
};
@@ -85,7 +85,7 @@
- K_ENTER,K_RCTRL,'/', 0, K_RALT, K_PAUSE,K_HOME, K_UPARROW,
- K_PGUP, K_LEFTARROW,K_RIGHTARROW,K_END, K_DOWNARROW,K_PGDN,K_INS,K_DEL, // 6
- 0, 0, 0, 0, 0, 0, 0, K_PAUSE,
-- 0, 0, 0, 0, 0, 0, 0, 0 // 7
+- 0, 0, 0, 0, 0, K_LWIN, K_RWIN, K_MENU // 7
+ 0, K_ESCAPE, '1', '2', '3', '4', '5', '6',
+ '7', '8', '9', '0', '-', '=', K_BACKSPACE, 9,
+ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
@@ -99,7 +99,7 @@
+ K_DOWNARROW, K_PGDN, K_INS, K_DEL, 0, 0, 0, K_F11,
+ K_F12, K_ENTER, K_RCTRL, '/', K_PRINTSCR, K_RALT, K_HOME, K_UPARROW,
+ K_PGUP, K_LEFTARROW, K_RIGHTARROW, K_END, K_DOWNARROW, K_PGDN, K_INS, K_DEL,
-+ K_PAUSE, K_LWINDOW, K_RWINDOW, K_POPUPMENU, 0, 0, 0, 0,
++ K_PAUSE, K_LWIN, K_RWIN, K_MENU, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0
};
diff --git a/games/fuhquake/files/patch-vid_x11.c b/games/fuhquake/files/patch-vid_x11.c
deleted file mode 100644
index 893e30d50a5a..000000000000
--- a/games/fuhquake/files/patch-vid_x11.c
+++ /dev/null
@@ -1,131 +0,0 @@
---- vid_x11.c.orig Mon Aug 25 21:01:40 2003
-+++ vid_x11.c Mon Aug 25 21:10:09 2003
-@@ -21,7 +21,8 @@
-
- #define _BSD
-
--typedef unsigned short PIXEL;
-+typedef unsigned short PIXEL16;
-+typedef unsigned PIXEL24;
-
- #include <ctype.h>
- #include <sys/time.h>
-@@ -111,7 +112,8 @@
- void (*vid_menukeyfn)(int key);
- void VID_MenuKey (int key);
-
--static PIXEL st2d_8to16table[256];
-+static PIXEL16 st2d_8to16table[256];
-+static PIXEL24 st2d_8to24table[256];
- static int shiftmask_fl=0;
- static long r_shift,g_shift,b_shift;
- static unsigned long r_mask,g_mask,b_mask;
-@@ -132,8 +134,42 @@
- shiftmask_fl = 1;
- }
-
--PIXEL xlib_rgb(int r,int g,int b) {
-- PIXEL p;
-+PIXEL16 xlib_rgb16(int r,int g,int b) {
-+ PIXEL16 p;
-+
-+ if (shiftmask_fl == 0)
-+ shiftmask_init();
-+ p = 0;
-+
-+ if (r_shift > 0) {
-+ p = (r << (r_shift)) &r_mask;
-+ } else if(r_shift<0) {
-+ p = (r >> (-r_shift)) &r_mask;
-+ } else {
-+ p |= (r & r_mask);
-+ }
-+
-+ if(g_shift>0) {
-+ p |= (g << (g_shift)) &g_mask;
-+ } else if(g_shift<0) {
-+ p |= (g >> (-g_shift)) &g_mask;
-+ } else {
-+ p|=(g & g_mask);
-+ }
-+
-+ if(b_shift > 0) {
-+ p |= (b << (b_shift)) &b_mask;
-+ } else if (b_shift < 0) {
-+ p |= (b >> (-b_shift)) &b_mask;
-+ } else {
-+ p|=(b & b_mask);
-+ }
-+
-+ return p;
-+}
-+
-+PIXEL24 xlib_rgb24(int r,int g,int b) {
-+ PIXEL24 p;
-
- if (shiftmask_fl == 0)
- shiftmask_init();
-@@ -169,20 +205,37 @@
- void st2_fixup( XImage *framebuf, int x, int y, int width, int height) {
- int xi,yi;
- unsigned char *src;
-- PIXEL *dest;
-+ PIXEL16 *dest;
-
- if(x < 0 || y < 0)
- return;
-
- for (yi = y; yi < y + height; yi++) {
- src = &framebuf->data [yi * framebuf->bytes_per_line];
-- dest = (PIXEL*)src;
-+ dest = (PIXEL16 *)src;
- for(xi = (x + width - 1); xi >= x; xi--) {
- dest[xi] = st2d_8to16table[src[xi]];
- }
- }
- }
-
-+void st3_fixup( XImage *framebuf, int x, int y, int width, int height) {
-+ int xi,yi;
-+ unsigned char *src;
-+ PIXEL24 *dest;
-+
-+ if(x < 0 || y < 0)
-+ return;
-+
-+ for (yi = y; yi < y + height; yi++) {
-+ src = &framebuf->data [yi * framebuf->bytes_per_line];
-+ dest = (PIXEL24 *)src;
-+ for(xi = (x + width - 1); xi >= x; xi--) {
-+ dest[xi] = st2d_8to24table[src[xi]];
-+ }
-+ }
-+}
-+
- // ========================================================================
- // Tragic death handler
- // ========================================================================
-@@ -564,8 +617,10 @@
- int i;
- XColor colors[256];
-
-- for (i = 0; i < 256; i++)
-- st2d_8to16table[i]= xlib_rgb(palette[i * 3], palette[i * 3 + 1], palette[i * 3 + 2]);
-+ for (i = 0; i < 256; i++) {
-+ st2d_8to24table[i]= xlib_rgb24(palette[i * 3], palette[i * 3 + 1], palette[i * 3 + 2]);
-+ st2d_8to16table[i]= xlib_rgb16(palette[i * 3], palette[i * 3 + 1], palette[i * 3 + 2]);
-+ }
-
- if (x_visinfo->class == PseudoColor && x_visinfo->depth == 8) {
- if (palette != current_palette)
-@@ -821,7 +876,9 @@
-
- if (doShm) {
- while (rects){
-- if (x_visinfo->depth != 8)
-+ if (x_visinfo->depth == 24)
-+ st3_fixup( x_framebuffer[current_framebuffer], rects->x, rects->y, rects->width, rects->height);
-+ else if (x_visinfo->depth == 16)
- st2_fixup( x_framebuffer[current_framebuffer], rects->x, rects->y, rects->width, rects->height);
- if (!XShmPutImage(x_disp, x_win, x_gc,
- x_framebuffer[current_framebuffer], rects->x, rects->y, rects->x, rects->y, rects->width, rects->height, True))
diff --git a/games/fuhquake/pkg-message b/games/fuhquake/pkg-message
index aa4460a8574c..c6a094df0371 100644
--- a/games/fuhquake/pkg-message
+++ b/games/fuhquake/pkg-message
@@ -6,10 +6,10 @@
You must also have registered version of
Quake per to be able to legally copy the
PAK files (pak*.pak) from id1/ directory
- to ${DATADIR}/id1/ from CDROM or Windows
- installation. In case it is not an opt-
- ion, you can rebuild the port with "make
- -DWITH_SHAREWARE_DATA", and thus install
- demo version (shareware) data files.
+ to ${DATADIR}/id1/ from a
+ Windows installation or CDROM. If it is
+ not an option, you can still rebuild the
+ port with WITH_SHAREWARE_DATA knob so to
+ install shareware version data files.
================================================
diff --git a/games/fuhquake/pkg-plist b/games/fuhquake/pkg-plist
index ba48e6db5c5b..00a1f2f55a6d 100644
--- a/games/fuhquake/pkg-plist
+++ b/games/fuhquake/pkg-plist
@@ -1,12 +1,15 @@
%%X11%%bin/fuhquake-x11
%%GLX%%bin/fuhquake-glx
%%SVGA%%bin/fuhquake-svga
+%%PORTDOCS%%%%DOCSDIR%%/FAQ-v0.30-b585.txt
+%%PORTDOCS%%%%DOCSDIR%%/FuhQuake-v0.31-FAQ.txt
%%PORTDOCS%%%%DOCSDIR%%/benchmark.txt
%%PORTDOCS%%%%DOCSDIR%%/config_manager.txt
%%PORTDOCS%%%%DOCSDIR%%/crosshairs.txt
%%PORTDOCS%%%%DOCSDIR%%/fuhquake.txt
%%PORTDOCS%%%%DOCSDIR%%/linux.txt
%%PORTDOCS%%%%DOCSDIR%%/logitech.txt
+%%PORTDOCS%%%%DOCSDIR%%/match_tools.txt
%%PORTDOCS%%%%DOCSDIR%%/mp3.txt
%%PORTDOCS%%%%DOCSDIR%%/particles.txt
%%PORTDOCS%%%%DOCSDIR%%/pointing.txt
@@ -15,6 +18,7 @@
%%PORTDOCS%%@dirrm %%DOCSDIR%%
share/fuhquake/fuhquake/pak0.pak
%%SHAREWARE%%share/fuhquake/id1/pak0.pak
+share/fuhquake/qw/fragfile.dat
share/fuhquake/qw/qwprogs.dat
share/fuhquake/qw/spprogs.dat
@dirrm share/fuhquake/qw