diff options
Diffstat (limited to 'games')
-rw-r--r-- | games/Makefile | 1 | ||||
-rw-r--r-- | games/joequake/Makefile | 118 | ||||
-rw-r--r-- | games/joequake/distinfo | 12 | ||||
-rw-r--r-- | games/joequake/files/patch-Makefile.linux | 151 | ||||
-rw-r--r-- | games/joequake/files/patch-cd_linux.c | 254 | ||||
-rw-r--r-- | games/joequake/files/patch-cl_slist.c | 34 | ||||
-rw-r--r-- | games/joequake/files/patch-common.c | 47 | ||||
-rw-r--r-- | games/joequake/files/patch-console.c | 15 | ||||
-rw-r--r-- | games/joequake/files/patch-gl_screen.c | 31 | ||||
-rw-r--r-- | games/joequake/files/patch-host.c | 20 | ||||
-rw-r--r-- | games/joequake/files/patch-image.c | 46 | ||||
-rw-r--r-- | games/joequake/files/patch-keys.c | 17 | ||||
-rw-r--r-- | games/joequake/files/patch-net.h | 11 | ||||
-rw-r--r-- | games/joequake/files/patch-r_part.c | 11 | ||||
-rw-r--r-- | games/joequake/files/patch-r_screen.c | 22 | ||||
-rw-r--r-- | games/joequake/files/patch-snd_linux.c | 84 | ||||
-rw-r--r-- | games/joequake/files/patch-vid_glx.c | 12 | ||||
-rw-r--r-- | games/joequake/files/patch-vid_x11.c | 16 | ||||
-rw-r--r-- | games/joequake/pkg-descr | 6 | ||||
-rw-r--r-- | games/joequake/pkg-message | 19 | ||||
-rw-r--r-- | games/joequake/pkg-plist | 171 |
21 files changed, 1098 insertions, 0 deletions
diff --git a/games/Makefile b/games/Makefile index ee977d698c2e..253fd7c8969c 100644 --- a/games/Makefile +++ b/games/Makefile @@ -311,6 +311,7 @@ SUBDIR += jetpack SUBDIR += jfduke3d SUBDIR += jfk + SUBDIR += joequake SUBDIR += jools SUBDIR += jtans SUBDIR += jumpnbump diff --git a/games/joequake/Makefile b/games/joequake/Makefile new file mode 100644 index 000000000000..709e96cbc93a --- /dev/null +++ b/games/joequake/Makefile @@ -0,0 +1,118 @@ +# New ports collection makefile for: joequake +# Date created: 5 May 2006 +# Whom: alepulver +# +# $FreeBSD$ +# + +PORTNAME= joequake +PORTVERSION= 0.15b1329 +CATEGORIES= games +MASTER_SITES= http://runecentral.com/joequake/ +DISTNAME= ${PORTNAME}-v${PORTVERSION}-source +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ + ${PORTNAME}-v0.15b1146-linux${EXTRACT_SUFX} +DIST_SUBDIR= ${PORTNAME} + +MAINTAINER= alepulver@FreeBSD.org +COMMENT= Improved NQ engine with ZQuake and FuhQuake graphical effects + +LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png + +WRKSRC= ${WRKDIR}/src + +USE_GCC= 3.2+ +USE_GMAKE= yes +USE_ZIP= yes + +MAKEFILE= Makefile.linux + +OPTIONS= GLX "Build GLX client" on \ + HUD "High quality HUD images (for OpenGL)" off \ + HUD_SA "Same for Scourge of Armagon (hipnotic)" off \ + OPTIMIZED_CFLAGS "Enable compilation optimizations" on \ + X11 "Build X11 client" on \ + X86_ASM "Enable x86 assembly code" on + +DATADIR= ${Q1DIR} +MAKE_ENV= DATADIR="${DATADIR}" + +.include "${.CURDIR}/../quake-data/Makefile.include" + +.include <bsd.port.pre.mk> + +.if defined(WITHOUT_GLX) && defined(WITHOUT_X11) +IGNORE= needs at least one interface (GLX or X11) +.endif + +.if !defined(WITHOUT_GLX) +USE_GL= yes +LIB_DEPENDS+= jpeg.9:${PORTSDIR}/graphics/jpeg +ALL_TARGET+= glx +PLIST_SUB+= GLX="" +.else +PLIST_SUB+= GLX="@comment " +.endif + +.if defined(WITH_HUD) +DISTFILES+= joequake_wad${EXTRACT_SUFX} +PLIST_SUB+= HUD="" +.else +PLIST_SUB+= HUD="@comment " +.endif + +.if defined(WITH_HUD_SA) +DISTFILES+= hipnotic_wad${EXTRACT_SUFX} +PLIST_SUB+= HUD_SA="" +.else +PLIST_SUB+= HUD_SA="@comment " +.endif + +.if defined(WITH_HUD) || defined(WITH_HUD_SA) +PLIST_SUB+= HUD_DIR="" +.else +PLIST_SUB+= HUD_DIR="@comment " +.endif + +.for f in OPTIMIZED_CFLAGS X86_ASM +. if !defined(WITHOUT_${f}) +MAKE_ENV+= USE_${f}=YES +. else +MAKE_ENV+= USE_${f}=NO +. endif +.endfor + +.if !defined(WITHOUT_X11) +USE_XLIB= yes +ALL_TARGET+= x11 +PLIST_SUB+= X11="" +.else +PLIST_SUB+= X11="@comment " +.endif + +do-install: + ${MKDIR} ${DATADIR}/${PORTNAME} + ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}/pak0.pak ${DATADIR}/${PORTNAME} +.if !defined(WITHOUT_GLX) + ${INSTALL_PROGRAM} ${WRKSRC}/release_glx/joequake-gl.glx \ + ${PREFIX}/bin/joequake-glx +.endif +.if defined(WITH_HUD) || defined(WITH_HUD_SA) + ${MKDIR} ${DATADIR}/${PORTNAME}/textures/wad + ${INSTALL_DATA} ${WRKDIR}/wad/* ${DATADIR}/${PORTNAME}/textures/wad +.endif +.if !defined(WITHOUT_X11) + ${INSTALL_PROGRAM} ${WRKSRC}/release_x11/joequake.x11 \ + ${PREFIX}/bin/joequake-x11 +.endif +.if !defined(NOPORTDOCS) + ${MKDIR} ${DOCSDIR} + ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}/doc/*.txt ${DOCSDIR} +.endif + +post-install: + @${ECHO_CMD} + @${CAT} ${PKGMESSAGE} + @${ECHO_CMD} + +.include <bsd.port.post.mk> diff --git a/games/joequake/distinfo b/games/joequake/distinfo new file mode 100644 index 000000000000..af93da3873fd --- /dev/null +++ b/games/joequake/distinfo @@ -0,0 +1,12 @@ +MD5 (joequake/joequake-v0.15b1329-source.zip) = 6b3125f1abb490f4e11956b692746488 +SHA256 (joequake/joequake-v0.15b1329-source.zip) = 4be0fc0210859746a931982687328c7c24b2c7169c66d7ae5f2c3e34cce2c518 +SIZE (joequake/joequake-v0.15b1329-source.zip) = 1327427 +MD5 (joequake/joequake-v0.15b1146-linux.zip) = 7288c2ad0b2859ac1fe7f4ae1f3e6e31 +SHA256 (joequake/joequake-v0.15b1146-linux.zip) = 7b478afd56f083065e0e306b77abbad91676b634395e947fd1615d4c1a7c2b96 +SIZE (joequake/joequake-v0.15b1146-linux.zip) = 4848059 +MD5 (joequake/joequake_wad.zip) = 33219a7615c8265845948099c9c86b80 +SHA256 (joequake/joequake_wad.zip) = 754f4b0990777f509987c7a4f5382cf98cd063c7f2e4a3df3e757ddfb3af9191 +SIZE (joequake/joequake_wad.zip) = 1053818 +MD5 (joequake/hipnotic_wad.zip) = b517d91207f39edc4f096f704dcc89dc +SHA256 (joequake/hipnotic_wad.zip) = 267e354c20c35f414513c5d73c536aff9a431a1271f125c450c40f08963c3189 +SIZE (joequake/hipnotic_wad.zip) = 272279 diff --git a/games/joequake/files/patch-Makefile.linux b/games/joequake/files/patch-Makefile.linux new file mode 100644 index 000000000000..65edd59322c8 --- /dev/null +++ b/games/joequake/files/patch-Makefile.linux @@ -0,0 +1,151 @@ +--- Makefile.linux.orig Wed Sep 7 20:11:50 2005 ++++ Makefile.linux Sun Jan 15 01:54:54 2006 +@@ -4,14 +4,25 @@ + # by Slawomir Mazurek <homer13@o2.pl> + # + +-CC := gcc +-_E := @ ++# this nice line comes from the linux kernel makefile ++ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc/ -e s/sparc64/sparc/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/alpha/axp/) ++OSTYPE := $(shell uname -s) ++ ++CC ?= gcc ++#_E := @ ++LOCALBASE ?= /usr/local ++X11BASE ?= /usr/X11R6 ++USE_OPTIMIZE ?= YES ++ ++ifeq ($(ARCH),i386) ++USE_X86_ASM ?= YES ++else ++USE_X86_ASM ?= NO ++endif + + ################ + +-default_target: glx +- +-all: glx x11 svga ++all: + + ################################ + # Directories for object files # +@@ -43,11 +54,12 @@ + $(GLX_DIR) $(X11_DIR) $(SVGA_DIR): + $(MKDIR) + +-CFLAGS += -Did386 -funsigned-char -O6 \ +- -D__linux__ -march=pentiumpro -Wall \ +- -funroll-loops -fomit-frame-pointer -DNDEBUG \ +- -ffast-math -fno-strength-reduce -fexpensive-optimizations \ +- -I/usr/include ++CFLAGS += -DNDEBUG -DDATADIR='"$(DATADIR)"' ++ ++ifeq ($(strip $(USE_OPTIMIZE)),YES) ++CFLAGS += -O1 -funsigned-char -funroll-loops -fomit-frame-pointer \ ++ -ffast-math -fno-strength-reduce -fexpensive-optimizations ++endif + + LDFLAGS := -lm + +@@ -75,19 +87,25 @@ + image version security iplog \ + slist + ++ifeq ($(strip $(USE_X86_ASM)),YES) + GLX_S_FILES := \ + math snd_mixa sys_x86 ++endif + + GLX_C_OBJS := $(addprefix $(GLX_DIR)/, $(addsuffix .o, $(GLX_C_FILES))) + GLX_S_OBJS := $(addprefix $(GLX_DIR)/, $(addsuffix .o, $(GLX_S_FILES))) + + GLX_CFLAGS := $(CFLAGS) \ +- -DGLQUAKE -I/usr/X11R6/include ++ -DGLQUAKE -I$(X11BASE)/include ++ ++ifeq ($(strip $(USE_X86_ASM)),YES) ++GLX_CFLAGS += -Did386 ++endif + + GLX_LDFLAGS := $(LDFLAGS) \ +- -lGL -L/usr/X11R6/lib -lX11 \ +- -lXext -lXxf86dga -lXxf86vm \ +- -lpng -ljpeg ++ -L$(X11BASE)/lib -lGL -lX11 \ ++ -lXext -lXxf86dga -lXxf86vm \ ++ -L$(LOCALBASE)/lib -lpng -ljpeg + + glx: _DIR := $(GLX_DIR) + glx: _OBJS := $(GLX_C_OBJS) $(GLX_S_OBJS) +@@ -138,27 +156,37 @@ + snd_linux image version security \ + iplog slist + ++ifeq ($(strip $(USE_X86_ASM)),YES) + X11_S_FILES := \ + d_copy d_draw d_draw16 d_parta \ + d_polysa d_scana d_spr8 d_varsa \ + math r_aclipa r_aliasa r_drawa \ + r_edgea r_varsa snd_mixa surf8 \ + sys_x86 ++endif + + X11_C_OBJS := $(addprefix $(X11_DIR)/, $(addsuffix .o, $(X11_C_FILES))) + X11_S_OBJS := $(addprefix $(X11_DIR)/, $(addsuffix .o, $(X11_S_FILES))) + +-X11_CFLAGS := $(CFLAGS) ++X11_CFLAGS := $(CFLAGS) -I$(X11BASE)/include ++ ++ifeq ($(strip $(USE_X86_ASM)),YES) ++X11_CFLAGS += -Did386 ++endif + + X11_LDFLAGS := $(LDFLAGS) \ +- -L/usr/X11R6/lib -lX11 -lXext \ +- -lpng ++ -L$(X11BASE)/lib -lX11 -lXext \ ++ -L$(LOCALBASE)/lib -lpng + ++ifeq ($(ARCH),i386) + x11: _DIR := $(X11_DIR) + x11: _OBJS := $(X11_C_OBJS) $(X11_S_OBJS) + x11: _LDFLAGS := $(X11_LDFLAGS) + x11: _CFLAGS := $(X11_CFLAGS) + x11: $(X11_TARGET) ++else ++x11: ++endif + + $(X11_TARGET): $(X11_DIR) $(X11_C_OBJS) $(X11_S_OBJS) + $(BUILD) +@@ -213,17 +241,25 @@ + SVGA_C_OBJS := $(addprefix $(SVGA_DIR)/, $(addsuffix .o, $(SVGA_C_FILES))) + SVGA_S_OBJS := $(addprefix $(SVGA_DIR)/, $(addsuffix .o, $(SVGA_S_FILES))) + +-SVGA_CFLAGS := $(CFLAGS) ++SVGA_CFLAGS := $(CFLAGS) -Did386 -I$(LOCALBASE)/include + + SVGA_LDFLAGS := $(LDFLAGS) \ +- -L/usr/X11R6/lib -lX11 -lpthread \ +- -lvga -lpng ++ -L$(X11BASE)/lib -lX11 -lpthread \ ++ -L$(LOCALBASE)/lib -lvga -lpng + ++ifeq ($(OSTYPE),Linux) ++ ifeq ($(ARCH),i386) + svga: _DIR := $(SVGA_DIR) + svga: _OBJS := $(SVGA_C_OBJS) $(SVGA_S_OBJS) + svga: _LDFLAGS := $(SVGA_LDFLAGS) + svga: _CFLAGS := $(SVGA_CFLAGS) + svga: $(SVGA_TARGET) ++ else ++svga: ++ endif ++else ++svga: ++endif + + $(SVGA_TARGET): $(SVGA_DIR) $(SVGA_C_OBJS) $(SVGA_S_OBJS) + $(BUILD) diff --git a/games/joequake/files/patch-cd_linux.c b/games/joequake/files/patch-cd_linux.c new file mode 100644 index 000000000000..674381f50c6c --- /dev/null +++ b/games/joequake/files/patch-cd_linux.c @@ -0,0 +1,254 @@ +--- cd_linux.c.orig Sun Aug 14 10:09:04 2005 ++++ cd_linux.c Wed Dec 7 17:22:17 2005 +@@ -31,7 +31,11 @@ + #include <time.h> + #include <errno.h> + ++#ifdef __FreeBSD__ ++#include <sys/cdio.h> ++#else + #include <linux/cdrom.h> ++#endif + + #include "quakedef.h" + +@@ -54,8 +58,13 @@ + if (cdfile == -1 || !enabled) + return; // no cd init'd + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCEJECT) == -1) ++ Con_DPrintf ("ioctl cdioceject failed\n"); ++#else + if (ioctl(cdfile, CDROMEJECT) == -1) + Con_DPrintf ("ioctl cdromeject failed\n"); ++#endif + } + + static void CDAudio_CloseDoor (void) +@@ -63,38 +72,67 @@ + if (cdfile == -1 || !enabled) + return; // no cd init'd + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCCLOSE) == -1) ++ Con_DPrintf ("ioctl cdiocclose failed\n"); ++#else + if (ioctl(cdfile, CDROMCLOSETRAY) == -1) + Con_DPrintf ("ioctl cdromclosetray failed\n"); ++#endif + } + + static int CDAudio_GetAudioDiskInfo (void) + { ++#ifdef __FreeBSD__ ++ struct ioc_toc_header tochdr; ++#else + struct cdrom_tochdr tochdr; ++#endif + + cdValid = false; + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOREADTOCHEADER, &tochdr) == -1) ++ { ++ Con_DPrintf ("ioctl cdioreadtocheader failed\n"); ++#else + if (ioctl(cdfile, CDROMREADTOCHDR, &tochdr) == -1) + { + Con_DPrintf ("ioctl cdromreadtochdr failed\n"); ++#endif + return -1; + } + ++#ifdef __FreeBSD__ ++ if (tochdr.starting_track < 1) ++#else + if (tochdr.cdth_trk0 < 1) ++#endif + { + Con_DPrintf ("CDAudio: no music tracks\n"); + return -1; + } + + cdValid = true; ++#ifdef __FreeBSD__ ++ maxTrack = tochdr.ending_track; ++#else + maxTrack = tochdr.cdth_trk1; ++#endif + + return 0; + } + + void CDAudio_Play (byte track, qboolean looping) + { ++#ifdef __FreeBSD__ ++ struct ioc_read_toc_entry entry; ++ struct cd_toc_entry toc_buffer; ++ struct ioc_play_track ti; ++#else + struct cdrom_tocentry entry; + struct cdrom_ti ti; ++#endif + + if (cdfile == -1 || !enabled) + return; +@@ -114,6 +152,21 @@ + return; + } + ++#ifdef __FreeBSD__ ++ #define CDROM_DATA_TRACK 4 ++ bzero((char *)&toc_buffer, sizeof(toc_buffer)); ++ entry.data_len = sizeof(toc_buffer); ++ entry.data = &toc_buffer; ++ // don't try to play a non-audio track ++ entry.starting_track = track; ++ entry.address_format = CD_MSF_FORMAT; ++ if ( ioctl(cdfile, CDIOREADTOCENTRYS, &entry) == -1 ) ++ { ++ Con_DPrintf("ioctl cdromreadtocentry failed\n"); ++ return; ++ } ++ if (toc_buffer.control == CDROM_DATA_TRACK) ++#else + // don't try to play a non-audio track + entry.cdte_track = track; + entry.cdte_format = CDROM_MSF; +@@ -123,6 +176,7 @@ + return; + } + if (entry.cdte_ctrl == CDROM_DATA_TRACK) ++#endif + { + Con_Printf ("CDAudio: track %i is not audio\n", track); + return; +@@ -135,19 +189,37 @@ + CDAudio_Stop (); + } + ++#ifdef __FreeBSD__ ++ ti.start_track = track; ++ ti.end_track = track; ++ ti.start_index = 1; ++ ti.end_index = 99; ++#else + ti.cdti_trk0 = track; + ti.cdti_trk1 = track; + ti.cdti_ind0 = 1; + ti.cdti_ind1 = 99; ++#endif + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCPLAYTRACKS, &ti) == -1) ++ { ++ Con_DPrintf ("ioctl cdiocplaytracks failed\n"); ++#else + if (ioctl(cdfile, CDROMPLAYTRKIND, &ti) == -1) + { + Con_DPrintf ("ioctl cdromplaytrkind failed\n"); ++#endif + return; + } + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCRESUME) == -1) ++ Con_DPrintf ("ioctl cdiocresume failed\n"); ++#else + if (ioctl(cdfile, CDROMRESUME) == -1) + Con_DPrintf ("ioctl cdromresume failed\n"); ++#endif + + playLooping = looping; + playTrack = track; +@@ -165,8 +237,13 @@ + if (!playing) + return; + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCSTOP) == -1) ++ Con_DPrintf ("ioctl cdiocstop failed (%d)\n", errno); ++#else + if (ioctl(cdfile, CDROMSTOP) == -1) + Con_DPrintf ("ioctl cdromstop failed (%d)\n", errno); ++#endif + + wasPlaying = false; + playing = false; +@@ -180,8 +257,13 @@ + if (!playing) + return; + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCPAUSE) == -1) ++ Con_DPrintf ("ioctl cdiocpause failed\n"); ++#else + if (ioctl(cdfile, CDROMPAUSE) == -1) + Con_DPrintf ("ioctl cdrompause failed\n"); ++#endif + + wasPlaying = playing; + playing = false; +@@ -197,9 +279,14 @@ + + if (!wasPlaying) + return; +- ++ ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCRESUME) == -1) ++ Con_DPrintf ("ioctl cdiocresume failed\n"); ++#else + if (ioctl(cdfile, CDROMRESUME) == -1) + Con_DPrintf ("ioctl cdromresume failed\n"); ++#endif + playing = true; + } + +@@ -322,7 +409,12 @@ + + void CDAudio_Update (void) + { ++#ifdef __FreeBSD__ ++ struct ioc_read_subchannel subchnl; ++ struct cd_sub_channel_info data; ++#else + struct cdrom_subchnl subchnl; ++#endif + static time_t lastchk; + + if (!enabled) +@@ -347,6 +439,24 @@ + if (playing && lastchk < time(NULL)) + { + lastchk = time(NULL) + 2; // two seconds between chks ++#if defined(__FreeBSD__) ++ subchnl.address_format = CD_MSF_FORMAT; ++ subchnl.data_format = CD_CURRENT_POSITION; ++ subchnl.data_len = sizeof(data); ++ subchnl.track = playTrack; ++ subchnl.data = &data; ++ if (ioctl(cdfile, CDIOCREADSUBCHANNEL, &subchnl) == -1 ) { ++ Con_DPrintf("ioctl cdiocreadsubchannel failed\n"); ++ playing = false; ++ return; ++ } ++ if (subchnl.data->header.audio_status != CD_AS_PLAY_IN_PROGRESS && ++ subchnl.data->header.audio_status != CD_AS_PLAY_PAUSED) { ++ playing = false; ++ if (playLooping) ++ CDAudio_Play(playTrack, true); ++ } ++#else + subchnl.cdsc_format = CDROM_MSF; + if (ioctl(cdfile, CDROMSUBCHNL, &subchnl) == -1) + { +@@ -360,6 +470,7 @@ + if (playLooping) + CDAudio_Play (playTrack, true); + } ++#endif + } + } + diff --git a/games/joequake/files/patch-cl_slist.c b/games/joequake/files/patch-cl_slist.c new file mode 100644 index 000000000000..3a1aaa1d55df --- /dev/null +++ b/games/joequake/files/patch-cl_slist.c @@ -0,0 +1,34 @@ +--- cl_slist.c.orig Sat Apr 22 13:34:10 2006 ++++ cl_slist.c Thu May 4 22:03:17 2006 +@@ -21,10 +21,13 @@ + + #include "quakedef.h" + ++char slfile[MAX_OSPATH]; + server_entry_t slist[MAX_SERVER_LIST]; + + void SList_Init (void) + { ++ Q_strncpyz(slfile, com_gamedir, sizeof(slfile)); ++ strncat(slfile, "/servers.lst", sizeof(slfile)-strlen(slfile)-1); + memset (&slist, 0, sizeof(slist)); + } + +@@ -36,7 +39,7 @@ + if (!slist[0].server) + return; + +- if (!(f = fopen("servers.lst", "wt"))) ++ if (!(f = fopen(slfile, "wt"))) + { + Con_DPrintf ("Couldn't open servers.lst\n"); + return; +@@ -115,7 +118,7 @@ + char line[128], *desc, *addr; + FILE *f; + +- if (!(f = fopen("servers.lst", "rt"))) ++ if (!(f = fopen(slfile, "rt"))) + return; + + count = len = 0; diff --git a/games/joequake/files/patch-common.c b/games/joequake/files/patch-common.c new file mode 100644 index 000000000000..cb61c32b334b --- /dev/null +++ b/games/joequake/files/patch-common.c @@ -0,0 +1,47 @@ +--- common.c.orig Sat Dec 3 19:45:26 2005 ++++ common.c Tue Jan 31 15:03:09 2006 +@@ -1634,14 +1634,18 @@ + */ + void COM_InitFilesystem (void) + { ++ char *home; ++ char homepath[MAX_OSPATH]; + int i; + ++ home = getenv("HOME"); ++ + // -basedir <path> + // Overrides the system supplied base directory (under GAMENAME) + if ((i = COM_CheckParm("-basedir")) && i + 1 < com_argc) + Q_strncpyz (com_basedir, com_argv[i+1], sizeof(com_basedir)); + else +- Q_strncpyz (com_basedir, host_parms.basedir, sizeof(com_basedir)); ++ Q_strncpyz (com_basedir, DATADIR, sizeof(com_basedir)); + + for (i=0 ; i < strlen(com_basedir) ; i++) + if (com_basedir[i] == '\\') +@@ -1653,6 +1657,12 @@ + + // start up with GAMENAME by default (id1) + COM_AddGameDirectory (va("%s/"GAMENAME, com_basedir)); ++ ++ if (home != NULL) { ++ Q_snprintfz(homepath, sizeof(homepath), "%s/.joequake/"GAMENAME, home); ++ COM_AddGameDirectory(homepath); ++ } ++ + COM_AddGameDirectory (va("%s/joequake", com_basedir)); + + if (COM_CheckParm("-rogue")) +@@ -1675,4 +1685,11 @@ + // Adds basedir/gamedir as an override game + if ((i = COM_CheckParm("-game")) && i + 1 < com_argc) + COM_AddGameDirectory (va("%s/%s", com_basedir, com_argv[i+1])); ++ ++ if (home != NULL) { ++ Q_snprintfz(homepath, sizeof(homepath), "%s/.joequake/%s", home, com_gamedirname); ++ COM_CreatePath(homepath); ++ Sys_mkdir(homepath); ++ COM_AddGameDirectory(homepath); ++ } + } diff --git a/games/joequake/files/patch-console.c b/games/joequake/files/patch-console.c new file mode 100644 index 000000000000..30c44b957140 --- /dev/null +++ b/games/joequake/files/patch-console.c @@ -0,0 +1,15 @@ +--- console.c.orig Sun Aug 14 09:38:36 2005 ++++ console.c Mon Jan 16 18:54:47 2006 +@@ -205,8 +205,11 @@ + */ + void Con_Init (void) + { ++ char qclog_path[MAX_OSPATH]; ++ ++ snprintf(qclog_path, sizeof(qclog_path), "%s/qconsole.log", com_gamedir); + if (COM_CheckParm("-condebug")) +- qconsole_log = fopen (va("%s/joequake/qconsole.log", com_basedir), "a"); ++ qconsole_log = fopen (qclog_path, "a"); + + con_text = Hunk_AllocName (CON_TEXTSIZE, "context"); + memset (con_text, ' ', CON_TEXTSIZE); diff --git a/games/joequake/files/patch-gl_screen.c b/games/joequake/files/patch-gl_screen.c new file mode 100644 index 000000000000..884de6a5e404 --- /dev/null +++ b/games/joequake/files/patch-gl_screen.c @@ -0,0 +1,31 @@ +--- gl_screen.c.orig Wed Sep 7 11:10:32 2005 ++++ gl_screen.c Mon Jan 16 20:20:05 2006 +@@ -734,8 +734,9 @@ + void SCR_ScreenShot_f (void) + { + int i, success; +- char name[MAX_OSPATH], ext[4], *sshot_dir = "joequake/shots"; ++ char name[MAX_OSPATH], ext[4], sshot_dir[MAX_OSPATH]; + ++ snprintf(sshot_dir, sizeof(sshot_dir), "%s/shots", com_gamedir); + if (Cmd_Argc() == 2) + { + Q_strncpyz (name, Cmd_Argv(1), sizeof(name)); +@@ -753,7 +754,7 @@ + for (i=0 ; i<999 ; i++) + { + Q_snprintfz (name, sizeof(name), "joequake%03i.%s", i, ext); +- if (Sys_FileTime(va("%s/%s/%s", com_basedir, sshot_dir, name)) == -1) ++ if (Sys_FileTime(va("%s/%s", sshot_dir, name)) == -1) + break; // file doesn't exist + } + +@@ -769,7 +770,7 @@ + return; + } + +- success = SCR_ScreenShot (va("%s/%s", sshot_dir, name)); ++ success = SCR_ScreenShot(va("%s/%s", sshot_dir, name)); + Con_Printf ("%s %s\n", success ? "Wrote" : "Couldn't write", name); + } + diff --git a/games/joequake/files/patch-host.c b/games/joequake/files/patch-host.c new file mode 100644 index 000000000000..3bc894cfa4c0 --- /dev/null +++ b/games/joequake/files/patch-host.c @@ -0,0 +1,20 @@ +--- host.c.orig Wed Oct 26 10:21:22 2005 ++++ host.c Mon Jan 16 18:45:46 2006 +@@ -969,6 +969,7 @@ + */ + void Host_Shutdown (void) + { ++ char cmdhist_path[MAX_OSPATH]; + int i, j; + FILE *cmdhist; + cmdhistory_t cmdhistory; +@@ -989,7 +990,8 @@ + Host_WriteConfiguration (); + IPLog_WriteLog (); + +- if (con_initialized && (cmdhist = fopen("joequake/cmdhist.dat", "wb"))) ++ snprintf(cmdhist_path, sizeof(cmdhist_path), "%s/cmdhist.dat", com_gamedir); ++ if (con_initialized && (cmdhist = fopen(cmdhist_path, "wb"))) + { + for (i=0 ; i<64 ; i++) + for (j=0 ; j<MAXCMDLINE ; j++) diff --git a/games/joequake/files/patch-image.c b/games/joequake/files/patch-image.c new file mode 100644 index 000000000000..76a95bc5361d --- /dev/null +++ b/games/joequake/files/patch-image.c @@ -0,0 +1,46 @@ +--- image.c.orig Sun Oct 16 21:47:00 2005 ++++ image.c Mon Jan 16 20:18:54 2006 +@@ -422,6 +422,7 @@ + buffer[i+2] = temp; + } + ++ COM_CreatePath(filename); + if (!COM_WriteFile(filename, buffer, size + 18)) + retval = false; + free (buffer); +@@ -585,17 +586,14 @@ + Image_WritePNG + ============= + */ +-int Image_WritePNG (char *filename, int compression, byte *pixels, int width, int height) ++int Image_WritePNG (char *name, int compression, byte *pixels, int width, int height) + { +- char name[MAX_OSPATH]; + int i, bpp = 3, pngformat, width_sign; + FILE *fp; + png_structp png_ptr; + png_infop info_ptr; + png_byte **rowpointers; + +- Q_snprintfz (name, MAX_OSPATH, "%s/%s", com_basedir, filename); +- + width_sign = (width < 0) ? -1 : 1; + width = abs(width); + +@@ -816,15 +814,12 @@ + Image_WriteJPEG + ============= + */ +-int Image_WriteJPEG (char *filename, int compression, byte *pixels, int width, int height) ++int Image_WriteJPEG (char *name, int compression, byte *pixels, int width, int height) + { +- char name[MAX_OSPATH]; + byte *scanline; + FILE *fout; + struct jpeg_compress_struct cinfo; + struct jpeg_error_mgr jerr; +- +- Q_snprintfz (name, MAX_OSPATH, "%s/%s", com_basedir, filename); + + if (!(fout = fopen(name, "wb"))) + { diff --git a/games/joequake/files/patch-keys.c b/games/joequake/files/patch-keys.c new file mode 100644 index 000000000000..f4476c489606 --- /dev/null +++ b/games/joequake/files/patch-keys.c @@ -0,0 +1,17 @@ +--- keys.c.orig Fri Oct 21 18:30:06 2005 ++++ keys.c Mon Jan 16 18:47:12 2006 +@@ -783,11 +783,13 @@ + void Key_Init (void) + { + // joe: added stuff from [sons]Quake ++ char cmdhist_path[MAX_OSPATH]; + int i, j; + FILE *cmdhist; + cmdhistory_t cmdhistory; + +- if ((cmdhist = fopen("joequake/cmdhist.dat", "rb"))) ++ snprintf(cmdhist_path, sizeof(cmdhist_path), "%s/cmdhist.dat", com_gamedir); ++ if ((cmdhist = fopen(cmdhist_path, "rb"))) + { + fread (&cmdhistory, sizeof(cmdhistory_t), 1, cmdhist); + fclose (cmdhist); diff --git a/games/joequake/files/patch-net.h b/games/joequake/files/patch-net.h new file mode 100644 index 000000000000..0a10eace4110 --- /dev/null +++ b/games/joequake/files/patch-net.h @@ -0,0 +1,11 @@ +--- net.h.orig Thu Jul 21 12:00:04 2005 ++++ net.h Mon Dec 5 21:11:16 2005 +@@ -258,7 +258,7 @@ + extern int hostCacheCount; + extern hostcache_t hostcache[HOSTCACHESIZE]; + +-#if !defined(_WIN32 ) && !defined (__linux__) ++#if !defined(_WIN32 ) && !defined (__linux__) && !defined(__FreeBSD__) + #ifndef htonl + extern unsigned long htonl (unsigned long hostlong); + #endif diff --git a/games/joequake/files/patch-r_part.c b/games/joequake/files/patch-r_part.c new file mode 100644 index 000000000000..8c898863ca11 --- /dev/null +++ b/games/joequake/files/patch-r_part.c @@ -0,0 +1,11 @@ +--- r_part.c.orig Fri Aug 26 15:02:44 2005 ++++ r_part.c Sun Jan 15 02:00:02 2006 +@@ -59,7 +59,7 @@ + + vec3_t r_pright, r_pup, r_ppn; + +-#if !id386 ++#if !id386 && !defined(GLQUAKE) + + /* + ============== diff --git a/games/joequake/files/patch-r_screen.c b/games/joequake/files/patch-r_screen.c new file mode 100644 index 000000000000..562ec987be6e --- /dev/null +++ b/games/joequake/files/patch-r_screen.c @@ -0,0 +1,22 @@ +--- r_screen.c.orig Sat Oct 15 11:42:06 2005 ++++ r_screen.c Mon Jan 16 20:20:08 2006 +@@ -556,8 +556,9 @@ + void SCR_ScreenShot_f (void) + { + int i, success; +- char name[MAX_OSPATH], ext[4], *sshot_dir = "joequake/shots"; ++ char name[MAX_OSPATH], ext[4], sshot_dir[MAX_OSPATH]; + ++ snprintf(sshot_dir, sizeof(sshot_dir), "%s/shots", com_gamedir); + if (Cmd_Argc() == 2) + { + Q_strncpyz (name, Cmd_Argv(1), sizeof(name)); +@@ -573,7 +574,7 @@ + for (i=0 ; i<999 ; i++) + { + Q_snprintfz (name, sizeof(name), "joequake%03i.%s", i, ext); +- if (Sys_FileTime(va("%s/%s/%s", com_basedir, sshot_dir, name)) == -1) ++ if (Sys_FileTime(va("%s/%s", sshot_dir, name)) == -1) + break; // file doesn't exist + } + diff --git a/games/joequake/files/patch-snd_linux.c b/games/joequake/files/patch-snd_linux.c new file mode 100644 index 000000000000..34aaa04641b0 --- /dev/null +++ b/games/joequake/files/patch-snd_linux.c @@ -0,0 +1,84 @@ +--- snd_linux.c.orig Fri Sep 10 12:22:32 2004 ++++ snd_linux.c Mon Dec 5 20:05:40 2005 +@@ -25,7 +25,11 @@ + #include <sys/mman.h> + #include <sys/shm.h> + #include <sys/wait.h> ++#ifdef __FreeBSD__ ++#include <sys/soundcard.h> ++#else + #include <linux/soundcard.h> ++#endif + #include <stdio.h> + #include "quakedef.h" + +@@ -74,7 +78,8 @@ + close (audio_fd); + return 0; + } +- ++//QuDos- ++/* //Moved later thx Quake3 + if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info) == -1) + { + perror ("GETOSPACE"); +@@ -82,7 +87,8 @@ + close (audio_fd); + return 0; + } +- ++*/ ++//-QuDos + shm = &sn; + shm->splitbuffer = 0; + +@@ -125,7 +131,8 @@ + shm->channels = 2; + else + shm->channels = 2; +- ++//QuDos- ++/* //Call mmap later thx Quake3 + shm->samples = info.fragstotal * info.fragsize / (shm->samplebits / 8); + shm->submission_chunk = 1; + +@@ -138,6 +145,8 @@ + close (audio_fd); + return 0; + } ++*/ ++//-QuDos + + tmp = 0; + if (shm->channels == 2) +@@ -196,6 +205,30 @@ + close (audio_fd); + return 0; + } ++ ++//QuDos- ++//Moved from above thx Quake3 ++ if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info) == -1) ++ { ++ perror ("GETOSPACE"); ++ Con_Printf ("Um, can't do GETOSPACE?\n"); ++ close (audio_fd); ++ return 0; ++ } ++ shm->samples = info.fragstotal * info.fragsize / (shm->samplebits / 8); ++ shm->submission_chunk = 1; ++ ++// memory map the dma buffer ++ shm->buffer = (unsigned char *)mmap (NULL, info.fragstotal * info.fragsize, PROT_WRITE, MAP_FILE|MAP_SHARED, audio_fd, 0); ++ if (!shm->buffer || shm->buffer == (unsigned char *)-1) ++ { ++ perror ("/dev/dsp"); ++ Con_Printf ("Could not mmap /dev/dsp\n"); ++ close (audio_fd); ++ return 0; ++ } ++//end Quake3 sound fix by calling mmap later ++//-QuDos + + // toggle the trigger & start her up + tmp = 0; diff --git a/games/joequake/files/patch-vid_glx.c b/games/joequake/files/patch-vid_glx.c new file mode 100644 index 000000000000..76db8a6a6a1c --- /dev/null +++ b/games/joequake/files/patch-vid_glx.c @@ -0,0 +1,12 @@ +--- vid_glx.c.orig Sun Oct 16 17:40:58 2005 ++++ vid_glx.c Mon Dec 5 21:10:31 2005 +@@ -22,7 +22,9 @@ + #include <termios.h> + #include <sys/ioctl.h> + #include <sys/stat.h> ++#ifdef __linux__ + #include <sys/vt.h> ++#endif + #include <stdarg.h> + #include <stdio.h> + #include <signal.h> diff --git a/games/joequake/files/patch-vid_x11.c b/games/joequake/files/patch-vid_x11.c new file mode 100644 index 000000000000..367e3c0b992e --- /dev/null +++ b/games/joequake/files/patch-vid_x11.c @@ -0,0 +1,16 @@ +--- vid_x11.c.orig Mon Oct 17 10:08:06 2005 ++++ vid_x11.c Sun Jan 15 01:55:33 2006 +@@ -1052,3 +1052,13 @@ + void VID_UnlockBuffer (void) + { + } ++ ++#if !id386 ++void R_Surf8Patch () ++{ ++} ++ ++void R_SurfacePatch (void) ++{ ++} ++#endif diff --git a/games/joequake/pkg-descr b/games/joequake/pkg-descr new file mode 100644 index 000000000000..73546d3af7ab --- /dev/null +++ b/games/joequake/pkg-descr @@ -0,0 +1,6 @@ +JoeQuake is an improved NQ engine with plenty of ZQuake and FuhQuake graphical +effects included. JoeQuake's main aim is to provide pleasant demo watching for +.dem files. JoeQuake also supports better graphical quality including 32bit +textures, colored lights, smoother animations, etc. + +WWW: http://runecentral.com/joequake/ diff --git a/games/joequake/pkg-message b/games/joequake/pkg-message new file mode 100644 index 000000000000..48891a839637 --- /dev/null +++ b/games/joequake/pkg-message @@ -0,0 +1,19 @@ +============================================================================== + +JoeQuake has been installed. + +To start it in full-screen mode you can run it with the "-fullscreen" +parameter. + +If you have mouse problems you can try running it with the "-nomdga" +parameter (this will make the mouse work fine when the DGA X11 extension is +disabled). + +If you hace sound problems try running it with the parameter +"-sndspeed <speed>", where "<speed>" could be 22050 or 44100 for example. + +If you enable water alpha ("r_wateralpha" or from the menu), set "r_novis" to +"1" or you will have problems with water/lava. Note that the value of +"r_novis" will be saved in the configuration file. + +============================================================================== diff --git a/games/joequake/pkg-plist b/games/joequake/pkg-plist new file mode 100644 index 000000000000..1ad03156949d --- /dev/null +++ b/games/joequake/pkg-plist @@ -0,0 +1,171 @@ +%%GLX%%bin/joequake-glx +%%X11%%bin/joequake-x11 +%%DATADIR%%/joequake/pak0.pak +%%HUD%%%%DATADIR%%/joequake/textures/wad/face_inv2.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face_invis.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face_invul2.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p1.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p2.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p3.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p4.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p5.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face_quad.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face1.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face2.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face3.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face4.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/face5.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_cells.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_nails.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_rocket.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_shells.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil1.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil2.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil3.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil4.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_0.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_1.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_2.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_3.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_4.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_5.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_6.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_7.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_8.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_9.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_minus.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/backtile.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/disc.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/ibar.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/NET.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_0.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_1.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_2.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_3.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_4.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_5.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_6.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_7.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_8.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_9.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_colon.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_minus.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/num_slash.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_lightng.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_nailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_rlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_shotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_snailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_srlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_sshotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_lightng.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_nailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_rlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_shotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_snailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_srlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_sshotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_lightng.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_nailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_rlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_shotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_snailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_srlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_sshotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_lightng.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_nailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_rlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_shotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_snailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_srlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_sshotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_lightng.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_nailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_rlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_shotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_snailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_srlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_sshotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_lightng.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_nailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_rlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_shotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_snailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_srlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_sshotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_lightng.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_nailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_rlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_shotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_snailgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_srlaunch.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_sshotgun.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/RAM.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_invis.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_invuln.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_key1.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_key2.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_quad.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_suit.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sbar.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/scorebar.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor1.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor2.png +%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor3.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_prox_gren.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_prox_gren.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_gren_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_gren_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_laser.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_laser.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_mjolnir.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_mjolnir.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_lightng.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_lightng.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_rlaunch.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_rlaunch.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/sb_key2.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_laser.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/sb_key1.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_laser.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_laser.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_laser.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_laser.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_mjolnir.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_mjolnir.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_mjolnir.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_mjolnir.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_mjolnir.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_gren_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_gren_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_gren_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_gren_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_gren_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_lightng.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_lightng.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_lightng.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_lightng.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_lightng.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_prox.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_prox_gren.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_prox_gren.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_prox_gren.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_prox_gren.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_prox_gren.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_rlaunch.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_rlaunch.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_rlaunch.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_rlaunch.png +%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_rlaunch.png +%%HUD_DIR%%@dirrm %%DATADIR%%/joequake/textures/wad +%%HUD_DIR%%@dirrm %%DATADIR%%/joequake/textures +%%PORTDOCS%%%%DOCSDIR%%/joequake.txt +%%PORTDOCS%%%%DOCSDIR%%/whatsnew.txt +@dirrm %%DATADIR%%/joequake +@dirrm %%DOCSDIR%% |