From 5af1ebb4c4dd42f9abef861c2fbf99cfe4ac850a Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Sat, 6 Jan 2024 08:09:23 +0100 Subject: [PATCH] rebuilt with debug package and x86_64 target [release 0.8.8-2mamba;Mon May 10 2021] --- README.md | 3 + menudef.h | 308 ++++++++++++++++++++++++++++++++++++++++++++ oachanges.diff | 196 ++++++++++++++++++++++++++++ openarena-runner.sh | 23 ++++ openarena.desktop | 10 ++ openarena.ico | Bin 0 -> 92854 bytes openarena.spec | 127 ++++++++++++++++++ 7 files changed, 667 insertions(+) create mode 100644 menudef.h create mode 100644 oachanges.diff create mode 100644 openarena-runner.sh create mode 100644 openarena.desktop create mode 100644 openarena.ico create mode 100644 openarena.spec diff --git a/README.md b/README.md index c3afc20..8e66a0e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ # openarena +An open-source content package for Quake III Arena licensed under the GPL, effectively creating a free stand-alone game. +Warning: this game was rated appropriate for an adult audience. + diff --git a/menudef.h b/menudef.h new file mode 100644 index 0000000..7bb7b0a --- /dev/null +++ b/menudef.h @@ -0,0 +1,308 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. + +This file is part of Quake III Arena source code. + +Quake III Arena source code is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +Quake III Arena source code is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Foobar; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +=========================================================================== +*/ + +#define ITEM_TYPE_TEXT 0 // simple text +#define ITEM_TYPE_BUTTON 1 // button, basically text with a border +#define ITEM_TYPE_RADIOBUTTON 2 // toggle button, may be grouped +#define ITEM_TYPE_CHECKBOX 3 // check box +#define ITEM_TYPE_EDITFIELD 4 // editable text, associated with a cvar +#define ITEM_TYPE_COMBO 5 // drop down list +#define ITEM_TYPE_LISTBOX 6 // scrollable list +#define ITEM_TYPE_MODEL 7 // model +#define ITEM_TYPE_OWNERDRAW 8 // owner draw, name specs what it is +#define ITEM_TYPE_NUMERICFIELD 9 // editable text, associated with a cvar +#define ITEM_TYPE_SLIDER 10 // mouse speed, volume, etc. +#define ITEM_TYPE_YESNO 11 // yes no cvar setting +#define ITEM_TYPE_MULTI 12 // multiple list setting, enumerated +#define ITEM_TYPE_BIND 13 // multiple list setting, enumerated + +#define ITEM_ALIGN_LEFT 0 // left alignment +#define ITEM_ALIGN_CENTER 1 // center alignment +#define ITEM_ALIGN_RIGHT 2 // right alignment + +#define ITEM_TEXTSTYLE_NORMAL 0 // normal text +#define ITEM_TEXTSTYLE_BLINK 1 // fast blinking +#define ITEM_TEXTSTYLE_PULSE 2 // slow pulsing +#define ITEM_TEXTSTYLE_SHADOWED 3 // drop shadow ( need a color for this ) +#define ITEM_TEXTSTYLE_OUTLINED 4 // drop shadow ( need a color for this ) +#define ITEM_TEXTSTYLE_OUTLINESHADOWED 5 // drop shadow ( need a color for this ) +#define ITEM_TEXTSTYLE_SHADOWEDMORE 6 // drop shadow ( need a color for this ) + +#define WINDOW_BORDER_NONE 0 // no border +#define WINDOW_BORDER_FULL 1 // full border based on border color ( single pixel ) +#define WINDOW_BORDER_HORZ 2 // horizontal borders only +#define WINDOW_BORDER_VERT 3 // vertical borders only +#define WINDOW_BORDER_KCGRADIENT 4 // horizontal border using the gradient bars + +#define WINDOW_STYLE_EMPTY 0 // no background +#define WINDOW_STYLE_FILLED 1 // filled with background color +#define WINDOW_STYLE_GRADIENT 2 // gradient bar based on background color +#define WINDOW_STYLE_SHADER 3 // gradient bar based on background color +#define WINDOW_STYLE_TEAMCOLOR 4 // team color +#define WINDOW_STYLE_CINEMATIC 5 // cinematic + +#define MENU_TRUE 1 // uh.. true +#define MENU_FALSE 0 // and false + +#define HUD_VERTICAL 0x00 +#define HUD_HORIZONTAL 0x01 + +// list box element types +#define LISTBOX_TEXT 0x00 +#define LISTBOX_IMAGE 0x01 + +// list feeders +#define FEEDER_HEADS 0x00 // model heads +#define FEEDER_MAPS 0x01 // text maps based on game type +#define FEEDER_SERVERS 0x02 // servers +#define FEEDER_CLANS 0x03 // clan names +#define FEEDER_ALLMAPS 0x04 // all maps available, in graphic format +#define FEEDER_REDTEAM_LIST 0x05 // red team members +#define FEEDER_BLUETEAM_LIST 0x06 // blue team members +#define FEEDER_PLAYER_LIST 0x07 // players +#define FEEDER_TEAM_LIST 0x08 // team members for team voting +#define FEEDER_MODS 0x09 // team members for team voting +#define FEEDER_DEMOS 0x0a // team members for team voting +#define FEEDER_SCOREBOARD 0x0b // team members for team voting +#define FEEDER_Q3HEADS 0x0c // model heads +#define FEEDER_SERVERSTATUS 0x0d // server status +#define FEEDER_FINDPLAYER 0x0e // find player +#define FEEDER_CINEMATICS 0x0f // cinematics + +// display flags +#define CG_SHOW_BLUE_TEAM_HAS_REDFLAG 0x00000001 +#define CG_SHOW_RED_TEAM_HAS_BLUEFLAG 0x00000002 +#define CG_SHOW_ANYTEAMGAME 0x00000004 +#define CG_SHOW_HARVESTER 0x00000008 +#define CG_SHOW_ONEFLAG 0x00000010 +#define CG_SHOW_CTF 0x00000020 +#define CG_SHOW_OBELISK 0x00000040 +#define CG_SHOW_HEALTHCRITICAL 0x00000080 +#define CG_SHOW_SINGLEPLAYER 0x00000100 +#define CG_SHOW_TOURNAMENT 0x00000200 +#define CG_SHOW_DURINGINCOMINGVOICE 0x00000400 +#define CG_SHOW_IF_PLAYER_HAS_FLAG 0x00000800 +#define CG_SHOW_LANPLAYONLY 0x00001000 +#define CG_SHOW_MINED 0x00002000 +#define CG_SHOW_HEALTHOK 0x00004000 +#define CG_SHOW_TEAMINFO 0x00008000 +#define CG_SHOW_NOTEAMINFO 0x00010000 +#define CG_SHOW_OTHERTEAMHASFLAG 0x00020000 +#define CG_SHOW_YOURTEAMHASENEMYFLAG 0x00040000 +#define CG_SHOW_ANYNONTEAMGAME 0x00080000 +#define CG_SHOW_2DONLY 0x10000000 + + +#define UI_SHOW_LEADER 0x00000001 +#define UI_SHOW_NOTLEADER 0x00000002 +#define UI_SHOW_FAVORITESERVERS 0x00000004 +#define UI_SHOW_ANYNONTEAMGAME 0x00000008 +#define UI_SHOW_ANYTEAMGAME 0x00000010 +#define UI_SHOW_NEWHIGHSCORE 0x00000020 +#define UI_SHOW_DEMOAVAILABLE 0x00000040 +#define UI_SHOW_NEWBESTTIME 0x00000080 +#define UI_SHOW_FFA 0x00000100 +#define UI_SHOW_NOTFFA 0x00000200 +#define UI_SHOW_NETANYNONTEAMGAME 0x00000400 +#define UI_SHOW_NETANYTEAMGAME 0x00000800 +#define UI_SHOW_NOTFAVORITESERVERS 0x00001000 + + + + +// owner draw types +// ideally these should be done outside of this file but +// this makes it much easier for the macro expansion to +// convert them for the designers ( from the .menu files ) +#define CG_OWNERDRAW_BASE 1 +#define CG_PLAYER_ARMOR_ICON 1 +#define CG_PLAYER_ARMOR_VALUE 2 +#define CG_PLAYER_HEAD 3 +#define CG_PLAYER_HEALTH 4 +#define CG_PLAYER_AMMO_ICON 5 +#define CG_PLAYER_AMMO_VALUE 6 +#define CG_SELECTEDPLAYER_HEAD 7 +#define CG_SELECTEDPLAYER_NAME 8 +#define CG_SELECTEDPLAYER_LOCATION 9 +#define CG_SELECTEDPLAYER_STATUS 10 +#define CG_SELECTEDPLAYER_WEAPON 11 +#define CG_SELECTEDPLAYER_POWERUP 12 + +#define CG_FLAGCARRIER_HEAD 13 +#define CG_FLAGCARRIER_NAME 14 +#define CG_FLAGCARRIER_LOCATION 15 +#define CG_FLAGCARRIER_STATUS 16 +#define CG_FLAGCARRIER_WEAPON 17 +#define CG_FLAGCARRIER_POWERUP 18 + +#define CG_PLAYER_ITEM 19 +#define CG_PLAYER_SCORE 20 + +#define CG_BLUE_FLAGHEAD 21 +#define CG_BLUE_FLAGSTATUS 22 +#define CG_BLUE_FLAGNAME 23 +#define CG_RED_FLAGHEAD 24 +#define CG_RED_FLAGSTATUS 25 +#define CG_RED_FLAGNAME 26 + +#define CG_BLUE_SCORE 27 +#define CG_RED_SCORE 28 +#define CG_RED_NAME 29 +#define CG_BLUE_NAME 30 +#define CG_HARVESTER_SKULLS 31 // only shows in harvester +#define CG_ONEFLAG_STATUS 32 // only shows in one flag +#define CG_PLAYER_LOCATION 33 +#define CG_TEAM_COLOR 34 +#define CG_CTF_POWERUP 35 + +#define CG_AREA_POWERUP 36 +#define CG_AREA_LAGOMETER 37 // painted with old system +#define CG_PLAYER_HASFLAG 38 +#define CG_GAME_TYPE 39 // not done + +#define CG_SELECTEDPLAYER_ARMOR 40 +#define CG_SELECTEDPLAYER_HEALTH 41 +#define CG_PLAYER_STATUS 42 +#define CG_FRAGGED_MSG 43 // painted with old system +#define CG_PROXMINED_MSG 44 // painted with old system +#define CG_AREA_FPSINFO 45 // painted with old system +#define CG_AREA_SYSTEMCHAT 46 // painted with old system +#define CG_AREA_TEAMCHAT 47 // painted with old system +#define CG_AREA_CHAT 48 // painted with old system +#define CG_GAME_STATUS 49 +#define CG_KILLER 50 +#define CG_PLAYER_ARMOR_ICON2D 51 +#define CG_PLAYER_AMMO_ICON2D 52 +#define CG_ACCURACY 53 +#define CG_ASSISTS 54 +#define CG_DEFEND 55 +#define CG_EXCELLENT 56 +#define CG_IMPRESSIVE 57 +#define CG_PERFECT 58 +#define CG_GAUNTLET 59 +#define CG_SPECTATORS 60 +#define CG_TEAMINFO 61 +#define CG_VOICE_HEAD 62 +#define CG_VOICE_NAME 63 +#define CG_PLAYER_HASFLAG2D 64 +#define CG_HARVESTER_SKULLS2D 65 // only shows in harvester +#define CG_CAPFRAGLIMIT 66 +#define CG_1STPLACE 67 +#define CG_2NDPLACE 68 +#define CG_CAPTURES 69 + + + + +#define UI_OWNERDRAW_BASE 200 +#define UI_HANDICAP 200 +#define UI_EFFECTS 201 +#define UI_PLAYERMODEL 202 +#define UI_CLANNAME 203 +#define UI_CLANLOGO 204 +#define UI_GAMETYPE 205 +#define UI_MAPPREVIEW 206 +#define UI_SKILL 207 +#define UI_BLUETEAMNAME 208 +#define UI_REDTEAMNAME 209 +#define UI_BLUETEAM1 210 +#define UI_BLUETEAM2 211 +#define UI_BLUETEAM3 212 +#define UI_BLUETEAM4 213 +#define UI_BLUETEAM5 214 +#define UI_REDTEAM1 215 +#define UI_REDTEAM2 216 +#define UI_REDTEAM3 217 +#define UI_REDTEAM4 218 +#define UI_REDTEAM5 219 +#define UI_NETSOURCE 220 +#define UI_NETMAPPREVIEW 221 +#define UI_NETFILTER 222 +#define UI_TIER 223 +#define UI_OPPONENTMODEL 224 +#define UI_TIERMAP1 225 +#define UI_TIERMAP2 226 +#define UI_TIERMAP3 227 +#define UI_PLAYERLOGO 228 +#define UI_OPPONENTLOGO 229 +#define UI_PLAYERLOGO_METAL 230 +#define UI_OPPONENTLOGO_METAL 231 +#define UI_PLAYERLOGO_NAME 232 +#define UI_OPPONENTLOGO_NAME 233 +#define UI_TIER_MAPNAME 234 +#define UI_TIER_GAMETYPE 235 +#define UI_ALLMAPS_SELECTION 236 +#define UI_OPPONENT_NAME 237 +#define UI_VOTE_KICK 238 +#define UI_BOTNAME 239 +#define UI_BOTSKILL 240 +#define UI_REDBLUE 241 +#define UI_CROSSHAIR 242 +#define UI_SELECTEDPLAYER 243 +#define UI_MAPCINEMATIC 244 +#define UI_NETGAMETYPE 245 +#define UI_NETMAPCINEMATIC 246 +#define UI_SERVERREFRESHDATE 247 +#define UI_SERVERMOTD 248 +#define UI_GLINFO 249 +#define UI_KEYBINDSTATUS 250 +#define UI_CLANCINEMATIC 251 +#define UI_MAP_TIMETOBEAT 252 +#define UI_JOINGAMETYPE 253 +#define UI_PREVIEWCINEMATIC 254 +#define UI_STARTMAPCINEMATIC 255 +#define UI_MAPS_SELECTION 256 + +#define VOICECHAT_GETFLAG "getflag" // command someone to get the flag +#define VOICECHAT_OFFENSE "offense" // command someone to go on offense +#define VOICECHAT_DEFEND "defend" // command someone to go on defense +#define VOICECHAT_DEFENDFLAG "defendflag" // command someone to defend the flag +#define VOICECHAT_PATROL "patrol" // command someone to go on patrol (roam) +#define VOICECHAT_CAMP "camp" // command someone to camp (we don't have sounds for this one) +#define VOICECHAT_FOLLOWME "followme" // command someone to follow you +#define VOICECHAT_RETURNFLAG "returnflag" // command someone to return our flag +#define VOICECHAT_FOLLOWFLAGCARRIER "followflagcarrier" // command someone to follow the flag carrier +#define VOICECHAT_YES "yes" // yes, affirmative, etc. +#define VOICECHAT_NO "no" // no, negative, etc. +#define VOICECHAT_ONGETFLAG "ongetflag" // I'm getting the flag +#define VOICECHAT_ONOFFENSE "onoffense" // I'm on offense +#define VOICECHAT_ONDEFENSE "ondefense" // I'm on defense +#define VOICECHAT_ONPATROL "onpatrol" // I'm on patrol (roaming) +#define VOICECHAT_ONCAMPING "oncamp" // I'm camping somewhere +#define VOICECHAT_ONFOLLOW "onfollow" // I'm following +#define VOICECHAT_ONFOLLOWCARRIER "onfollowcarrier" // I'm following the flag carrier +#define VOICECHAT_ONRETURNFLAG "onreturnflag" // I'm returning our flag +#define VOICECHAT_INPOSITION "inposition" // I'm in position +#define VOICECHAT_IHAVEFLAG "ihaveflag" // I have the flag +#define VOICECHAT_BASEATTACK "baseattack" // the base is under attack +#define VOICECHAT_ENEMYHASFLAG "enemyhasflag" // the enemy has our flag (CTF) +#define VOICECHAT_STARTLEADER "startleader" // I'm the leader +#define VOICECHAT_STOPLEADER "stopleader" // I resign leadership +#define VOICECHAT_TRASH "trash" // lots of trash talk +#define VOICECHAT_WHOISLEADER "whoisleader" // who is the team leader +#define VOICECHAT_WANTONDEFENSE "wantondefense" // I want to be on defense +#define VOICECHAT_WANTONOFFENSE "wantonoffense" // I want to be on offense +#define VOICECHAT_KILLINSULT "kill_insult" // I just killed you +#define VOICECHAT_TAUNT "taunt" // I want to taunt you +#define VOICECHAT_DEATHINSULT "death_insult" // you just killed me +#define VOICECHAT_KILLGAUNTLET "kill_gauntlet" // I just killed you with the gauntlet +#define VOICECHAT_PRAISE "praise" // you did something good diff --git a/oachanges.diff b/oachanges.diff new file mode 100644 index 0000000..42b8539 --- /dev/null +++ b/oachanges.diff @@ -0,0 +1,196 @@ +Index: q3_ui/ui_mods.c +=================================================================== +--- q3_ui/ui_mods.c (revision 1107) ++++ q3_ui/ui_mods.c (working copy) +@@ -161,7 +161,7 @@ + + // always start off with baseq3 + s_mods.list.numitems = 1; +- s_mods.list.itemnames[0] = s_mods.descriptionList[0] = "Quake III Arena"; ++ s_mods.list.itemnames[0] = s_mods.descriptionList[0] = "OpenArena"; + s_mods.fs_gameList[0] = ""; + + numdirs = trap_FS_GetFileList( "$modlist", "", dirlist, sizeof(dirlist) ); +Index: server/sv_ccmds.c +=================================================================== +--- server/sv_ccmds.c (revision 1107) ++++ server/sv_ccmds.c (working copy) +@@ -430,6 +430,12 @@ + return; + } + ++ if(strlen(AUTHORIZE_SERVER_NAME) < 1) ++ { ++ Com_Printf("Ban function disabled due to lack of authorizing server.\n"); ++ return; ++ } ++ + // look up the authorize server's IP + if ( !svs.authorizeAddress.ip[0] && svs.authorizeAddress.type != NA_BAD ) { + Com_Printf( "Resolving %s\n", AUTHORIZE_SERVER_NAME ); +@@ -484,6 +490,12 @@ + return; + } + ++ if(strlen(AUTHORIZE_SERVER_NAME) < 1) ++ { ++ Com_Printf("Ban function disabled due to lack of authorizing server.\n"); ++ return; ++ } ++ + // look up the authorize server's IP + if ( !svs.authorizeAddress.ip[0] && svs.authorizeAddress.type != NA_BAD ) { + Com_Printf( "Resolving %s\n", AUTHORIZE_SERVER_NAME ); +Index: server/sv_client.c +=================================================================== +--- server/sv_client.c (revision 1107) ++++ server/sv_client.c (working copy) +@@ -88,6 +88,15 @@ + return; + } + ++ // if there's no authorize server defined, just let them in ++ if(strlen(AUTHORIZE_SERVER_NAME) < 1) ++ { ++ Com_Printf("Not authorizing client due to lack of auth server\n"); ++ challenge->pingTime = svs.time; ++ NET_OutOfBandPrint( NS_SERVER, from, "challengeResponse %i", challenge->challenge ); ++ return; ++ } ++ + // look up the authorize server's IP + if ( !svs.authorizeAddress.ip[0] && svs.authorizeAddress.type != NA_BAD ) { + Com_Printf( "Resolving %s\n", AUTHORIZE_SERVER_NAME ); +Index: qcommon/q_shared.h +=================================================================== +--- qcommon/q_shared.h (revision 1107) ++++ qcommon/q_shared.h (working copy) +@@ -26,17 +26,17 @@ + // q_shared.h -- included first by ALL program modules. + // A user mod should never modify this file + +-#define Q3_VERSION "ioQ3 1.33" ++#define Q3_VERSION "ioQ3 1.33+oa" + #ifndef SVN_VERSION + #define SVN_VERSION Q3_VERSION + #endif +-#define CLIENT_WINDOW_TITLE "ioquake3" +-#define CLIENT_WINDOW_ICON "ioq3" +-#define CONSOLE_WINDOW_TITLE "ioquake3 console" +-#define CONSOLE_WINDOW_ICON "ioq3 console" ++#define CLIENT_WINDOW_TITLE "OpenArena" ++#define CLIENT_WINDOW_ICON "OpenArena" ++#define CONSOLE_WINDOW_TITLE "OpenArena console" ++#define CONSOLE_WINDOW_ICON "OpenArena console" + // 1.32 released 7-10-2002 + +-#define BASEGAME "baseq3" ++#define BASEGAME "baseoa" + + #define MAX_TEAMNAME 32 +Index: client/cl_main.c +=================================================================== +--- client/cl_main.c (revision 1107) ++++ client/cl_main.c (working copy) +@@ -3582,7 +3582,7 @@ + */ + qboolean CL_CDKeyValidate( const char *key, const char *checksum ) { +- char ch; ++/* char ch; + byte sum; + char chs[3]; + int i, len; +@@ -3636,8 +3636,8 @@ + if (!checksum) { + return qtrue; + } +- +- return qfalse; ++*/ ++ return qtrue; + } +Index: qcommon/files.c +=================================================================== +--- qcommon/files.c (revision 1107) ++++ qcommon/files.c (working copy) +@@ -2900,6 +2900,7 @@ + */ + static void FS_CheckPak0( void ) + { ++/* + searchpath_t *path; + qboolean founddemo = qfalse; + unsigned foundPak = 0; +@@ -2972,6 +2973,7 @@ + || !Q_stricmp( fs_gamedirvar->string, "missionpack" )) + Com_Error(ERR_FATAL, "\n*** you need to install Quake III Arena in order to play ***"); + } ++*/ + } + + /* +@@ -3383,7 +3385,7 @@ + // try to start up normally + FS_Startup( BASEGAME ); + +- FS_CheckPak0( ); ++ // FS_CheckPak0( ); + + // if we can't find default.cfg, assume that the paths are + // busted and error out now, rather than getting an unreadable +Index: qcommon/qcommon.h +=================================================================== +--- qcommon/qcommon.h (revision 1107) ++++ qcommon/qcommon.h (working copy) +@@ -236,10 +236,10 @@ + #define UPDATE_SERVER_NAME "update.quake3arena.com" + // override on command line, config files etc. + #ifndef MASTER_SERVER_NAME +-#define MASTER_SERVER_NAME "master.quake3arena.com" ++#define MASTER_SERVER_NAME "dpmaster.deathmask.net" + #endif + #ifndef AUTHORIZE_SERVER_NAME +-#define AUTHORIZE_SERVER_NAME "authorize.quake3arena.com" ++#define AUTHORIZE_SERVER_NAME "" + #endif + + #define PORT_MASTER 27950 +Index: ui/ui_main.c +=================================================================== +--- ui/ui_main.c (revision 1107) ++++ ui/ui_main.c (working copy) +@@ -64,7 +64,7 @@ + + static const serverFilter_t serverFilters[] = { + {"All", "" }, +- {"Quake 3 Arena", "" }, ++ {"OpenArena", "" }, + {"Team Arena", "missionpack" }, + {"Rocket Arena", "arena" }, + {"Alliance", "alliance20" }, +Index: client/snd_dma.c +=================================================================== +--- client/snd_dma.c (revision 1107) ++++ client/snd_dma.c (working copy) +@@ -364,7 +364,7 @@ + Com_Memset( s_knownSfx, 0, sizeof( s_knownSfx ) ); + Com_Memset(sfxHash, 0, sizeof(sfx_t *)*LOOP_HASH); + +- S_Base_RegisterSound("sound/feedback/hit.wav", qfalse); // changed to a sound in baseq3 ++ S_Base_RegisterSound("sound/misc/silence.wav", qfalse); // changed to a sound in baseq3 + } + } + +Index: client/snd_openal.c +=================================================================== +--- client/snd_openal.c (revision 1107) ++++ client/snd_openal.c (working copy) +@@ -384,7 +384,7 @@ + numSfx = 0; + + // Load the default sound, and lock it +- default_sfx = S_AL_BufferFind("sound/feedback/hit.wav"); ++ default_sfx = S_AL_BufferFind("sound/misc/silence.wav"); + S_AL_BufferUse(default_sfx); + knownSfx[default_sfx].isLocked = qtrue; + diff --git a/openarena-runner.sh b/openarena-runner.sh new file mode 100644 index 0000000..4ceacb0 --- /dev/null +++ b/openarena-runner.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +arch=$(uname -m) +if [ "$arch" == 'x86_64' ]; then + arch="x86_64" +else + arch="i386" +fi + +file=`basename "$0"` +if [ "$file" == 'openarena' ]; then + file='openarena' +else + file='oa_ded' +fi +cd '/usr/share/openarena' + +# Comment by syrjala +# openarena-runner.sh should pass on the command line options. I just banged my +# head against the wall for a while trying to figure out why my command line +# options didn't do anything. +# So, here it is +"./${file}.${arch}" $@ diff --git a/openarena.desktop b/openarena.desktop new file mode 100644 index 0000000..cb6ff15 --- /dev/null +++ b/openarena.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +Categories=Application;Game;ArcadeGame +Name=openarena +GenericName=First-person shooter game +GenericName[it]=Gioco sparatutto in prima persona +Exec=openarena +Terminal=0 +Type=Application +Icon=/usr/share/pixmaps/openarena.ico diff --git a/openarena.ico b/openarena.ico new file mode 100644 index 0000000000000000000000000000000000000000..ad4d2f146e71490df096a47c718b2805d1ffbde5 GIT binary patch literal 92854 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 literal 0 HcmV?d00001 diff --git a/openarena.spec b/openarena.spec new file mode 100644 index 0000000..cb0d2f9 --- /dev/null +++ b/openarena.spec @@ -0,0 +1,127 @@ +%define pkgver %(echo %version | tr -d . ) +Name: openarena +Version: 0.8.8 +Release: 2mamba +Summary: An open-source content package for Quake III Arena licensed under the GPL +Group: Graphical Desktop/Applications/Games +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://openarena.ws +Source: http://download.tuxfamily.net/openarena/rel/%{pkgver}/openarena-%{version}.zip +Source1: http://openarena.ws/svn/source/ioq3-src-oa.tar.bz2 +Source2: http://download.tuxfamily.org/openarena/rel/077/oa077-patch.zip +Source3: http://www.openarena.ws/svn/source/ui/menudef.h +Source4: openarena.ico +Source5: openarena.desktop +Source6: openarena-runner.sh +Patch0: oachanges.diff +License: GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libSDL-devel +BuildRequires: libglvnd-devel +BuildRequires: libogg-devel +BuildRequires: libvorbis-devel +## AUTOBUILDREQ-END +ExclusiveArch: x86_64 %{ix86} + +%description +An open-source content package for Quake III Arena licensed under the GPL, effectively creating a free stand-alone game. +Warning: this game was rated appropriate for an adult audience. + +%debug_package + +%prep +%setup -q +#-a1 +rm *.dll *.exe +rm -rf __MACOSX *.app + +:<< _OLD +#rm ioq* -f +rm *.dll -f +rm openarena.exe +cp %{SOURCE3} code/ui/menudef.h +mkdir ui +cp %{SOURCE3} ui/menudef.h +cd .. +#unzip -qqo %{SOURCE2} + +%build +#% make USE_CURL_DLOPEN=0 + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +install -d \ + %{buildroot}%{_bindir} \ + %{buildroot}%{_datadir}/openarena \ + %{buildroot}%{_datadir}/pixmaps \ + %{buildroot}%{_datadir}/applications + +cp -a * %{buildroot}%{_datadir}/openarena/ +#make copyfiles COPYDIR=%{buildroot}/opt/ioquake3 +#cp -a baseoa %{buildroot}/opt/ioquake3 +cp %{SOURCE4} %{buildroot}%{_datadir}/pixmaps/openarena.ico +cp %{SOURCE5} %{buildroot}%{_datadir}/applications/openarena.desktop +install -D -m0755 %{SOURCE6} %{buildroot}%{_datadir}/openarena/openarena-runner.sh +ln -s %{_datadir}/openarena/openarena-runner.sh %{buildroot}%{_bindir}/openarena +ln -s %{_datadir}/openarena/openarena-runner.sh %{buildroot}%{_bindir}/openarena-server + +%ifarch x86_64 +rm -f %{buildroot}%{_datadir}/openarena/*.i386 +%endif +%ifarch %{ix86} +rm -f %{buildroot}%{_datadir}/openarena/*.x86_64 +%endif + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%files +%defattr(0755,root,root) +%{_bindir}/openarena +%{_bindir}/openarena-server +%dir %{_datadir}/openarena +%{_datadir}/openarena/CHANGES +%{_datadir}/openarena/COPYING +%{_datadir}/openarena/CREDITS +%{_datadir}/openarena/LINUXNOTES +%{_datadir}/openarena/README +%{_datadir}/openarena/WENEED +%dir %{_datadir}/openarena/baseoa +%{_datadir}/openarena/baseoa/*.pk3 +%dir %{_datadir}/openarena/missionpack +%{_datadir}/openarena/missionpack/*.pk3 +%{_datadir}/openarena/oa_ded.* +%{_datadir}/openarena/openarena-runner.sh +%{_datadir}/openarena/openarena.* +%{_datadir}/openarena/readme_*.txt +%{_datadir}/applications/openarena.desktop +%{_datadir}/pixmaps/openarena.ico +%doc COPYING + +%changelog +* Mon May 10 2021 Silvan Calarco 0.8.8-2mamba +- rebuilt with debug package and x86_64 target + +* Fri Apr 06 2012 Ercole 'ercolinux' Carpanetto 0.8.8-1mamba +- update to 0.8.8 + +* Thu Apr 16 2009 Silvan Calarco 0.8.1-3mamba +- automatic rebuild by autodist + +* Fri Dec 12 2008 Silvan Calarco 0.8.1-2mamba +- ... add a changelog entry + +* Thu Dec 11 2008 Silvan Calarco 0.8.1-1mamba +- automatic update by autodist + +* Sat Jul 05 2008 Silvan Calarco 0.7.7-2mamba +- fix files permission: don't set all to 775 + +* Thu Jul 03 2008 Ercole 'ercolinux' Carpanetto 0.7.7-1mamba +- update to 0.7.7 + +* Fri Nov 16 2007 Silvan Calarco 0.7.0-1mamba +- package created by autospec