From 26360db0b1b4111b046c970d55d6760e70fd3a14 Mon Sep 17 00:00:00 2001 From: Alejandro Pulver Date: Sun, 21 May 2006 21:32:28 +0000 Subject: [PATCH] This is meant to be a very conservative branch of the Quake source code. I intend to support Quake and Quakeworld in both software and GL versions, as well as Quakeworld Server; all on both MS Windows and Linux. I don't intend on adding lots of rendering enhancements, but rather fixing little bugs that I've come across over the years. I'll be adding small enhancements, but I don't want to completely overhaul the engine. WWW: http://disenchant.net/engine.html Approved by: garga (mentor) --- games/Makefile | 1 + games/tyrquake/Makefile | 51 +++ games/tyrquake/distinfo | 3 + games/tyrquake/files/patch-Makefile | 37 ++ games/tyrquake/files/patch-NQ__common.c | 50 +++ games/tyrquake/files/patch-NQ__model.c | 11 + .../files/patch-QW__client__cl_main.c | 18 + .../files/patch-QW__client__sys_linux.c | 10 + .../tyrquake/files/patch-QW__common__common.c | 39 +++ .../files/patch-QW__server__sys_unix.c | 11 + games/tyrquake/files/patch-common__cd_linux.c | 331 ++++++++++++++++++ .../files/patch-common__gl_vidlinuxglx.c | 12 + games/tyrquake/files/patch-include__bspfile.h | 11 + games/tyrquake/pkg-descr | 8 + games/tyrquake/pkg-message | 8 + games/tyrquake/pkg-plist | 7 + 16 files changed, 608 insertions(+) create mode 100644 games/tyrquake/Makefile create mode 100644 games/tyrquake/distinfo create mode 100644 games/tyrquake/files/patch-Makefile create mode 100644 games/tyrquake/files/patch-NQ__common.c create mode 100644 games/tyrquake/files/patch-NQ__model.c create mode 100644 games/tyrquake/files/patch-QW__client__cl_main.c create mode 100644 games/tyrquake/files/patch-QW__client__sys_linux.c create mode 100644 games/tyrquake/files/patch-QW__common__common.c create mode 100644 games/tyrquake/files/patch-QW__server__sys_unix.c create mode 100644 games/tyrquake/files/patch-common__cd_linux.c create mode 100644 games/tyrquake/files/patch-common__gl_vidlinuxglx.c create mode 100644 games/tyrquake/files/patch-include__bspfile.h create mode 100644 games/tyrquake/pkg-descr create mode 100644 games/tyrquake/pkg-message create mode 100644 games/tyrquake/pkg-plist diff --git a/games/Makefile b/games/Makefile index b3a701e208a0..7148d8564b5d 100644 --- a/games/Makefile +++ b/games/Makefile @@ -662,6 +662,7 @@ SUBDIR += tvp SUBDIR += twitch SUBDIR += typespeed + SUBDIR += tyrquake SUBDIR += uhexen SUBDIR += umark SUBDIR += uox3 diff --git a/games/tyrquake/Makefile b/games/tyrquake/Makefile new file mode 100644 index 000000000000..e25fda6d02e6 --- /dev/null +++ b/games/tyrquake/Makefile @@ -0,0 +1,51 @@ +# New ports collection makefile for: tyrquake +# Date created: 13 May 2006 +# Whom: alepulver +# +# $FreeBSD$ +# + +PORTNAME= tyrquake +PORTVERSION= 0.53 +CATEGORIES= games +MASTER_SITES= http://disenchant.net/files/engine/ + +MAINTAINER= alepulver@FreeBSD.org +COMMENT= Very conservative branch of the Quake source code + +USE_GCC= 3.2+ +USE_GL= yes +USE_GMAKE= yes + +OPTIONS= OPTIMIZED_CFLAGS "Enable compilation optimizations" on \ + X86_ASM "Enable x86 assembly code when possible" on + +WRKSRC= ${WRKDIR}/${PORTNAME} + +.include "${.CURDIR}/../quake-data/Makefile.include" + +.include + +.if !defined(WITHOUT_OPTIMIZED_CFLAGS) +MAKE_ENV+= OPTIMIZED_CFLAGS=YES +.endif + +.if !defined(WITHOUT_X86_ASM) +MAKE_ENV+= NO_X86_ASM=YES +.endif + +do-install: +.for file in tyr-quake tyr-glquake tyr-qwcl tyr-glqwcl tyr-qwsv + ${INSTALL_PROGRAM} ${WRKSRC}/${file} ${PREFIX}/bin +.endfor +.if !defined(NOPORTDOCS) + ${MKDIR} ${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/readme.txt ${DOCSDIR} +.endif + +post-install: + @${ECHO_CMD} + @${CAT} ${PKGMESSAGE} + @${ECHO_CMD} + +.include diff --git a/games/tyrquake/distinfo b/games/tyrquake/distinfo new file mode 100644 index 000000000000..3b4e0799d91b --- /dev/null +++ b/games/tyrquake/distinfo @@ -0,0 +1,3 @@ +MD5 (tyrquake-0.53.tar.gz) = a22fa7c5b798177e1f43e8837a2edb72 +SHA256 (tyrquake-0.53.tar.gz) = f3c594c7c30fd460018ac851c6cd3dd2e880a4676bc85efe933263b0002c520a +SIZE (tyrquake-0.53.tar.gz) = 1240696 diff --git a/games/tyrquake/files/patch-Makefile b/games/tyrquake/files/patch-Makefile new file mode 100644 index 000000000000..650fcd14e4b2 --- /dev/null +++ b/games/tyrquake/files/patch-Makefile @@ -0,0 +1,37 @@ +--- ./Makefile.orig Sat May 13 08:01:01 2006 ++++ ./Makefile Sun May 14 16:20:57 2006 +@@ -90,7 +90,7 @@ + + STRIP ?= strip + +-CFLAGS := -Wall -Wno-trigraphs ++CFLAGS := $(CFLAGS) -Wall -Wno-trigraphs + + # Enable this if you're getting pedantic again... + #ifeq ($(TARGET_OS),LINUX) +@@ -100,6 +100,7 @@ + ifdef DEBUG + CFLAGS += -g + else ++ifdef OPTIMIZED_CFLAGS + CFLAGS += -O2 + # -funit-at-a-time is buggy for MinGW GCC > 3.2 + # I'm assuming it's fixed for MinGW GCC >= 4.0 when that comes about +@@ -107,7 +108,7 @@ + then echo $(call cc-option,-fno-unit-at-a-time); fi ;) + CFLAGS += $(call cc-option,-fweb,) + CFLAGS += $(call cc-option,-frename-registers,) +-CFLAGS += $(call cc-option,-mtune=i686,-mcpu=i686) ++endif + endif + + # --------------------------------------------------------- +@@ -133,7 +134,7 @@ + .PHONY: prepare + prepare: $(BUILD_DIRS) + +-COMMON_CPPFLAGS := -DTYR_VERSION=$(TYR_VERSION) ++COMMON_CPPFLAGS := -DTYR_VERSION=$(TYR_VERSION) -DDATADIR='"$(Q1DIR)"' -I$(X11BASE)/include + ifdef DEBUG + COMMON_CPPFLAGS += -DDEBUG + else diff --git a/games/tyrquake/files/patch-NQ__common.c b/games/tyrquake/files/patch-NQ__common.c new file mode 100644 index 000000000000..d25bd67d314d --- /dev/null +++ b/games/tyrquake/files/patch-NQ__common.c @@ -0,0 +1,50 @@ +--- ./NQ/common.c.orig Mon Mar 13 22:02:46 2006 ++++ ./NQ/common.c Sun May 14 16:20:57 2006 +@@ -1680,9 +1680,13 @@ + static void + COM_InitFilesystem(void) + { ++ char *home; ++ char homepath[MAX_OSPATH]; + int i, j; + searchpath_t *search; + ++ home = getenv("HOME"); ++ + // + // -basedir + // Overrides the system supplied base directory (under GAMENAME) +@@ -1691,7 +1695,7 @@ + if (i && i < com_argc - 1) + strcpy(com_basedir, com_argv[i + 1]); + else +- strcpy(com_basedir, host_parms.basedir); ++ strcpy(com_basedir, DATADIR); + + j = strlen(com_basedir); + +@@ -1719,6 +1723,8 @@ + // start up with GAMENAME by default (id1) + // + COM_AddGameDirectory(va("%s/" GAMENAME, com_basedir)); ++ if (home != NULL) ++ COM_AddGameDirectory(va("%s/.tyrquake/" GAMENAME, home)); + + if (COM_CheckParm("-rogue")) + COM_AddGameDirectory(va("%s/rogue", com_basedir)); +@@ -1733,6 +1739,15 @@ + if (i && i < com_argc - 1) { + com_modified = true; + COM_AddGameDirectory(va("%s/%s", com_basedir, com_argv[i + 1])); ++ } ++ ++ if (home != NULL) { ++ snprintf(homepath, sizeof(homepath), "%s/.tyrquake/%s", ++ home, strrchr(com_basedir, '/') + 1 ? ++ strrchr(com_basedir, '/') + 1 : GAMENAME); ++ COM_CreatePath(homepath); ++ Sys_mkdir(homepath); ++ COM_AddGameDirectory(homepath); + } + // + // -path [] ... diff --git a/games/tyrquake/files/patch-NQ__model.c b/games/tyrquake/files/patch-NQ__model.c new file mode 100644 index 000000000000..35db3af72577 --- /dev/null +++ b/games/tyrquake/files/patch-NQ__model.c @@ -0,0 +1,11 @@ +--- ./NQ/model.c.orig Sat Mar 11 09:41:17 2006 ++++ ./NQ/model.c Sun May 14 16:20:57 2006 +@@ -22,7 +22,7 @@ + // models are the only shared resource between a client and server running + // on the same machine. + +-#include ++#include + + #include "console.h" + #include "quakedef.h" diff --git a/games/tyrquake/files/patch-QW__client__cl_main.c b/games/tyrquake/files/patch-QW__client__cl_main.c new file mode 100644 index 000000000000..1810cbd6f1aa --- /dev/null +++ b/games/tyrquake/files/patch-QW__client__cl_main.c @@ -0,0 +1,18 @@ +--- ./QW/client/cl_main.c.orig Sat Mar 11 16:45:47 2006 ++++ ./QW/client/cl_main.c Sun May 14 16:20:57 2006 +@@ -45,6 +45,7 @@ + #include "winsock.h" + #include "winquake.h" + #else ++#include + #include + #endif + +@@ -863,6 +864,7 @@ + Con_Printf("Command packet from remote host. Ignored.\n"); + return; + } ++ + #ifdef _WIN32 + ShowWindow(mainwindow, SW_RESTORE); + SetForegroundWindow(mainwindow); diff --git a/games/tyrquake/files/patch-QW__client__sys_linux.c b/games/tyrquake/files/patch-QW__client__sys_linux.c new file mode 100644 index 000000000000..bcca01cdcb33 --- /dev/null +++ b/games/tyrquake/files/patch-QW__client__sys_linux.c @@ -0,0 +1,10 @@ +--- ./QW/client/sys_linux.c.orig Sat May 13 06:03:07 2006 ++++ ./QW/client/sys_linux.c Sun May 14 16:20:57 2006 +@@ -29,7 +29,6 @@ + #include + #include + #include +-#include + #include + #include + #include diff --git a/games/tyrquake/files/patch-QW__common__common.c b/games/tyrquake/files/patch-QW__common__common.c new file mode 100644 index 000000000000..f6c97764742f --- /dev/null +++ b/games/tyrquake/files/patch-QW__common__common.c @@ -0,0 +1,39 @@ +--- ./QW/common/common.c.orig Mon Mar 13 22:03:06 2006 ++++ ./QW/common/common.c Sun May 14 16:23:22 2006 +@@ -1794,8 +1794,12 @@ + static void + COM_InitFilesystem(void) + { ++ char *home; ++ char homepath[MAX_OSPATH]; + int i; + ++ home = getenv("HOME"); ++ + // + // -basedir + // Overrides the system supplied base directory (under id1) +@@ -1804,13 +1808,22 @@ + if (i && i < com_argc - 1) + strcpy(com_basedir, com_argv[i + 1]); + else +- strcpy(com_basedir, host_parms.basedir); ++ strcpy(com_basedir, DATADIR); + + // + // start up with id1 by default + // + COM_AddGameDirectory(va("%s/id1", com_basedir)); ++ if (home != NULL) ++ COM_AddGameDirectory(va("%s/.tyrquake/id1", home)); ++ + COM_AddGameDirectory(va("%s/qw", com_basedir)); ++ if (home != NULL) { ++ snprintf(homepath, sizeof(homepath), "%s/.tyrquake/qw", home); ++ COM_CreatePath(homepath); ++ Sys_mkdir(homepath); ++ COM_AddGameDirectory(homepath); ++ } + + // any set gamedirs will be freed up to here + com_base_searchpaths = com_searchpaths; diff --git a/games/tyrquake/files/patch-QW__server__sys_unix.c b/games/tyrquake/files/patch-QW__server__sys_unix.c new file mode 100644 index 000000000000..5f5c975fa381 --- /dev/null +++ b/games/tyrquake/files/patch-QW__server__sys_unix.c @@ -0,0 +1,11 @@ +--- ./QW/server/sys_unix.c.orig Sat Feb 11 20:00:37 2006 ++++ ./QW/server/sys_unix.c Sun May 14 16:20:57 2006 +@@ -25,7 +25,7 @@ + #include "server.h" + #include "sys.h" + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #include + #include diff --git a/games/tyrquake/files/patch-common__cd_linux.c b/games/tyrquake/files/patch-common__cd_linux.c new file mode 100644 index 000000000000..35fe251d8b97 --- /dev/null +++ b/games/tyrquake/files/patch-common__cd_linux.c @@ -0,0 +1,331 @@ +--- ./common/cd_linux.c.orig Tue Dec 27 23:50:49 2005 ++++ ./common/cd_linux.c Sun May 14 16:20:57 2006 +@@ -31,7 +31,11 @@ + #include + #include + ++#ifdef __FreeBSD__ ++#include ++#else + #include ++#endif + #include + + #include "cdaudio.h" +@@ -57,8 +61,13 @@ + + static int cdfile = -1; + static char cd_dev[64] = _PATH_DEV "cdrom"; ++#ifdef __FreeBSD__ ++static struct ioc_vol drv_vol_saved; ++static struct ioc_vol drv_vol; ++#else + static struct cdrom_volctrl drv_vol_saved; + static struct cdrom_volctrl drv_vol; ++#endif + + static void + CDAudio_Eject(void) +@@ -66,8 +75,13 @@ + if (cdfile == -1 || !enabled) + return; // no cd init'd + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCEJECT) == -1) ++ Con_DPrintf ("ioctl cdioceject failed\n"); ++#else + if (ioctl(cdfile, CDROMEJECT) == -1) + Con_DPrintf("ioctl cdromeject failed\n"); ++#endif + } + + +@@ -77,29 +91,51 @@ + if (cdfile == -1 || !enabled) + return; // no cd init'd + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCCLOSE) == -1) ++ Con_DPrintf ("ioctl cdiocclose failed\n"); ++#else + if (ioctl(cdfile, CDROMCLOSETRAY) == -1) + Con_DPrintf("ioctl cdromclosetray failed\n"); ++#endif + } + + static int + CDAudio_GetAudioDiskInfo(void) + { ++#ifdef __FreeBSD__ ++ struct ioc_toc_header tochdr; ++#else + struct cdrom_tochdr tochdr; ++#endif + + cdValid = false; + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOREADTOCHEADER, &tochdr) == -1) { ++ Con_DPrintf ("ioctl cdioreadtocheader failed\n"); ++#else + if (ioctl(cdfile, CDROMREADTOCHDR, &tochdr) == -1) { + Con_DPrintf("ioctl cdromreadtochdr failed\n"); ++#endif + return -1; + } + ++#ifdef __FreeBSD__ ++ if (tochdr.starting_track < 1) { ++#else + if (tochdr.cdth_trk0 < 1) { ++#endif + Con_DPrintf("CDAudio: no music tracks\n"); + return -1; + } + + cdValid = true; ++#ifdef __FreeBSD__ ++ maxTrack = tochdr.ending_track; ++#else + maxTrack = tochdr.cdth_trk1; ++#endif + + return 0; + } +@@ -108,8 +144,14 @@ + void + CDAudio_Play(byte track, qboolean looping) + { ++#ifdef __FreeBSD__ ++ struct ioc_read_toc_entry entry; ++ struct cd_toc_entry toc_buffer; ++ struct ioc_play_track ti; ++#else + struct cdrom_tocentry entry; + struct cdrom_ti ti; ++#endif + + if (cdfile == -1 || !enabled) + return; +@@ -126,6 +168,20 @@ + Con_DPrintf("CDAudio: Bad track number %u.\n", track); + return; + } ++#ifdef __FreeBSD__ ++ #define CDROM_DATA_TRACK 4 ++ bzero((char *)&toc_buffer, sizeof(toc_buffer)); ++ entry.data_len = sizeof(toc_buffer); ++ entry.data = &toc_buffer; ++ // don't try to play a non-audio track ++ entry.starting_track = track; ++ entry.address_format = CD_MSF_FORMAT; ++ if ( ioctl(cdfile, CDIOREADTOCENTRYS, &entry) == -1 ) { ++ Con_DPrintf("ioctl cdromreadtocentry failed\n"); ++ return; ++ } ++ if (toc_buffer.control == CDROM_DATA_TRACK) { ++#else + // don't try to play a non-audio track + entry.cdte_track = track; + entry.cdte_format = CDROM_MSF; +@@ -134,6 +190,7 @@ + return; + } + if (entry.cdte_ctrl == CDROM_DATA_TRACK) { ++#endif + Con_Printf("CDAudio: track %i is not audio\n", track); + return; + } +@@ -144,18 +201,35 @@ + CDAudio_Stop(); + } + ++#ifdef __FreeBSD__ ++ ti.start_track = track; ++ ti.end_track = track; ++ ti.start_index = 1; ++ ti.end_index = 99; ++#else + ti.cdti_trk0 = track; + ti.cdti_trk1 = track; + ti.cdti_ind0 = 1; + ti.cdti_ind1 = 99; ++#endif + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCPLAYTRACKS, &ti) == -1) { ++ Con_DPrintf ("ioctl cdiocplaytracks failed\n"); ++#else + if (ioctl(cdfile, CDROMPLAYTRKIND, &ti) == -1) { + Con_DPrintf("ioctl cdromplaytrkind failed\n"); ++#endif + return; + } + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCRESUME) == -1) ++ Con_DPrintf ("ioctl cdiocresume failed\n"); ++#else + if (ioctl(cdfile, CDROMRESUME) == -1) + Con_DPrintf("ioctl cdromresume failed\n"); ++#endif + + playLooping = looping; + playTrack = track; +@@ -172,8 +246,13 @@ + if (!playing) + return; + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCSTOP) == -1) ++ Con_DPrintf ("ioctl cdiocstop failed (%d)\n", errno); ++#else + if (ioctl(cdfile, CDROMSTOP) == -1) + Con_DPrintf("ioctl cdromstop failed (%d)\n", errno); ++#endif + + wasPlaying = false; + playing = false; +@@ -188,8 +267,13 @@ + if (!playing) + return; + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCPAUSE) == -1) ++ Con_DPrintf ("ioctl cdiocpause failed\n"); ++#else + if (ioctl(cdfile, CDROMPAUSE) == -1) + Con_DPrintf("ioctl cdrompause failed\n"); ++#endif + + wasPlaying = playing; + playing = false; +@@ -208,8 +292,13 @@ + if (!wasPlaying) + return; + ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCRESUME) == -1) ++ Con_DPrintf ("ioctl cdiocresume failed\n"); ++#else + if (ioctl(cdfile, CDROMRESUME) == -1) + Con_DPrintf("ioctl cdromresume failed\n"); ++#endif + playing = true; + } + +@@ -322,26 +411,60 @@ + void + CDAudio_Update(void) + { ++#ifdef __FreeBSD__ ++ struct ioc_read_subchannel subchnl; ++ struct cd_sub_channel_info data; ++#else + struct cdrom_subchnl subchnl; ++#endif + static time_t lastchk; + + if (!enabled) + return; + ++#ifdef __FreeBSD__ ++ if ((int)(255.0 * bgmvolume.value) != (int)drv_vol.vol[0]) { ++#else + if ((int)(255.0 * bgmvolume.value) != (int)drv_vol.channel0) { ++#endif + if (bgmvolume.value > 1.0f) + Cvar_SetValue ("bgmvolume", 1.0f); + if (bgmvolume.value < 0.0f) + Cvar_SetValue ("bgmvolume", 0.0f); + ++#ifdef __FreeBSD__ ++ drv_vol.vol[0] = drv_vol.vol[2] = ++ drv_vol.vol[1] = drv_vol.vol[3] = bgmvolume.value * 255.0; ++ if (ioctl(cdfile, CDIOCSETVOL, &drv_vol) == -1 ) ++ Con_DPrintf("ioctl CDIOCSETVOL failed\n"); ++#else + drv_vol.channel0 = drv_vol.channel2 = + drv_vol.channel1 = drv_vol.channel3 = bgmvolume.value * 255.0; + if (ioctl(cdfile, CDROMVOLCTRL, &drv_vol) == -1 ) + Con_DPrintf("ioctl CDROMVOLCTRL failed\n"); ++#endif + } + + if (playing && lastchk < time(NULL)) { + lastchk = time(NULL) + 2; //two seconds between chks ++#if defined(__FreeBSD__) ++ subchnl.address_format = CD_MSF_FORMAT; ++ subchnl.data_format = CD_CURRENT_POSITION; ++ subchnl.data_len = sizeof(data); ++ subchnl.track = playTrack; ++ subchnl.data = &data; ++ if (ioctl(cdfile, CDIOCREADSUBCHANNEL, &subchnl) == -1 ) { ++ Con_DPrintf("ioctl cdiocreadsubchannel failed\n"); ++ playing = false; ++ return; ++ } ++ if (subchnl.data->header.audio_status != CD_AS_PLAY_IN_PROGRESS && ++ subchnl.data->header.audio_status != CD_AS_PLAY_PAUSED) { ++ playing = false; ++ if (playLooping) ++ CDAudio_Play(playTrack, true); ++ } ++#else + subchnl.cdsc_format = CDROM_MSF; + if (ioctl(cdfile, CDROMSUBCHNL, &subchnl) == -1) { + Con_DPrintf("ioctl cdromsubchnl failed\n"); +@@ -354,6 +477,7 @@ + if (playLooping) + CDAudio_Play(playTrack, true); + } ++#endif + } + } + +@@ -398,16 +522,31 @@ + Cmd_AddCommand("cd", CD_f); + + /* get drive's current volume */ ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCGETVOL, &drv_vol_saved) == -1) { ++ Con_DPrintf("ioctl CDIOCGETVOL failed\n"); ++ drv_vol_saved.vol[0] = drv_vol_saved.vol[2] = ++ drv_vol_saved.vol[1] = drv_vol_saved.vol[3] = 255.0; ++ } ++#else + if (ioctl(cdfile, CDROMVOLREAD, &drv_vol_saved) == -1) { + Con_DPrintf("ioctl CDROMVOLREAD failed\n"); + drv_vol_saved.channel0 = drv_vol_saved.channel2 = + drv_vol_saved.channel1 = drv_vol_saved.channel3 = 255.0; + } ++#endif + /* set our own volume */ ++#ifdef __FreeBSD__ ++ drv_vol.vol[0] = drv_vol.vol[2] = ++ drv_vol.vol[1] = drv_vol.vol[2] = bgmvolume.value * 255.0; ++ if (ioctl(cdfile, CDIOCSETVOL, &drv_vol) == -1) ++ Con_Printf("ioctl CDIOCSETVOL failed\n"); ++#else + drv_vol.channel0 = drv_vol.channel2 = + drv_vol.channel1 = drv_vol.channel3 = bgmvolume.value * 255.0; + if (ioctl(cdfile, CDROMVOLCTRL, &drv_vol) == -1) + Con_Printf("ioctl CDROMVOLCTRL failed\n"); ++#endif + + return 0; + } +@@ -421,8 +560,13 @@ + CDAudio_Stop(); + + /* Restore the saved volume setting */ ++#ifdef __FreeBSD__ ++ if (ioctl(cdfile, CDIOCSETVOL, &drv_vol_saved) == -1) ++ Con_DPrintf("ioctl CDIOCSETVOL failed\n"); ++#else + if (ioctl(cdfile, CDROMVOLCTRL, &drv_vol_saved) == -1) + Con_DPrintf("ioctl CDROMVOLCTRL failed\n"); ++#endif + + close(cdfile); + cdfile = -1; diff --git a/games/tyrquake/files/patch-common__gl_vidlinuxglx.c b/games/tyrquake/files/patch-common__gl_vidlinuxglx.c new file mode 100644 index 000000000000..b1000dcf5689 --- /dev/null +++ b/games/tyrquake/files/patch-common__gl_vidlinuxglx.c @@ -0,0 +1,12 @@ +--- ./common/gl_vidlinuxglx.c.orig Sat Feb 18 19:19:32 2006 ++++ ./common/gl_vidlinuxglx.c Sun May 14 16:20:57 2006 +@@ -21,7 +21,9 @@ + #include + #include + #include ++#ifdef __linux__ + #include ++#endif + #include + #include + #include diff --git a/games/tyrquake/files/patch-include__bspfile.h b/games/tyrquake/files/patch-include__bspfile.h new file mode 100644 index 000000000000..8553bfd67811 --- /dev/null +++ b/games/tyrquake/files/patch-include__bspfile.h @@ -0,0 +1,11 @@ +--- ./include/bspfile.h.orig Sat Mar 11 09:38:29 2006 ++++ ./include/bspfile.h Sun May 14 16:20:57 2006 +@@ -21,7 +21,7 @@ + #ifndef BSPFILE_H + #define BSPFILE_H + +-#include ++#include + + #include "qtypes.h" + diff --git a/games/tyrquake/pkg-descr b/games/tyrquake/pkg-descr new file mode 100644 index 000000000000..af4430ced929 --- /dev/null +++ b/games/tyrquake/pkg-descr @@ -0,0 +1,8 @@ +This is meant to be a very conservative branch of the Quake source code. I +intend to support Quake and Quakeworld in both software and GL versions, as +well as Quakeworld Server; all on both MS Windows and Linux. I don't intend on +adding lots of rendering enhancements, but rather fixing little bugs that I've +come across over the years. I'll be adding small enhancements, but I don't +want to completely overhaul the engine. + +WWW: http://disenchant.net/engine.html diff --git a/games/tyrquake/pkg-message b/games/tyrquake/pkg-message new file mode 100644 index 000000000000..1caa5a5832bd --- /dev/null +++ b/games/tyrquake/pkg-message @@ -0,0 +1,8 @@ +============================================================================== + +TyrQuake has been installed. + +If you hace sound problems try running it with the parameter +"-sndspeed ", where "" could be 22050 or 44100 for example. + +============================================================================== diff --git a/games/tyrquake/pkg-plist b/games/tyrquake/pkg-plist new file mode 100644 index 000000000000..a1dd58d8b0af --- /dev/null +++ b/games/tyrquake/pkg-plist @@ -0,0 +1,7 @@ +bin/tyr-glquake +bin/tyr-glqwcl +bin/tyr-quake +bin/tyr-qwcl +bin/tyr-qwsv +%%PORTDOCS%%%%DOCSDIR%%/readme.txt +%%PORTDOCS%%@dirrm %%DOCSDIR%%