mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-01 05:45:45 +00:00
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.
This commit is contained in:
parent
9bd9be61d8
commit
e11a39a39d
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=209725
@ -6,19 +6,19 @@
|
||||
#
|
||||
|
||||
PORTNAME= alienarena
|
||||
PORTVERSION= 2007.610
|
||||
PORTVERSION= 2008
|
||||
CATEGORIES= games
|
||||
MASTER_SITES= ftp://ftp.simtel.com/pub/gamezone/31/5/17/
|
||||
MASTER_SITES= http://offload1.icculus.org/alienarena/Files/
|
||||
PKGNAMESUFFIX= -data
|
||||
DISTNAME= ${PORTNAME}2007-20071011-linux
|
||||
DISTNAME= ${PORTNAME}2008-linux20080227
|
||||
|
||||
MAINTAINER= alepulver@FreeBSD.org
|
||||
COMMENT= Alien Arena 2006 (data)
|
||||
COMMENT= Alien Arena 2008 (data)
|
||||
|
||||
USE_ZIP= yes
|
||||
NO_BUILD= yes
|
||||
NO_PACKAGE= Package will be 185MB, set FORCE_PACKAGE if you want it
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}2007
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}2008
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
|
@ -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
|
||||
|
@ -1,16 +1,12 @@
|
||||
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.
|
||||
|
||||
Note: this port only contains the data needed to run Alien Arena, shared by
|
||||
the Linux and native ports of the game engine. To play Alien Arena you have to
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
@ -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
|
||||
|
@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd %%LIBDIR%% || exit 1
|
||||
|
||||
exec ./crded +set game arena "$@"
|
@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd %%LIBDIR%% || exit 1
|
||||
|
||||
exec ./crx.sdl +set game arena "$@"
|
@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd %%LIBDIR%% || exit 1
|
||||
|
||||
exec ./crx +set game arena "$@"
|
@ -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)
|
@ -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;
|
@ -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
|
||||
|
@ -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");
|
||||
|
@ -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
|
@ -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>
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
@ -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/
|
||||
|
@ -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.
|
||||
|
||||
==============================================================================
|
||||
|
Loading…
Reference in New Issue
Block a user