From 76c158bd639eced5e5224ebb0b9f3b63aafc9cbd Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Nov 12 2010 15:41:18 +0000 Subject: - Update release to svn revision (r1802) - Add a whole bunch of patches from Debian which allow using ioquake3 as an engine for total conversions and compability with network play with official openarena servers (#565763) - Remove our own hacks for ioquake3 as an engine for total conversions --- diff --git a/quake3-1.34-dont-ask-openarena-cdkey.patch b/quake3-1.34-dont-ask-openarena-cdkey.patch deleted file mode 100644 index 8614f2c..0000000 --- a/quake3-1.34-dont-ask-openarena-cdkey.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- quake3-1.34-rc4/code/client/cl_main.c 2008-01-11 17:04:56.000000000 +0100 -+++ quake3.new/code/client/cl_main.c 2008-01-11 16:54:33.000000000 +0100 -@@ -3588,6 +3588,14 @@ - byte sum; - char chs[3]; - int i, len; -+ cvar_t *fs_gamedirvar; -+ -+ /* Hackety hackety hack, openarena for some reason contains a check -+ for a CD-key in its menu code , so if were running openarena -+ always return true */ -+ fs_gamedirvar = Cvar_Get ("fs_game", "", CVAR_INIT|CVAR_SYSTEMINFO ); -+ if (!strcmp(fs_gamedirvar->string, "baseoa")) -+ return qtrue; - - len = strlen(key); - if( len != CDKEY_LEN ) { diff --git a/quake3-1.34-no-pak0-check.patch b/quake3-1.34-no-pak0-check.patch deleted file mode 100644 index b0f0e54..0000000 --- a/quake3-1.34-no-pak0-check.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -up quake3-1.36/code/qcommon/files.c.orig quake3-1.36/code/qcommon/files.c ---- quake3-1.36/code/qcommon/files.c.orig 2009-04-27 09:39:11.000000000 +0200 -+++ quake3-1.36/code/qcommon/files.c 2009-04-27 09:41:12.000000000 +0200 -@@ -2859,6 +2859,13 @@ static void FS_CheckPak0( void ) - searchpath_t *path; - qboolean founddemo = qfalse; - unsigned foundPak = 0; -+ -+ /* A bit hacky, but we don't want to complain about pak0 when running -+ totalconversions, so skip the check for known total conversions */ -+ if ( !strcmp(fs_gamedirvar->string, "baseoa") || -+ !strcmp(fs_gamedirvar->string, "q3ut4") || -+ !strcmp(fs_gamedirvar->string, "wop")) -+ return; - - for( path = fs_searchpaths; path; path = path->next ) - { diff --git a/quake3-1.34-syslibs.patch b/quake3-1.34-syslibs.patch deleted file mode 100644 index 08104f4..0000000 --- a/quake3-1.34-syslibs.patch +++ /dev/null @@ -1,417 +0,0 @@ -diff -up quake3-1.36/Makefile.syslibs quake3-1.36/Makefile ---- quake3-1.36/Makefile.syslibs 2009-04-27 08:42:39.000000000 +0200 -+++ quake3-1.36/Makefile 2009-04-27 09:19:52.000000000 +0200 -@@ -103,6 +103,10 @@ ifndef GENERATE_DEPENDENCIES - GENERATE_DEPENDENCIES=1 - endif - -+ifndef USE_SYSTEM_JPEG -+USE_SYSTEM_JPEG=1 -+endif -+ - ifndef USE_OPENAL - USE_OPENAL=1 - endif -@@ -237,8 +241,11 @@ ifeq ($(PLATFORM),linux) - endif - endif - -- BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \ -- -pipe -DUSE_ICON $(shell sdl-config --cflags) -+ BASE_CFLAGS = -DUSE_ICON $(shell sdl-config --cflags) -+ -+ ifeq ($(USE_SYSTEM_JPEG),1) -+ BASE_CFLAGS += -DUSE_SYSTEM_JPEG=1 -+ endif - - ifeq ($(USE_OPENAL),1) - BASE_CFLAGS += -DUSE_OPENAL -@@ -301,6 +308,10 @@ ifeq ($(PLATFORM),linux) - - CLIENT_LIBS=$(shell sdl-config --libs) -lGL - -+ ifeq ($(USE_SYSTEM_JPEG),1) -+ CLIENT_LIBS += -ljpeg -+ endif -+ - ifeq ($(USE_OPENAL),1) - ifneq ($(USE_OPENAL_DLOPEN),1) - CLIENT_LIBS += -lopenal -@@ -844,7 +844,7 @@ ifeq ($(USE_VOIP),1) - ifeq ($(USE_INTERNAL_SPEEX),1) - BASE_CFLAGS += -DFLOATING_POINT -DUSE_ALLOCA -I$(SPEEXDIR)/include - else -- CLIENT_LIBS += -lspeex -+ CLIENT_LIBS += -lspeex -lspeexdsp - endif - endif - -@@ -1297,41 +1308,7 @@ Q3OBJ = \ - $(B)/client/l_script.o \ - $(B)/client/l_struct.o \ - \ -- $(B)/client/jcapimin.o \ -- $(B)/client/jcapistd.o \ -- $(B)/client/jccoefct.o \ -- $(B)/client/jccolor.o \ -- $(B)/client/jcdctmgr.o \ -- $(B)/client/jchuff.o \ -- $(B)/client/jcinit.o \ -- $(B)/client/jcmainct.o \ -- $(B)/client/jcmarker.o \ -- $(B)/client/jcmaster.o \ -- $(B)/client/jcomapi.o \ -- $(B)/client/jcparam.o \ -- $(B)/client/jcphuff.o \ -- $(B)/client/jcprepct.o \ -- $(B)/client/jcsample.o \ -- $(B)/client/jdapimin.o \ -- $(B)/client/jdapistd.o \ -- $(B)/client/jdatasrc.o \ -- $(B)/client/jdcoefct.o \ -- $(B)/client/jdcolor.o \ -- $(B)/client/jddctmgr.o \ -- $(B)/client/jdhuff.o \ -- $(B)/client/jdinput.o \ -- $(B)/client/jdmainct.o \ -- $(B)/client/jdmarker.o \ -- $(B)/client/jdmaster.o \ -- $(B)/client/jdpostct.o \ -- $(B)/client/jdsample.o \ -- $(B)/client/jdtrans.o \ -- $(B)/client/jerror.o \ -- $(B)/client/jfdctflt.o \ -- $(B)/client/jidctflt.o \ -- $(B)/client/jmemmgr.o \ - $(B)/client/jmemnobs.o \ -- $(B)/client/jutils.o \ - \ - $(B)/client/tr_animation.o \ - $(B)/client/tr_backend.o \ -@@ -1370,6 +1347,46 @@ Q3OBJ = \ - $(B)/client/con_log.o \ - $(B)/client/sys_main.o - -+ifneq ($(USE_SYSTEM_JPEG),1) -+ Q3OBJ += \ -+ $(B)/client/jcapimin.o \ -+ $(B)/client/jcapistd.o \ -+ $(B)/client/jccoefct.o \ -+ $(B)/client/jccolor.o \ -+ $(B)/client/jcdctmgr.o \ -+ $(B)/client/jchuff.o \ -+ $(B)/client/jcinit.o \ -+ $(B)/client/jcmainct.o \ -+ $(B)/client/jcmarker.o \ -+ $(B)/client/jcmaster.o \ -+ $(B)/client/jcomapi.o \ -+ $(B)/client/jcparam.o \ -+ $(B)/client/jcphuff.o \ -+ $(B)/client/jcprepct.o \ -+ $(B)/client/jcsample.o \ -+ $(B)/client/jdapimin.o \ -+ $(B)/client/jdapistd.o \ -+ $(B)/client/jdatasrc.o \ -+ $(B)/client/jdcoefct.o \ -+ $(B)/client/jdcolor.o \ -+ $(B)/client/jddctmgr.o \ -+ $(B)/client/jdhuff.o \ -+ $(B)/client/jdinput.o \ -+ $(B)/client/jdmainct.o \ -+ $(B)/client/jdmarker.o \ -+ $(B)/client/jdmaster.o \ -+ $(B)/client/jdpostct.o \ -+ $(B)/client/jdsample.o \ -+ $(B)/client/jdtrans.o \ -+ $(B)/client/jerror.o \ -+ $(B)/client/jfdctflt.o \ -+ $(B)/client/jidctflt.o \ -+ $(B)/client/jmemmgr.o \ -+ $(B)/client/jutils.o -+else -+ Q3OBJ += $(B)/client/jpeg_memsrc.o -+endif -+ - ifeq ($(ARCH),i386) - Q3OBJ += \ - $(B)/client/snd_mixa.o \ -diff -up quake3-1.36/code/jpeg-6b/jmemnobs.c.syslibs quake3-1.36/code/jpeg-6b/jmemnobs.c ---- quake3-1.36/code/jpeg-6b/jmemnobs.c.syslibs 2009-04-27 08:42:28.000000000 +0200 -+++ quake3-1.36/code/jpeg-6b/jmemnobs.c 2009-04-27 08:52:42.000000000 +0200 -@@ -17,11 +17,26 @@ - - #include "../renderer/tr_local.h" - -+#ifdef USE_SYSTEM_JPEG -+#include -+#include -+#include -+ -+#undef GLOBAL -+#define GLOBAL(x) x -+#define FAR -+ -+typedef void * backing_store_ptr; -+ -+#else -+ - #define JPEG_INTERNALS - #include "jinclude.h" - #include "jpeglib.h" - #include "jmemsys.h" /* import the system-dependent declarations */ - -+#endif -+ - /* - * Memory allocation and freeing are controlled by the regular library - * routines ri.Malloc() and ri.Free(). -@@ -83,7 +98,13 @@ GLOBAL(void) - jpeg_open_backing_store (j_common_ptr cinfo, backing_store_ptr info, - long total_bytes_needed) - { -+#ifdef USE_SYSTEM_JPEG -+ fprintf(stderr, -+ "jmemnobs.c: jpeg_open_backing_store() call, this should never happen!\n"); -+ exit(1); -+#else - ERREXIT(cinfo, JERR_NO_BACKING_STORE); -+#endif - } - - -diff -up /dev/null quake3-1.36/code/renderer/jpeg_memsrc.c ---- /dev/null 2009-04-27 08:18:28.430258242 +0200 -+++ quake3-1.36/code/renderer/jpeg_memsrc.c 2009-04-27 08:51:16.000000000 +0200 -@@ -0,0 +1,163 @@ -+/* -+* memsrc.c -+* -+* Copyright (C) 1994-1996, Thomas G. Lane. -+* This file is part of the Independent JPEG Group's software. -+* For conditions of distribution and use, see the accompanying README file. -+* -+* This file contains decompression data source routines for the case of -+* reading JPEG data from a memory buffer that is preloaded with the entire -+* JPEG file. This would not seem especially useful at first sight, but -+* a number of people have asked for it. -+* This is really just a stripped-down version of jdatasrc.c. Comparison -+* of this code with jdatasrc.c may be helpful in seeing how to make -+* custom source managers for other purposes. -+*/ -+ -+/* this is not a core library module, so it doesn't define JPEG_INTERNALS */ -+#include -+#include -+#include -+ -+ -+/* Expanded data source object for memory input */ -+ -+typedef struct { -+struct jpeg_source_mgr pub; /* public fields */ -+ -+JOCTET eoi_buffer[2]; /* a place to put a dummy EOI */ -+} my_source_mgr; -+ -+typedef my_source_mgr * my_src_ptr; -+ -+ -+/* -+* Initialize source --- called by jpeg_read_header -+* before any data is actually read. -+*/ -+ -+METHODDEF(void) -+init_source (j_decompress_ptr cinfo) -+{ -+/* No work, since jpeg_mem_src set up the buffer pointer and count. -+* Indeed, if we want to read multiple JPEG images from one buffer, -+* this *must* not do anything to the pointer. -+*/ -+} -+ -+ -+/* -+* Fill the input buffer --- called whenever buffer is emptied. -+* -+* In this application, this routine should never be called; if it is called, -+* the decompressor has overrun the end of the input buffer, implying we -+* supplied an incomplete or corrupt JPEG datastream. A simple error exit -+* might be the most appropriate response. -+* -+* But what we choose to do in this code is to supply dummy EOI markers -+* in order to force the decompressor to finish processing and supply -+* some sort of output image, no matter how corrupted. -+*/ -+ -+METHODDEF(boolean) -+fill_input_buffer (j_decompress_ptr cinfo) -+{ -+my_src_ptr src = (my_src_ptr) cinfo->src; -+ -+WARNMS(cinfo, JWRN_JPEG_EOF); -+ -+/* Create a fake EOI marker */ -+src->eoi_buffer[0] = (JOCTET) 0xFF; -+src->eoi_buffer[1] = (JOCTET) JPEG_EOI; -+src->pub.next_input_byte = src->eoi_buffer; -+src->pub.bytes_in_buffer = 2; -+ -+return TRUE; -+} -+ -+ -+/* -+* Skip data --- used to skip over a potentially large amount of -+* uninteresting data (such as an APPn marker). -+* -+* If we overrun the end of the buffer, we let fill_input_buffer deal with -+* it. An extremely large skip could cause some time-wasting here, but -+* it really isn't supposed to happen ... and the decompressor will never -+* skip more than 64K anyway. -+*/ -+ -+METHODDEF(void) -+skip_input_data (j_decompress_ptr cinfo, long num_bytes) -+{ -+my_src_ptr src = (my_src_ptr) cinfo->src; -+ -+if (num_bytes > 0) { -+while (num_bytes > (long) src->pub.bytes_in_buffer) { -+num_bytes -= (long) src->pub.bytes_in_buffer; -+(void) fill_input_buffer(cinfo); -+/* note we assume that fill_input_buffer will never return FALSE, -+* so suspension need not be handled. -+*/ -+} -+src->pub.next_input_byte += (size_t) num_bytes; -+src->pub.bytes_in_buffer -= (size_t) num_bytes; -+} -+} -+ -+ -+/* -+* An additional method that can be provided by data source modules is the -+* resync_to_restart method for error recovery in the presence of RST markers. -+* For the moment, this source module just uses the default resync method -+* provided by the JPEG library. That method assumes that no backtracking -+* is possible. -+*/ -+ -+ -+/* -+* Terminate source --- called by jpeg_finish_decompress -+* after all data has been read. Often a no-op. -+* -+* NB: *not* called by jpeg_abort or jpeg_destroy; surrounding -+* application must deal with any cleanup that should happen even -+* for error exit. -+*/ -+ -+METHODDEF(void) -+term_source (j_decompress_ptr cinfo) -+{ -+/* no work necessary here */ -+} -+ -+ -+/* -+* Prepare for input from a memory buffer. -+*/ -+ -+GLOBAL(void) -+jpeg_mem_src (j_decompress_ptr cinfo, const JOCTET * buffer, size_t bufsize) -+{ -+my_src_ptr src; -+ -+/* The source object is made permanent so that a series of JPEG images -+* can be read from a single buffer by calling jpeg_mem_src -+* only before the first one. -+* This makes it unsafe to use this manager and a different source -+* manager serially with the same JPEG object. Caveat programmer. -+*/ -+if (cinfo->src == NULL) { /* first time for this JPEG object? */ -+cinfo->src = (struct jpeg_source_mgr *) -+(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, -+sizeof(my_source_mgr)); -+} -+ -+src = (my_src_ptr) cinfo->src; -+src->pub.init_source = init_source; -+src->pub.fill_input_buffer = fill_input_buffer; -+src->pub.skip_input_data = skip_input_data; -+src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */ -+src->pub.term_source = term_source; -+ -+src->pub.next_input_byte = buffer; -+src->pub.bytes_in_buffer = bufsize; -+} -diff -up /dev/null quake3-1.36/code/renderer/jpeg_memsrc.h ---- /dev/null 2009-04-27 08:18:28.430258242 +0200 -+++ quake3-1.36/code/renderer/jpeg_memsrc.h 2009-04-27 08:51:16.000000000 +0200 -@@ -0,0 +1,5 @@ -+#include -+#include -+ -+void jpeg_mem_src (j_decompress_ptr cinfo, const JOCTET * buffer, -+ size_t bufsize); -diff -up quake3-1.36/code/renderer/tr_image.c.syslibs quake3-1.36/code/renderer/tr_image.c -diff -up quake3-1.36/code/renderer/tr_image_jpg.c.syslibs quake3-1.36/code/renderer/tr_image_jpg.c ---- quake3-1.36/code/renderer/tr_image_jpg.c.syslibs 2009-04-27 08:42:30.000000000 +0200 -+++ quake3-1.36/code/renderer/tr_image_jpg.c 2009-04-27 08:59:40.000000000 +0200 -@@ -30,8 +30,13 @@ Foundation, Inc., 51 Franklin St, Fifth - * You may also wish to include "jerror.h". - */ - -+#ifdef USE_SYSTEM_JPEG -+#include -+#include "jpeg_memsrc.h" -+#else - #define JPEG_INTERNALS - #include "../jpeg-6b/jpeglib.h" -+#endif - - void R_LoadJPG( const char *filename, unsigned char **pic, int *width, int *height ) { - /* This struct contains the JPEG decompression parameters and pointers to -@@ -62,6 +67,10 @@ void R_LoadJPG( const char *filename, un - void *v; - } fbuffer; - byte *buf; -+#ifdef USE_SYSTEM_JPEG -+ int i,j; -+ byte *inptr, *outptr; -+#endif - - /* In this example we want to open the input file before doing anything else, - * so that the setjmp() error recovery below can assume the file is open. -@@ -131,7 +143,7 @@ void R_LoadJPG( const char *filename, un - } - - memcount = pixelcount * 4; -- row_stride = cinfo.output_width * cinfo.output_components; -+ row_stride = cinfo.output_width * 4; - - out = ri.Malloc(memcount); - -@@ -152,6 +164,21 @@ void R_LoadJPG( const char *filename, un - buf = ((out+(row_stride*cinfo.output_scanline))); - buffer = &buf; - (void) jpeg_read_scanlines(&cinfo, buffer, 1); -+#ifdef USE_SYSTEM_JPEG -+ /* we have RGB data, we need to expand this out to ARGB */ -+ inptr = buf + cinfo.output_width * 3 - 1; -+ outptr = buf + row_stride - 1; -+ -+ for (i = 0; i < cinfo.output_width; i++) { -+ /* endian dependent? maybe for big endian this must be done after the -+ color/pixel copy? */ -+ *outptr-- = 255; -+ for (j = 0; j < 3; j++) { -+ JOCTET color = *inptr--; -+ *outptr-- = color; -+ } -+ } -+#endif - } - - buf = out; diff --git a/quake3-1.36-botlib-strcpy-abuse.patch b/quake3-1.36-botlib-strcpy-abuse.patch deleted file mode 100644 index af2b8f0..0000000 --- a/quake3-1.36-botlib-strcpy-abuse.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -up quake3-1.36/code/botlib/l_precomp.c~ quake3-1.36/code/botlib/l_precomp.c ---- quake3-1.36/code/botlib/l_precomp.c~ 2009-04-27 08:42:37.000000000 +0200 -+++ quake3-1.36/code/botlib/l_precomp.c 2009-11-03 21:03:08.000000000 +0100 -@@ -948,7 +948,7 @@ void PC_ConvertPath(char *path) - if ((*ptr == '\\' || *ptr == '/') && - (*(ptr+1) == '\\' || *(ptr+1) == '/')) - { -- strcpy(ptr, ptr+1); -+ memmove(ptr, ptr+1, strlen(ptr)); - } //end if - else - { -diff -up quake3-1.36/code/botlib/l_script.c~ quake3-1.36/code/botlib/l_script.c ---- quake3-1.36/code/botlib/l_script.c~ 2009-04-27 08:42:37.000000000 +0200 -+++ quake3-1.36/code/botlib/l_script.c 2009-11-03 21:06:11.000000000 +0100 -@@ -1118,7 +1118,7 @@ void StripDoubleQuotes(char *string) - { - if (*string == '\"') - { -- strcpy(string, string+1); -+ memmove(string, string+1, strlen(string)); - } //end if - if (string[strlen(string)-1] == '\"') - { -@@ -1135,7 +1135,7 @@ void StripSingleQuotes(char *string) - { - if (*string == '\'') - { -- strcpy(string, string+1); -+ memmove(string, string+1, strlen(string)); - } //end if - if (string[strlen(string)-1] == '\'') - { diff --git a/quake3.spec b/quake3.spec index d56ed2f..45363c8 100644 --- a/quake3.spec +++ b/quake3.spec @@ -1,6 +1,6 @@ Name: quake3 Version: 1.36 -Release: 7.svn1783%{?dist} +Release: 8.svn1802%{?dist} Summary: Quake 3 Arena engine (ioquake3 version) Group: Amusements/Games License: GPLv2+ @@ -14,7 +14,7 @@ URL: http://ioquake3.org/ # rm -fr code/tools/lcc # popd # tar cvfj %{name}-%{version}.tar.bz2 %{name}-%{version} -Source0: %{name}-%{version}-svn1783.tar.bz2 +Source0: %{name}-%{version}-svn1802.tar.bz2 Source1: %{name}-demo.sh Source2: %{name}.autodlrc Source3: %{name}.desktop @@ -32,10 +32,30 @@ Source14: wop.png Source15: jpeg_memsrc.h Source16: jpeg_memsrc.c Patch0: quake3-1.36-syslibs.patch -Patch2: quake3-1.34-fix-empty-fs_game-from-server.patch -Patch3: quake3-1.34-dont-ask-openarena-cdkey.patch -Patch4: quake3-1.34-no-pak0-check.patch -Patch5: quake3-1.34-rc4-demo-pak.patch +Patch1: quake3-1.34-fix-empty-fs_game-from-server.patch +Patch2: quake3-1.34-rc4-demo-pak.patch +# from debian don't complain about lacking original pak0 with total conversions +# http://bugzilla.icculus.org/show_bug.cgi?id=4699 +Patch3: 0003-FS_CheckPak0-don-t-require-BASEGAME-pak0.pk3-if-fs_b.patch +# bugfix from Debian submitted upstream: +# http://bugzilla.icculus.org/show_bug.cgi?id=4691 +Patch4: 0004-Clip-cl_mouseAccelOffset-at-0.001-to-avoid-division-.patch +# patches from Debian to allow reporting / accepting a different protocol +# version, which allows the main ioquake3 to serve as a openarena +# server / client (there are no protocol differences, yet openarena uses +# a different protocol version to distuingish itself). Submitted upstream: +# http://bugzilla.icculus.org/show_bug.cgi?id=4698 +Patch5: 0005-FS_FOpenFileRead-allow-loading-any-demo-not-just-the.patch +Patch6: 0006-Allow-protocol-cvar-to-be-changed-on-the-command-lin.patch +Patch7: 0007-Load-demos-using-the-protocol-version-from-the-comma.patch +# patches from Debian to allow transparent support of native compiled qvm's +Patch8: 0008-Add-a-special-vmMagic-that-causes-equivalent-native-.patch +Patch9: 0009-FS_FindDll-new-function-to-go-through-the-search-pat.patch +Patch10: 0010-Sys_LoadDll-use-FS_FindDll.patch +# patches from Debian for openarena compatibility (increase some buffer sizes) +Patch11: 0011-Double-the-maximum-number-of-cvars.patch +Patch12: 0012-Increase-the-command-buffer-from-16K-to-128K-followi.patch +Patch13: 0013-Double-the-default-com_hunkMegs-to-128M.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel libXt-devel openal-soft-devel libjpeg-devel BuildRequires: speex-devel libvorbis-devel curl-devel desktop-file-utils @@ -75,7 +95,8 @@ engine, below is an (incomplete list): %package demo Summary: Quake 3 Arena tournament 3D shooter game demo installer Group: Amusements/Games -Requires: quake3 hicolor-icon-theme opengl-games-utils unzip +Requires: quake3 = %{version}-%{release} +Requires: hicolor-icon-theme opengl-games-utils unzip # quake3-demo used to be part of the quake3 package, make sure that people # who have the old version with the demo included don't all of a sudden have # the demo menu entry disappear. @@ -96,7 +117,8 @@ install the Quake 3 demo datafiles for you. Summary: FPS best be described as a Hollywood tactical shooter Group: Amusements/Games URL: http://www.urbanterror.net/ -Requires: quake3 hicolor-icon-theme opengl-games-utils unzip +Requires: quake3 = %{version}-%{release} +Requires: hicolor-icon-theme opengl-games-utils unzip %description -n urbanterror Urban Terror could best be described as a Hollywood tactical shooter; it is @@ -115,7 +137,8 @@ Terror menu entry, which will automatically download the necessary datafiles Summary: World Of Padman - Comic 3D-Shooter Group: Amusements/Games URL: http://padworld.myexp.de/ -Requires: quake3 hicolor-icon-theme opengl-games-utils tar gzip +Requires: quake3 = %{version}-%{release} +Requires: hicolor-icon-theme opengl-games-utils tar gzip %description -n worldofpadman World of Padman (WoP) is a first-person shooter computer game available in @@ -133,10 +156,19 @@ Padman menu entry, which will automatically download the necessary datafiles %prep %setup -q %patch0 -p1 +%patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 # Add jpeg_memsrc cp -p %{SOURCE15} %{SOURCE16} ./code/renderer/ @@ -272,6 +304,13 @@ fi %changelog +* Thu Nov 11 2010 Hans de Goede 1.36-8.svn1802 +- Update release to svn revision (r1802) +- Add a whole bunch of patches from Debian which allow using ioquake3 as an + engine for total conversions and compability with network play with + official openarena servers (#565763) +- Remove our own hacks for ioquake3 as an engine for total conversions + * Wed May 12 2010 Xavier Lamien - 1.36-7.svn1783 - Update release to svn revision (r1783). - Remove botlib-strcpy-abuse patch (added upstream). diff --git a/urbanterror.sh b/urbanterror.sh index cb48980..3419a65 100644 --- a/urbanterror.sh +++ b/urbanterror.sh @@ -26,4 +26,23 @@ if [ ! -f ~/.q3a/q3ut4/zpak000.pk3 ]; then fi fi -exec quake3 +set fs_game q3ut4 +set com_hunkMegs 256 +set cl_allowdownload 1 "$@" +# We used to run from under ~/.q3a, but that is a bad idea as that will +# cause com_standalone to get unset if regular quake3 is also present +# So now we run from ~/.q3ut4, but we keep the data files under +# ~/.q3a for compatibilities with older autodl "installs" +mkdir -p $HOME/.q3ut4 +ln -f -s ../.q3a/q3ut4 $HOME/.q3ut4/q3ut4 + +# we're a standalone game +CVARS="+set com_standalone 1" +CVARS="$CVARS +set fs_basegame q3ut4" +CVARS="$CVARS +set fs_basepath /usr/share/q3ut4" +CVARS="$CVARS +set fs_homepath \"$HOME/.q3ut4\"" +# Urban Terror's default master server is different +CVARS="$CVARS +set sv_master1 master.urbanterror.net" +# update.quake3arena.com is pretty irrelevant if you're playing ut +CVARS="$CVARS +set cl_motd 0" +# And last some Urban Terror specific settings +CVARS="$CVARS +set com_hunkMegs 256 +set cl_allowdownload 1" + +exec quake3 $CVARS "$@" diff --git a/worldofpadman.sh b/worldofpadman.sh old mode 100644 new mode 100755 index 6169dae..f9800b5 --- a/worldofpadman.sh +++ b/worldofpadman.sh @@ -33,4 +33,21 @@ if [ ! -f $HOME/.q3a/wop/wop_006.pk3 ]; then fi fi -exec quake3 +set fs_game wop "$@" +# We used to run from under ~/.q3a, but that is a bad idea as that will +# cause com_standalone to get unset if regular quake3 is also present +# So now we run from ~/.wop, but we keep the data files under +# ~/.q3a for compatibilities with older autodl "installs" +mkdir -p $HOME/.wop +ln -f -s ../.q3a/wop $HOME/.wop/wop + +# we're a standalone game +CVARS="+set com_standalone 1" +CVARS="$CVARS +set fs_basegame wop" +CVARS="$CVARS +set fs_basepath /usr/share/wop" +CVARS="$CVARS +set fs_homepath \"$HOME/.wop\"" +# World of Padman's default master server is different +CVARS="$CVARS +set sv_master1 wopmaster.kickchat.com:27955" +# update.quake3arena.com is pretty irrelevant if you're playing wop +CVARS="$CVARS +set cl_motd 0" + +exec quake3 $CVARS "$@"