From alejandro@varnet.biz Tue Jan 17 01:02:43 2006 Return-Path: Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EA26E16A420 for ; Tue, 17 Jan 2006 01:02:43 +0000 (GMT) (envelope-from alejandro@varnet.biz) Received: from relay00.pair.com (relay00.pair.com [209.68.5.9]) by mx1.FreeBSD.org (Postfix) with SMTP id 48EB743D46 for ; Tue, 17 Jan 2006 01:02:42 +0000 (GMT) (envelope-from alejandro@varnet.biz) Received: (qmail 29873 invoked from network); 17 Jan 2006 01:02:39 -0000 Received: from unknown (HELO phobos.mars.bsd) (unknown) by unknown with SMTP; 17 Jan 2006 01:02:39 -0000 Message-Id: <1137459761.0@phobos.mars.bsd> Date: Mon, 16 Jan 2006 22:02:41 -0300 From: "Alejandro Pulver" To: "FreeBSD gnats submit" Subject: [NEW PORT] games/joequake: Improved NQ engine with ZQuake and FuhQuake graphical effects X-Send-Pr-Version: gtk-send-pr 0.4.6 X-GNATS-Notify: >Number: 91890 >Category: ports >Synopsis: [NEW PORT] games/joequake: Improved NQ engine with ZQuake and FuhQuake graphical effects >Confidential: no >Severity: non-critical >Priority: low >Responsible: alepulver >State: closed >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Jan 17 01:10:03 GMT 2006 >Closed-Date: Sun May 07 20:11:10 GMT 2006 >Last-Modified: Sun May 07 20:11:10 GMT 2006 >Originator: Alejandro Pulver >Release: FreeBSD 5.4-RELEASE i386 >Organization: >Environment: System: FreeBSD 5.4-RELEASE #0: Sat May 21 12:14:47 ART 2005 root@ale.varnet.bsd:/usr/src/sys/i386/compile/ATHLON-ALE >Description: >How-To-Repeat: >Fix: --- joequake.shar begins here --- # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # joequake # joequake/Makefile # joequake/files # joequake/files/patch-cd_linux.c # joequake/files/patch-Makefile.linux # joequake/files/patch-net.h # joequake/files/patch-r_part.c # joequake/files/patch-snd_linux.c # joequake/files/patch-vid_glx.c # joequake/files/patch-common.c # joequake/files/patch-slist.c # joequake/files/patch-vid_x11.c # joequake/files/patch-host.c # joequake/files/patch-keys.c # joequake/files/patch-console.c # joequake/files/patch-gl_screen.c # joequake/files/patch-r_screen.c # joequake/files/patch-image.c # joequake/pkg-descr # joequake/pkg-message # joequake/distinfo # joequake/pkg-plist # echo c - joequake mkdir -p joequake > /dev/null 2>&1 echo x - joequake/Makefile sed 's/^X//' >joequake/Makefile << 'END-of-joequake/Makefile' X# New ports collection makefile for: joequake X# Date created: 16 Jan 2006 X# Whom: Alejandro Pulver X# X# $FreeBSD$ X# X XPORTNAME= joequake XPORTVERSION= 0.15b1189 XCATEGORIES= games XMASTER_SITES= http://runecentral.com/joequake/ XDISTNAME= ${PORTNAME}-v${PORTVERSION}-source XDISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ X ${PORTNAME}-v0.15b1146-linux${EXTRACT_SUFX} XDIST_SUBDIR= ${PORTNAME} X XMAINTAINER= alejandro@varnet.biz XCOMMENT= Improved NQ engine with ZQuake and FuhQuake graphical effects X XLIB_DEPENDS= png.5:${PORTSDIR}/graphics/png X XUSE_GMAKE= yes XUSE_ZIP= yes XNO_WRKSUBDIR= yes X XMAKEFILE= Makefile.linux X XOPTIONS= GLX "Build GLX client" on \ X OPTIMIZED_CFLAGS "Enable compilation optimizations" on \ X X11 "Build X11 client" on \ X X86_ASM "Enable x86 assembly code" on X XDATADIR= ${Q1DIR} XMAKE_ENV= DATADIR="${DATADIR}" X X.include "${.CURDIR}/../quake-data/Makefile.include" X X.include X X.if !defined(WITH_GLX) && !defined(WITH_X11) XIGNORE= Please select at least one client X.endif X X.if defined(WITH_GLX) XUSE_GL= yes XLIB_DEPENDS+= jpeg.9:${PORTSDIR}/graphics/jpeg XALL_TARGET+= glx XPLIST_SUB+= GLX="" X.else XPLIST_SUB+= GLX="@comment " X.endif X X.for f in OPTIMIZED_CFLAGS X86_ASM X. if defined(WITH_${f}) XMAKE_ENV+= USE_${f}=YES X. else XMAKE_ENV+= USE_${f}=NO X. endif X.endfor X X.if defined(WITH_X11) XUSE_XLIB= yes XALL_TARGET+= x11 XPLIST_SUB+= X11="" X.else XPLIST_SUB+= X11="@comment " X.endif X Xdo-install: X ${MKDIR} ${DATADIR}/${PORTNAME} X ${INSTALL_DATA} ${WRKSRC}/${PORTNAME}/pak0.pak ${DATADIR}/${PORTNAME} X.if defined(WITH_GLX) X ${INSTALL_PROGRAM} ${WRKSRC}/release_glx/joequake-gl.glx \ X ${PREFIX}/bin/joequake-glx X.endif X.if defined(WITH_X11) X ${INSTALL_PROGRAM} ${WRKSRC}/release_x11/joequake.x11 \ X ${PREFIX}/bin/joequake-x11 X.endif X Xpost-install: X @${ECHO_CMD} X @${CAT} ${PKGMESSAGE} X @${ECHO_CMD} X X.include END-of-joequake/Makefile echo c - joequake/files mkdir -p joequake/files > /dev/null 2>&1 echo x - joequake/files/patch-cd_linux.c sed 's/^X//' >joequake/files/patch-cd_linux.c << 'END-of-joequake/files/patch-cd_linux.c' X--- cd_linux.c.orig Sun Aug 14 10:09:04 2005 X+++ cd_linux.c Wed Dec 7 17:22:17 2005 X@@ -31,7 +31,11 @@ X #include X #include X X+#ifdef __FreeBSD__ X+#include X+#else X #include X+#endif X X #include "quakedef.h" X X@@ -54,8 +58,13 @@ X if (cdfile == -1 || !enabled) X return; // no cd init'd X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCEJECT) == -1) X+ Con_DPrintf ("ioctl cdioceject failed\n"); X+#else X if (ioctl(cdfile, CDROMEJECT) == -1) X Con_DPrintf ("ioctl cdromeject failed\n"); X+#endif X } X X static void CDAudio_CloseDoor (void) X@@ -63,38 +72,67 @@ X if (cdfile == -1 || !enabled) X return; // no cd init'd X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCCLOSE) == -1) X+ Con_DPrintf ("ioctl cdiocclose failed\n"); X+#else X if (ioctl(cdfile, CDROMCLOSETRAY) == -1) X Con_DPrintf ("ioctl cdromclosetray failed\n"); X+#endif X } X X static int CDAudio_GetAudioDiskInfo (void) X { X+#ifdef __FreeBSD__ X+ struct ioc_toc_header tochdr; X+#else X struct cdrom_tochdr tochdr; X+#endif X X cdValid = false; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOREADTOCHEADER, &tochdr) == -1) X+ { X+ Con_DPrintf ("ioctl cdioreadtocheader failed\n"); X+#else X if (ioctl(cdfile, CDROMREADTOCHDR, &tochdr) == -1) X { X Con_DPrintf ("ioctl cdromreadtochdr failed\n"); X+#endif X return -1; X } X X+#ifdef __FreeBSD__ X+ if (tochdr.starting_track < 1) X+#else X if (tochdr.cdth_trk0 < 1) X+#endif X { X Con_DPrintf ("CDAudio: no music tracks\n"); X return -1; X } X X cdValid = true; X+#ifdef __FreeBSD__ X+ maxTrack = tochdr.ending_track; X+#else X maxTrack = tochdr.cdth_trk1; X+#endif X X return 0; X } X X void CDAudio_Play (byte track, qboolean looping) X { X+#ifdef __FreeBSD__ X+ struct ioc_read_toc_entry entry; X+ struct cd_toc_entry toc_buffer; X+ struct ioc_play_track ti; X+#else X struct cdrom_tocentry entry; X struct cdrom_ti ti; X+#endif X X if (cdfile == -1 || !enabled) X return; X@@ -114,6 +152,21 @@ X return; X } X X+#ifdef __FreeBSD__ X+ #define CDROM_DATA_TRACK 4 X+ bzero((char *)&toc_buffer, sizeof(toc_buffer)); X+ entry.data_len = sizeof(toc_buffer); X+ entry.data = &toc_buffer; X+ // don't try to play a non-audio track X+ entry.starting_track = track; X+ entry.address_format = CD_MSF_FORMAT; X+ if ( ioctl(cdfile, CDIOREADTOCENTRYS, &entry) == -1 ) X+ { X+ Con_DPrintf("ioctl cdromreadtocentry failed\n"); X+ return; X+ } X+ if (toc_buffer.control == CDROM_DATA_TRACK) X+#else X // don't try to play a non-audio track X entry.cdte_track = track; X entry.cdte_format = CDROM_MSF; X@@ -123,6 +176,7 @@ X return; X } X if (entry.cdte_ctrl == CDROM_DATA_TRACK) X+#endif X { X Con_Printf ("CDAudio: track %i is not audio\n", track); X return; X@@ -135,19 +189,37 @@ X CDAudio_Stop (); X } X X+#ifdef __FreeBSD__ X+ ti.start_track = track; X+ ti.end_track = track; X+ ti.start_index = 1; X+ ti.end_index = 99; X+#else X ti.cdti_trk0 = track; X ti.cdti_trk1 = track; X ti.cdti_ind0 = 1; X ti.cdti_ind1 = 99; X+#endif X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCPLAYTRACKS, &ti) == -1) X+ { X+ Con_DPrintf ("ioctl cdiocplaytracks failed\n"); X+#else X if (ioctl(cdfile, CDROMPLAYTRKIND, &ti) == -1) X { X Con_DPrintf ("ioctl cdromplaytrkind failed\n"); X+#endif X return; X } X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCRESUME) == -1) X+ Con_DPrintf ("ioctl cdiocresume failed\n"); X+#else X if (ioctl(cdfile, CDROMRESUME) == -1) X Con_DPrintf ("ioctl cdromresume failed\n"); X+#endif X X playLooping = looping; X playTrack = track; X@@ -165,8 +237,13 @@ X if (!playing) X return; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCSTOP) == -1) X+ Con_DPrintf ("ioctl cdiocstop failed (%d)\n", errno); X+#else X if (ioctl(cdfile, CDROMSTOP) == -1) X Con_DPrintf ("ioctl cdromstop failed (%d)\n", errno); X+#endif X X wasPlaying = false; X playing = false; X@@ -180,8 +257,13 @@ X if (!playing) X return; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCPAUSE) == -1) X+ Con_DPrintf ("ioctl cdiocpause failed\n"); X+#else X if (ioctl(cdfile, CDROMPAUSE) == -1) X Con_DPrintf ("ioctl cdrompause failed\n"); X+#endif X X wasPlaying = playing; X playing = false; X@@ -197,9 +279,14 @@ X X if (!wasPlaying) X return; X- X+ X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCRESUME) == -1) X+ Con_DPrintf ("ioctl cdiocresume failed\n"); X+#else X if (ioctl(cdfile, CDROMRESUME) == -1) X Con_DPrintf ("ioctl cdromresume failed\n"); X+#endif X playing = true; X } X X@@ -322,7 +409,12 @@ X X void CDAudio_Update (void) X { X+#ifdef __FreeBSD__ X+ struct ioc_read_subchannel subchnl; X+ struct cd_sub_channel_info data; X+#else X struct cdrom_subchnl subchnl; X+#endif X static time_t lastchk; X X if (!enabled) X@@ -347,6 +439,24 @@ X if (playing && lastchk < time(NULL)) X { X lastchk = time(NULL) + 2; // two seconds between chks X+#if defined(__FreeBSD__) X+ subchnl.address_format = CD_MSF_FORMAT; X+ subchnl.data_format = CD_CURRENT_POSITION; X+ subchnl.data_len = sizeof(data); X+ subchnl.track = playTrack; X+ subchnl.data = &data; X+ if (ioctl(cdfile, CDIOCREADSUBCHANNEL, &subchnl) == -1 ) { X+ Con_DPrintf("ioctl cdiocreadsubchannel failed\n"); X+ playing = false; X+ return; X+ } X+ if (subchnl.data->header.audio_status != CD_AS_PLAY_IN_PROGRESS && X+ subchnl.data->header.audio_status != CD_AS_PLAY_PAUSED) { X+ playing = false; X+ if (playLooping) X+ CDAudio_Play(playTrack, true); X+ } X+#else X subchnl.cdsc_format = CDROM_MSF; X if (ioctl(cdfile, CDROMSUBCHNL, &subchnl) == -1) X { X@@ -360,6 +470,7 @@ X if (playLooping) X CDAudio_Play (playTrack, true); X } X+#endif X } X } X END-of-joequake/files/patch-cd_linux.c echo x - joequake/files/patch-Makefile.linux sed 's/^X//' >joequake/files/patch-Makefile.linux << 'END-of-joequake/files/patch-Makefile.linux' X--- Makefile.linux.orig Wed Sep 7 20:11:50 2005 X+++ Makefile.linux Sun Jan 15 01:54:54 2006 X@@ -4,14 +4,25 @@ X # by Slawomir Mazurek X # X X-CC := gcc X-_E := @ X+# this nice line comes from the linux kernel makefile X+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/) X+OSTYPE := $(shell uname -s) X+ X+CC ?= gcc X+#_E := @ X+LOCALBASE ?= /usr/local X+X11BASE ?= /usr/X11R6 X+USE_OPTIMIZE ?= YES X+ X+ifeq ($(ARCH),i386) X+USE_X86_ASM ?= YES X+else X+USE_X86_ASM ?= NO X+endif X X ################ X X-default_target: glx X- X-all: glx x11 svga X+all: X X ################################ X # Directories for object files # X@@ -43,11 +54,12 @@ X $(GLX_DIR) $(X11_DIR) $(SVGA_DIR): X $(MKDIR) X X-CFLAGS += -Did386 -funsigned-char -O6 \ X- -D__linux__ -march=pentiumpro -Wall \ X- -funroll-loops -fomit-frame-pointer -DNDEBUG \ X- -ffast-math -fno-strength-reduce -fexpensive-optimizations \ X- -I/usr/include X+CFLAGS += -DNDEBUG -DDATADIR='"$(DATADIR)"' X+ X+ifeq ($(strip $(USE_OPTIMIZE)),YES) X+CFLAGS += -O1 -funsigned-char -funroll-loops -fomit-frame-pointer \ X+ -ffast-math -fno-strength-reduce -fexpensive-optimizations X+endif X X LDFLAGS := -lm X X@@ -75,19 +87,25 @@ X image version security iplog \ X slist X X+ifeq ($(strip $(USE_X86_ASM)),YES) X GLX_S_FILES := \ X math snd_mixa sys_x86 X+endif X X GLX_C_OBJS := $(addprefix $(GLX_DIR)/, $(addsuffix .o, $(GLX_C_FILES))) X GLX_S_OBJS := $(addprefix $(GLX_DIR)/, $(addsuffix .o, $(GLX_S_FILES))) X X GLX_CFLAGS := $(CFLAGS) \ X- -DGLQUAKE -I/usr/X11R6/include X+ -DGLQUAKE -I$(X11BASE)/include X+ X+ifeq ($(strip $(USE_X86_ASM)),YES) X+GLX_CFLAGS += -Did386 X+endif X X GLX_LDFLAGS := $(LDFLAGS) \ X- -lGL -L/usr/X11R6/lib -lX11 \ X- -lXext -lXxf86dga -lXxf86vm \ X- -lpng -ljpeg X+ -L$(X11BASE)/lib -lGL -lX11 \ X+ -lXext -lXxf86dga -lXxf86vm \ X+ -L$(LOCALBASE)/lib -lpng -ljpeg X X glx: _DIR := $(GLX_DIR) X glx: _OBJS := $(GLX_C_OBJS) $(GLX_S_OBJS) X@@ -138,27 +156,37 @@ X snd_linux image version security \ X iplog slist X X+ifeq ($(strip $(USE_X86_ASM)),YES) X X11_S_FILES := \ X d_copy d_draw d_draw16 d_parta \ X d_polysa d_scana d_spr8 d_varsa \ X math r_aclipa r_aliasa r_drawa \ X r_edgea r_varsa snd_mixa surf8 \ X sys_x86 X+endif X X X11_C_OBJS := $(addprefix $(X11_DIR)/, $(addsuffix .o, $(X11_C_FILES))) X X11_S_OBJS := $(addprefix $(X11_DIR)/, $(addsuffix .o, $(X11_S_FILES))) X X-X11_CFLAGS := $(CFLAGS) X+X11_CFLAGS := $(CFLAGS) -I$(X11BASE)/include X+ X+ifeq ($(strip $(USE_X86_ASM)),YES) X+X11_CFLAGS += -Did386 X+endif X X X11_LDFLAGS := $(LDFLAGS) \ X- -L/usr/X11R6/lib -lX11 -lXext \ X- -lpng X+ -L$(X11BASE)/lib -lX11 -lXext \ X+ -L$(LOCALBASE)/lib -lpng X X+ifeq ($(ARCH),i386) X x11: _DIR := $(X11_DIR) X x11: _OBJS := $(X11_C_OBJS) $(X11_S_OBJS) X x11: _LDFLAGS := $(X11_LDFLAGS) X x11: _CFLAGS := $(X11_CFLAGS) X x11: $(X11_TARGET) X+else X+x11: X+endif X X $(X11_TARGET): $(X11_DIR) $(X11_C_OBJS) $(X11_S_OBJS) X $(BUILD) X@@ -213,17 +241,25 @@ X SVGA_C_OBJS := $(addprefix $(SVGA_DIR)/, $(addsuffix .o, $(SVGA_C_FILES))) X SVGA_S_OBJS := $(addprefix $(SVGA_DIR)/, $(addsuffix .o, $(SVGA_S_FILES))) X X-SVGA_CFLAGS := $(CFLAGS) X+SVGA_CFLAGS := $(CFLAGS) -Did386 -I$(LOCALBASE)/include X X SVGA_LDFLAGS := $(LDFLAGS) \ X- -L/usr/X11R6/lib -lX11 -lpthread \ X- -lvga -lpng X+ -L$(X11BASE)/lib -lX11 -lpthread \ X+ -L$(LOCALBASE)/lib -lvga -lpng X X+ifeq ($(OSTYPE),Linux) X+ ifeq ($(ARCH),i386) X svga: _DIR := $(SVGA_DIR) X svga: _OBJS := $(SVGA_C_OBJS) $(SVGA_S_OBJS) X svga: _LDFLAGS := $(SVGA_LDFLAGS) X svga: _CFLAGS := $(SVGA_CFLAGS) X svga: $(SVGA_TARGET) X+ else X+svga: X+ endif X+else X+svga: X+endif X X $(SVGA_TARGET): $(SVGA_DIR) $(SVGA_C_OBJS) $(SVGA_S_OBJS) X $(BUILD) END-of-joequake/files/patch-Makefile.linux echo x - joequake/files/patch-net.h sed 's/^X//' >joequake/files/patch-net.h << 'END-of-joequake/files/patch-net.h' X--- net.h.orig Thu Jul 21 12:00:04 2005 X+++ net.h Mon Dec 5 21:11:16 2005 X@@ -258,7 +258,7 @@ X extern int hostCacheCount; X extern hostcache_t hostcache[HOSTCACHESIZE]; X X-#if !defined(_WIN32 ) && !defined (__linux__) X+#if !defined(_WIN32 ) && !defined (__linux__) && !defined(__FreeBSD__) X #ifndef htonl X extern unsigned long htonl (unsigned long hostlong); X #endif END-of-joequake/files/patch-net.h echo x - joequake/files/patch-r_part.c sed 's/^X//' >joequake/files/patch-r_part.c << 'END-of-joequake/files/patch-r_part.c' X--- r_part.c.orig Fri Aug 26 15:02:44 2005 X+++ r_part.c Sun Jan 15 02:00:02 2006 X@@ -59,7 +59,7 @@ X X vec3_t r_pright, r_pup, r_ppn; X X-#if !id386 X+#if !id386 && !defined(GLQUAKE) X X /* X ============== END-of-joequake/files/patch-r_part.c echo x - joequake/files/patch-snd_linux.c sed 's/^X//' >joequake/files/patch-snd_linux.c << 'END-of-joequake/files/patch-snd_linux.c' X--- snd_linux.c.orig Fri Sep 10 12:22:32 2004 X+++ snd_linux.c Mon Dec 5 20:05:40 2005 X@@ -25,7 +25,11 @@ X #include X #include X #include X+#ifdef __FreeBSD__ X+#include X+#else X #include X+#endif X #include X #include "quakedef.h" X X@@ -74,7 +78,8 @@ X close (audio_fd); X return 0; X } X- X+//QuDos- X+/* //Moved later thx Quake3 X if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info) == -1) X { X perror ("GETOSPACE"); X@@ -82,7 +87,8 @@ X close (audio_fd); X return 0; X } X- X+*/ X+//-QuDos X shm = &sn; X shm->splitbuffer = 0; X X@@ -125,7 +131,8 @@ X shm->channels = 2; X else X shm->channels = 2; X- X+//QuDos- X+/* //Call mmap later thx Quake3 X shm->samples = info.fragstotal * info.fragsize / (shm->samplebits / 8); X shm->submission_chunk = 1; X X@@ -138,6 +145,8 @@ X close (audio_fd); X return 0; X } X+*/ X+//-QuDos X X tmp = 0; X if (shm->channels == 2) X@@ -196,6 +205,30 @@ X close (audio_fd); X return 0; X } X+ X+//QuDos- X+//Moved from above thx Quake3 X+ if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info) == -1) X+ { X+ perror ("GETOSPACE"); X+ Con_Printf ("Um, can't do GETOSPACE?\n"); X+ close (audio_fd); X+ return 0; X+ } X+ shm->samples = info.fragstotal * info.fragsize / (shm->samplebits / 8); X+ shm->submission_chunk = 1; X+ X+// memory map the dma buffer X+ shm->buffer = (unsigned char *)mmap (NULL, info.fragstotal * info.fragsize, PROT_WRITE, MAP_FILE|MAP_SHARED, audio_fd, 0); X+ if (!shm->buffer || shm->buffer == (unsigned char *)-1) X+ { X+ perror ("/dev/dsp"); X+ Con_Printf ("Could not mmap /dev/dsp\n"); X+ close (audio_fd); X+ return 0; X+ } X+//end Quake3 sound fix by calling mmap later X+//-QuDos X X // toggle the trigger & start her up X tmp = 0; END-of-joequake/files/patch-snd_linux.c echo x - joequake/files/patch-vid_glx.c sed 's/^X//' >joequake/files/patch-vid_glx.c << 'END-of-joequake/files/patch-vid_glx.c' X--- vid_glx.c.orig Sun Oct 16 17:40:58 2005 X+++ vid_glx.c Mon Dec 5 21:10:31 2005 X@@ -22,7 +22,9 @@ X #include X #include X #include X+#ifdef __linux__ X #include X+#endif X #include X #include X #include END-of-joequake/files/patch-vid_glx.c echo x - joequake/files/patch-common.c sed 's/^X//' >joequake/files/patch-common.c << 'END-of-joequake/files/patch-common.c' X--- common.c.orig Sat Dec 3 19:45:26 2005 X+++ common.c Mon Jan 16 20:57:32 2006 X@@ -1634,6 +1634,8 @@ X */ X void COM_InitFilesystem (void) X { X+ char *home; X+ char homepath[MAX_OSPATH]; X int i; X X // -basedir X@@ -1641,7 +1643,7 @@ X if ((i = COM_CheckParm("-basedir")) && i + 1 < com_argc) X Q_strncpyz (com_basedir, com_argv[i+1], sizeof(com_basedir)); X else X- Q_strncpyz (com_basedir, host_parms.basedir, sizeof(com_basedir)); X+ Q_strncpyz (com_basedir, DATADIR, sizeof(com_basedir)); X X for (i=0 ; i < strlen(com_basedir) ; i++) X if (com_basedir[i] == '\\') X@@ -1675,4 +1677,11 @@ X // Adds basedir/gamedir as an override game X if ((i = COM_CheckParm("-game")) && i + 1 < com_argc) X COM_AddGameDirectory (va("%s/%s", com_basedir, com_argv[i+1])); X+ X+ if ((home = getenv("HOME")) != NULL) { X+ Q_snprintfz(homepath, sizeof(homepath), "%s/.joequake/%s", home, com_gamedirname); X+ COM_CreatePath(homepath); X+ Sys_mkdir(homepath); X+ COM_AddGameDirectory(homepath); X+ } X } END-of-joequake/files/patch-common.c echo x - joequake/files/patch-slist.c sed 's/^X//' >joequake/files/patch-slist.c << 'END-of-joequake/files/patch-slist.c' X--- slist.c.orig Fri Oct 21 23:45:42 2005 X+++ slist.c Wed Jan 11 15:19:32 2006 X@@ -21,10 +21,13 @@ X X #include "quakedef.h" X X+char slfile[MAX_OSPATH]; X server_entry_t slist[MAX_SERVER_LIST]; X X void SList_Init (void) X { X+ Q_strncpyz(slfile, com_gamedir, sizeof(slfile)); X+ strncat(slfile, "/servers.txt", sizeof(slfile)-strlen(slfile)-1); X memset (&slist, 0, sizeof(slist)); X } X X@@ -32,7 +35,7 @@ X { X FILE *f; X X- if (!(f = fopen("servers.txt", "wt"))) X+ if (!(f = fopen(slfile, "wt"))) X { X Con_DPrintf ("Couldn't open servers.txt\n"); X return; X@@ -111,7 +114,7 @@ X char line[128], *desc, *addr; X FILE *f; X X- if (!(f = fopen("servers.txt", "rt"))) X+ if (!(f = fopen(slfile, "rt"))) X return; X X count = len = 0; END-of-joequake/files/patch-slist.c echo x - joequake/files/patch-vid_x11.c sed 's/^X//' >joequake/files/patch-vid_x11.c << 'END-of-joequake/files/patch-vid_x11.c' X--- vid_x11.c.orig Mon Oct 17 10:08:06 2005 X+++ vid_x11.c Sun Jan 15 01:55:33 2006 X@@ -1052,3 +1052,13 @@ X void VID_UnlockBuffer (void) X { X } X+ X+#if !id386 X+void R_Surf8Patch () X+{ X+} X+ X+void R_SurfacePatch (void) X+{ X+} X+#endif END-of-joequake/files/patch-vid_x11.c echo x - joequake/files/patch-host.c sed 's/^X//' >joequake/files/patch-host.c << 'END-of-joequake/files/patch-host.c' X--- host.c.orig Wed Oct 26 10:21:22 2005 X+++ host.c Mon Jan 16 18:45:46 2006 X@@ -969,6 +969,7 @@ X */ X void Host_Shutdown (void) X { X+ char cmdhist_path[MAX_OSPATH]; X int i, j; X FILE *cmdhist; X cmdhistory_t cmdhistory; X@@ -989,7 +990,8 @@ X Host_WriteConfiguration (); X IPLog_WriteLog (); X X- if (con_initialized && (cmdhist = fopen("joequake/cmdhist.dat", "wb"))) X+ snprintf(cmdhist_path, sizeof(cmdhist_path), "%s/cmdhist.dat", com_gamedir); X+ if (con_initialized && (cmdhist = fopen(cmdhist_path, "wb"))) X { X for (i=0 ; i<64 ; i++) X for (j=0 ; jjoequake/files/patch-keys.c << 'END-of-joequake/files/patch-keys.c' X--- keys.c.orig Fri Oct 21 18:30:06 2005 X+++ keys.c Mon Jan 16 18:47:12 2006 X@@ -783,11 +783,13 @@ X void Key_Init (void) X { X // joe: added stuff from [sons]Quake X+ char cmdhist_path[MAX_OSPATH]; X int i, j; X FILE *cmdhist; X cmdhistory_t cmdhistory; X X- if ((cmdhist = fopen("joequake/cmdhist.dat", "rb"))) X+ snprintf(cmdhist_path, sizeof(cmdhist_path), "%s/cmdhist.dat", com_gamedir); X+ if ((cmdhist = fopen(cmdhist_path, "rb"))) X { X fread (&cmdhistory, sizeof(cmdhistory_t), 1, cmdhist); X fclose (cmdhist); END-of-joequake/files/patch-keys.c echo x - joequake/files/patch-console.c sed 's/^X//' >joequake/files/patch-console.c << 'END-of-joequake/files/patch-console.c' X--- console.c.orig Sun Aug 14 09:38:36 2005 X+++ console.c Mon Jan 16 18:54:47 2006 X@@ -205,8 +205,11 @@ X */ X void Con_Init (void) X { X+ char qclog_path[MAX_OSPATH]; X+ X+ snprintf(qclog_path, sizeof(qclog_path), "%s/qconsole.log", com_gamedir); X if (COM_CheckParm("-condebug")) X- qconsole_log = fopen (va("%s/joequake/qconsole.log", com_basedir), "a"); X+ qconsole_log = fopen (qclog_path, "a"); X X con_text = Hunk_AllocName (CON_TEXTSIZE, "context"); X memset (con_text, ' ', CON_TEXTSIZE); END-of-joequake/files/patch-console.c echo x - joequake/files/patch-gl_screen.c sed 's/^X//' >joequake/files/patch-gl_screen.c << 'END-of-joequake/files/patch-gl_screen.c' X--- gl_screen.c.orig Wed Sep 7 11:10:32 2005 X+++ gl_screen.c Mon Jan 16 20:20:05 2006 X@@ -734,8 +734,9 @@ X void SCR_ScreenShot_f (void) X { X int i, success; X- char name[MAX_OSPATH], ext[4], *sshot_dir = "joequake/shots"; X+ char name[MAX_OSPATH], ext[4], sshot_dir[MAX_OSPATH]; X X+ snprintf(sshot_dir, sizeof(sshot_dir), "%s/shots", com_gamedir); X if (Cmd_Argc() == 2) X { X Q_strncpyz (name, Cmd_Argv(1), sizeof(name)); X@@ -753,7 +754,7 @@ X for (i=0 ; i<999 ; i++) X { X Q_snprintfz (name, sizeof(name), "joequake%03i.%s", i, ext); X- if (Sys_FileTime(va("%s/%s/%s", com_basedir, sshot_dir, name)) == -1) X+ if (Sys_FileTime(va("%s/%s", sshot_dir, name)) == -1) X break; // file doesn't exist X } X X@@ -769,7 +770,7 @@ X return; X } X X- success = SCR_ScreenShot (va("%s/%s", sshot_dir, name)); X+ success = SCR_ScreenShot(va("%s/%s", sshot_dir, name)); X Con_Printf ("%s %s\n", success ? "Wrote" : "Couldn't write", name); X } X END-of-joequake/files/patch-gl_screen.c echo x - joequake/files/patch-r_screen.c sed 's/^X//' >joequake/files/patch-r_screen.c << 'END-of-joequake/files/patch-r_screen.c' X--- r_screen.c.orig Sat Oct 15 11:42:06 2005 X+++ r_screen.c Mon Jan 16 20:20:08 2006 X@@ -556,8 +556,9 @@ X void SCR_ScreenShot_f (void) X { X int i, success; X- char name[MAX_OSPATH], ext[4], *sshot_dir = "joequake/shots"; X+ char name[MAX_OSPATH], ext[4], sshot_dir[MAX_OSPATH]; X X+ snprintf(sshot_dir, sizeof(sshot_dir), "%s/shots", com_gamedir); X if (Cmd_Argc() == 2) X { X Q_strncpyz (name, Cmd_Argv(1), sizeof(name)); X@@ -573,7 +574,7 @@ X for (i=0 ; i<999 ; i++) X { X Q_snprintfz (name, sizeof(name), "joequake%03i.%s", i, ext); X- if (Sys_FileTime(va("%s/%s/%s", com_basedir, sshot_dir, name)) == -1) X+ if (Sys_FileTime(va("%s/%s", sshot_dir, name)) == -1) X break; // file doesn't exist X } X END-of-joequake/files/patch-r_screen.c echo x - joequake/files/patch-image.c sed 's/^X//' >joequake/files/patch-image.c << 'END-of-joequake/files/patch-image.c' X--- image.c.orig Sun Oct 16 21:47:00 2005 X+++ image.c Mon Jan 16 20:18:54 2006 X@@ -422,6 +422,7 @@ X buffer[i+2] = temp; X } X X+ COM_CreatePath(filename); X if (!COM_WriteFile(filename, buffer, size + 18)) X retval = false; X free (buffer); X@@ -585,17 +586,14 @@ X Image_WritePNG X ============= X */ X-int Image_WritePNG (char *filename, int compression, byte *pixels, int width, int height) X+int Image_WritePNG (char *name, int compression, byte *pixels, int width, int height) X { X- char name[MAX_OSPATH]; X int i, bpp = 3, pngformat, width_sign; X FILE *fp; X png_structp png_ptr; X png_infop info_ptr; X png_byte **rowpointers; X X- Q_snprintfz (name, MAX_OSPATH, "%s/%s", com_basedir, filename); X- X width_sign = (width < 0) ? -1 : 1; X width = abs(width); X X@@ -816,15 +814,12 @@ X Image_WriteJPEG X ============= X */ X-int Image_WriteJPEG (char *filename, int compression, byte *pixels, int width, int height) X+int Image_WriteJPEG (char *name, int compression, byte *pixels, int width, int height) X { X- char name[MAX_OSPATH]; X byte *scanline; X FILE *fout; X struct jpeg_compress_struct cinfo; X struct jpeg_error_mgr jerr; X- X- Q_snprintfz (name, MAX_OSPATH, "%s/%s", com_basedir, filename); X X if (!(fout = fopen(name, "wb"))) X { END-of-joequake/files/patch-image.c echo x - joequake/pkg-descr sed 's/^X//' >joequake/pkg-descr << 'END-of-joequake/pkg-descr' XJoeQuake is an improved NQ engine with plenty of ZQuake and FuhQuake graphical Xeffects included. JoeQuake's main aim is to provide pleasant demo watching for X.dem files. JoeQuake also supports better graphical quality including 32bit Xtextures, colored lights, smoother animations, etc. X XWWW: http://runecentral.com/joequake/ END-of-joequake/pkg-descr echo x - joequake/pkg-message sed 's/^X//' >joequake/pkg-message << 'END-of-joequake/pkg-message' X============================================================================== X XJoeQuake has been installed. X XTo start it in full-screen mode you can run it with the "-fullscreen" Xparameter. X XIf you have mouse problems you can try running it with the "-nomdga" Xparameter (this will make the mouse work fine when the DGA X11 extension is Xdisabled). X XIf you hace sound problems try running it with the parameter X"-sndspeed ", where "" could be 22050 or 44100 for example. X XIf you enable water alpha ("r_wateralpha" or from the menu), set "r_novis" to X"1" or you will have problems with water/lava. Note that the value of X"r_novis" will be saved in the configuration file. X X============================================================================== END-of-joequake/pkg-message echo x - joequake/distinfo sed 's/^X//' >joequake/distinfo << 'END-of-joequake/distinfo' XMD5 (joequake/joequake-v0.15b1189-source.zip) = 7352503837d9cb04d64a30451a26e8d5 XSHA256 (joequake/joequake-v0.15b1189-source.zip) = 10ae2da3ab0ffa0701de5367e12731a2c88f6eb9f3459eeec643122f40a7f5a3 XSIZE (joequake/joequake-v0.15b1189-source.zip) = 1316431 XMD5 (joequake/joequake-v0.15b1146-linux.zip) = 7288c2ad0b2859ac1fe7f4ae1f3e6e31 XSHA256 (joequake/joequake-v0.15b1146-linux.zip) = 7b478afd56f083065e0e306b77abbad91676b634395e947fd1615d4c1a7c2b96 XSIZE (joequake/joequake-v0.15b1146-linux.zip) = 4848059 END-of-joequake/distinfo echo x - joequake/pkg-plist sed 's/^X//' >joequake/pkg-plist << 'END-of-joequake/pkg-plist' X%%GLX%%bin/joequake-glx X%%X11%%bin/joequake-x11 X%%DATADIR%%/joequake/pak0.pak X@dirrm %%DATADIR%%/joequake END-of-joequake/pkg-plist exit --- joequake.shar ends here --- >Release-Note: >Audit-Trail: From: "Alejandro Pulver" To: "FreeBSD gnats submit" Cc: Subject: Re: ports/91890: [NEW PORT] games/joequake: Improved NQ engine with ZQuake and FuhQuake graphical effects Date: Tue, 17 Jan 2006 22:00:24 -0300 >Submitter-Id: current-users >Originator: Alejandro Pulver >Organization: >Confidential: no >Synopsis: Re: ports/91890: [NEW PORT] games/joequake: Improved NQ engine with ZQuake and FuhQuake graphical effects >Severity: non-critical >Priority: low >Category: ports >Class: change-request >Release: FreeBSD 5.4-RELEASE i386 >Environment: System: FreeBSD 5.4-RELEASE #0: Sat May 21 12:14:47 ART 2005 root@ale.varnet.bsd:/usr/src/sys/i386/compile/ATHLON-ALE >Description: * Add HUD and HUD_SA options. >How-To-Repeat: >Fix: --- joequake.shar begins here --- # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # joequake # joequake/Makefile # joequake/files # joequake/files/patch-cd_linux.c # joequake/files/patch-Makefile.linux # joequake/files/patch-net.h # joequake/files/patch-r_part.c # joequake/files/patch-snd_linux.c # joequake/files/patch-vid_glx.c # joequake/files/patch-common.c # joequake/files/patch-slist.c # joequake/files/patch-vid_x11.c # joequake/files/patch-host.c # joequake/files/patch-keys.c # joequake/files/patch-console.c # joequake/files/patch-gl_screen.c # joequake/files/patch-r_screen.c # joequake/files/patch-image.c # joequake/pkg-descr # joequake/pkg-message # joequake/distinfo # joequake/pkg-plist # echo c - joequake mkdir -p joequake > /dev/null 2>&1 echo x - joequake/Makefile sed 's/^X//' >joequake/Makefile << 'END-of-joequake/Makefile' X# New ports collection makefile for: joequake X# Date created: 16 Jan 2006 X# Whom: Alejandro Pulver X# X# $FreeBSD$ X# X XPORTNAME= joequake XPORTVERSION= 0.15b1189 XCATEGORIES= games XMASTER_SITES= http://runecentral.com/joequake/ XDISTNAME= ${PORTNAME}-v${PORTVERSION}-source XDISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ X ${PORTNAME}-v0.15b1146-linux${EXTRACT_SUFX} XDIST_SUBDIR= ${PORTNAME} X XMAINTAINER= alejandro@varnet.biz XCOMMENT= Improved NQ engine with ZQuake and FuhQuake graphical effects X XLIB_DEPENDS= png.5:${PORTSDIR}/graphics/png X XUSE_GMAKE= yes XUSE_ZIP= yes XNO_WRKSUBDIR= yes X XMAKEFILE= Makefile.linux X XOPTIONS= GLX "Build GLX client" on \ X HUD "High quality HUD images (for OpenGL)" off \ X HUD_SA "Same for Scourge of Armagon (hipnotic)" off \ X OPTIMIZED_CFLAGS "Enable compilation optimizations" on \ X X11 "Build X11 client" on \ X X86_ASM "Enable x86 assembly code" on X XDATADIR= ${Q1DIR} XMAKE_ENV= DATADIR="${DATADIR}" X X.include "${.CURDIR}/../quake-data/Makefile.include" X X.include X X.if !defined(WITH_GLX) && !defined(WITH_X11) XIGNORE= Please select at least one client X.endif X X.if defined(WITH_GLX) XUSE_GL= yes XLIB_DEPENDS+= jpeg.9:${PORTSDIR}/graphics/jpeg XALL_TARGET+= glx XPLIST_SUB+= GLX="" X.else XPLIST_SUB+= GLX="@comment " X.endif X X.if defined(WITH_HUD) XDISTFILES+= joequake_wad${EXTRACT_SUFX} XPLIST_SUB+= HUD="" X.else XPLIST_SUB+= HUD="@comment " X.endif X X.if defined(WITH_HUD_SA) XDISTFILES+= hipnotic_wad${EXTRACT_SUFX} XPLIST_SUB+= HUD_SA="" X.else XPLIST_SUB+= HUD_SA="@comment " X.endif X X.if defined(WITH_HUD) || defined(WITH_HUD_SA) XPLIST_SUB+= HUD_DIR="" X.else XPLIST_SUB+= HUD_DIR="@comment " X.endif X X.for f in OPTIMIZED_CFLAGS X86_ASM X. if defined(WITH_${f}) XMAKE_ENV+= USE_${f}=YES X. else XMAKE_ENV+= USE_${f}=NO X. endif X.endfor X X.if defined(WITH_X11) XUSE_XLIB= yes XALL_TARGET+= x11 XPLIST_SUB+= X11="" X.else XPLIST_SUB+= X11="@comment " X.endif X Xdo-install: X ${MKDIR} ${DATADIR}/${PORTNAME} X ${INSTALL_DATA} ${WRKSRC}/${PORTNAME}/pak0.pak ${DATADIR}/${PORTNAME} X.if defined(WITH_GLX) X ${INSTALL_PROGRAM} ${WRKSRC}/release_glx/joequake-gl.glx \ X ${PREFIX}/bin/joequake-glx X.endif X.if defined(WITH_HUD) || defined(WITH_HUD_SA) X ${MKDIR} ${DATADIR}/${PORTNAME}/textures/wad X ${INSTALL_DATA} ${WRKSRC}/wad/* ${DATADIR}/${PORTNAME}/textures/wad X.endif X.if defined(WITH_X11) X ${INSTALL_PROGRAM} ${WRKSRC}/release_x11/joequake.x11 \ X ${PREFIX}/bin/joequake-x11 X.endif X Xpost-install: X @${ECHO_CMD} X @${CAT} ${PKGMESSAGE} X @${ECHO_CMD} X X.include END-of-joequake/Makefile echo c - joequake/files mkdir -p joequake/files > /dev/null 2>&1 echo x - joequake/files/patch-cd_linux.c sed 's/^X//' >joequake/files/patch-cd_linux.c << 'END-of-joequake/files/patch-cd_linux.c' X--- cd_linux.c.orig Sun Aug 14 10:09:04 2005 X+++ cd_linux.c Wed Dec 7 17:22:17 2005 X@@ -31,7 +31,11 @@ X #include X #include X X+#ifdef __FreeBSD__ X+#include X+#else X #include X+#endif X X #include "quakedef.h" X X@@ -54,8 +58,13 @@ X if (cdfile == -1 || !enabled) X return; // no cd init'd X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCEJECT) == -1) X+ Con_DPrintf ("ioctl cdioceject failed\n"); X+#else X if (ioctl(cdfile, CDROMEJECT) == -1) X Con_DPrintf ("ioctl cdromeject failed\n"); X+#endif X } X X static void CDAudio_CloseDoor (void) X@@ -63,38 +72,67 @@ X if (cdfile == -1 || !enabled) X return; // no cd init'd X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCCLOSE) == -1) X+ Con_DPrintf ("ioctl cdiocclose failed\n"); X+#else X if (ioctl(cdfile, CDROMCLOSETRAY) == -1) X Con_DPrintf ("ioctl cdromclosetray failed\n"); X+#endif X } X X static int CDAudio_GetAudioDiskInfo (void) X { X+#ifdef __FreeBSD__ X+ struct ioc_toc_header tochdr; X+#else X struct cdrom_tochdr tochdr; X+#endif X X cdValid = false; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOREADTOCHEADER, &tochdr) == -1) X+ { X+ Con_DPrintf ("ioctl cdioreadtocheader failed\n"); X+#else X if (ioctl(cdfile, CDROMREADTOCHDR, &tochdr) == -1) X { X Con_DPrintf ("ioctl cdromreadtochdr failed\n"); X+#endif X return -1; X } X X+#ifdef __FreeBSD__ X+ if (tochdr.starting_track < 1) X+#else X if (tochdr.cdth_trk0 < 1) X+#endif X { X Con_DPrintf ("CDAudio: no music tracks\n"); X return -1; X } X X cdValid = true; X+#ifdef __FreeBSD__ X+ maxTrack = tochdr.ending_track; X+#else X maxTrack = tochdr.cdth_trk1; X+#endif X X return 0; X } X X void CDAudio_Play (byte track, qboolean looping) X { X+#ifdef __FreeBSD__ X+ struct ioc_read_toc_entry entry; X+ struct cd_toc_entry toc_buffer; X+ struct ioc_play_track ti; X+#else X struct cdrom_tocentry entry; X struct cdrom_ti ti; X+#endif X X if (cdfile == -1 || !enabled) X return; X@@ -114,6 +152,21 @@ X return; X } X X+#ifdef __FreeBSD__ X+ #define CDROM_DATA_TRACK 4 X+ bzero((char *)&toc_buffer, sizeof(toc_buffer)); X+ entry.data_len = sizeof(toc_buffer); X+ entry.data = &toc_buffer; X+ // don't try to play a non-audio track X+ entry.starting_track = track; X+ entry.address_format = CD_MSF_FORMAT; X+ if ( ioctl(cdfile, CDIOREADTOCENTRYS, &entry) == -1 ) X+ { X+ Con_DPrintf("ioctl cdromreadtocentry failed\n"); X+ return; X+ } X+ if (toc_buffer.control == CDROM_DATA_TRACK) X+#else X // don't try to play a non-audio track X entry.cdte_track = track; X entry.cdte_format = CDROM_MSF; X@@ -123,6 +176,7 @@ X return; X } X if (entry.cdte_ctrl == CDROM_DATA_TRACK) X+#endif X { X Con_Printf ("CDAudio: track %i is not audio\n", track); X return; X@@ -135,19 +189,37 @@ X CDAudio_Stop (); X } X X+#ifdef __FreeBSD__ X+ ti.start_track = track; X+ ti.end_track = track; X+ ti.start_index = 1; X+ ti.end_index = 99; X+#else X ti.cdti_trk0 = track; X ti.cdti_trk1 = track; X ti.cdti_ind0 = 1; X ti.cdti_ind1 = 99; X+#endif X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCPLAYTRACKS, &ti) == -1) X+ { X+ Con_DPrintf ("ioctl cdiocplaytracks failed\n"); X+#else X if (ioctl(cdfile, CDROMPLAYTRKIND, &ti) == -1) X { X Con_DPrintf ("ioctl cdromplaytrkind failed\n"); X+#endif X return; X } X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCRESUME) == -1) X+ Con_DPrintf ("ioctl cdiocresume failed\n"); X+#else X if (ioctl(cdfile, CDROMRESUME) == -1) X Con_DPrintf ("ioctl cdromresume failed\n"); X+#endif X X playLooping = looping; X playTrack = track; X@@ -165,8 +237,13 @@ X if (!playing) X return; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCSTOP) == -1) X+ Con_DPrintf ("ioctl cdiocstop failed (%d)\n", errno); X+#else X if (ioctl(cdfile, CDROMSTOP) == -1) X Con_DPrintf ("ioctl cdromstop failed (%d)\n", errno); X+#endif X X wasPlaying = false; X playing = false; X@@ -180,8 +257,13 @@ X if (!playing) X return; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCPAUSE) == -1) X+ Con_DPrintf ("ioctl cdiocpause failed\n"); X+#else X if (ioctl(cdfile, CDROMPAUSE) == -1) X Con_DPrintf ("ioctl cdrompause failed\n"); X+#endif X X wasPlaying = playing; X playing = false; X@@ -197,9 +279,14 @@ X X if (!wasPlaying) X return; X- X+ X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCRESUME) == -1) X+ Con_DPrintf ("ioctl cdiocresume failed\n"); X+#else X if (ioctl(cdfile, CDROMRESUME) == -1) X Con_DPrintf ("ioctl cdromresume failed\n"); X+#endif X playing = true; X } X X@@ -322,7 +409,12 @@ X X void CDAudio_Update (void) X { X+#ifdef __FreeBSD__ X+ struct ioc_read_subchannel subchnl; X+ struct cd_sub_channel_info data; X+#else X struct cdrom_subchnl subchnl; X+#endif X static time_t lastchk; X X if (!enabled) X@@ -347,6 +439,24 @@ X if (playing && lastchk < time(NULL)) X { X lastchk = time(NULL) + 2; // two seconds between chks X+#if defined(__FreeBSD__) X+ subchnl.address_format = CD_MSF_FORMAT; X+ subchnl.data_format = CD_CURRENT_POSITION; X+ subchnl.data_len = sizeof(data); X+ subchnl.track = playTrack; X+ subchnl.data = &data; X+ if (ioctl(cdfile, CDIOCREADSUBCHANNEL, &subchnl) == -1 ) { X+ Con_DPrintf("ioctl cdiocreadsubchannel failed\n"); X+ playing = false; X+ return; X+ } X+ if (subchnl.data->header.audio_status != CD_AS_PLAY_IN_PROGRESS && X+ subchnl.data->header.audio_status != CD_AS_PLAY_PAUSED) { X+ playing = false; X+ if (playLooping) X+ CDAudio_Play(playTrack, true); X+ } X+#else X subchnl.cdsc_format = CDROM_MSF; X if (ioctl(cdfile, CDROMSUBCHNL, &subchnl) == -1) X { X@@ -360,6 +470,7 @@ X if (playLooping) X CDAudio_Play (playTrack, true); X } X+#endif X } X } X END-of-joequake/files/patch-cd_linux.c echo x - joequake/files/patch-Makefile.linux sed 's/^X//' >joequake/files/patch-Makefile.linux << 'END-of-joequake/files/patch-Makefile.linux' X--- Makefile.linux.orig Wed Sep 7 20:11:50 2005 X+++ Makefile.linux Sun Jan 15 01:54:54 2006 X@@ -4,14 +4,25 @@ X # by Slawomir Mazurek X # X X-CC := gcc X-_E := @ X+# this nice line comes from the linux kernel makefile X+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/) X+OSTYPE := $(shell uname -s) X+ X+CC ?= gcc X+#_E := @ X+LOCALBASE ?= /usr/local X+X11BASE ?= /usr/X11R6 X+USE_OPTIMIZE ?= YES X+ X+ifeq ($(ARCH),i386) X+USE_X86_ASM ?= YES X+else X+USE_X86_ASM ?= NO X+endif X X ################ X X-default_target: glx X- X-all: glx x11 svga X+all: X X ################################ X # Directories for object files # X@@ -43,11 +54,12 @@ X $(GLX_DIR) $(X11_DIR) $(SVGA_DIR): X $(MKDIR) X X-CFLAGS += -Did386 -funsigned-char -O6 \ X- -D__linux__ -march=pentiumpro -Wall \ X- -funroll-loops -fomit-frame-pointer -DNDEBUG \ X- -ffast-math -fno-strength-reduce -fexpensive-optimizations \ X- -I/usr/include X+CFLAGS += -DNDEBUG -DDATADIR='"$(DATADIR)"' X+ X+ifeq ($(strip $(USE_OPTIMIZE)),YES) X+CFLAGS += -O1 -funsigned-char -funroll-loops -fomit-frame-pointer \ X+ -ffast-math -fno-strength-reduce -fexpensive-optimizations X+endif X X LDFLAGS := -lm X X@@ -75,19 +87,25 @@ X image version security iplog \ X slist X X+ifeq ($(strip $(USE_X86_ASM)),YES) X GLX_S_FILES := \ X math snd_mixa sys_x86 X+endif X X GLX_C_OBJS := $(addprefix $(GLX_DIR)/, $(addsuffix .o, $(GLX_C_FILES))) X GLX_S_OBJS := $(addprefix $(GLX_DIR)/, $(addsuffix .o, $(GLX_S_FILES))) X X GLX_CFLAGS := $(CFLAGS) \ X- -DGLQUAKE -I/usr/X11R6/include X+ -DGLQUAKE -I$(X11BASE)/include X+ X+ifeq ($(strip $(USE_X86_ASM)),YES) X+GLX_CFLAGS += -Did386 X+endif X X GLX_LDFLAGS := $(LDFLAGS) \ X- -lGL -L/usr/X11R6/lib -lX11 \ X- -lXext -lXxf86dga -lXxf86vm \ X- -lpng -ljpeg X+ -L$(X11BASE)/lib -lGL -lX11 \ X+ -lXext -lXxf86dga -lXxf86vm \ X+ -L$(LOCALBASE)/lib -lpng -ljpeg X X glx: _DIR := $(GLX_DIR) X glx: _OBJS := $(GLX_C_OBJS) $(GLX_S_OBJS) X@@ -138,27 +156,37 @@ X snd_linux image version security \ X iplog slist X X+ifeq ($(strip $(USE_X86_ASM)),YES) X X11_S_FILES := \ X d_copy d_draw d_draw16 d_parta \ X d_polysa d_scana d_spr8 d_varsa \ X math r_aclipa r_aliasa r_drawa \ X r_edgea r_varsa snd_mixa surf8 \ X sys_x86 X+endif X X X11_C_OBJS := $(addprefix $(X11_DIR)/, $(addsuffix .o, $(X11_C_FILES))) X X11_S_OBJS := $(addprefix $(X11_DIR)/, $(addsuffix .o, $(X11_S_FILES))) X X-X11_CFLAGS := $(CFLAGS) X+X11_CFLAGS := $(CFLAGS) -I$(X11BASE)/include X+ X+ifeq ($(strip $(USE_X86_ASM)),YES) X+X11_CFLAGS += -Did386 X+endif X X X11_LDFLAGS := $(LDFLAGS) \ X- -L/usr/X11R6/lib -lX11 -lXext \ X- -lpng X+ -L$(X11BASE)/lib -lX11 -lXext \ X+ -L$(LOCALBASE)/lib -lpng X X+ifeq ($(ARCH),i386) X x11: _DIR := $(X11_DIR) X x11: _OBJS := $(X11_C_OBJS) $(X11_S_OBJS) X x11: _LDFLAGS := $(X11_LDFLAGS) X x11: _CFLAGS := $(X11_CFLAGS) X x11: $(X11_TARGET) X+else X+x11: X+endif X X $(X11_TARGET): $(X11_DIR) $(X11_C_OBJS) $(X11_S_OBJS) X $(BUILD) X@@ -213,17 +241,25 @@ X SVGA_C_OBJS := $(addprefix $(SVGA_DIR)/, $(addsuffix .o, $(SVGA_C_FILES))) X SVGA_S_OBJS := $(addprefix $(SVGA_DIR)/, $(addsuffix .o, $(SVGA_S_FILES))) X X-SVGA_CFLAGS := $(CFLAGS) X+SVGA_CFLAGS := $(CFLAGS) -Did386 -I$(LOCALBASE)/include X X SVGA_LDFLAGS := $(LDFLAGS) \ X- -L/usr/X11R6/lib -lX11 -lpthread \ X- -lvga -lpng X+ -L$(X11BASE)/lib -lX11 -lpthread \ X+ -L$(LOCALBASE)/lib -lvga -lpng X X+ifeq ($(OSTYPE),Linux) X+ ifeq ($(ARCH),i386) X svga: _DIR := $(SVGA_DIR) X svga: _OBJS := $(SVGA_C_OBJS) $(SVGA_S_OBJS) X svga: _LDFLAGS := $(SVGA_LDFLAGS) X svga: _CFLAGS := $(SVGA_CFLAGS) X svga: $(SVGA_TARGET) X+ else X+svga: X+ endif X+else X+svga: X+endif X X $(SVGA_TARGET): $(SVGA_DIR) $(SVGA_C_OBJS) $(SVGA_S_OBJS) X $(BUILD) END-of-joequake/files/patch-Makefile.linux echo x - joequake/files/patch-net.h sed 's/^X//' >joequake/files/patch-net.h << 'END-of-joequake/files/patch-net.h' X--- net.h.orig Thu Jul 21 12:00:04 2005 X+++ net.h Mon Dec 5 21:11:16 2005 X@@ -258,7 +258,7 @@ X extern int hostCacheCount; X extern hostcache_t hostcache[HOSTCACHESIZE]; X X-#if !defined(_WIN32 ) && !defined (__linux__) X+#if !defined(_WIN32 ) && !defined (__linux__) && !defined(__FreeBSD__) X #ifndef htonl X extern unsigned long htonl (unsigned long hostlong); X #endif END-of-joequake/files/patch-net.h echo x - joequake/files/patch-r_part.c sed 's/^X//' >joequake/files/patch-r_part.c << 'END-of-joequake/files/patch-r_part.c' X--- r_part.c.orig Fri Aug 26 15:02:44 2005 X+++ r_part.c Sun Jan 15 02:00:02 2006 X@@ -59,7 +59,7 @@ X X vec3_t r_pright, r_pup, r_ppn; X X-#if !id386 X+#if !id386 && !defined(GLQUAKE) X X /* X ============== END-of-joequake/files/patch-r_part.c echo x - joequake/files/patch-snd_linux.c sed 's/^X//' >joequake/files/patch-snd_linux.c << 'END-of-joequake/files/patch-snd_linux.c' X--- snd_linux.c.orig Fri Sep 10 12:22:32 2004 X+++ snd_linux.c Mon Dec 5 20:05:40 2005 X@@ -25,7 +25,11 @@ X #include X #include X #include X+#ifdef __FreeBSD__ X+#include X+#else X #include X+#endif X #include X #include "quakedef.h" X X@@ -74,7 +78,8 @@ X close (audio_fd); X return 0; X } X- X+//QuDos- X+/* //Moved later thx Quake3 X if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info) == -1) X { X perror ("GETOSPACE"); X@@ -82,7 +87,8 @@ X close (audio_fd); X return 0; X } X- X+*/ X+//-QuDos X shm = &sn; X shm->splitbuffer = 0; X X@@ -125,7 +131,8 @@ X shm->channels = 2; X else X shm->channels = 2; X- X+//QuDos- X+/* //Call mmap later thx Quake3 X shm->samples = info.fragstotal * info.fragsize / (shm->samplebits / 8); X shm->submission_chunk = 1; X X@@ -138,6 +145,8 @@ X close (audio_fd); X return 0; X } X+*/ X+//-QuDos X X tmp = 0; X if (shm->channels == 2) X@@ -196,6 +205,30 @@ X close (audio_fd); X return 0; X } X+ X+//QuDos- X+//Moved from above thx Quake3 X+ if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info) == -1) X+ { X+ perror ("GETOSPACE"); X+ Con_Printf ("Um, can't do GETOSPACE?\n"); X+ close (audio_fd); X+ return 0; X+ } X+ shm->samples = info.fragstotal * info.fragsize / (shm->samplebits / 8); X+ shm->submission_chunk = 1; X+ X+// memory map the dma buffer X+ shm->buffer = (unsigned char *)mmap (NULL, info.fragstotal * info.fragsize, PROT_WRITE, MAP_FILE|MAP_SHARED, audio_fd, 0); X+ if (!shm->buffer || shm->buffer == (unsigned char *)-1) X+ { X+ perror ("/dev/dsp"); X+ Con_Printf ("Could not mmap /dev/dsp\n"); X+ close (audio_fd); X+ return 0; X+ } X+//end Quake3 sound fix by calling mmap later X+//-QuDos X X // toggle the trigger & start her up X tmp = 0; END-of-joequake/files/patch-snd_linux.c echo x - joequake/files/patch-vid_glx.c sed 's/^X//' >joequake/files/patch-vid_glx.c << 'END-of-joequake/files/patch-vid_glx.c' X--- vid_glx.c.orig Sun Oct 16 17:40:58 2005 X+++ vid_glx.c Mon Dec 5 21:10:31 2005 X@@ -22,7 +22,9 @@ X #include X #include X #include X+#ifdef __linux__ X #include X+#endif X #include X #include X #include END-of-joequake/files/patch-vid_glx.c echo x - joequake/files/patch-common.c sed 's/^X//' >joequake/files/patch-common.c << 'END-of-joequake/files/patch-common.c' X--- common.c.orig Sat Dec 3 19:45:26 2005 X+++ common.c Mon Jan 16 20:57:32 2006 X@@ -1634,6 +1634,8 @@ X */ X void COM_InitFilesystem (void) X { X+ char *home; X+ char homepath[MAX_OSPATH]; X int i; X X // -basedir X@@ -1641,7 +1643,7 @@ X if ((i = COM_CheckParm("-basedir")) && i + 1 < com_argc) X Q_strncpyz (com_basedir, com_argv[i+1], sizeof(com_basedir)); X else X- Q_strncpyz (com_basedir, host_parms.basedir, sizeof(com_basedir)); X+ Q_strncpyz (com_basedir, DATADIR, sizeof(com_basedir)); X X for (i=0 ; i < strlen(com_basedir) ; i++) X if (com_basedir[i] == '\\') X@@ -1675,4 +1677,11 @@ X // Adds basedir/gamedir as an override game X if ((i = COM_CheckParm("-game")) && i + 1 < com_argc) X COM_AddGameDirectory (va("%s/%s", com_basedir, com_argv[i+1])); X+ X+ if ((home = getenv("HOME")) != NULL) { X+ Q_snprintfz(homepath, sizeof(homepath), "%s/.joequake/%s", home, com_gamedirname); X+ COM_CreatePath(homepath); X+ Sys_mkdir(homepath); X+ COM_AddGameDirectory(homepath); X+ } X } END-of-joequake/files/patch-common.c echo x - joequake/files/patch-slist.c sed 's/^X//' >joequake/files/patch-slist.c << 'END-of-joequake/files/patch-slist.c' X--- slist.c.orig Fri Oct 21 23:45:42 2005 X+++ slist.c Wed Jan 11 15:19:32 2006 X@@ -21,10 +21,13 @@ X X #include "quakedef.h" X X+char slfile[MAX_OSPATH]; X server_entry_t slist[MAX_SERVER_LIST]; X X void SList_Init (void) X { X+ Q_strncpyz(slfile, com_gamedir, sizeof(slfile)); X+ strncat(slfile, "/servers.txt", sizeof(slfile)-strlen(slfile)-1); X memset (&slist, 0, sizeof(slist)); X } X X@@ -32,7 +35,7 @@ X { X FILE *f; X X- if (!(f = fopen("servers.txt", "wt"))) X+ if (!(f = fopen(slfile, "wt"))) X { X Con_DPrintf ("Couldn't open servers.txt\n"); X return; X@@ -111,7 +114,7 @@ X char line[128], *desc, *addr; X FILE *f; X X- if (!(f = fopen("servers.txt", "rt"))) X+ if (!(f = fopen(slfile, "rt"))) X return; X X count = len = 0; END-of-joequake/files/patch-slist.c echo x - joequake/files/patch-vid_x11.c sed 's/^X//' >joequake/files/patch-vid_x11.c << 'END-of-joequake/files/patch-vid_x11.c' X--- vid_x11.c.orig Mon Oct 17 10:08:06 2005 X+++ vid_x11.c Sun Jan 15 01:55:33 2006 X@@ -1052,3 +1052,13 @@ X void VID_UnlockBuffer (void) X { X } X+ X+#if !id386 X+void R_Surf8Patch () X+{ X+} X+ X+void R_SurfacePatch (void) X+{ X+} X+#endif END-of-joequake/files/patch-vid_x11.c echo x - joequake/files/patch-host.c sed 's/^X//' >joequake/files/patch-host.c << 'END-of-joequake/files/patch-host.c' X--- host.c.orig Wed Oct 26 10:21:22 2005 X+++ host.c Mon Jan 16 18:45:46 2006 X@@ -969,6 +969,7 @@ X */ X void Host_Shutdown (void) X { X+ char cmdhist_path[MAX_OSPATH]; X int i, j; X FILE *cmdhist; X cmdhistory_t cmdhistory; X@@ -989,7 +990,8 @@ X Host_WriteConfiguration (); X IPLog_WriteLog (); X X- if (con_initialized && (cmdhist = fopen("joequake/cmdhist.dat", "wb"))) X+ snprintf(cmdhist_path, sizeof(cmdhist_path), "%s/cmdhist.dat", com_gamedir); X+ if (con_initialized && (cmdhist = fopen(cmdhist_path, "wb"))) X { X for (i=0 ; i<64 ; i++) X for (j=0 ; jjoequake/files/patch-keys.c << 'END-of-joequake/files/patch-keys.c' X--- keys.c.orig Fri Oct 21 18:30:06 2005 X+++ keys.c Mon Jan 16 18:47:12 2006 X@@ -783,11 +783,13 @@ X void Key_Init (void) X { X // joe: added stuff from [sons]Quake X+ char cmdhist_path[MAX_OSPATH]; X int i, j; X FILE *cmdhist; X cmdhistory_t cmdhistory; X X- if ((cmdhist = fopen("joequake/cmdhist.dat", "rb"))) X+ snprintf(cmdhist_path, sizeof(cmdhist_path), "%s/cmdhist.dat", com_gamedir); X+ if ((cmdhist = fopen(cmdhist_path, "rb"))) X { X fread (&cmdhistory, sizeof(cmdhistory_t), 1, cmdhist); X fclose (cmdhist); END-of-joequake/files/patch-keys.c echo x - joequake/files/patch-console.c sed 's/^X//' >joequake/files/patch-console.c << 'END-of-joequake/files/patch-console.c' X--- console.c.orig Sun Aug 14 09:38:36 2005 X+++ console.c Mon Jan 16 18:54:47 2006 X@@ -205,8 +205,11 @@ X */ X void Con_Init (void) X { X+ char qclog_path[MAX_OSPATH]; X+ X+ snprintf(qclog_path, sizeof(qclog_path), "%s/qconsole.log", com_gamedir); X if (COM_CheckParm("-condebug")) X- qconsole_log = fopen (va("%s/joequake/qconsole.log", com_basedir), "a"); X+ qconsole_log = fopen (qclog_path, "a"); X X con_text = Hunk_AllocName (CON_TEXTSIZE, "context"); X memset (con_text, ' ', CON_TEXTSIZE); END-of-joequake/files/patch-console.c echo x - joequake/files/patch-gl_screen.c sed 's/^X//' >joequake/files/patch-gl_screen.c << 'END-of-joequake/files/patch-gl_screen.c' X--- gl_screen.c.orig Wed Sep 7 11:10:32 2005 X+++ gl_screen.c Mon Jan 16 20:20:05 2006 X@@ -734,8 +734,9 @@ X void SCR_ScreenShot_f (void) X { X int i, success; X- char name[MAX_OSPATH], ext[4], *sshot_dir = "joequake/shots"; X+ char name[MAX_OSPATH], ext[4], sshot_dir[MAX_OSPATH]; X X+ snprintf(sshot_dir, sizeof(sshot_dir), "%s/shots", com_gamedir); X if (Cmd_Argc() == 2) X { X Q_strncpyz (name, Cmd_Argv(1), sizeof(name)); X@@ -753,7 +754,7 @@ X for (i=0 ; i<999 ; i++) X { X Q_snprintfz (name, sizeof(name), "joequake%03i.%s", i, ext); X- if (Sys_FileTime(va("%s/%s/%s", com_basedir, sshot_dir, name)) == -1) X+ if (Sys_FileTime(va("%s/%s", sshot_dir, name)) == -1) X break; // file doesn't exist X } X X@@ -769,7 +770,7 @@ X return; X } X X- success = SCR_ScreenShot (va("%s/%s", sshot_dir, name)); X+ success = SCR_ScreenShot(va("%s/%s", sshot_dir, name)); X Con_Printf ("%s %s\n", success ? "Wrote" : "Couldn't write", name); X } X END-of-joequake/files/patch-gl_screen.c echo x - joequake/files/patch-r_screen.c sed 's/^X//' >joequake/files/patch-r_screen.c << 'END-of-joequake/files/patch-r_screen.c' X--- r_screen.c.orig Sat Oct 15 11:42:06 2005 X+++ r_screen.c Mon Jan 16 20:20:08 2006 X@@ -556,8 +556,9 @@ X void SCR_ScreenShot_f (void) X { X int i, success; X- char name[MAX_OSPATH], ext[4], *sshot_dir = "joequake/shots"; X+ char name[MAX_OSPATH], ext[4], sshot_dir[MAX_OSPATH]; X X+ snprintf(sshot_dir, sizeof(sshot_dir), "%s/shots", com_gamedir); X if (Cmd_Argc() == 2) X { X Q_strncpyz (name, Cmd_Argv(1), sizeof(name)); X@@ -573,7 +574,7 @@ X for (i=0 ; i<999 ; i++) X { X Q_snprintfz (name, sizeof(name), "joequake%03i.%s", i, ext); X- if (Sys_FileTime(va("%s/%s/%s", com_basedir, sshot_dir, name)) == -1) X+ if (Sys_FileTime(va("%s/%s", sshot_dir, name)) == -1) X break; // file doesn't exist X } X END-of-joequake/files/patch-r_screen.c echo x - joequake/files/patch-image.c sed 's/^X//' >joequake/files/patch-image.c << 'END-of-joequake/files/patch-image.c' X--- image.c.orig Sun Oct 16 21:47:00 2005 X+++ image.c Mon Jan 16 20:18:54 2006 X@@ -422,6 +422,7 @@ X buffer[i+2] = temp; X } X X+ COM_CreatePath(filename); X if (!COM_WriteFile(filename, buffer, size + 18)) X retval = false; X free (buffer); X@@ -585,17 +586,14 @@ X Image_WritePNG X ============= X */ X-int Image_WritePNG (char *filename, int compression, byte *pixels, int width, int height) X+int Image_WritePNG (char *name, int compression, byte *pixels, int width, int height) X { X- char name[MAX_OSPATH]; X int i, bpp = 3, pngformat, width_sign; X FILE *fp; X png_structp png_ptr; X png_infop info_ptr; X png_byte **rowpointers; X X- Q_snprintfz (name, MAX_OSPATH, "%s/%s", com_basedir, filename); X- X width_sign = (width < 0) ? -1 : 1; X width = abs(width); X X@@ -816,15 +814,12 @@ X Image_WriteJPEG X ============= X */ X-int Image_WriteJPEG (char *filename, int compression, byte *pixels, int width, int height) X+int Image_WriteJPEG (char *name, int compression, byte *pixels, int width, int height) X { X- char name[MAX_OSPATH]; X byte *scanline; X FILE *fout; X struct jpeg_compress_struct cinfo; X struct jpeg_error_mgr jerr; X- X- Q_snprintfz (name, MAX_OSPATH, "%s/%s", com_basedir, filename); X X if (!(fout = fopen(name, "wb"))) X { END-of-joequake/files/patch-image.c echo x - joequake/pkg-descr sed 's/^X//' >joequake/pkg-descr << 'END-of-joequake/pkg-descr' XJoeQuake is an improved NQ engine with plenty of ZQuake and FuhQuake graphical Xeffects included. JoeQuake's main aim is to provide pleasant demo watching for X.dem files. JoeQuake also supports better graphical quality including 32bit Xtextures, colored lights, smoother animations, etc. X XWWW: http://runecentral.com/joequake/ END-of-joequake/pkg-descr echo x - joequake/pkg-message sed 's/^X//' >joequake/pkg-message << 'END-of-joequake/pkg-message' X============================================================================== X XJoeQuake has been installed. X XTo start it in full-screen mode you can run it with the "-fullscreen" Xparameter. X XIf you have mouse problems you can try running it with the "-nomdga" Xparameter (this will make the mouse work fine when the DGA X11 extension is Xdisabled). X XIf you hace sound problems try running it with the parameter X"-sndspeed ", where "" could be 22050 or 44100 for example. X XIf you enable water alpha ("r_wateralpha" or from the menu), set "r_novis" to X"1" or you will have problems with water/lava. Note that the value of X"r_novis" will be saved in the configuration file. X X============================================================================== END-of-joequake/pkg-message echo x - joequake/distinfo sed 's/^X//' >joequake/distinfo << 'END-of-joequake/distinfo' XMD5 (joequake/joequake-v0.15b1189-source.zip) = 7352503837d9cb04d64a30451a26e8d5 XSHA256 (joequake/joequake-v0.15b1189-source.zip) = 10ae2da3ab0ffa0701de5367e12731a2c88f6eb9f3459eeec643122f40a7f5a3 XSIZE (joequake/joequake-v0.15b1189-source.zip) = 1316431 XMD5 (joequake/joequake-v0.15b1146-linux.zip) = 7288c2ad0b2859ac1fe7f4ae1f3e6e31 XSHA256 (joequake/joequake-v0.15b1146-linux.zip) = 7b478afd56f083065e0e306b77abbad91676b634395e947fd1615d4c1a7c2b96 XSIZE (joequake/joequake-v0.15b1146-linux.zip) = 4848059 XMD5 (joequake/joequake_wad.zip) = 33219a7615c8265845948099c9c86b80 XSHA256 (joequake/joequake_wad.zip) = 754f4b0990777f509987c7a4f5382cf98cd063c7f2e4a3df3e757ddfb3af9191 XSIZE (joequake/joequake_wad.zip) = 1053818 XMD5 (joequake/hipnotic_wad.zip) = b517d91207f39edc4f096f704dcc89dc XSHA256 (joequake/hipnotic_wad.zip) = 267e354c20c35f414513c5d73c536aff9a431a1271f125c450c40f08963c3189 XSIZE (joequake/hipnotic_wad.zip) = 272279 END-of-joequake/distinfo echo x - joequake/pkg-plist sed 's/^X//' >joequake/pkg-plist << 'END-of-joequake/pkg-plist' X%%GLX%%bin/joequake-glx X%%X11%%bin/joequake-x11 X%%DATADIR%%/joequake/pak0.pak X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_inv2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_invis.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_invul2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_quad.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_cells.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_nails.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_rocket.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_shells.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_0.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_6.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_7.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_8.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_9.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_minus.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/backtile.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/disc.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/ibar.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/NET.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_0.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_6.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_7.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_8.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_9.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_colon.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_minus.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_slash.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/RAM.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_invis.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_invuln.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_key1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_key2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_quad.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_suit.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sbar.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/scorebar.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor3.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/sb_key2.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/sb_key1.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_rlaunch.png X%%HUD_DIR%%@dirrm %%DATADIR%%/joequake/textures/wad X%%HUD_DIR%%@dirrm %%DATADIR%%/joequake/textures X@dirrm %%DATADIR%%/joequake END-of-joequake/pkg-plist exit --- joequake.shar ends here --- From: "Alejandro Pulver" To: "FreeBSD gnats submit" Cc: Subject: Re: ports/91890: [NEW PORT] games/joequake: Improved NQ engine with ZQuake and FuhQuake graphical Date: Tue, 31 Jan 2006 12:22:59 -0300 >Submitter-Id: current-users >Originator: Alejandro Pulver >Organization: >Confidential: no >Synopsis: Re: ports/91890: [NEW PORT] games/joequake: Improved NQ engine with ZQuake and FuhQuake graphical >Severity: non-critical >Priority: low >Category: ports >Class: change-request >Release: FreeBSD 5.4-RELEASE i386 >Environment: System: FreeBSD 5.4-RELEASE #0: Sat May 21 12:14:47 ART 2005 root@ale.varnet.bsd:/usr/src/sys/i386/compile/ATHLON-ALE >Description: * Now also reads files from ~/.joequake/id1 as it should. >How-To-Repeat: >Fix: --- joequake.shar begins here --- # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # joequake # joequake/Makefile # joequake/files # joequake/files/patch-cd_linux.c # joequake/files/patch-Makefile.linux # joequake/files/patch-net.h # joequake/files/patch-r_part.c # joequake/files/patch-snd_linux.c # joequake/files/patch-vid_glx.c # joequake/files/patch-common.c # joequake/files/patch-slist.c # joequake/files/patch-vid_x11.c # joequake/files/patch-host.c # joequake/files/patch-keys.c # joequake/files/patch-console.c # joequake/files/patch-gl_screen.c # joequake/files/patch-r_screen.c # joequake/files/patch-image.c # joequake/pkg-descr # joequake/pkg-message # joequake/distinfo # joequake/pkg-plist # echo c - joequake mkdir -p joequake > /dev/null 2>&1 echo x - joequake/Makefile sed 's/^X//' >joequake/Makefile << 'END-of-joequake/Makefile' X# New ports collection makefile for: joequake X# Date created: 11 Jan 2006 X# Whom: Alejandro Pulver X# X# $FreeBSD$ X# X XPORTNAME= joequake XPORTVERSION= 0.15b1189 XCATEGORIES= games XMASTER_SITES= http://runecentral.com/joequake/ XDISTNAME= ${PORTNAME}-v${PORTVERSION}-source XDISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ X ${PORTNAME}-v0.15b1146-linux${EXTRACT_SUFX} XDIST_SUBDIR= ${PORTNAME} X XMAINTAINER= alejandro@varnet.biz XCOMMENT= Improved NQ engine with ZQuake and FuhQuake graphical effects X XLIB_DEPENDS= png.5:${PORTSDIR}/graphics/png X XUSE_GMAKE= yes XUSE_ZIP= yes XNO_WRKSUBDIR= yes X XMAKEFILE= Makefile.linux X XOPTIONS= GLX "Build GLX client" on \ X HUD "High quality HUD images (for OpenGL)" off \ X HUD_SA "Same for Scourge of Armagon (hipnotic)" off \ X OPTIMIZED_CFLAGS "Enable compilation optimizations" on \ X X11 "Build X11 client" on \ X X86_ASM "Enable x86 assembly code" on X XDATADIR= ${Q1DIR} XMAKE_ENV= DATADIR="${DATADIR}" X X.include "${.CURDIR}/../quake-data/Makefile.include" X X.include X X.if !defined(WITH_GLX) && !defined(WITH_X11) XIGNORE= Please select at least one client X.endif X X.if defined(WITH_GLX) XUSE_GL= yes XLIB_DEPENDS+= jpeg.9:${PORTSDIR}/graphics/jpeg XALL_TARGET+= glx XPLIST_SUB+= GLX="" X.else XPLIST_SUB+= GLX="@comment " X.endif X X.if defined(WITH_HUD) XDISTFILES+= joequake_wad${EXTRACT_SUFX} XPLIST_SUB+= HUD="" X.else XPLIST_SUB+= HUD="@comment " X.endif X X.if defined(WITH_HUD_SA) XDISTFILES+= hipnotic_wad${EXTRACT_SUFX} XPLIST_SUB+= HUD_SA="" X.else XPLIST_SUB+= HUD_SA="@comment " X.endif X X.if defined(WITH_HUD) || defined(WITH_HUD_SA) XPLIST_SUB+= HUD_DIR="" X.else XPLIST_SUB+= HUD_DIR="@comment " X.endif X X.for f in OPTIMIZED_CFLAGS X86_ASM X. if defined(WITH_${f}) XMAKE_ENV+= USE_${f}=YES X. else XMAKE_ENV+= USE_${f}=NO X. endif X.endfor X X.if defined(WITH_X11) XUSE_XLIB= yes XALL_TARGET+= x11 XPLIST_SUB+= X11="" X.else XPLIST_SUB+= X11="@comment " X.endif X Xdo-install: X ${MKDIR} ${DATADIR}/${PORTNAME} X ${INSTALL_DATA} ${WRKSRC}/${PORTNAME}/pak0.pak ${DATADIR}/${PORTNAME} X.if defined(WITH_GLX) X ${INSTALL_PROGRAM} ${WRKSRC}/release_glx/joequake-gl.glx \ X ${PREFIX}/bin/joequake-glx X.endif X.if defined(WITH_HUD) || defined(WITH_HUD_SA) X ${MKDIR} ${DATADIR}/${PORTNAME}/textures/wad X ${INSTALL_DATA} ${WRKSRC}/wad/* ${DATADIR}/${PORTNAME}/textures/wad X.endif X.if defined(WITH_X11) X ${INSTALL_PROGRAM} ${WRKSRC}/release_x11/joequake.x11 \ X ${PREFIX}/bin/joequake-x11 X.endif X Xpost-install: X @${ECHO_CMD} X @${CAT} ${PKGMESSAGE} X @${ECHO_CMD} X X.include END-of-joequake/Makefile echo c - joequake/files mkdir -p joequake/files > /dev/null 2>&1 echo x - joequake/files/patch-cd_linux.c sed 's/^X//' >joequake/files/patch-cd_linux.c << 'END-of-joequake/files/patch-cd_linux.c' X--- cd_linux.c.orig Sun Aug 14 10:09:04 2005 X+++ cd_linux.c Wed Dec 7 17:22:17 2005 X@@ -31,7 +31,11 @@ X #include X #include X X+#ifdef __FreeBSD__ X+#include X+#else X #include X+#endif X X #include "quakedef.h" X X@@ -54,8 +58,13 @@ X if (cdfile == -1 || !enabled) X return; // no cd init'd X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCEJECT) == -1) X+ Con_DPrintf ("ioctl cdioceject failed\n"); X+#else X if (ioctl(cdfile, CDROMEJECT) == -1) X Con_DPrintf ("ioctl cdromeject failed\n"); X+#endif X } X X static void CDAudio_CloseDoor (void) X@@ -63,38 +72,67 @@ X if (cdfile == -1 || !enabled) X return; // no cd init'd X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCCLOSE) == -1) X+ Con_DPrintf ("ioctl cdiocclose failed\n"); X+#else X if (ioctl(cdfile, CDROMCLOSETRAY) == -1) X Con_DPrintf ("ioctl cdromclosetray failed\n"); X+#endif X } X X static int CDAudio_GetAudioDiskInfo (void) X { X+#ifdef __FreeBSD__ X+ struct ioc_toc_header tochdr; X+#else X struct cdrom_tochdr tochdr; X+#endif X X cdValid = false; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOREADTOCHEADER, &tochdr) == -1) X+ { X+ Con_DPrintf ("ioctl cdioreadtocheader failed\n"); X+#else X if (ioctl(cdfile, CDROMREADTOCHDR, &tochdr) == -1) X { X Con_DPrintf ("ioctl cdromreadtochdr failed\n"); X+#endif X return -1; X } X X+#ifdef __FreeBSD__ X+ if (tochdr.starting_track < 1) X+#else X if (tochdr.cdth_trk0 < 1) X+#endif X { X Con_DPrintf ("CDAudio: no music tracks\n"); X return -1; X } X X cdValid = true; X+#ifdef __FreeBSD__ X+ maxTrack = tochdr.ending_track; X+#else X maxTrack = tochdr.cdth_trk1; X+#endif X X return 0; X } X X void CDAudio_Play (byte track, qboolean looping) X { X+#ifdef __FreeBSD__ X+ struct ioc_read_toc_entry entry; X+ struct cd_toc_entry toc_buffer; X+ struct ioc_play_track ti; X+#else X struct cdrom_tocentry entry; X struct cdrom_ti ti; X+#endif X X if (cdfile == -1 || !enabled) X return; X@@ -114,6 +152,21 @@ X return; X } X X+#ifdef __FreeBSD__ X+ #define CDROM_DATA_TRACK 4 X+ bzero((char *)&toc_buffer, sizeof(toc_buffer)); X+ entry.data_len = sizeof(toc_buffer); X+ entry.data = &toc_buffer; X+ // don't try to play a non-audio track X+ entry.starting_track = track; X+ entry.address_format = CD_MSF_FORMAT; X+ if ( ioctl(cdfile, CDIOREADTOCENTRYS, &entry) == -1 ) X+ { X+ Con_DPrintf("ioctl cdromreadtocentry failed\n"); X+ return; X+ } X+ if (toc_buffer.control == CDROM_DATA_TRACK) X+#else X // don't try to play a non-audio track X entry.cdte_track = track; X entry.cdte_format = CDROM_MSF; X@@ -123,6 +176,7 @@ X return; X } X if (entry.cdte_ctrl == CDROM_DATA_TRACK) X+#endif X { X Con_Printf ("CDAudio: track %i is not audio\n", track); X return; X@@ -135,19 +189,37 @@ X CDAudio_Stop (); X } X X+#ifdef __FreeBSD__ X+ ti.start_track = track; X+ ti.end_track = track; X+ ti.start_index = 1; X+ ti.end_index = 99; X+#else X ti.cdti_trk0 = track; X ti.cdti_trk1 = track; X ti.cdti_ind0 = 1; X ti.cdti_ind1 = 99; X+#endif X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCPLAYTRACKS, &ti) == -1) X+ { X+ Con_DPrintf ("ioctl cdiocplaytracks failed\n"); X+#else X if (ioctl(cdfile, CDROMPLAYTRKIND, &ti) == -1) X { X Con_DPrintf ("ioctl cdromplaytrkind failed\n"); X+#endif X return; X } X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCRESUME) == -1) X+ Con_DPrintf ("ioctl cdiocresume failed\n"); X+#else X if (ioctl(cdfile, CDROMRESUME) == -1) X Con_DPrintf ("ioctl cdromresume failed\n"); X+#endif X X playLooping = looping; X playTrack = track; X@@ -165,8 +237,13 @@ X if (!playing) X return; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCSTOP) == -1) X+ Con_DPrintf ("ioctl cdiocstop failed (%d)\n", errno); X+#else X if (ioctl(cdfile, CDROMSTOP) == -1) X Con_DPrintf ("ioctl cdromstop failed (%d)\n", errno); X+#endif X X wasPlaying = false; X playing = false; X@@ -180,8 +257,13 @@ X if (!playing) X return; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCPAUSE) == -1) X+ Con_DPrintf ("ioctl cdiocpause failed\n"); X+#else X if (ioctl(cdfile, CDROMPAUSE) == -1) X Con_DPrintf ("ioctl cdrompause failed\n"); X+#endif X X wasPlaying = playing; X playing = false; X@@ -197,9 +279,14 @@ X X if (!wasPlaying) X return; X- X+ X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCRESUME) == -1) X+ Con_DPrintf ("ioctl cdiocresume failed\n"); X+#else X if (ioctl(cdfile, CDROMRESUME) == -1) X Con_DPrintf ("ioctl cdromresume failed\n"); X+#endif X playing = true; X } X X@@ -322,7 +409,12 @@ X X void CDAudio_Update (void) X { X+#ifdef __FreeBSD__ X+ struct ioc_read_subchannel subchnl; X+ struct cd_sub_channel_info data; X+#else X struct cdrom_subchnl subchnl; X+#endif X static time_t lastchk; X X if (!enabled) X@@ -347,6 +439,24 @@ X if (playing && lastchk < time(NULL)) X { X lastchk = time(NULL) + 2; // two seconds between chks X+#if defined(__FreeBSD__) X+ subchnl.address_format = CD_MSF_FORMAT; X+ subchnl.data_format = CD_CURRENT_POSITION; X+ subchnl.data_len = sizeof(data); X+ subchnl.track = playTrack; X+ subchnl.data = &data; X+ if (ioctl(cdfile, CDIOCREADSUBCHANNEL, &subchnl) == -1 ) { X+ Con_DPrintf("ioctl cdiocreadsubchannel failed\n"); X+ playing = false; X+ return; X+ } X+ if (subchnl.data->header.audio_status != CD_AS_PLAY_IN_PROGRESS && X+ subchnl.data->header.audio_status != CD_AS_PLAY_PAUSED) { X+ playing = false; X+ if (playLooping) X+ CDAudio_Play(playTrack, true); X+ } X+#else X subchnl.cdsc_format = CDROM_MSF; X if (ioctl(cdfile, CDROMSUBCHNL, &subchnl) == -1) X { X@@ -360,6 +470,7 @@ X if (playLooping) X CDAudio_Play (playTrack, true); X } X+#endif X } X } X END-of-joequake/files/patch-cd_linux.c echo x - joequake/files/patch-Makefile.linux sed 's/^X//' >joequake/files/patch-Makefile.linux << 'END-of-joequake/files/patch-Makefile.linux' X--- Makefile.linux.orig Wed Sep 7 20:11:50 2005 X+++ Makefile.linux Sun Jan 15 01:54:54 2006 X@@ -4,14 +4,25 @@ X # by Slawomir Mazurek X # X X-CC := gcc X-_E := @ X+# this nice line comes from the linux kernel makefile X+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/) X+OSTYPE := $(shell uname -s) X+ X+CC ?= gcc X+#_E := @ X+LOCALBASE ?= /usr/local X+X11BASE ?= /usr/X11R6 X+USE_OPTIMIZE ?= YES X+ X+ifeq ($(ARCH),i386) X+USE_X86_ASM ?= YES X+else X+USE_X86_ASM ?= NO X+endif X X ################ X X-default_target: glx X- X-all: glx x11 svga X+all: X X ################################ X # Directories for object files # X@@ -43,11 +54,12 @@ X $(GLX_DIR) $(X11_DIR) $(SVGA_DIR): X $(MKDIR) X X-CFLAGS += -Did386 -funsigned-char -O6 \ X- -D__linux__ -march=pentiumpro -Wall \ X- -funroll-loops -fomit-frame-pointer -DNDEBUG \ X- -ffast-math -fno-strength-reduce -fexpensive-optimizations \ X- -I/usr/include X+CFLAGS += -DNDEBUG -DDATADIR='"$(DATADIR)"' X+ X+ifeq ($(strip $(USE_OPTIMIZE)),YES) X+CFLAGS += -O1 -funsigned-char -funroll-loops -fomit-frame-pointer \ X+ -ffast-math -fno-strength-reduce -fexpensive-optimizations X+endif X X LDFLAGS := -lm X X@@ -75,19 +87,25 @@ X image version security iplog \ X slist X X+ifeq ($(strip $(USE_X86_ASM)),YES) X GLX_S_FILES := \ X math snd_mixa sys_x86 X+endif X X GLX_C_OBJS := $(addprefix $(GLX_DIR)/, $(addsuffix .o, $(GLX_C_FILES))) X GLX_S_OBJS := $(addprefix $(GLX_DIR)/, $(addsuffix .o, $(GLX_S_FILES))) X X GLX_CFLAGS := $(CFLAGS) \ X- -DGLQUAKE -I/usr/X11R6/include X+ -DGLQUAKE -I$(X11BASE)/include X+ X+ifeq ($(strip $(USE_X86_ASM)),YES) X+GLX_CFLAGS += -Did386 X+endif X X GLX_LDFLAGS := $(LDFLAGS) \ X- -lGL -L/usr/X11R6/lib -lX11 \ X- -lXext -lXxf86dga -lXxf86vm \ X- -lpng -ljpeg X+ -L$(X11BASE)/lib -lGL -lX11 \ X+ -lXext -lXxf86dga -lXxf86vm \ X+ -L$(LOCALBASE)/lib -lpng -ljpeg X X glx: _DIR := $(GLX_DIR) X glx: _OBJS := $(GLX_C_OBJS) $(GLX_S_OBJS) X@@ -138,27 +156,37 @@ X snd_linux image version security \ X iplog slist X X+ifeq ($(strip $(USE_X86_ASM)),YES) X X11_S_FILES := \ X d_copy d_draw d_draw16 d_parta \ X d_polysa d_scana d_spr8 d_varsa \ X math r_aclipa r_aliasa r_drawa \ X r_edgea r_varsa snd_mixa surf8 \ X sys_x86 X+endif X X X11_C_OBJS := $(addprefix $(X11_DIR)/, $(addsuffix .o, $(X11_C_FILES))) X X11_S_OBJS := $(addprefix $(X11_DIR)/, $(addsuffix .o, $(X11_S_FILES))) X X-X11_CFLAGS := $(CFLAGS) X+X11_CFLAGS := $(CFLAGS) -I$(X11BASE)/include X+ X+ifeq ($(strip $(USE_X86_ASM)),YES) X+X11_CFLAGS += -Did386 X+endif X X X11_LDFLAGS := $(LDFLAGS) \ X- -L/usr/X11R6/lib -lX11 -lXext \ X- -lpng X+ -L$(X11BASE)/lib -lX11 -lXext \ X+ -L$(LOCALBASE)/lib -lpng X X+ifeq ($(ARCH),i386) X x11: _DIR := $(X11_DIR) X x11: _OBJS := $(X11_C_OBJS) $(X11_S_OBJS) X x11: _LDFLAGS := $(X11_LDFLAGS) X x11: _CFLAGS := $(X11_CFLAGS) X x11: $(X11_TARGET) X+else X+x11: X+endif X X $(X11_TARGET): $(X11_DIR) $(X11_C_OBJS) $(X11_S_OBJS) X $(BUILD) X@@ -213,17 +241,25 @@ X SVGA_C_OBJS := $(addprefix $(SVGA_DIR)/, $(addsuffix .o, $(SVGA_C_FILES))) X SVGA_S_OBJS := $(addprefix $(SVGA_DIR)/, $(addsuffix .o, $(SVGA_S_FILES))) X X-SVGA_CFLAGS := $(CFLAGS) X+SVGA_CFLAGS := $(CFLAGS) -Did386 -I$(LOCALBASE)/include X X SVGA_LDFLAGS := $(LDFLAGS) \ X- -L/usr/X11R6/lib -lX11 -lpthread \ X- -lvga -lpng X+ -L$(X11BASE)/lib -lX11 -lpthread \ X+ -L$(LOCALBASE)/lib -lvga -lpng X X+ifeq ($(OSTYPE),Linux) X+ ifeq ($(ARCH),i386) X svga: _DIR := $(SVGA_DIR) X svga: _OBJS := $(SVGA_C_OBJS) $(SVGA_S_OBJS) X svga: _LDFLAGS := $(SVGA_LDFLAGS) X svga: _CFLAGS := $(SVGA_CFLAGS) X svga: $(SVGA_TARGET) X+ else X+svga: X+ endif X+else X+svga: X+endif X X $(SVGA_TARGET): $(SVGA_DIR) $(SVGA_C_OBJS) $(SVGA_S_OBJS) X $(BUILD) END-of-joequake/files/patch-Makefile.linux echo x - joequake/files/patch-net.h sed 's/^X//' >joequake/files/patch-net.h << 'END-of-joequake/files/patch-net.h' X--- net.h.orig Thu Jul 21 12:00:04 2005 X+++ net.h Mon Dec 5 21:11:16 2005 X@@ -258,7 +258,7 @@ X extern int hostCacheCount; X extern hostcache_t hostcache[HOSTCACHESIZE]; X X-#if !defined(_WIN32 ) && !defined (__linux__) X+#if !defined(_WIN32 ) && !defined (__linux__) && !defined(__FreeBSD__) X #ifndef htonl X extern unsigned long htonl (unsigned long hostlong); X #endif END-of-joequake/files/patch-net.h echo x - joequake/files/patch-r_part.c sed 's/^X//' >joequake/files/patch-r_part.c << 'END-of-joequake/files/patch-r_part.c' X--- r_part.c.orig Fri Aug 26 15:02:44 2005 X+++ r_part.c Sun Jan 15 02:00:02 2006 X@@ -59,7 +59,7 @@ X X vec3_t r_pright, r_pup, r_ppn; X X-#if !id386 X+#if !id386 && !defined(GLQUAKE) X X /* X ============== END-of-joequake/files/patch-r_part.c echo x - joequake/files/patch-snd_linux.c sed 's/^X//' >joequake/files/patch-snd_linux.c << 'END-of-joequake/files/patch-snd_linux.c' X--- snd_linux.c.orig Fri Sep 10 12:22:32 2004 X+++ snd_linux.c Mon Dec 5 20:05:40 2005 X@@ -25,7 +25,11 @@ X #include X #include X #include X+#ifdef __FreeBSD__ X+#include X+#else X #include X+#endif X #include X #include "quakedef.h" X X@@ -74,7 +78,8 @@ X close (audio_fd); X return 0; X } X- X+//QuDos- X+/* //Moved later thx Quake3 X if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info) == -1) X { X perror ("GETOSPACE"); X@@ -82,7 +87,8 @@ X close (audio_fd); X return 0; X } X- X+*/ X+//-QuDos X shm = &sn; X shm->splitbuffer = 0; X X@@ -125,7 +131,8 @@ X shm->channels = 2; X else X shm->channels = 2; X- X+//QuDos- X+/* //Call mmap later thx Quake3 X shm->samples = info.fragstotal * info.fragsize / (shm->samplebits / 8); X shm->submission_chunk = 1; X X@@ -138,6 +145,8 @@ X close (audio_fd); X return 0; X } X+*/ X+//-QuDos X X tmp = 0; X if (shm->channels == 2) X@@ -196,6 +205,30 @@ X close (audio_fd); X return 0; X } X+ X+//QuDos- X+//Moved from above thx Quake3 X+ if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info) == -1) X+ { X+ perror ("GETOSPACE"); X+ Con_Printf ("Um, can't do GETOSPACE?\n"); X+ close (audio_fd); X+ return 0; X+ } X+ shm->samples = info.fragstotal * info.fragsize / (shm->samplebits / 8); X+ shm->submission_chunk = 1; X+ X+// memory map the dma buffer X+ shm->buffer = (unsigned char *)mmap (NULL, info.fragstotal * info.fragsize, PROT_WRITE, MAP_FILE|MAP_SHARED, audio_fd, 0); X+ if (!shm->buffer || shm->buffer == (unsigned char *)-1) X+ { X+ perror ("/dev/dsp"); X+ Con_Printf ("Could not mmap /dev/dsp\n"); X+ close (audio_fd); X+ return 0; X+ } X+//end Quake3 sound fix by calling mmap later X+//-QuDos X X // toggle the trigger & start her up X tmp = 0; END-of-joequake/files/patch-snd_linux.c echo x - joequake/files/patch-vid_glx.c sed 's/^X//' >joequake/files/patch-vid_glx.c << 'END-of-joequake/files/patch-vid_glx.c' X--- vid_glx.c.orig Sun Oct 16 17:40:58 2005 X+++ vid_glx.c Mon Dec 5 21:10:31 2005 X@@ -22,7 +22,9 @@ X #include X #include X #include X+#ifdef __linux__ X #include X+#endif X #include X #include X #include END-of-joequake/files/patch-vid_glx.c echo x - joequake/files/patch-common.c sed 's/^X//' >joequake/files/patch-common.c << 'END-of-joequake/files/patch-common.c' X--- common.c.orig Sat Dec 3 19:45:26 2005 X+++ common.c Mon Jan 30 21:29:27 2006 X@@ -1634,6 +1634,8 @@ X */ X void COM_InitFilesystem (void) X { X+ char *home; X+ char homepath[MAX_OSPATH]; X int i; X X // -basedir X@@ -1641,7 +1643,7 @@ X if ((i = COM_CheckParm("-basedir")) && i + 1 < com_argc) X Q_strncpyz (com_basedir, com_argv[i+1], sizeof(com_basedir)); X else X- Q_strncpyz (com_basedir, host_parms.basedir, sizeof(com_basedir)); X+ Q_strncpyz (com_basedir, DATADIR, sizeof(com_basedir)); X X for (i=0 ; i < strlen(com_basedir) ; i++) X if (com_basedir[i] == '\\') X@@ -1675,4 +1677,13 @@ X // Adds basedir/gamedir as an override game X if ((i = COM_CheckParm("-game")) && i + 1 < com_argc) X COM_AddGameDirectory (va("%s/%s", com_basedir, com_argv[i+1])); X+ X+ if ((home = getenv("HOME")) != NULL) { X+ Q_snprintfz(homepath, sizeof(homepath), "%s/.joequake/"GAMENAME, home); X+ COM_AddGameDirectory(homepath); X+ Q_snprintfz(homepath, sizeof(homepath), "%s/.joequake/%s", home, com_gamedirname); X+ COM_CreatePath(homepath); X+ Sys_mkdir(homepath); X+ COM_AddGameDirectory(homepath); X+ } X } END-of-joequake/files/patch-common.c echo x - joequake/files/patch-slist.c sed 's/^X//' >joequake/files/patch-slist.c << 'END-of-joequake/files/patch-slist.c' X--- slist.c.orig Fri Oct 21 23:45:42 2005 X+++ slist.c Wed Jan 11 15:19:32 2006 X@@ -21,10 +21,13 @@ X X #include "quakedef.h" X X+char slfile[MAX_OSPATH]; X server_entry_t slist[MAX_SERVER_LIST]; X X void SList_Init (void) X { X+ Q_strncpyz(slfile, com_gamedir, sizeof(slfile)); X+ strncat(slfile, "/servers.txt", sizeof(slfile)-strlen(slfile)-1); X memset (&slist, 0, sizeof(slist)); X } X X@@ -32,7 +35,7 @@ X { X FILE *f; X X- if (!(f = fopen("servers.txt", "wt"))) X+ if (!(f = fopen(slfile, "wt"))) X { X Con_DPrintf ("Couldn't open servers.txt\n"); X return; X@@ -111,7 +114,7 @@ X char line[128], *desc, *addr; X FILE *f; X X- if (!(f = fopen("servers.txt", "rt"))) X+ if (!(f = fopen(slfile, "rt"))) X return; X X count = len = 0; END-of-joequake/files/patch-slist.c echo x - joequake/files/patch-vid_x11.c sed 's/^X//' >joequake/files/patch-vid_x11.c << 'END-of-joequake/files/patch-vid_x11.c' X--- vid_x11.c.orig Mon Oct 17 10:08:06 2005 X+++ vid_x11.c Sun Jan 15 01:55:33 2006 X@@ -1052,3 +1052,13 @@ X void VID_UnlockBuffer (void) X { X } X+ X+#if !id386 X+void R_Surf8Patch () X+{ X+} X+ X+void R_SurfacePatch (void) X+{ X+} X+#endif END-of-joequake/files/patch-vid_x11.c echo x - joequake/files/patch-host.c sed 's/^X//' >joequake/files/patch-host.c << 'END-of-joequake/files/patch-host.c' X--- host.c.orig Wed Oct 26 10:21:22 2005 X+++ host.c Mon Jan 16 18:45:46 2006 X@@ -969,6 +969,7 @@ X */ X void Host_Shutdown (void) X { X+ char cmdhist_path[MAX_OSPATH]; X int i, j; X FILE *cmdhist; X cmdhistory_t cmdhistory; X@@ -989,7 +990,8 @@ X Host_WriteConfiguration (); X IPLog_WriteLog (); X X- if (con_initialized && (cmdhist = fopen("joequake/cmdhist.dat", "wb"))) X+ snprintf(cmdhist_path, sizeof(cmdhist_path), "%s/cmdhist.dat", com_gamedir); X+ if (con_initialized && (cmdhist = fopen(cmdhist_path, "wb"))) X { X for (i=0 ; i<64 ; i++) X for (j=0 ; jjoequake/files/patch-keys.c << 'END-of-joequake/files/patch-keys.c' X--- keys.c.orig Fri Oct 21 18:30:06 2005 X+++ keys.c Mon Jan 16 18:47:12 2006 X@@ -783,11 +783,13 @@ X void Key_Init (void) X { X // joe: added stuff from [sons]Quake X+ char cmdhist_path[MAX_OSPATH]; X int i, j; X FILE *cmdhist; X cmdhistory_t cmdhistory; X X- if ((cmdhist = fopen("joequake/cmdhist.dat", "rb"))) X+ snprintf(cmdhist_path, sizeof(cmdhist_path), "%s/cmdhist.dat", com_gamedir); X+ if ((cmdhist = fopen(cmdhist_path, "rb"))) X { X fread (&cmdhistory, sizeof(cmdhistory_t), 1, cmdhist); X fclose (cmdhist); END-of-joequake/files/patch-keys.c echo x - joequake/files/patch-console.c sed 's/^X//' >joequake/files/patch-console.c << 'END-of-joequake/files/patch-console.c' X--- console.c.orig Sun Aug 14 09:38:36 2005 X+++ console.c Mon Jan 16 18:54:47 2006 X@@ -205,8 +205,11 @@ X */ X void Con_Init (void) X { X+ char qclog_path[MAX_OSPATH]; X+ X+ snprintf(qclog_path, sizeof(qclog_path), "%s/qconsole.log", com_gamedir); X if (COM_CheckParm("-condebug")) X- qconsole_log = fopen (va("%s/joequake/qconsole.log", com_basedir), "a"); X+ qconsole_log = fopen (qclog_path, "a"); X X con_text = Hunk_AllocName (CON_TEXTSIZE, "context"); X memset (con_text, ' ', CON_TEXTSIZE); END-of-joequake/files/patch-console.c echo x - joequake/files/patch-gl_screen.c sed 's/^X//' >joequake/files/patch-gl_screen.c << 'END-of-joequake/files/patch-gl_screen.c' X--- gl_screen.c.orig Wed Sep 7 11:10:32 2005 X+++ gl_screen.c Mon Jan 16 20:20:05 2006 X@@ -734,8 +734,9 @@ X void SCR_ScreenShot_f (void) X { X int i, success; X- char name[MAX_OSPATH], ext[4], *sshot_dir = "joequake/shots"; X+ char name[MAX_OSPATH], ext[4], sshot_dir[MAX_OSPATH]; X X+ snprintf(sshot_dir, sizeof(sshot_dir), "%s/shots", com_gamedir); X if (Cmd_Argc() == 2) X { X Q_strncpyz (name, Cmd_Argv(1), sizeof(name)); X@@ -753,7 +754,7 @@ X for (i=0 ; i<999 ; i++) X { X Q_snprintfz (name, sizeof(name), "joequake%03i.%s", i, ext); X- if (Sys_FileTime(va("%s/%s/%s", com_basedir, sshot_dir, name)) == -1) X+ if (Sys_FileTime(va("%s/%s", sshot_dir, name)) == -1) X break; // file doesn't exist X } X X@@ -769,7 +770,7 @@ X return; X } X X- success = SCR_ScreenShot (va("%s/%s", sshot_dir, name)); X+ success = SCR_ScreenShot(va("%s/%s", sshot_dir, name)); X Con_Printf ("%s %s\n", success ? "Wrote" : "Couldn't write", name); X } X END-of-joequake/files/patch-gl_screen.c echo x - joequake/files/patch-r_screen.c sed 's/^X//' >joequake/files/patch-r_screen.c << 'END-of-joequake/files/patch-r_screen.c' X--- r_screen.c.orig Sat Oct 15 11:42:06 2005 X+++ r_screen.c Mon Jan 16 20:20:08 2006 X@@ -556,8 +556,9 @@ X void SCR_ScreenShot_f (void) X { X int i, success; X- char name[MAX_OSPATH], ext[4], *sshot_dir = "joequake/shots"; X+ char name[MAX_OSPATH], ext[4], sshot_dir[MAX_OSPATH]; X X+ snprintf(sshot_dir, sizeof(sshot_dir), "%s/shots", com_gamedir); X if (Cmd_Argc() == 2) X { X Q_strncpyz (name, Cmd_Argv(1), sizeof(name)); X@@ -573,7 +574,7 @@ X for (i=0 ; i<999 ; i++) X { X Q_snprintfz (name, sizeof(name), "joequake%03i.%s", i, ext); X- if (Sys_FileTime(va("%s/%s/%s", com_basedir, sshot_dir, name)) == -1) X+ if (Sys_FileTime(va("%s/%s", sshot_dir, name)) == -1) X break; // file doesn't exist X } X END-of-joequake/files/patch-r_screen.c echo x - joequake/files/patch-image.c sed 's/^X//' >joequake/files/patch-image.c << 'END-of-joequake/files/patch-image.c' X--- image.c.orig Sun Oct 16 21:47:00 2005 X+++ image.c Mon Jan 16 20:18:54 2006 X@@ -422,6 +422,7 @@ X buffer[i+2] = temp; X } X X+ COM_CreatePath(filename); X if (!COM_WriteFile(filename, buffer, size + 18)) X retval = false; X free (buffer); X@@ -585,17 +586,14 @@ X Image_WritePNG X ============= X */ X-int Image_WritePNG (char *filename, int compression, byte *pixels, int width, int height) X+int Image_WritePNG (char *name, int compression, byte *pixels, int width, int height) X { X- char name[MAX_OSPATH]; X int i, bpp = 3, pngformat, width_sign; X FILE *fp; X png_structp png_ptr; X png_infop info_ptr; X png_byte **rowpointers; X X- Q_snprintfz (name, MAX_OSPATH, "%s/%s", com_basedir, filename); X- X width_sign = (width < 0) ? -1 : 1; X width = abs(width); X X@@ -816,15 +814,12 @@ X Image_WriteJPEG X ============= X */ X-int Image_WriteJPEG (char *filename, int compression, byte *pixels, int width, int height) X+int Image_WriteJPEG (char *name, int compression, byte *pixels, int width, int height) X { X- char name[MAX_OSPATH]; X byte *scanline; X FILE *fout; X struct jpeg_compress_struct cinfo; X struct jpeg_error_mgr jerr; X- X- Q_snprintfz (name, MAX_OSPATH, "%s/%s", com_basedir, filename); X X if (!(fout = fopen(name, "wb"))) X { END-of-joequake/files/patch-image.c echo x - joequake/pkg-descr sed 's/^X//' >joequake/pkg-descr << 'END-of-joequake/pkg-descr' XJoeQuake is an improved NQ engine with plenty of ZQuake and FuhQuake graphical Xeffects included. JoeQuake's main aim is to provide pleasant demo watching for X.dem files. JoeQuake also supports better graphical quality including 32bit Xtextures, colored lights, smoother animations, etc. X XWWW: http://runecentral.com/joequake/ END-of-joequake/pkg-descr echo x - joequake/pkg-message sed 's/^X//' >joequake/pkg-message << 'END-of-joequake/pkg-message' X============================================================================== X XJoeQuake has been installed. X XTo start it in full-screen mode you can run it with the "-fullscreen" Xparameter. X XIf you have mouse problems you can try running it with the "-nomdga" Xparameter (this will make the mouse work fine when the DGA X11 extension is Xdisabled). X XIf you hace sound problems try running it with the parameter X"-sndspeed ", where "" could be 22050 or 44100 for example. X XIf you enable water alpha ("r_wateralpha" or from the menu), set "r_novis" to X"1" or you will have problems with water/lava. Note that the value of X"r_novis" will be saved in the configuration file. X X============================================================================== END-of-joequake/pkg-message echo x - joequake/distinfo sed 's/^X//' >joequake/distinfo << 'END-of-joequake/distinfo' XMD5 (joequake/joequake-v0.15b1189-source.zip) = 7352503837d9cb04d64a30451a26e8d5 XSHA256 (joequake/joequake-v0.15b1189-source.zip) = 10ae2da3ab0ffa0701de5367e12731a2c88f6eb9f3459eeec643122f40a7f5a3 XSIZE (joequake/joequake-v0.15b1189-source.zip) = 1316431 XMD5 (joequake/joequake-v0.15b1146-linux.zip) = 7288c2ad0b2859ac1fe7f4ae1f3e6e31 XSHA256 (joequake/joequake-v0.15b1146-linux.zip) = 7b478afd56f083065e0e306b77abbad91676b634395e947fd1615d4c1a7c2b96 XSIZE (joequake/joequake-v0.15b1146-linux.zip) = 4848059 XMD5 (joequake/joequake_wad.zip) = 33219a7615c8265845948099c9c86b80 XSHA256 (joequake/joequake_wad.zip) = 754f4b0990777f509987c7a4f5382cf98cd063c7f2e4a3df3e757ddfb3af9191 XSIZE (joequake/joequake_wad.zip) = 1053818 XMD5 (joequake/hipnotic_wad.zip) = b517d91207f39edc4f096f704dcc89dc XSHA256 (joequake/hipnotic_wad.zip) = 267e354c20c35f414513c5d73c536aff9a431a1271f125c450c40f08963c3189 XSIZE (joequake/hipnotic_wad.zip) = 272279 END-of-joequake/distinfo echo x - joequake/pkg-plist sed 's/^X//' >joequake/pkg-plist << 'END-of-joequake/pkg-plist' X%%GLX%%bin/joequake-glx X%%X11%%bin/joequake-x11 X%%DATADIR%%/joequake/pak0.pak X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_inv2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_invis.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_invul2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_quad.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_cells.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_nails.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_rocket.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_shells.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_0.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_6.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_7.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_8.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_9.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_minus.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/backtile.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/disc.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/ibar.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/NET.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_0.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_6.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_7.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_8.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_9.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_colon.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_minus.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_slash.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/RAM.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_invis.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_invuln.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_key1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_key2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_quad.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_suit.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sbar.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/scorebar.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor3.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/sb_key2.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/sb_key1.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_rlaunch.png X%%HUD_DIR%%@dirrm %%DATADIR%%/joequake/textures/wad X%%HUD_DIR%%@dirrm %%DATADIR%%/joequake/textures X@dirrm %%DATADIR%%/joequake END-of-joequake/pkg-plist exit --- joequake.shar ends here --- From: "Alejandro Pulver" To: "FreeBSD gnats submit" Cc: Subject: Re: ports/91890: [NEW PORT] games/joequake: Improved NQ engine with ZQuake and FuhQuake graphical Date: Tue, 31 Jan 2006 15:43:17 -0300 >Submitter-Id: current-users >Originator: Alejandro Pulver >Organization: >Confidential: no >Synopsis: Re: ports/91890: [NEW PORT] games/joequake: Improved NQ engine with ZQuake and FuhQuake graphical >Severity: non-critical >Priority: low >Category: ports >Class: change-request >Release: FreeBSD 5.4-RELEASE i386 >Environment: System: FreeBSD 5.4-RELEASE #0: Sat May 21 12:14:47 ART 2005 root@ale.varnet.bsd:/usr/src/sys/i386/compile/ATHLON-ALE >Description: * Fix problem with last patch (was using the id1 game directory for writting instead of joequake). >How-To-Repeat: >Fix: --- joequake.diff begins here --- # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # joequake # joequake/Makefile # joequake/files # joequake/files/patch-cd_linux.c # joequake/files/patch-Makefile.linux # joequake/files/patch-net.h # joequake/files/patch-r_part.c # joequake/files/patch-snd_linux.c # joequake/files/patch-vid_glx.c # joequake/files/patch-common.c # joequake/files/patch-slist.c # joequake/files/patch-vid_x11.c # joequake/files/patch-host.c # joequake/files/patch-keys.c # joequake/files/patch-console.c # joequake/files/patch-gl_screen.c # joequake/files/patch-r_screen.c # joequake/files/patch-image.c # joequake/pkg-descr # joequake/pkg-message # joequake/distinfo # joequake/pkg-plist # echo c - joequake mkdir -p joequake > /dev/null 2>&1 echo x - joequake/Makefile sed 's/^X//' >joequake/Makefile << 'END-of-joequake/Makefile' X# New ports collection makefile for: joequake X# Date created: 11 Jan 2006 X# Whom: Alejandro Pulver X# X# $FreeBSD$ X# X XPORTNAME= joequake XPORTVERSION= 0.15b1189 XCATEGORIES= games XMASTER_SITES= http://runecentral.com/joequake/ XDISTNAME= ${PORTNAME}-v${PORTVERSION}-source XDISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ X ${PORTNAME}-v0.15b1146-linux${EXTRACT_SUFX} XDIST_SUBDIR= ${PORTNAME} X XMAINTAINER= alejandro@varnet.biz XCOMMENT= Improved NQ engine with ZQuake and FuhQuake graphical effects X XLIB_DEPENDS= png.5:${PORTSDIR}/graphics/png X XUSE_GMAKE= yes XUSE_ZIP= yes XNO_WRKSUBDIR= yes X XMAKEFILE= Makefile.linux X XOPTIONS= GLX "Build GLX client" on \ X HUD "High quality HUD images (for OpenGL)" off \ X HUD_SA "Same for Scourge of Armagon (hipnotic)" off \ X OPTIMIZED_CFLAGS "Enable compilation optimizations" on \ X X11 "Build X11 client" on \ X X86_ASM "Enable x86 assembly code" on X XDATADIR= ${Q1DIR} XMAKE_ENV= DATADIR="${DATADIR}" X X.include "${.CURDIR}/../quake-data/Makefile.include" X X.include X X.if !defined(WITH_GLX) && !defined(WITH_X11) XIGNORE= Please select at least one client X.endif X X.if defined(WITH_GLX) XUSE_GL= yes XLIB_DEPENDS+= jpeg.9:${PORTSDIR}/graphics/jpeg XALL_TARGET+= glx XPLIST_SUB+= GLX="" X.else XPLIST_SUB+= GLX="@comment " X.endif X X.if defined(WITH_HUD) XDISTFILES+= joequake_wad${EXTRACT_SUFX} XPLIST_SUB+= HUD="" X.else XPLIST_SUB+= HUD="@comment " X.endif X X.if defined(WITH_HUD_SA) XDISTFILES+= hipnotic_wad${EXTRACT_SUFX} XPLIST_SUB+= HUD_SA="" X.else XPLIST_SUB+= HUD_SA="@comment " X.endif X X.if defined(WITH_HUD) || defined(WITH_HUD_SA) XPLIST_SUB+= HUD_DIR="" X.else XPLIST_SUB+= HUD_DIR="@comment " X.endif X X.for f in OPTIMIZED_CFLAGS X86_ASM X. if defined(WITH_${f}) XMAKE_ENV+= USE_${f}=YES X. else XMAKE_ENV+= USE_${f}=NO X. endif X.endfor X X.if defined(WITH_X11) XUSE_XLIB= yes XALL_TARGET+= x11 XPLIST_SUB+= X11="" X.else XPLIST_SUB+= X11="@comment " X.endif X Xdo-install: X ${MKDIR} ${DATADIR}/${PORTNAME} X ${INSTALL_DATA} ${WRKSRC}/${PORTNAME}/pak0.pak ${DATADIR}/${PORTNAME} X.if defined(WITH_GLX) X ${INSTALL_PROGRAM} ${WRKSRC}/release_glx/joequake-gl.glx \ X ${PREFIX}/bin/joequake-glx X.endif X.if defined(WITH_HUD) || defined(WITH_HUD_SA) X ${MKDIR} ${DATADIR}/${PORTNAME}/textures/wad X ${INSTALL_DATA} ${WRKSRC}/wad/* ${DATADIR}/${PORTNAME}/textures/wad X.endif X.if defined(WITH_X11) X ${INSTALL_PROGRAM} ${WRKSRC}/release_x11/joequake.x11 \ X ${PREFIX}/bin/joequake-x11 X.endif X Xpost-install: X @${ECHO_CMD} X @${CAT} ${PKGMESSAGE} X @${ECHO_CMD} X X.include END-of-joequake/Makefile echo c - joequake/files mkdir -p joequake/files > /dev/null 2>&1 echo x - joequake/files/patch-cd_linux.c sed 's/^X//' >joequake/files/patch-cd_linux.c << 'END-of-joequake/files/patch-cd_linux.c' X--- cd_linux.c.orig Sun Aug 14 10:09:04 2005 X+++ cd_linux.c Wed Dec 7 17:22:17 2005 X@@ -31,7 +31,11 @@ X #include X #include X X+#ifdef __FreeBSD__ X+#include X+#else X #include X+#endif X X #include "quakedef.h" X X@@ -54,8 +58,13 @@ X if (cdfile == -1 || !enabled) X return; // no cd init'd X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCEJECT) == -1) X+ Con_DPrintf ("ioctl cdioceject failed\n"); X+#else X if (ioctl(cdfile, CDROMEJECT) == -1) X Con_DPrintf ("ioctl cdromeject failed\n"); X+#endif X } X X static void CDAudio_CloseDoor (void) X@@ -63,38 +72,67 @@ X if (cdfile == -1 || !enabled) X return; // no cd init'd X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCCLOSE) == -1) X+ Con_DPrintf ("ioctl cdiocclose failed\n"); X+#else X if (ioctl(cdfile, CDROMCLOSETRAY) == -1) X Con_DPrintf ("ioctl cdromclosetray failed\n"); X+#endif X } X X static int CDAudio_GetAudioDiskInfo (void) X { X+#ifdef __FreeBSD__ X+ struct ioc_toc_header tochdr; X+#else X struct cdrom_tochdr tochdr; X+#endif X X cdValid = false; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOREADTOCHEADER, &tochdr) == -1) X+ { X+ Con_DPrintf ("ioctl cdioreadtocheader failed\n"); X+#else X if (ioctl(cdfile, CDROMREADTOCHDR, &tochdr) == -1) X { X Con_DPrintf ("ioctl cdromreadtochdr failed\n"); X+#endif X return -1; X } X X+#ifdef __FreeBSD__ X+ if (tochdr.starting_track < 1) X+#else X if (tochdr.cdth_trk0 < 1) X+#endif X { X Con_DPrintf ("CDAudio: no music tracks\n"); X return -1; X } X X cdValid = true; X+#ifdef __FreeBSD__ X+ maxTrack = tochdr.ending_track; X+#else X maxTrack = tochdr.cdth_trk1; X+#endif X X return 0; X } X X void CDAudio_Play (byte track, qboolean looping) X { X+#ifdef __FreeBSD__ X+ struct ioc_read_toc_entry entry; X+ struct cd_toc_entry toc_buffer; X+ struct ioc_play_track ti; X+#else X struct cdrom_tocentry entry; X struct cdrom_ti ti; X+#endif X X if (cdfile == -1 || !enabled) X return; X@@ -114,6 +152,21 @@ X return; X } X X+#ifdef __FreeBSD__ X+ #define CDROM_DATA_TRACK 4 X+ bzero((char *)&toc_buffer, sizeof(toc_buffer)); X+ entry.data_len = sizeof(toc_buffer); X+ entry.data = &toc_buffer; X+ // don't try to play a non-audio track X+ entry.starting_track = track; X+ entry.address_format = CD_MSF_FORMAT; X+ if ( ioctl(cdfile, CDIOREADTOCENTRYS, &entry) == -1 ) X+ { X+ Con_DPrintf("ioctl cdromreadtocentry failed\n"); X+ return; X+ } X+ if (toc_buffer.control == CDROM_DATA_TRACK) X+#else X // don't try to play a non-audio track X entry.cdte_track = track; X entry.cdte_format = CDROM_MSF; X@@ -123,6 +176,7 @@ X return; X } X if (entry.cdte_ctrl == CDROM_DATA_TRACK) X+#endif X { X Con_Printf ("CDAudio: track %i is not audio\n", track); X return; X@@ -135,19 +189,37 @@ X CDAudio_Stop (); X } X X+#ifdef __FreeBSD__ X+ ti.start_track = track; X+ ti.end_track = track; X+ ti.start_index = 1; X+ ti.end_index = 99; X+#else X ti.cdti_trk0 = track; X ti.cdti_trk1 = track; X ti.cdti_ind0 = 1; X ti.cdti_ind1 = 99; X+#endif X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCPLAYTRACKS, &ti) == -1) X+ { X+ Con_DPrintf ("ioctl cdiocplaytracks failed\n"); X+#else X if (ioctl(cdfile, CDROMPLAYTRKIND, &ti) == -1) X { X Con_DPrintf ("ioctl cdromplaytrkind failed\n"); X+#endif X return; X } X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCRESUME) == -1) X+ Con_DPrintf ("ioctl cdiocresume failed\n"); X+#else X if (ioctl(cdfile, CDROMRESUME) == -1) X Con_DPrintf ("ioctl cdromresume failed\n"); X+#endif X X playLooping = looping; X playTrack = track; X@@ -165,8 +237,13 @@ X if (!playing) X return; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCSTOP) == -1) X+ Con_DPrintf ("ioctl cdiocstop failed (%d)\n", errno); X+#else X if (ioctl(cdfile, CDROMSTOP) == -1) X Con_DPrintf ("ioctl cdromstop failed (%d)\n", errno); X+#endif X X wasPlaying = false; X playing = false; X@@ -180,8 +257,13 @@ X if (!playing) X return; X X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCPAUSE) == -1) X+ Con_DPrintf ("ioctl cdiocpause failed\n"); X+#else X if (ioctl(cdfile, CDROMPAUSE) == -1) X Con_DPrintf ("ioctl cdrompause failed\n"); X+#endif X X wasPlaying = playing; X playing = false; X@@ -197,9 +279,14 @@ X X if (!wasPlaying) X return; X- X+ X+#ifdef __FreeBSD__ X+ if (ioctl(cdfile, CDIOCRESUME) == -1) X+ Con_DPrintf ("ioctl cdiocresume failed\n"); X+#else X if (ioctl(cdfile, CDROMRESUME) == -1) X Con_DPrintf ("ioctl cdromresume failed\n"); X+#endif X playing = true; X } X X@@ -322,7 +409,12 @@ X X void CDAudio_Update (void) X { X+#ifdef __FreeBSD__ X+ struct ioc_read_subchannel subchnl; X+ struct cd_sub_channel_info data; X+#else X struct cdrom_subchnl subchnl; X+#endif X static time_t lastchk; X X if (!enabled) X@@ -347,6 +439,24 @@ X if (playing && lastchk < time(NULL)) X { X lastchk = time(NULL) + 2; // two seconds between chks X+#if defined(__FreeBSD__) X+ subchnl.address_format = CD_MSF_FORMAT; X+ subchnl.data_format = CD_CURRENT_POSITION; X+ subchnl.data_len = sizeof(data); X+ subchnl.track = playTrack; X+ subchnl.data = &data; X+ if (ioctl(cdfile, CDIOCREADSUBCHANNEL, &subchnl) == -1 ) { X+ Con_DPrintf("ioctl cdiocreadsubchannel failed\n"); X+ playing = false; X+ return; X+ } X+ if (subchnl.data->header.audio_status != CD_AS_PLAY_IN_PROGRESS && X+ subchnl.data->header.audio_status != CD_AS_PLAY_PAUSED) { X+ playing = false; X+ if (playLooping) X+ CDAudio_Play(playTrack, true); X+ } X+#else X subchnl.cdsc_format = CDROM_MSF; X if (ioctl(cdfile, CDROMSUBCHNL, &subchnl) == -1) X { X@@ -360,6 +470,7 @@ X if (playLooping) X CDAudio_Play (playTrack, true); X } X+#endif X } X } X END-of-joequake/files/patch-cd_linux.c echo x - joequake/files/patch-Makefile.linux sed 's/^X//' >joequake/files/patch-Makefile.linux << 'END-of-joequake/files/patch-Makefile.linux' X--- Makefile.linux.orig Wed Sep 7 20:11:50 2005 X+++ Makefile.linux Sun Jan 15 01:54:54 2006 X@@ -4,14 +4,25 @@ X # by Slawomir Mazurek X # X X-CC := gcc X-_E := @ X+# this nice line comes from the linux kernel makefile X+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/) X+OSTYPE := $(shell uname -s) X+ X+CC ?= gcc X+#_E := @ X+LOCALBASE ?= /usr/local X+X11BASE ?= /usr/X11R6 X+USE_OPTIMIZE ?= YES X+ X+ifeq ($(ARCH),i386) X+USE_X86_ASM ?= YES X+else X+USE_X86_ASM ?= NO X+endif X X ################ X X-default_target: glx X- X-all: glx x11 svga X+all: X X ################################ X # Directories for object files # X@@ -43,11 +54,12 @@ X $(GLX_DIR) $(X11_DIR) $(SVGA_DIR): X $(MKDIR) X X-CFLAGS += -Did386 -funsigned-char -O6 \ X- -D__linux__ -march=pentiumpro -Wall \ X- -funroll-loops -fomit-frame-pointer -DNDEBUG \ X- -ffast-math -fno-strength-reduce -fexpensive-optimizations \ X- -I/usr/include X+CFLAGS += -DNDEBUG -DDATADIR='"$(DATADIR)"' X+ X+ifeq ($(strip $(USE_OPTIMIZE)),YES) X+CFLAGS += -O1 -funsigned-char -funroll-loops -fomit-frame-pointer \ X+ -ffast-math -fno-strength-reduce -fexpensive-optimizations X+endif X X LDFLAGS := -lm X X@@ -75,19 +87,25 @@ X image version security iplog \ X slist X X+ifeq ($(strip $(USE_X86_ASM)),YES) X GLX_S_FILES := \ X math snd_mixa sys_x86 X+endif X X GLX_C_OBJS := $(addprefix $(GLX_DIR)/, $(addsuffix .o, $(GLX_C_FILES))) X GLX_S_OBJS := $(addprefix $(GLX_DIR)/, $(addsuffix .o, $(GLX_S_FILES))) X X GLX_CFLAGS := $(CFLAGS) \ X- -DGLQUAKE -I/usr/X11R6/include X+ -DGLQUAKE -I$(X11BASE)/include X+ X+ifeq ($(strip $(USE_X86_ASM)),YES) X+GLX_CFLAGS += -Did386 X+endif X X GLX_LDFLAGS := $(LDFLAGS) \ X- -lGL -L/usr/X11R6/lib -lX11 \ X- -lXext -lXxf86dga -lXxf86vm \ X- -lpng -ljpeg X+ -L$(X11BASE)/lib -lGL -lX11 \ X+ -lXext -lXxf86dga -lXxf86vm \ X+ -L$(LOCALBASE)/lib -lpng -ljpeg X X glx: _DIR := $(GLX_DIR) X glx: _OBJS := $(GLX_C_OBJS) $(GLX_S_OBJS) X@@ -138,27 +156,37 @@ X snd_linux image version security \ X iplog slist X X+ifeq ($(strip $(USE_X86_ASM)),YES) X X11_S_FILES := \ X d_copy d_draw d_draw16 d_parta \ X d_polysa d_scana d_spr8 d_varsa \ X math r_aclipa r_aliasa r_drawa \ X r_edgea r_varsa snd_mixa surf8 \ X sys_x86 X+endif X X X11_C_OBJS := $(addprefix $(X11_DIR)/, $(addsuffix .o, $(X11_C_FILES))) X X11_S_OBJS := $(addprefix $(X11_DIR)/, $(addsuffix .o, $(X11_S_FILES))) X X-X11_CFLAGS := $(CFLAGS) X+X11_CFLAGS := $(CFLAGS) -I$(X11BASE)/include X+ X+ifeq ($(strip $(USE_X86_ASM)),YES) X+X11_CFLAGS += -Did386 X+endif X X X11_LDFLAGS := $(LDFLAGS) \ X- -L/usr/X11R6/lib -lX11 -lXext \ X- -lpng X+ -L$(X11BASE)/lib -lX11 -lXext \ X+ -L$(LOCALBASE)/lib -lpng X X+ifeq ($(ARCH),i386) X x11: _DIR := $(X11_DIR) X x11: _OBJS := $(X11_C_OBJS) $(X11_S_OBJS) X x11: _LDFLAGS := $(X11_LDFLAGS) X x11: _CFLAGS := $(X11_CFLAGS) X x11: $(X11_TARGET) X+else X+x11: X+endif X X $(X11_TARGET): $(X11_DIR) $(X11_C_OBJS) $(X11_S_OBJS) X $(BUILD) X@@ -213,17 +241,25 @@ X SVGA_C_OBJS := $(addprefix $(SVGA_DIR)/, $(addsuffix .o, $(SVGA_C_FILES))) X SVGA_S_OBJS := $(addprefix $(SVGA_DIR)/, $(addsuffix .o, $(SVGA_S_FILES))) X X-SVGA_CFLAGS := $(CFLAGS) X+SVGA_CFLAGS := $(CFLAGS) -Did386 -I$(LOCALBASE)/include X X SVGA_LDFLAGS := $(LDFLAGS) \ X- -L/usr/X11R6/lib -lX11 -lpthread \ X- -lvga -lpng X+ -L$(X11BASE)/lib -lX11 -lpthread \ X+ -L$(LOCALBASE)/lib -lvga -lpng X X+ifeq ($(OSTYPE),Linux) X+ ifeq ($(ARCH),i386) X svga: _DIR := $(SVGA_DIR) X svga: _OBJS := $(SVGA_C_OBJS) $(SVGA_S_OBJS) X svga: _LDFLAGS := $(SVGA_LDFLAGS) X svga: _CFLAGS := $(SVGA_CFLAGS) X svga: $(SVGA_TARGET) X+ else X+svga: X+ endif X+else X+svga: X+endif X X $(SVGA_TARGET): $(SVGA_DIR) $(SVGA_C_OBJS) $(SVGA_S_OBJS) X $(BUILD) END-of-joequake/files/patch-Makefile.linux echo x - joequake/files/patch-net.h sed 's/^X//' >joequake/files/patch-net.h << 'END-of-joequake/files/patch-net.h' X--- net.h.orig Thu Jul 21 12:00:04 2005 X+++ net.h Mon Dec 5 21:11:16 2005 X@@ -258,7 +258,7 @@ X extern int hostCacheCount; X extern hostcache_t hostcache[HOSTCACHESIZE]; X X-#if !defined(_WIN32 ) && !defined (__linux__) X+#if !defined(_WIN32 ) && !defined (__linux__) && !defined(__FreeBSD__) X #ifndef htonl X extern unsigned long htonl (unsigned long hostlong); X #endif END-of-joequake/files/patch-net.h echo x - joequake/files/patch-r_part.c sed 's/^X//' >joequake/files/patch-r_part.c << 'END-of-joequake/files/patch-r_part.c' X--- r_part.c.orig Fri Aug 26 15:02:44 2005 X+++ r_part.c Sun Jan 15 02:00:02 2006 X@@ -59,7 +59,7 @@ X X vec3_t r_pright, r_pup, r_ppn; X X-#if !id386 X+#if !id386 && !defined(GLQUAKE) X X /* X ============== END-of-joequake/files/patch-r_part.c echo x - joequake/files/patch-snd_linux.c sed 's/^X//' >joequake/files/patch-snd_linux.c << 'END-of-joequake/files/patch-snd_linux.c' X--- snd_linux.c.orig Fri Sep 10 12:22:32 2004 X+++ snd_linux.c Mon Dec 5 20:05:40 2005 X@@ -25,7 +25,11 @@ X #include X #include X #include X+#ifdef __FreeBSD__ X+#include X+#else X #include X+#endif X #include X #include "quakedef.h" X X@@ -74,7 +78,8 @@ X close (audio_fd); X return 0; X } X- X+//QuDos- X+/* //Moved later thx Quake3 X if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info) == -1) X { X perror ("GETOSPACE"); X@@ -82,7 +87,8 @@ X close (audio_fd); X return 0; X } X- X+*/ X+//-QuDos X shm = &sn; X shm->splitbuffer = 0; X X@@ -125,7 +131,8 @@ X shm->channels = 2; X else X shm->channels = 2; X- X+//QuDos- X+/* //Call mmap later thx Quake3 X shm->samples = info.fragstotal * info.fragsize / (shm->samplebits / 8); X shm->submission_chunk = 1; X X@@ -138,6 +145,8 @@ X close (audio_fd); X return 0; X } X+*/ X+//-QuDos X X tmp = 0; X if (shm->channels == 2) X@@ -196,6 +205,30 @@ X close (audio_fd); X return 0; X } X+ X+//QuDos- X+//Moved from above thx Quake3 X+ if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info) == -1) X+ { X+ perror ("GETOSPACE"); X+ Con_Printf ("Um, can't do GETOSPACE?\n"); X+ close (audio_fd); X+ return 0; X+ } X+ shm->samples = info.fragstotal * info.fragsize / (shm->samplebits / 8); X+ shm->submission_chunk = 1; X+ X+// memory map the dma buffer X+ shm->buffer = (unsigned char *)mmap (NULL, info.fragstotal * info.fragsize, PROT_WRITE, MAP_FILE|MAP_SHARED, audio_fd, 0); X+ if (!shm->buffer || shm->buffer == (unsigned char *)-1) X+ { X+ perror ("/dev/dsp"); X+ Con_Printf ("Could not mmap /dev/dsp\n"); X+ close (audio_fd); X+ return 0; X+ } X+//end Quake3 sound fix by calling mmap later X+//-QuDos X X // toggle the trigger & start her up X tmp = 0; END-of-joequake/files/patch-snd_linux.c echo x - joequake/files/patch-vid_glx.c sed 's/^X//' >joequake/files/patch-vid_glx.c << 'END-of-joequake/files/patch-vid_glx.c' X--- vid_glx.c.orig Sun Oct 16 17:40:58 2005 X+++ vid_glx.c Mon Dec 5 21:10:31 2005 X@@ -22,7 +22,9 @@ X #include X #include X #include X+#ifdef __linux__ X #include X+#endif X #include X #include X #include END-of-joequake/files/patch-vid_glx.c echo x - joequake/files/patch-common.c sed 's/^X//' >joequake/files/patch-common.c << 'END-of-joequake/files/patch-common.c' X--- common.c.orig Sat Dec 3 19:45:26 2005 X+++ common.c Tue Jan 31 15:03:09 2006 X@@ -1634,14 +1634,18 @@ X */ X void COM_InitFilesystem (void) X { X+ char *home; X+ char homepath[MAX_OSPATH]; X int i; X X+ home = getenv("HOME"); X+ X // -basedir X // Overrides the system supplied base directory (under GAMENAME) X if ((i = COM_CheckParm("-basedir")) && i + 1 < com_argc) X Q_strncpyz (com_basedir, com_argv[i+1], sizeof(com_basedir)); X else X- Q_strncpyz (com_basedir, host_parms.basedir, sizeof(com_basedir)); X+ Q_strncpyz (com_basedir, DATADIR, sizeof(com_basedir)); X X for (i=0 ; i < strlen(com_basedir) ; i++) X if (com_basedir[i] == '\\') X@@ -1653,6 +1657,12 @@ X X // start up with GAMENAME by default (id1) X COM_AddGameDirectory (va("%s/"GAMENAME, com_basedir)); X+ X+ if (home != NULL) { X+ Q_snprintfz(homepath, sizeof(homepath), "%s/.joequake/"GAMENAME, home); X+ COM_AddGameDirectory(homepath); X+ } X+ X COM_AddGameDirectory (va("%s/joequake", com_basedir)); X X if (COM_CheckParm("-rogue")) X@@ -1675,4 +1685,11 @@ X // Adds basedir/gamedir as an override game X if ((i = COM_CheckParm("-game")) && i + 1 < com_argc) X COM_AddGameDirectory (va("%s/%s", com_basedir, com_argv[i+1])); X+ X+ if (home != NULL) { X+ Q_snprintfz(homepath, sizeof(homepath), "%s/.joequake/%s", home, com_gamedirname); X+ COM_CreatePath(homepath); X+ Sys_mkdir(homepath); X+ COM_AddGameDirectory(homepath); X+ } X } END-of-joequake/files/patch-common.c echo x - joequake/files/patch-slist.c sed 's/^X//' >joequake/files/patch-slist.c << 'END-of-joequake/files/patch-slist.c' X--- slist.c.orig Fri Oct 21 23:45:42 2005 X+++ slist.c Wed Jan 11 15:19:32 2006 X@@ -21,10 +21,13 @@ X X #include "quakedef.h" X X+char slfile[MAX_OSPATH]; X server_entry_t slist[MAX_SERVER_LIST]; X X void SList_Init (void) X { X+ Q_strncpyz(slfile, com_gamedir, sizeof(slfile)); X+ strncat(slfile, "/servers.txt", sizeof(slfile)-strlen(slfile)-1); X memset (&slist, 0, sizeof(slist)); X } X X@@ -32,7 +35,7 @@ X { X FILE *f; X X- if (!(f = fopen("servers.txt", "wt"))) X+ if (!(f = fopen(slfile, "wt"))) X { X Con_DPrintf ("Couldn't open servers.txt\n"); X return; X@@ -111,7 +114,7 @@ X char line[128], *desc, *addr; X FILE *f; X X- if (!(f = fopen("servers.txt", "rt"))) X+ if (!(f = fopen(slfile, "rt"))) X return; X X count = len = 0; END-of-joequake/files/patch-slist.c echo x - joequake/files/patch-vid_x11.c sed 's/^X//' >joequake/files/patch-vid_x11.c << 'END-of-joequake/files/patch-vid_x11.c' X--- vid_x11.c.orig Mon Oct 17 10:08:06 2005 X+++ vid_x11.c Sun Jan 15 01:55:33 2006 X@@ -1052,3 +1052,13 @@ X void VID_UnlockBuffer (void) X { X } X+ X+#if !id386 X+void R_Surf8Patch () X+{ X+} X+ X+void R_SurfacePatch (void) X+{ X+} X+#endif END-of-joequake/files/patch-vid_x11.c echo x - joequake/files/patch-host.c sed 's/^X//' >joequake/files/patch-host.c << 'END-of-joequake/files/patch-host.c' X--- host.c.orig Wed Oct 26 10:21:22 2005 X+++ host.c Mon Jan 16 18:45:46 2006 X@@ -969,6 +969,7 @@ X */ X void Host_Shutdown (void) X { X+ char cmdhist_path[MAX_OSPATH]; X int i, j; X FILE *cmdhist; X cmdhistory_t cmdhistory; X@@ -989,7 +990,8 @@ X Host_WriteConfiguration (); X IPLog_WriteLog (); X X- if (con_initialized && (cmdhist = fopen("joequake/cmdhist.dat", "wb"))) X+ snprintf(cmdhist_path, sizeof(cmdhist_path), "%s/cmdhist.dat", com_gamedir); X+ if (con_initialized && (cmdhist = fopen(cmdhist_path, "wb"))) X { X for (i=0 ; i<64 ; i++) X for (j=0 ; jjoequake/files/patch-keys.c << 'END-of-joequake/files/patch-keys.c' X--- keys.c.orig Fri Oct 21 18:30:06 2005 X+++ keys.c Mon Jan 16 18:47:12 2006 X@@ -783,11 +783,13 @@ X void Key_Init (void) X { X // joe: added stuff from [sons]Quake X+ char cmdhist_path[MAX_OSPATH]; X int i, j; X FILE *cmdhist; X cmdhistory_t cmdhistory; X X- if ((cmdhist = fopen("joequake/cmdhist.dat", "rb"))) X+ snprintf(cmdhist_path, sizeof(cmdhist_path), "%s/cmdhist.dat", com_gamedir); X+ if ((cmdhist = fopen(cmdhist_path, "rb"))) X { X fread (&cmdhistory, sizeof(cmdhistory_t), 1, cmdhist); X fclose (cmdhist); END-of-joequake/files/patch-keys.c echo x - joequake/files/patch-console.c sed 's/^X//' >joequake/files/patch-console.c << 'END-of-joequake/files/patch-console.c' X--- console.c.orig Sun Aug 14 09:38:36 2005 X+++ console.c Mon Jan 16 18:54:47 2006 X@@ -205,8 +205,11 @@ X */ X void Con_Init (void) X { X+ char qclog_path[MAX_OSPATH]; X+ X+ snprintf(qclog_path, sizeof(qclog_path), "%s/qconsole.log", com_gamedir); X if (COM_CheckParm("-condebug")) X- qconsole_log = fopen (va("%s/joequake/qconsole.log", com_basedir), "a"); X+ qconsole_log = fopen (qclog_path, "a"); X X con_text = Hunk_AllocName (CON_TEXTSIZE, "context"); X memset (con_text, ' ', CON_TEXTSIZE); END-of-joequake/files/patch-console.c echo x - joequake/files/patch-gl_screen.c sed 's/^X//' >joequake/files/patch-gl_screen.c << 'END-of-joequake/files/patch-gl_screen.c' X--- gl_screen.c.orig Wed Sep 7 11:10:32 2005 X+++ gl_screen.c Mon Jan 16 20:20:05 2006 X@@ -734,8 +734,9 @@ X void SCR_ScreenShot_f (void) X { X int i, success; X- char name[MAX_OSPATH], ext[4], *sshot_dir = "joequake/shots"; X+ char name[MAX_OSPATH], ext[4], sshot_dir[MAX_OSPATH]; X X+ snprintf(sshot_dir, sizeof(sshot_dir), "%s/shots", com_gamedir); X if (Cmd_Argc() == 2) X { X Q_strncpyz (name, Cmd_Argv(1), sizeof(name)); X@@ -753,7 +754,7 @@ X for (i=0 ; i<999 ; i++) X { X Q_snprintfz (name, sizeof(name), "joequake%03i.%s", i, ext); X- if (Sys_FileTime(va("%s/%s/%s", com_basedir, sshot_dir, name)) == -1) X+ if (Sys_FileTime(va("%s/%s", sshot_dir, name)) == -1) X break; // file doesn't exist X } X X@@ -769,7 +770,7 @@ X return; X } X X- success = SCR_ScreenShot (va("%s/%s", sshot_dir, name)); X+ success = SCR_ScreenShot(va("%s/%s", sshot_dir, name)); X Con_Printf ("%s %s\n", success ? "Wrote" : "Couldn't write", name); X } X END-of-joequake/files/patch-gl_screen.c echo x - joequake/files/patch-r_screen.c sed 's/^X//' >joequake/files/patch-r_screen.c << 'END-of-joequake/files/patch-r_screen.c' X--- r_screen.c.orig Sat Oct 15 11:42:06 2005 X+++ r_screen.c Mon Jan 16 20:20:08 2006 X@@ -556,8 +556,9 @@ X void SCR_ScreenShot_f (void) X { X int i, success; X- char name[MAX_OSPATH], ext[4], *sshot_dir = "joequake/shots"; X+ char name[MAX_OSPATH], ext[4], sshot_dir[MAX_OSPATH]; X X+ snprintf(sshot_dir, sizeof(sshot_dir), "%s/shots", com_gamedir); X if (Cmd_Argc() == 2) X { X Q_strncpyz (name, Cmd_Argv(1), sizeof(name)); X@@ -573,7 +574,7 @@ X for (i=0 ; i<999 ; i++) X { X Q_snprintfz (name, sizeof(name), "joequake%03i.%s", i, ext); X- if (Sys_FileTime(va("%s/%s/%s", com_basedir, sshot_dir, name)) == -1) X+ if (Sys_FileTime(va("%s/%s", sshot_dir, name)) == -1) X break; // file doesn't exist X } X END-of-joequake/files/patch-r_screen.c echo x - joequake/files/patch-image.c sed 's/^X//' >joequake/files/patch-image.c << 'END-of-joequake/files/patch-image.c' X--- image.c.orig Sun Oct 16 21:47:00 2005 X+++ image.c Mon Jan 16 20:18:54 2006 X@@ -422,6 +422,7 @@ X buffer[i+2] = temp; X } X X+ COM_CreatePath(filename); X if (!COM_WriteFile(filename, buffer, size + 18)) X retval = false; X free (buffer); X@@ -585,17 +586,14 @@ X Image_WritePNG X ============= X */ X-int Image_WritePNG (char *filename, int compression, byte *pixels, int width, int height) X+int Image_WritePNG (char *name, int compression, byte *pixels, int width, int height) X { X- char name[MAX_OSPATH]; X int i, bpp = 3, pngformat, width_sign; X FILE *fp; X png_structp png_ptr; X png_infop info_ptr; X png_byte **rowpointers; X X- Q_snprintfz (name, MAX_OSPATH, "%s/%s", com_basedir, filename); X- X width_sign = (width < 0) ? -1 : 1; X width = abs(width); X X@@ -816,15 +814,12 @@ X Image_WriteJPEG X ============= X */ X-int Image_WriteJPEG (char *filename, int compression, byte *pixels, int width, int height) X+int Image_WriteJPEG (char *name, int compression, byte *pixels, int width, int height) X { X- char name[MAX_OSPATH]; X byte *scanline; X FILE *fout; X struct jpeg_compress_struct cinfo; X struct jpeg_error_mgr jerr; X- X- Q_snprintfz (name, MAX_OSPATH, "%s/%s", com_basedir, filename); X X if (!(fout = fopen(name, "wb"))) X { END-of-joequake/files/patch-image.c echo x - joequake/pkg-descr sed 's/^X//' >joequake/pkg-descr << 'END-of-joequake/pkg-descr' XJoeQuake is an improved NQ engine with plenty of ZQuake and FuhQuake graphical Xeffects included. JoeQuake's main aim is to provide pleasant demo watching for X.dem files. JoeQuake also supports better graphical quality including 32bit Xtextures, colored lights, smoother animations, etc. X XWWW: http://runecentral.com/joequake/ END-of-joequake/pkg-descr echo x - joequake/pkg-message sed 's/^X//' >joequake/pkg-message << 'END-of-joequake/pkg-message' X============================================================================== X XJoeQuake has been installed. X XTo start it in full-screen mode you can run it with the "-fullscreen" Xparameter. X XIf you have mouse problems you can try running it with the "-nomdga" Xparameter (this will make the mouse work fine when the DGA X11 extension is Xdisabled). X XIf you hace sound problems try running it with the parameter X"-sndspeed ", where "" could be 22050 or 44100 for example. X XIf you enable water alpha ("r_wateralpha" or from the menu), set "r_novis" to X"1" or you will have problems with water/lava. Note that the value of X"r_novis" will be saved in the configuration file. X X============================================================================== END-of-joequake/pkg-message echo x - joequake/distinfo sed 's/^X//' >joequake/distinfo << 'END-of-joequake/distinfo' XMD5 (joequake/joequake-v0.15b1189-source.zip) = 7352503837d9cb04d64a30451a26e8d5 XSHA256 (joequake/joequake-v0.15b1189-source.zip) = 10ae2da3ab0ffa0701de5367e12731a2c88f6eb9f3459eeec643122f40a7f5a3 XSIZE (joequake/joequake-v0.15b1189-source.zip) = 1316431 XMD5 (joequake/joequake-v0.15b1146-linux.zip) = 7288c2ad0b2859ac1fe7f4ae1f3e6e31 XSHA256 (joequake/joequake-v0.15b1146-linux.zip) = 7b478afd56f083065e0e306b77abbad91676b634395e947fd1615d4c1a7c2b96 XSIZE (joequake/joequake-v0.15b1146-linux.zip) = 4848059 XMD5 (joequake/joequake_wad.zip) = 33219a7615c8265845948099c9c86b80 XSHA256 (joequake/joequake_wad.zip) = 754f4b0990777f509987c7a4f5382cf98cd063c7f2e4a3df3e757ddfb3af9191 XSIZE (joequake/joequake_wad.zip) = 1053818 XMD5 (joequake/hipnotic_wad.zip) = b517d91207f39edc4f096f704dcc89dc XSHA256 (joequake/hipnotic_wad.zip) = 267e354c20c35f414513c5d73c536aff9a431a1271f125c450c40f08963c3189 XSIZE (joequake/hipnotic_wad.zip) = 272279 END-of-joequake/distinfo echo x - joequake/pkg-plist sed 's/^X//' >joequake/pkg-plist << 'END-of-joequake/pkg-plist' X%%GLX%%bin/joequake-glx X%%X11%%bin/joequake-x11 X%%DATADIR%%/joequake/pak0.pak X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_inv2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_invis.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_invul2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_p5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face_quad.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/face5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_cells.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_nails.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_rocket.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_shells.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_sigil4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_0.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_6.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_7.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_8.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_9.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/anum_minus.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/backtile.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/disc.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/ibar.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/NET.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_0.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_3.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_4.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_5.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_6.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_7.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_8.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_9.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_colon.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_minus.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/num_slash.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inv2_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva1_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva2_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva3_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva4_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_lightng.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_nailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_rlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_shotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_snailgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_srlaunch.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/inva5_sshotgun.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/RAM.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_invis.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_invuln.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_key1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_key2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_quad.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_suit.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sbar.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/scorebar.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor1.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor2.png X%%HUD%%%%DATADIR%%/joequake/textures/wad/sb_armor3.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inv2_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/sb_key2.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/sb_key1.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_laser.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_mjolnir.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_gren_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_lightng.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_prox.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_prox_gren.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva1_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva2_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva3_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva4_rlaunch.png X%%HUD_SA%%%%DATADIR%%/joequake/textures/wad/inva5_rlaunch.png X%%HUD_DIR%%@dirrm %%DATADIR%%/joequake/textures/wad X%%HUD_DIR%%@dirrm %%DATADIR%%/joequake/textures X@dirrm %%DATADIR%%/joequake END-of-joequake/pkg-plist exit --- joequake.diff ends here --- Responsible-Changed-From-To: freebsd-ports-bugs->alepulver Responsible-Changed-By: alepulver Responsible-Changed-When: Sat Apr 8 22:43:57 UTC 2006 Responsible-Changed-Why: Assign my PRs to me. http://www.freebsd.org/cgi/query-pr.cgi?pr=91890 State-Changed-From-To: open->closed State-Changed-By: alepulver State-Changed-When: Sun May 7 20:10:19 UTC 2006 State-Changed-Why: Committed. http://www.freebsd.org/cgi/query-pr.cgi?pr=91890 >Unformatted: