aboutsummaryrefslogtreecommitdiffstats
path: root/games/alienarena
diff options
context:
space:
mode:
authoralepulver <alepulver@FreeBSD.org>2008-03-25 04:42:28 +0800
committeralepulver <alepulver@FreeBSD.org>2008-03-25 04:42:28 +0800
commitb74a0a6c5b73eb16e7ceb9e0e68ff5488d8e978e (patch)
treea2c5fab728e6f72a35f1effd1f92f8306bd88fd8 /games/alienarena
parent32dfddd893e13fca0a80aefd5f7979cafed30292 (diff)
downloadfreebsd-ports-gnome-b74a0a6c5b73eb16e7ceb9e0e68ff5488d8e978e.tar.gz
freebsd-ports-gnome-b74a0a6c5b73eb16e7ceb9e0e68ff5488d8e978e.tar.zst
freebsd-ports-gnome-b74a0a6c5b73eb16e7ceb9e0e68ff5488d8e978e.zip
Both data and program:
- Update to version 2008. Only for games/alienarena: - Remove local patches (now integrated upstream). - Check for WITH_* instead of !WITHOUT_* (avoid double negation). - Add note about using the SDL version in FreeBSD >= 7 because of sound problems.
Diffstat (limited to 'games/alienarena')
-rw-r--r--games/alienarena/Makefile35
-rw-r--r--games/alienarena/distinfo6
-rw-r--r--games/alienarena/files/alienarena-ded.in5
-rw-r--r--games/alienarena/files/alienarena-sdl.in5
-rw-r--r--games/alienarena/files/alienarena.in5
-rw-r--r--games/alienarena/files/patch-Makefile52
-rw-r--r--games/alienarena/files/patch-client__menu.c148
-rw-r--r--games/alienarena/files/patch-game__acesrc__acebot.h16
-rw-r--r--games/alienarena/files/patch-game__acesrc__acebot_nodes.c15
-rw-r--r--games/alienarena/files/patch-game__acesrc__acebot_spawn.c26
-rw-r--r--games/alienarena/files/patch-qcommon__files.c201
-rw-r--r--games/alienarena/files/patch-ref_gl__qgl.h18
-rw-r--r--games/alienarena/files/patch-ref_gl__r_script.c83
-rw-r--r--games/alienarena/pkg-descr22
-rw-r--r--games/alienarena/pkg-message5
15 files changed, 33 insertions, 609 deletions
diff --git a/games/alienarena/Makefile b/games/alienarena/Makefile
index 17ebafa5c50a..fe329a0b2cf7 100644
--- a/games/alienarena/Makefile
+++ b/games/alienarena/Makefile
@@ -6,14 +6,13 @@
#
PORTNAME= alienarena
-PORTVERSION= 2007.610
-PORTREVISION= 1
+PORTVERSION= 2008
CATEGORIES= games
-MASTER_SITES= ftp://ftp.simtel.com/pub/gamezone/31/5/17/
-DISTNAME= ${PORTNAME}2007-20071011-linux
+MASTER_SITES= http://offload1.icculus.org/alienarena/Files/
+DISTNAME= ${PORTNAME}2008-linux20080227
MAINTAINER= alepulver@FreeBSD.org
-COMMENT= Alien Arena 2006 (native version)
+COMMENT= Alien Arena 2008 (native version)
RUN_DEPENDS= ${DATADIR}/arena/default.cfg:${PORTSDIR}/games/alienarena-data
@@ -23,7 +22,7 @@ USE_GMAKE= yes
MAKE_ENV= WITH_DATADIR=yes WITH_LIBDIR=yes \
DATADIR="${DATADIR}" LIBDIR="${LIBDIR}"
-WRKSRC= ${WRKDIR}/${PORTNAME}2007/source
+WRKSRC= ${WRKDIR}/${PORTNAME}2008/source
ALL_TARGET= build-release
OPTIONS= CLIENT "Build client" on \
@@ -42,36 +41,36 @@ LIBDIR= ${PREFIX}/lib/${PORTNAME}
IGNORE= needs at least one executable (CLIENT, DEDICATED or SDL)
.endif
-.if !defined(WITHOUT_CLIENT) || !defined(WITHOUT_SDL)
+.if defined(WITH_CLIENT) || defined(WITH_SDL)
LIB_DEPENDS+= curl.4:${PORTSDIR}/ftp/curl \
jpeg.9:${PORTSDIR}/graphics/jpeg \
png.5:${PORTSDIR}/graphics/png
USE_GL= yes
.endif
-.if defined(WITHOUT_CLIENT)
-MAKE_ENV+= BUILD=DEDICATED
-.elif defined(WITHOUT_DEDICATED)
+.if defined(WITH_CLIENT)
MAKE_ENV+= BUILD=CLIENT
+.elif defined(WITH_DEDICATED)
+MAKE_ENV+= BUILD=DEDICATED
.endif
-.if !defined(WITHOUT_CLIENT)
+.if defined(WITH_CLIENT)
PLIST_SUB+= CLIENT=""
.else
PLIST_SUB+= CLIENT="@comment "
.endif
-.if !defined(WITHOUT_DEDICATED)
+.if defined(WITH_DEDICATED)
PLIST_SUB+= DEDICATED=""
.else
PLIST_SUB+= DEDICATED="@comment "
.endif
-.if !defined(WITHOUT_OPTIMIZED_CFLAGS)
-MAKE_ENV+= OPTIMIZED_CFLAGS=YES
+.if defined(WITHOUT_OPTIMIZED_CFLAGS)
+MAKE_ENV+= OPTIMIZED_CFLAGS=no
.endif
-.if !defined(WITHOUT_SDL)
+.if defined(WITH_SDL)
USE_SDL= sdl
PLIST_SUB+= SDL=""
.else
@@ -87,15 +86,15 @@ do-install:
${LN} -s ${DATADIR}/arena/* ${LIBDIR}/arena
${LN} -s ${DATADIR}/botinfo ${LIBDIR}
${LN} -s ${DATADIR}/data1/* ${LIBDIR}/data1
-.if !defined(WITHOUT_CLIENT)
+.if defined(WITH_CLIENT)
${INSTALL_PROGRAM} ${WRKSRC}/release/crx \
${PREFIX}/bin/${PORTNAME}
.endif
-.if !defined(WITHOUT_DEDICATED)
+.if defined(WITH_DEDICATED)
${INSTALL_PROGRAM} ${WRKSRC}/release/crded \
${PREFIX}/bin/${PORTNAME}-ded
.endif
-.if !defined(WITHOUT_SDL)
+.if defined(WITH_SDL)
${INSTALL_PROGRAM} ${WRKSRC}/release/crx.sdl \
${PREFIX}/bin/${PORTNAME}-sdl
.endif
diff --git a/games/alienarena/distinfo b/games/alienarena/distinfo
index f2ad41d5aa9f..2271faf461f4 100644
--- a/games/alienarena/distinfo
+++ b/games/alienarena/distinfo
@@ -1,3 +1,3 @@
-MD5 (alienarena2007-20071011-linux.zip) = 7ebb0dfeec4be80311921a075379c8dc
-SHA256 (alienarena2007-20071011-linux.zip) = 33036bd0dec77ae06c113d8e06718bd6f9e42efb634ee304c3fd9d48184c2e20
-SIZE (alienarena2007-20071011-linux.zip) = 245067302
+MD5 (alienarena2008-linux20080227.zip) = 5fcb17a65e220b1aad5ec25f97b35932
+SHA256 (alienarena2008-linux20080227.zip) = fe4325465b1b12e8a39552022d812531adae5273a79c2940514568b533e73e44
+SIZE (alienarena2008-linux20080227.zip) = 223329701
diff --git a/games/alienarena/files/alienarena-ded.in b/games/alienarena/files/alienarena-ded.in
deleted file mode 100644
index 1071c8bd7681..000000000000
--- a/games/alienarena/files/alienarena-ded.in
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-cd %%LIBDIR%% || exit 1
-
-exec ./crded +set game arena "$@"
diff --git a/games/alienarena/files/alienarena-sdl.in b/games/alienarena/files/alienarena-sdl.in
deleted file mode 100644
index d09ae2fdf5c2..000000000000
--- a/games/alienarena/files/alienarena-sdl.in
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-cd %%LIBDIR%% || exit 1
-
-exec ./crx.sdl +set game arena "$@"
diff --git a/games/alienarena/files/alienarena.in b/games/alienarena/files/alienarena.in
deleted file mode 100644
index 2f71ae336a90..000000000000
--- a/games/alienarena/files/alienarena.in
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-cd %%LIBDIR%% || exit 1
-
-exec ./crx +set game arena "$@"
diff --git a/games/alienarena/files/patch-Makefile b/games/alienarena/files/patch-Makefile
deleted file mode 100644
index 3316dd54ec77..000000000000
--- a/games/alienarena/files/patch-Makefile
+++ /dev/null
@@ -1,52 +0,0 @@
---- ./Makefile.orig Fri May 25 01:00:34 2007
-+++ ./Makefile Sat Jul 21 13:39:48 2007
-@@ -22,6 +22,10 @@
- # Build binary that uses SDL for sound when "1".
- SDLSOUND?=1
-
-+# Adds DATADIR/LIBDIR (see below) to the data and library search path.
-+WITH_DATADIR?=no
-+WITH_LIBDIR?=no
-+
- # Selects the component to build; ALL, GAME, or DEDICATED
- BUILD?=ALL
-
-@@ -53,6 +57,20 @@
-
- BASE_CFLAGS=$(CFLAGS) -Dstricmp=strcasecmp -D_stricmp=strcasecmp -I$(X11BASE)/include
-
-+# DATADIR / LIBDIR support.
-+
-+PREFIX?=/usr/local
-+
-+ifeq ($(strip $(WITH_DATADIR)),yes)
-+DATADIR?=$(PREFIX)/share/alienarena
-+BASE_CFLAGS+=-DDATADIR='\"$(DATADIR)\"'
-+endif
-+
-+ifeq ($(strip $(WITH_LIBDIR)),yes)
-+LIBDIR?=$(PREFIX)/lib/alienarena
-+BASE_CFLAGS+=-DLIBDIR='\"$(LIBDIR)\"'
-+endif
-+
- RELEASE_CFLAGS=$(BASE_CFLAGS)
-
- ifeq ($(strip $(OPTIMIZED_CFLAGS)),yes)
-@@ -128,13 +146,13 @@
- $(BUILDDIR)/crx
- endif
-
-+ifeq ($(strip $(BUILD)),CLIENT)
-+ TARGETS+=$(BUILDDIR)/crx
-+endif
-+
- ifeq ($(strip $(BUILD)),DEDICATED)
- SDLSOUND=0
- TARGETS+=$(BUILDDIR)/crded
--endif
--
--ifeq ($(strip $(BUILD)),GAME)
-- TARGETS+=$(BUILDDIR)/crx
- endif
-
- ifeq ($(strip $(SDLSOUND)),1)
diff --git a/games/alienarena/files/patch-client__menu.c b/games/alienarena/files/patch-client__menu.c
deleted file mode 100644
index 51abd7e0bf14..000000000000
--- a/games/alienarena/files/patch-client__menu.c
+++ /dev/null
@@ -1,148 +0,0 @@
---- ./client/menu.c.orig Tue Dec 11 18:57:14 2007
-+++ ./client/menu.c Wed Dec 12 00:31:03 2007
-@@ -5104,143 +5104,16 @@
-
- static void PlayerConfig_ScanDirectories( void )
- {
-- char findname[1024];
- char scratch[1024];
- int ndirs = 0, npms = 0;
- char **dirnames;
- int i;
-
-- extern char **FS_ListFiles( char *, int *, unsigned, unsigned );
-+ extern char **FS_ListFiles2( char *, int *, unsigned, unsigned );
-
- s_numplayermodels = 0;
-
-- //get dirs from gamedir first.
--
-- Com_sprintf( findname, sizeof(findname), "%s/players/*.*", FS_Gamedir() );
--
-- dirnames = FS_ListFiles( findname, &ndirs, SFF_SUBDIR, 0 );
--
-- if ( dirnames ) {
--
-- /*
-- ** go through the subdirectories
-- */
-- npms = ndirs;
-- if ( npms > MAX_PLAYERMODELS )
-- npms = MAX_PLAYERMODELS;
--
-- for ( i = 0; i < npms; i++ )
-- {
-- int k, s;
-- char *a, *b, *c;
-- char **pcxnames;
-- char **skinnames;
-- int npcxfiles;
-- int nskins = 0;
--
-- if ( dirnames[i] == 0 )
-- continue;
--
-- // verify the existence of tris.md2
-- strcpy( scratch, dirnames[i] );
-- strcat( scratch, "/tris.md2" );
-- if ( !Sys_FindFirst( scratch, 0, SFF_SUBDIR | SFF_HIDDEN | SFF_SYSTEM ) )
-- {
-- free( dirnames[i] );
-- dirnames[i] = 0;
-- Sys_FindClose();
-- continue;
-- }
-- Sys_FindClose();
--
-- // verify the existence of at least one skin
-- strcpy( scratch, dirnames[i] );
-- strcat( scratch, "/*.tga" );
-- pcxnames = FS_ListFiles( scratch, &npcxfiles, 0, SFF_SUBDIR | SFF_HIDDEN | SFF_SYSTEM );
--
-- if ( !pcxnames )
-- {
-- free( dirnames[i] );
-- dirnames[i] = 0;
-- continue;
-- }
--
-- // count valid skins, which consist of a skin with a matching "_i" icon
-- for ( k = 0; k < npcxfiles-1; k++ )
-- {
-- if ( !strstr( pcxnames[k], "_i.tga" ) )
-- {
-- if ( IconOfSkinExists( pcxnames[k], pcxnames, npcxfiles - 1 ) )
-- {
-- nskins++;
-- }
-- }
-- }
-- if ( !nskins )
-- continue;
--
-- skinnames = malloc( sizeof( char * ) * ( nskins + 1 ) );
-- memset( skinnames, 0, sizeof( char * ) * ( nskins + 1 ) );
--
-- // copy the valid skins
-- for ( s = 0, k = 0; k < npcxfiles-1; k++ )
-- {
-- char *a, *b, *c;
--
-- if ( !strstr( pcxnames[k], "_i.tga" ) )
-- {
-- if ( IconOfSkinExists( pcxnames[k], pcxnames, npcxfiles - 1 ) )
-- {
-- a = strrchr( pcxnames[k], '/' );
-- b = strrchr( pcxnames[k], '\\' );
--
-- if ( a > b )
-- c = a;
-- else
-- c = b;
--
-- strcpy( scratch, c + 1 );
--
-- if ( strrchr( scratch, '.' ) )
-- *strrchr( scratch, '.' ) = 0;
--
-- skinnames[s] = strdup( scratch );
-- s++;
-- }
-- }
-- }
--
-- // at this point we have a valid player model
-- s_pmi[s_numplayermodels].nskins = nskins;
-- s_pmi[s_numplayermodels].skindisplaynames = skinnames;
--
-- // make short name for the model
-- a = strrchr( dirnames[i], '/' );
-- b = strrchr( dirnames[i], '\\' );
--
-- if ( a > b )
-- c = a;
-- else
-- c = b;
--
-- strncpy( s_pmi[s_numplayermodels].displayname, c + 1, MAX_DISPLAYNAME-1 );
-- strcpy( s_pmi[s_numplayermodels].directory, c + 1 );
--
-- FreeFileList( pcxnames, npcxfiles );
--
-- s_numplayermodels++;
-- }
-- if ( dirnames )
-- FreeFileList( dirnames, ndirs );
-- }
--
-- /*
-- ** get a list of directories from basedir
-- */
--
-- Com_sprintf( findname, sizeof(findname), "%s/players/*.*", BASEDIRNAME);
--
-- dirnames = FS_ListFiles( findname, &ndirs, SFF_SUBDIR, 0 );
-+ dirnames = FS_ListFiles2( "players/*.*", &ndirs, SFF_SUBDIR, 0 );
-
- if ( !dirnames )
- return;
diff --git a/games/alienarena/files/patch-game__acesrc__acebot.h b/games/alienarena/files/patch-game__acesrc__acebot.h
deleted file mode 100644
index f37dff649cc7..000000000000
--- a/games/alienarena/files/patch-game__acesrc__acebot.h
+++ /dev/null
@@ -1,16 +0,0 @@
---- ./game/acesrc/acebot.h.orig Fri Jun 1 14:05:51 2007
-+++ ./game/acesrc/acebot.h Sat Jul 21 09:32:13 2007
-@@ -60,6 +60,13 @@
- #ifndef _ACEBOT_H
- #define _ACEBOT_H
-
-+// Directory for reading files in "botinfo", writing is always done in "."
-+#ifdef DATADIR
-+#define BOTDIR DATADIR
-+#else
-+#define BOTDIR "."
-+#endif
-+
- // Only 100 allowed for now (probably never be enough edicts for 'em
- #define MAX_BOTS 100
-
diff --git a/games/alienarena/files/patch-game__acesrc__acebot_nodes.c b/games/alienarena/files/patch-game__acesrc__acebot_nodes.c
deleted file mode 100644
index 86f0fc03d700..000000000000
--- a/games/alienarena/files/patch-game__acesrc__acebot_nodes.c
+++ /dev/null
@@ -1,15 +0,0 @@
---- ./game/acesrc/acebot_nodes.c.orig Fri Mar 23 23:28:55 2007
-+++ ./game/acesrc/acebot_nodes.c Sat Jul 21 09:32:49 2007
-@@ -726,11 +726,7 @@
-
- safe_bprintf(PRINT_MEDIUM,"Saving node table...");
-
--#ifdef __unix__
-- strcpy(filename,"botinfo/nav/");
--#else
-- strcpy(filename,"botinfo\\nav\\");
--#endif
-+ strcpy(filename,BOTDIR"/botinfo/nav/");
- strcat(filename,level.mapname);
- strcat(filename,".nod");
-
diff --git a/games/alienarena/files/patch-game__acesrc__acebot_spawn.c b/games/alienarena/files/patch-game__acesrc__acebot_spawn.c
deleted file mode 100644
index 7a79342db3e2..000000000000
--- a/games/alienarena/files/patch-game__acesrc__acebot_spawn.c
+++ /dev/null
@@ -1,26 +0,0 @@
---- ./game/acesrc/acebot_spawn.c.orig Wed Apr 25 18:22:21 2007
-+++ ./game/acesrc/acebot_spawn.c Sat Jul 21 09:34:40 2007
-@@ -126,11 +126,11 @@
-
- //bots and configurations will be loaded level specific
- if (((int)(dmflags->value) & DF_SKINTEAMS) || ctf->value || tca->value || cp->value)
-- strcpy(bot_filename, "botinfo/team.tmp");
-+ strcpy(bot_filename, BOTDIR"/botinfo/team.tmp");
- else if(sv_custombots->value)
-- sprintf(bot_filename, "botinfo/custom%i.tmp", sv_custombots->integer);
-+ sprintf(bot_filename, BOTDIR"/botinfo/custom%i.tmp", sv_custombots->integer);
- else
-- sprintf(bot_filename, "botinfo/%s.tmp", level.mapname);
-+ sprintf(bot_filename, BOTDIR"/botinfo/%s.tmp", level.mapname);
-
- if((pIn = fopen(bot_filename, "rb" )) == NULL)
- return; // bail
-@@ -543,7 +543,7 @@
- //if not a respawn, load bot configuration file(specific to each bot)
- info = Info_ValueForKey (bot->client->pers.userinfo, "name");
-
-- sprintf(bot_configfilename, "botinfo/%s.cfg", info);
-+ sprintf(bot_configfilename, BOTDIR"/botinfo/%s.cfg", info);
- ACECO_ReadConfig(bot_configfilename);
-
- //set config items
diff --git a/games/alienarena/files/patch-qcommon__files.c b/games/alienarena/files/patch-qcommon__files.c
deleted file mode 100644
index 06f0f58e91b2..000000000000
--- a/games/alienarena/files/patch-qcommon__files.c
+++ /dev/null
@@ -1,201 +0,0 @@
---- ./qcommon/files.c.orig Tue Dec 11 18:57:14 2007
-+++ ./qcommon/files.c Tue Dec 11 21:51:48 2007
-@@ -734,6 +734,12 @@
- else
- {
- Cvar_FullSet ("gamedir", dir, CVAR_SERVERINFO|CVAR_NOSET);
-+#ifdef DATADIR
-+ FS_AddGameDirectory (va("%s/%s", DATADIR, dir) );
-+#endif
-+#ifdef LIBDIR
-+ FS_AddGameDirectory (va("%s/%s", LIBDIR, dir) );
-+#endif
- FS_AddGameDirectory (va("%s/%s", fs_basedir->string, dir) );
- #ifdef __unix__
- FS_AddHomeAsGameDirectory(dir);
-@@ -834,7 +840,156 @@
- return list;
- }
-
--//#ifdef __unix__
-+/*
-+ * CompareAttributesPack
-+ *
-+ * Compare file attributes (musthave and canthave) in packed files. If
-+ * "output" is not NULL, "size" is greater than zero and the file matches the
-+ * attributes then a copy of the matching string will be placed there (with
-+ * SFF_SUBDIR it changes).
-+ *
-+ * Returns a boolean value, true if the attributes match the file.
-+ */
-+qboolean
-+ComparePackFiles(const char *findname, const char *name,
-+ unsigned musthave, unsigned canthave, char *output, int size)
-+{
-+ qboolean retval;
-+ char *ptr;
-+ char buffer[MAX_OSPATH];
-+
-+ strncpy(buffer, name, sizeof(buffer)-1);
-+ buffer[sizeof(buffer)-1] = '\0';
-+
-+ if ((canthave & SFF_SUBDIR) && name[strlen(name)-1] == '/')
-+ return (false);
-+
-+ if (musthave & SFF_SUBDIR) {
-+ if ((ptr = strrchr(buffer, '/')) != NULL)
-+ *ptr = '\0';
-+ else
-+ return (false);
-+ }
-+
-+ if ((musthave & SFF_HIDDEN) || (canthave & SFF_HIDDEN)) {
-+ if ((ptr = strrchr(buffer, '/')) == NULL)
-+ ptr = buffer;
-+ if (((musthave & SFF_HIDDEN) && ptr[1] != '.') ||
-+ ((canthave & SFF_HIDDEN) && ptr[1] == '.'))
-+ return (false);
-+ }
-+
-+ if (canthave & SFF_RDONLY)
-+ return (false);
-+
-+ retval = glob_match((char *)findname, buffer);
-+
-+ if (retval && output != NULL) {
-+ strncpy(output, buffer, size-1);
-+ buffer[size-1] = '\0';
-+ }
-+
-+ return (retval);
-+}
-+
-+/*
-+ * FS_ListFiles2
-+ *
-+ * Create a list of files that match a criteria.
-+ *
-+ * Searchs are relative to the game directory and use all the search paths
-+ * including .pak and .pk3 files.
-+ */
-+char **
-+FS_ListFiles2(char *findname, int *numfiles, unsigned musthave, unsigned canthave)
-+{
-+ searchpath_t *search; /* Search path. */
-+ int i, j; /* Loop counters. */
-+ int nfiles; /* Number of files found. */
-+ int tmpnfiles; /* Temp number of files. */
-+ char **tmplist; /* Temporary list of files. */
-+ char **list; /* List of files found. */
-+ char path[MAX_OSPATH]; /* Temporary path. */
-+
-+ nfiles = 0;
-+ list = malloc(sizeof(char *));
-+
-+ for (search = fs_searchpaths; search != NULL; search = search->next) {
-+ if (search->pack != NULL) {
-+ for (i = 0, j = 0; i < search->pack->numfiles; i++)
-+ if (ComparePackFiles(findname,
-+ search->pack->files[i].name,
-+ musthave, canthave, NULL, 0))
-+ j++;
-+ if (j == 0)
-+ continue;
-+ nfiles += j;
-+ list = realloc(list, nfiles * sizeof(char *));
-+ for (i = 0, j = nfiles - j;
-+ i < search->pack->numfiles;
-+ i++)
-+ if (ComparePackFiles(findname,
-+ search->pack->files[i].name,
-+ musthave, canthave, path, sizeof(path)))
-+ list[j++] = strdup(path);
-+ } else if (search->filename != NULL) {
-+ Com_sprintf(path, sizeof(path), "%s/%s",
-+ search->filename, findname);
-+ tmplist = FS_ListFiles(path, &tmpnfiles, musthave,
-+ canthave);
-+ if (tmplist != NULL) {
-+ tmpnfiles--;
-+ nfiles += tmpnfiles;
-+ list = realloc(list, nfiles * sizeof(char *));
-+ for (i = 0, j = nfiles - tmpnfiles;
-+ i < tmpnfiles;
-+ i++, j++)
-+ list[j] = strdup(tmplist[i] +
-+ strlen(search->filename) + 1);
-+ FS_FreeFileList(tmplist, tmpnfiles);
-+ }
-+ }
-+ }
-+
-+ /* Delete duplicates. */
-+ tmpnfiles = 0;
-+ for (i = 0; i < nfiles; i++) {
-+ if (list[i] == NULL)
-+ continue;
-+ for (j = i + 1; j < nfiles; j++)
-+ if (list[j] != NULL &&
-+ strcmp(list[i], list[j]) == 0) {
-+ free(list[j]);
-+ list[j] = NULL;
-+ tmpnfiles++;
-+ }
-+ }
-+
-+ if (tmpnfiles > 0) {
-+ nfiles -= tmpnfiles;
-+ tmplist = malloc(nfiles * sizeof(char *));
-+ for (i = 0, j = 0; i < nfiles + tmpnfiles; i++)
-+ if (list[i] != NULL)
-+ tmplist[j++] = list[i];
-+ free(list);
-+ list = tmplist;
-+ }
-+
-+ /* Add a guard. */
-+ if (nfiles > 0) {
-+ nfiles++;
-+ list = realloc(list, nfiles * sizeof(char *));
-+ list[nfiles - 1] = NULL;
-+ } else {
-+ free(list);
-+ list = NULL;
-+ }
-+
-+ *numfiles = nfiles;
-+
-+ return (list);
-+}
-+
- void FS_FreeFileList (char **list, int n) // jit
- {
- int i;
-@@ -850,7 +1005,6 @@
-
- free(list);
- }
--//#endif
-
- /*
- ** FS_Dir_f
-@@ -976,6 +1130,19 @@
- Cmd_AddCommand ("path", FS_Path_f);
- Cmd_AddCommand ("link", FS_Link_f);
- Cmd_AddCommand ("dir", FS_Dir_f );
-+
-+ //
-+ // DATADIR / LIBDIR support.
-+ // Both directories are used to load data and libraries from, allowing
-+ // different OSes to have them where they want, according to their
-+ // conventions.
-+ //
-+#ifdef DATADIR
-+ FS_AddGameDirectory (va("%s/"BASEDIRNAME, DATADIR));
-+#endif
-+#ifdef LIBDIR
-+ FS_AddGameDirectory (va("%s/"BASEDIRNAME, LIBDIR));
-+#endif
-
- //
- // basedir <path>
diff --git a/games/alienarena/files/patch-ref_gl__qgl.h b/games/alienarena/files/patch-ref_gl__qgl.h
deleted file mode 100644
index 8469c641b12f..000000000000
--- a/games/alienarena/files/patch-ref_gl__qgl.h
+++ /dev/null
@@ -1,18 +0,0 @@
---- ref_gl/qgl.h.orig Sat Jul 21 11:52:11 2007
-+++ ref_gl/qgl.h Sat Jul 21 11:54:16 2007
-@@ -393,6 +393,7 @@
- extern void ( APIENTRY * qglClientActiveTextureARB)( GLenum );
-
- extern void ( APIENTRY * qglMultiTexCoord3fvARB)( GLenum, GLfloat * );
-+#if 0
- // jitwater - fragment programs (pixel shaders)
- typedef void (APIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
- typedef void (APIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
-@@ -412,6 +413,7 @@
- typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
- typedef void (APIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
- typedef void (APIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string);
-+#endif
-
- #ifdef _WIN32
-
diff --git a/games/alienarena/files/patch-ref_gl__r_script.c b/games/alienarena/files/patch-ref_gl__r_script.c
deleted file mode 100644
index 67c682a277b4..000000000000
--- a/games/alienarena/files/patch-ref_gl__r_script.c
+++ /dev/null
@@ -1,83 +0,0 @@
---- ref_gl/r_script.c.orig Wed Dec 12 01:22:30 2007
-+++ ref_gl/r_script.c Wed Dec 12 01:21:49 2007
-@@ -1020,35 +1020,16 @@
- free(buf);
- }
-
--extern char **FS_ListFiles( char *, int *, unsigned, unsigned );
-+extern char **FS_ListFiles2( char *, int *, unsigned, unsigned );
- extern void FS_FreeFileList (char **list, int n);
- void RS_ScanPathForScripts (void)
- {
- char script[MAX_OSPATH];
-- char dirstring[1024], *c;
-+ char *c;
- char **script_list;
- int script_count, i;
-- char *path = NULL;
--
--
-- Com_sprintf(dirstring, sizeof(dirstring), "%s/scripts/*.rscript", FS_Gamedir());
-- script_list = FS_ListFiles(dirstring, &script_count, 0, SFF_SUBDIR | SFF_HIDDEN | SFF_SYSTEM);
--
-- if(script_list) {
-- for (i = 0; i < script_count-1; i++)
-- {
-- c = COM_SkipPath(script_list[i]);
-- Com_sprintf(script, MAX_OSPATH, "scripts/%s", c);
-- RS_LoadScript(script);
-- }
--
-- FS_FreeFileList(script_list, script_count);
-- }
--
-- script_count = 0;
-
-- Com_sprintf(dirstring, sizeof(dirstring), "%s/scripts/*.rscript", BASEDIRNAME);
-- script_list = FS_ListFiles(dirstring, &script_count, 0, SFF_SUBDIR | SFF_HIDDEN | SFF_SYSTEM);
-+ script_list = FS_ListFiles2("scripts/*.rscript", &script_count, 0, SFF_SUBDIR | SFF_HIDDEN | SFF_SYSTEM);
-
- if(script_list) {
- for (i = 0; i < script_count-1; i++)
-@@ -1057,32 +1038,12 @@
- Com_sprintf(script, MAX_OSPATH, "scripts/%s", c);
- RS_LoadScript(script);
- }
--
- FS_FreeFileList(script_list, script_count);
- }
-
- script_count = 0;
- if(gl_normalmaps->value) { //search for normal map scripts ONLY if we are using normal mapping
--
-- Com_sprintf(dirstring, sizeof(dirstring), "%s/scripts/normals/*.rscript", FS_Gamedir());
-- script_list = FS_ListFiles(dirstring, &script_count, 0, SFF_SUBDIR | SFF_HIDDEN | SFF_SYSTEM);
--
-- if(script_list) {
-- for (i = 0; i < script_count-1; i++)
-- {
-- c = COM_SkipPath(script_list[i]);
-- Com_sprintf(script, MAX_OSPATH, "scripts/normals/%s", c);
-- RS_LoadScript(script);
-- }
--
-- FS_FreeFileList(script_list, script_count);
-- }
--
-- script_count = 0;
--
-- Com_sprintf(dirstring, sizeof(dirstring), "%s/scripts/normals/*.rscript", BASEDIRNAME);
-- script_list = FS_ListFiles(dirstring, &script_count, 0, SFF_SUBDIR | SFF_HIDDEN | SFF_SYSTEM);
--
-+ script_list = FS_ListFiles("scripts/normals/*.rscript", &script_count, 0, SFF_SUBDIR | SFF_HIDDEN | SFF_SYSTEM);
- if(script_list) {
- for (i = 0; i < script_count-1; i++)
- {
-@@ -1090,7 +1051,6 @@
- Com_sprintf(script, MAX_OSPATH, "scripts/normals/%s", c);
- RS_LoadScript(script);
- }
--
- FS_FreeFileList(script_list, script_count);
- }
- }
diff --git a/games/alienarena/pkg-descr b/games/alienarena/pkg-descr
index 0ca0e5c3a1dd..e47afdcfe300 100644
--- a/games/alienarena/pkg-descr
+++ b/games/alienarena/pkg-descr
@@ -1,15 +1,11 @@
-AA2K7 is the latest version of a freeware online deathmatch game that was
-first introduced to the public in October, 2004. Since that initial release,
-nearly every aspect of the game has been revamped, in fact, much of the
-content and code from the November 2005 release of Alien Arena 2006 has been
-redone as well. It's like an entirely new game, and it may shock people just
-how much it has improved in less than a year's time. With 35 levels, five
-modes of play, loads of mutators, built-in bots, 11 player characters, 8
-weapons(with alt-fire modes), the game has an endless supply of replayability.
-With so many new features, AA2K7 is nearly an entirely new game when held in
-comparison to it's predecessor. With the trials and tribulations of software
-development, endless hours of playing, gathering feedback, COR Entertainment
-has been able to not only fine tune and perfect it's flagship game, but add
-completely new dimensions to it.
+Alien Arena 2008 is a free standalone deathmatch game based on source code
+released by id Software. Begun by COR Entertainment in 2004, the game combines
+a 1950s-era sci-fi atmosphere with gameplay similar to the Quake, Doom, and
+Unreal Tournament series. Alien Arena focuses mainly on online multiplayer
+action, although it does contain single player campaigns against bots.
+
+Alien Arena has been released for Microsoft Windows, Linux and FreeBSD. Alien
+Arena has been free-to-play since its inception, and there are currently no
+plans to change it to pay-to-play.
WWW: http://red.planetarena.org/
diff --git a/games/alienarena/pkg-message b/games/alienarena/pkg-message
index e53dc65ea779..f2567ac85b13 100644
--- a/games/alienarena/pkg-message
+++ b/games/alienarena/pkg-message
@@ -2,7 +2,7 @@
Alien Arena (native version) has been installed.
-The OSS (native FreeBSD sound) version of Alien Arena 2006 (named
+The OSS (native FreeBSD sound) version of Alien Arena 2008 (named
"alienarena") uses by default a slow sound speed, which causes a notable
delay. To solve this you have to run it once like this:
@@ -12,4 +12,7 @@ Where <speed> could be 22050 and 44100 for example (the default that has the
delay is 11025, and the SDL version uses 22050). The value of "sndspeed" will
be saved in the configuration file for future runs.
+NOTE: in FreeBSD 7 or newer please use the SDL version, as the other one has
+problems with sound.
+
==============================================================================