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)
This commit is contained in:
parent
a34a0f7a61
commit
26360db0b1
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=162991
16 changed files with 608 additions and 0 deletions
|
@ -662,6 +662,7 @@
|
|||
SUBDIR += tvp
|
||||
SUBDIR += twitch
|
||||
SUBDIR += typespeed
|
||||
SUBDIR += tyrquake
|
||||
SUBDIR += uhexen
|
||||
SUBDIR += umark
|
||||
SUBDIR += uox3
|
||||
|
|
51
games/tyrquake/Makefile
Normal file
51
games/tyrquake/Makefile
Normal file
|
@ -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 <bsd.port.pre.mk>
|
||||
|
||||
.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 <bsd.port.post.mk>
|
3
games/tyrquake/distinfo
Normal file
3
games/tyrquake/distinfo
Normal file
|
@ -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
|
37
games/tyrquake/files/patch-Makefile
Normal file
37
games/tyrquake/files/patch-Makefile
Normal file
|
@ -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
|
50
games/tyrquake/files/patch-NQ__common.c
Normal file
50
games/tyrquake/files/patch-NQ__common.c
Normal file
|
@ -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 <path>
|
||||
// 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 <dir or packfile> [<dir or packfile>] ...
|
11
games/tyrquake/files/patch-NQ__model.c
Normal file
11
games/tyrquake/files/patch-NQ__model.c
Normal file
|
@ -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 <stdint.h>
|
||||
+#include <inttypes.h>
|
||||
|
||||
#include "console.h"
|
||||
#include "quakedef.h"
|
18
games/tyrquake/files/patch-QW__client__cl_main.c
Normal file
18
games/tyrquake/files/patch-QW__client__cl_main.c
Normal file
|
@ -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 <sys/types.h>
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
|
||||
@@ -863,6 +864,7 @@
|
||||
Con_Printf("Command packet from remote host. Ignored.\n");
|
||||
return;
|
||||
}
|
||||
+
|
||||
#ifdef _WIN32
|
||||
ShowWindow(mainwindow, SW_RESTORE);
|
||||
SetForegroundWindow(mainwindow);
|
10
games/tyrquake/files/patch-QW__client__sys_linux.c
Normal file
10
games/tyrquake/files/patch-QW__client__sys_linux.c
Normal file
|
@ -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 <string.h>
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/mman.h>
|
||||
-#include <sys/shm.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
39
games/tyrquake/files/patch-QW__common__common.c
Normal file
39
games/tyrquake/files/patch-QW__common__common.c
Normal file
|
@ -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 <path>
|
||||
// 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;
|
11
games/tyrquake/files/patch-QW__server__sys_unix.c
Normal file
11
games/tyrquake/files/patch-QW__server__sys_unix.c
Normal file
|
@ -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 <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
331
games/tyrquake/files/patch-common__cd_linux.c
Normal file
331
games/tyrquake/files/patch-common__cd_linux.c
Normal file
|
@ -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 <time.h>
|
||||
#include <errno.h>
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+#include <sys/cdio.h>
|
||||
+#else
|
||||
#include <linux/cdrom.h>
|
||||
+#endif
|
||||
#include <paths.h>
|
||||
|
||||
#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;
|
12
games/tyrquake/files/patch-common__gl_vidlinuxglx.c
Normal file
12
games/tyrquake/files/patch-common__gl_vidlinuxglx.c
Normal file
|
@ -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 <termios.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/stat.h>
|
||||
+#ifdef __linux__
|
||||
#include <sys/vt.h>
|
||||
+#endif
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
11
games/tyrquake/files/patch-include__bspfile.h
Normal file
11
games/tyrquake/files/patch-include__bspfile.h
Normal file
|
@ -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 <stdint.h>
|
||||
+#include <inttypes.h>
|
||||
|
||||
#include "qtypes.h"
|
||||
|
8
games/tyrquake/pkg-descr
Normal file
8
games/tyrquake/pkg-descr
Normal file
|
@ -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
|
8
games/tyrquake/pkg-message
Normal file
8
games/tyrquake/pkg-message
Normal file
|
@ -0,0 +1,8 @@
|
|||
==============================================================================
|
||||
|
||||
TyrQuake has been installed.
|
||||
|
||||
If you hace sound problems try running it with the parameter
|
||||
"-sndspeed <speed>", where "<speed>" could be 22050 or 44100 for example.
|
||||
|
||||
==============================================================================
|
7
games/tyrquake/pkg-plist
Normal file
7
games/tyrquake/pkg-plist
Normal file
|
@ -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%%
|
Loading…
Reference in a new issue