pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/games



Module Name:    pkgsrc
Committed By:   nia
Date:           Sat Apr  3 15:34:04 UTC 2021

Modified Files:
        pkgsrc/games: Makefile
Added Files:
        pkgsrc/games/openarena: DESCR Makefile PLIST distinfo
        pkgsrc/games/openarena/files: openarena.6 openarena.desktop
            openarena.in openarena.png
        pkgsrc/games/openarena/patches: patch-code_game_g__cmds.c
            patch-code_q3__ui_ui__firstconnect.c patch-code_q3__ui_ui__local.h
            patch-code_q3__ui_ui__preferences.c
            patch-code_qcommon_q__platform.h

Log Message:
add games/openarena

OpenArena is a community-produced deathmatch FPS based on GPL idTech3
technology.

There are many game types supported including Free For All, Capture The
Flag, Domination, Overload, Harvester, and more.


To generate a diff of this commit:
cvs rdiff -u -r1.499 -r1.500 pkgsrc/games/Makefile
cvs rdiff -u -r0 -r1.1 pkgsrc/games/openarena/DESCR \
    pkgsrc/games/openarena/Makefile pkgsrc/games/openarena/PLIST \
    pkgsrc/games/openarena/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/games/openarena/files/openarena.6 \
    pkgsrc/games/openarena/files/openarena.desktop \
    pkgsrc/games/openarena/files/openarena.in \
    pkgsrc/games/openarena/files/openarena.png
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/games/openarena/patches/patch-code_game_g__cmds.c \
    pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__firstconnect.c \
    pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__local.h \
    pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__preferences.c \
    pkgsrc/games/openarena/patches/patch-code_qcommon_q__platform.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/games/Makefile
diff -u pkgsrc/games/Makefile:1.499 pkgsrc/games/Makefile:1.500
--- pkgsrc/games/Makefile:1.499 Sun Feb 28 07:36:14 2021
+++ pkgsrc/games/Makefile       Sat Apr  3 15:34:03 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.499 2021/02/28 07:36:14 nia Exp $
+# $NetBSD: Makefile,v 1.500 2021/04/03 15:34:03 nia Exp $
 #
 
 COMMENT=       Games
@@ -306,6 +306,7 @@ SUBDIR+=    nudoku
 SUBDIR+=       nxengine-evo
 SUBDIR+=       omega
 SUBDIR+=       onscripter
+SUBDIR+=       openarena
 SUBDIR+=       openhexagon
 SUBDIR+=       openjk
 SUBDIR+=       openmortal

Added files:

Index: pkgsrc/games/openarena/DESCR
diff -u /dev/null pkgsrc/games/openarena/DESCR:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/DESCR        Sat Apr  3 15:34:03 2021
@@ -0,0 +1,5 @@
+OpenArena is a community-produced deathmatch FPS based on GPL idTech3
+technology.
+
+There are many game types supported including Free For All, Capture The
+Flag, Domination, Overload, Harvester, and more.
Index: pkgsrc/games/openarena/Makefile
diff -u /dev/null pkgsrc/games/openarena/Makefile:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/Makefile     Sat Apr  3 15:34:03 2021
@@ -0,0 +1,97 @@
+# $NetBSD: Makefile,v 1.1 2021/04/03 15:34:03 nia Exp $
+
+#
+# There will be warnings about missing dependencies while building.
+# In reality, building the "baseoa" mod requires zero dependencies.
+#
+# Please do not add them.
+#
+
+OA_VER=                0.8.8
+PKGNAME=       openarena-${OA_VER}
+MASTER_SITES=  ${MASTER_SITE_SOURCEFORGE:=oarena/}
+CATEGORIES=    games
+
+# This contains the code for the "baseoa" mod
+DISTFILES=     oa-${OA_VER}.tar.bz2
+
+# This contains the pk3 files (graphics, etc)
+DISTFILES+=    openarena-${OA_VER}.zip
+
+MAINTAINER=    nia%NetBSD.org@localhost
+HOMEPAGE=      http://www.openarena.ws/
+COMMENT=       Community-produced deathmatch FPS
+LICENSE=       gnu-gpl-v2
+
+WRKSRC=                ${WRKDIR}/oa-${OA_VER}
+
+USE_TOOLS+=    pkg-config gmake
+
+MAKE_FLAGS+=   COPYDIR=${DESTDIR}${PREFIX}/lib/openarena
+
+BUILD_TARGET=  release
+INSTALL_TARGET=        copyfiles
+
+.include "../../mk/bsd.prefs.mk"
+
+.if !empty(MACHINE_ARCH:M*arm*)
+QUAKE_ARCH=    arm
+.elif !empty(MACHINE_ARCH:M*mips*)
+QUAKE_ARCH=    mips
+.elif !empty(MACHINE_ARCH:M*sh3*)
+QUAKE_ARCH=    sh
+.elif ${MACHINE_ARCH} == "powerpc"
+QUAKE_ARCH=    ppc
+.elif ${MACHINE_ARCH} == "powerpc64"
+QUAKE_ARCH=    ppc64
+.elif ${MACHINE_ARCH} == "sparc64"
+QUAKE_ARCH=    sparc
+.else
+QUAKE_ARCH=    ${MACHINE_ARCH}
+.endif
+
+.if ${MACHINE_ARCH} == "earmv6hf"
+DEPENDS+=      ioquake3-raspberrypi-[0-9]*:../../games/ioquake3-raspberrypi
+IOQ3_BIN=      ${PREFIX}/lib/ioquake3/ioquake3.rpi
+.else
+DEPENDS+=      ioquake3-[0-9]*:../../games/ioquake3
+IOQ3_BIN=      ${PREFIX}/lib/ioquake3/ioquake3.${QUAKE_ARCH}
+.endif
+
+PLIST_SUBST+=  QUAKE_ARCH=${QUAKE_ARCH:Q}
+MAKE_FLAGS+=   COMPILE_ARCH=${QUAKE_ARCH}
+CFLAGS+=       -DARCH_STRING="\"${QUAKE_ARCH}\""
+
+.if !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
+MAKE_FLAGS+=   ARCH=${NATIVE_MACHINE_ARCH}
+.endif
+
+# do not use lib64
+MAKE_FLAGS.Linux+=     LIB=lib
+
+INSTALLATION_DIRS+=    bin
+INSTALLATION_DIRS+=    ${PKGMANDIR}/man6
+INSTALLATION_DIRS+=    share/applications
+INSTALLATION_DIRS+=    share/pixmaps
+INSTALLATION_DIRS+=    lib/openarena/baseoa
+CHECK_WRKREF_SKIP+=    lib/openarena/baseoa/*.pk3
+
+post-build:
+       ${SED} -e 's,@PREFIX@,${PREFIX},g' \
+           -e 's,@IOQ3_BIN@,${IOQ3_BIN},g' \
+           ${FILESDIR}/openarena.in > ${WRKDIR}/openarena.sh
+
+post-install:
+       ${INSTALL_SCRIPT} ${WRKDIR}/openarena.sh \
+           ${DESTDIR}${PREFIX}/bin/openarena
+       ${INSTALL_DATA} ${WRKDIR}/openarena-${OA_VER}/baseoa/*.pk3 \
+           ${DESTDIR}${PREFIX}/lib/openarena/baseoa
+       ${INSTALL_MAN} ${FILESDIR}/openarena.6 \
+           ${DESTDIR}${PREFIX}/${PKGMANDIR}/man6
+       ${INSTALL_DATA} ${FILESDIR}/openarena.desktop \
+           ${DESTDIR}${PREFIX}/share/applications
+       ${INSTALL_DATA} ${FILESDIR}/openarena.png \
+           ${DESTDIR}${PREFIX}/share/pixmaps
+
+.include "../../sysutils/desktop-file-utils/desktopdb.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/games/openarena/PLIST
diff -u /dev/null pkgsrc/games/openarena/PLIST:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/PLIST        Sat Apr  3 15:34:03 2021
@@ -0,0 +1,20 @@
+@comment $NetBSD: PLIST,v 1.1 2021/04/03 15:34:03 nia Exp $
+bin/openarena
+lib/openarena/baseoa/pak0.pk3
+lib/openarena/baseoa/pak1-maps.pk3
+lib/openarena/baseoa/pak2-players-mature.pk3
+lib/openarena/baseoa/pak2-players.pk3
+lib/openarena/baseoa/pak4-textures.pk3
+lib/openarena/baseoa/pak5-TA.pk3
+lib/openarena/baseoa/pak6-misc.pk3
+lib/openarena/baseoa/pak6-patch085.pk3
+lib/openarena/baseoa/pak6-patch088.pk3
+lib/openarena/baseq3/cgame${QUAKE_ARCH}.so
+lib/openarena/baseq3/qagame${QUAKE_ARCH}.so
+lib/openarena/baseq3/ui${QUAKE_ARCH}.so
+lib/openarena/missionpack/cgame${QUAKE_ARCH}.so
+lib/openarena/missionpack/qagame${QUAKE_ARCH}.so
+lib/openarena/missionpack/ui${QUAKE_ARCH}.so
+man/man6/openarena.6
+share/applications/openarena.desktop
+share/pixmaps/openarena.png
Index: pkgsrc/games/openarena/distinfo
diff -u /dev/null pkgsrc/games/openarena/distinfo:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/distinfo     Sat Apr  3 15:34:03 2021
@@ -0,0 +1,15 @@
+$NetBSD: distinfo,v 1.1 2021/04/03 15:34:03 nia Exp $
+
+SHA1 (oa-0.8.8.tar.bz2) = 6bb139e469ae00e37decaefb5e2bced070f8b04e
+RMD160 (oa-0.8.8.tar.bz2) = 795513460498fda03a4a11c1be56918e9312be49
+SHA512 (oa-0.8.8.tar.bz2) = 517517ea8d8377a6d91d957faf0a55690815b01d8f3e8b1e4a3e6be64750968a6074d26499e707fe2ec5fa7d630ceec022fdc879fdebcbfebbcff8195dd03e2f
+Size (oa-0.8.8.tar.bz2) = 1257831 bytes
+SHA1 (openarena-0.8.8.zip) = 37ab41990b37459822ce8c2fe590607616e1f6d1
+RMD160 (openarena-0.8.8.zip) = dec7c43c2727235e97be1ab3968d8803fdd71251
+SHA512 (openarena-0.8.8.zip) = 9fa4dabe8a3428dc3cbec97f3b4d20c04569c14cdd00b60e6391c6dd61e310f246ff5ec97e7549821b3d6f5f94b140eb5411a2ddd83dafcad66937b7f78ea8dd
+Size (openarena-0.8.8.zip) = 425189255 bytes
+SHA1 (patch-code_game_g__cmds.c) = a28f1f32e8b0d4461d1d6ac2c64e83abf3777c0b
+SHA1 (patch-code_q3__ui_ui__firstconnect.c) = 999c9040336b790711711f1c96a1af0f04f743be
+SHA1 (patch-code_q3__ui_ui__local.h) = aff4decfa18aed05239af5103dc603c6ca949429
+SHA1 (patch-code_q3__ui_ui__preferences.c) = 06f606580f594509c0bfcc9cc60e970beba394aa
+SHA1 (patch-code_qcommon_q__platform.h) = 523fbe0eccfdde0391fef23f728f0ac01bd7d85d

Index: pkgsrc/games/openarena/files/openarena.6
diff -u /dev/null pkgsrc/games/openarena/files/openarena.6:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/files/openarena.6    Sat Apr  3 15:34:04 2021
@@ -0,0 +1,78 @@
+.TH OPENARENA 6 2010-10-15
+
+.SH NAME
+openarena \- OpenArena client
+
+.SH SYNOPSIS
+.BR openarena
+.BR "" [ \-h | \-\-help ]
+.BR "" [ \-q | \-\-quiet ]
+.BR "" [ +set
+.IR option " " value ]...
+
+.SH DESCRIPTION
+.B openarena
+is the client for the first-person shooter OpenArena.
+
+.SH OPTIONS
+The wrapper script used for OpenArena in Debian accepts these options:
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display a short help summary
+.TP
+\fB\-q\fR, \fB\-\-quiet\fR
+Disable all output
+.PP
+Any console command can also be prefixed with \fB+\fR and used as a
+command-line option (press Shift+Esc to access the in-game console), including:
+.TP
+\fB+set\fR \fIoption\fR \fIvalue\fR
+Set an option (see below for some options)
+.TP
+\fB+connect\fR \fIserver\fR[\fB:\fIport\fR]
+Connect to a server
+.PP
+Options that can be set with \fB+set\fR
+(note that this is not a full list!) include:
+.TP
+\fBr_fullscreen\fR <bool>
+1: Play in fullscreen mode; 0: Play in window mode
+.TP
+\fBr_mode\fR <num>
+Sets the screen resolution mode. Set num to \-1 to use a customized resolution.
+See also r_customheight and r_customwidth!
+.TP
+\fBr_customwidth\fR <pixels>
+Use \fUpixels\fR as width if r_mode is set to \-1.
+.TP
+\fBr_customheight\fR <pixels>
+Use \fUpixels\fR as height if r_mode is set to \-1.
+
+.SH FILES
+.TP
+\fI~/.openarena/baseoa\fR
+Configuration and state for OpenArena
+.TP
+\fI~/.openarena/missionpack\fR
+Configuration and state for the "missionpack" mod
+
+.SH ENVIRONMENT
+The wrapper script used to launch OpenArena allows it to be debugged
+by setting environment variables.
+.TP
+\fBOPENARENA_DEBUGGER=\fIcommand\fR
+A debugger or other prefix to prepend to the OpenArena command line, such
+as \fBstrace\fR; overridden by \fBOPENARENA_BACKTRACE\fR
+.TP
+\fBOPENARENA_BACKTRACE=1\fR
+Use \fBgdb\fR(1) to get a backtrace if OpenArena crashes (the \fBgdb\fR
+package must be installed for this to work)
+
+.SH AUTHOR
+OpenArena was written by the OpenArena Team. The engine used is a modified
+ioQuake3, originally created by id Software and now maintained by the ioQuake3
+community.
+.PP
+This manual page was written by Bruno "Fuddl" Kleinert <fuddl%debian.org@localhost>
+and Simon McVittie <smcv%debian.org@localhost>, for the Debian project
+(but may be used by others).
Index: pkgsrc/games/openarena/files/openarena.desktop
diff -u /dev/null pkgsrc/games/openarena/files/openarena.desktop:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/files/openarena.desktop      Sat Apr  3 15:34:04 2021
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=OpenArena
+Comment=A fast-paced 3D first-person shooter, similar to id Software Inc.'s Quake III Arena
+Comment[de]=Ein hektischer und netzwerkfähiger 3D Ego-Shooter, ähnlich zu Quake III Arena von id Software Inc.
+Exec=openarena
+Terminal=false
+Icon=openarena
+Type=Application
+Categories=Game;ActionGame;
+Keywords=first person shooter;fps;3d;deathmatch;ctf;capture the flag;
Index: pkgsrc/games/openarena/files/openarena.in
diff -u /dev/null pkgsrc/games/openarena/files/openarena.in:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/files/openarena.in   Sat Apr  3 15:34:04 2021
@@ -0,0 +1,26 @@
+#!/bin/sh
+# Based on the initialization script from Debian:
+# https://salsa.debian.org/games-team/openarena/-/blob/debian/latest/debian/scripts/openarena.in
+
+# we're a standalone game
+CVARS="+set com_basegame baseoa"
+CVARS="$CVARS +set fs_basepath @PREFIX@/lib/openarena"
+CVARS="$CVARS +set com_homepath .openarena"
+
+# OA uses a different protocol number to reflect incompatible game content.
+# When it says "71", that's actually the legacy Quake III Arena 1.32c protocol,
+# protocol 68.
+CVARS="$CVARS +set com_legacyprotocol 71"
+
+# For the moment, disable the modern protocol, by setting this cvar to the
+# same thing. When OA upstream decide what value they'll use, we should
+# catch up.
+CVARS="$CVARS +set com_protocol 71"
+
+# OA's default master server is different
+CVARS="$CVARS +set sv_master1 dpmaster.deathmask.net"
+
+# update.quake3arena.com is pretty irrelevant if you're playing OA
+CVARS="$CVARS +set cl_motd 0"
+
+exec "@IOQ3_BIN@" ${CVARS} "$@"
Index: pkgsrc/games/openarena/files/openarena.png
Binary files are different

Index: pkgsrc/games/openarena/patches/patch-code_game_g__cmds.c
diff -u /dev/null pkgsrc/games/openarena/patches/patch-code_game_g__cmds.c:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/patches/patch-code_game_g__cmds.c    Sat Apr  3 15:34:04 2021
@@ -0,0 +1,18 @@
+$NetBSD: patch-code_game_g__cmds.c,v 1.1 2021/04/03 15:34:04 nia Exp $
+
+A fix for Debian Bug #681812. Doing "callvote kick PLAYERNAME" for a
+playername that did not exist results in undefined behavior.
+
+Depending on architecture this results in a crash or something else.
+
+--- code/game/g_cmds.c.orig    2011-11-08 20:27:32.000000000 +0000
++++ code/game/g_cmds.c
+@@ -1812,7 +1812,7 @@ void Cmd_CallVote_f( gentity_t *ent ) {
+               Com_sprintf( level.voteDisplayString, sizeof( level.voteDisplayString ), "Shuffle teams?" );
+         } else if ( !Q_stricmp( arg1, "kick" ) ) {
+                 i = 0;
+-                while(Q_stricmp(arg2,(g_entities+i)->client->pers.netname)) {
++                while((g_entities+i) == NULL || (g_entities+i)->client == NULL || Q_stricmp(arg2,(g_entities+i)->client->pers.netname)) {
+                     //Not client i, try next
+                     i++;
+                     if(i>=MAX_CLIENTS){ //Only numbers <128 is clients
Index: pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__firstconnect.c
diff -u /dev/null pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__firstconnect.c:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__firstconnect.c Sat Apr  3 15:34:04 2021
@@ -0,0 +1,39 @@
+$NetBSD: patch-code_q3__ui_ui__firstconnect.c,v 1.1 2021/04/03 15:34:04 nia Exp $
+
+Request confirmation if a user enables auto-downloading, since it is a
+security risk. From Debian.
+
+--- code/q3_ui/ui_firstconnect.c.orig  2011-11-08 20:27:29.000000000 +0000
++++ code/q3_ui/ui_firstconnect.c
+@@ -194,7 +194,17 @@ FirstConnect_StatusBar_Download
+ =================
+ */
+ static void FirstConnect_StatusBar_Download( void* ptr ) {
+-              UI_DrawString( 320, 440, "Auto download missing maps and mods", UI_CENTER|UI_SMALLFONT, colorWhite );
++              UI_DrawString( 320, 440, "Security risk, see <http://deb.li/Q3DL>", UI_CENTER|UI_SMALLFONT, colorWhite );
++}
++
++static void AutoDownloadAction( qboolean result )
++{
++      if (result) {
++              trap_Cvar_SetValue( "cl_allowDownload", 1 );
++      } else {
++              trap_Cvar_SetValue( "cl_allowDownload", 0 );
++      }
++      s_firstconnect.allowdownload.curvalue = result;
+ }
+ 
+ /*
+@@ -251,8 +261,11 @@ static void FirstConnect_Event( void* pt
+                         break;
+ 
+                 case ID_ALLOWDOWNLOAD:
+-                        trap_Cvar_SetValue( "cl_allowDownload", s_firstconnect.allowdownload.curvalue );
+                         trap_Cvar_SetValue( "sv_allowDownload", s_firstconnect.allowdownload.curvalue );
++                        if ( s_firstconnect.allowdownload.curvalue )
++                              UI_ConfirmAutoDownload( AutoDownloadAction );
++                      else
++                              trap_Cvar_SetValue( "cl_allowDownload", 0 );
+                         break;
+ 
+                 case ID_DELAGHITSCAN:
Index: pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__local.h
diff -u /dev/null pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__local.h:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__local.h        Sat Apr  3 15:34:04 2021
@@ -0,0 +1,15 @@
+$NetBSD: patch-code_q3__ui_ui__local.h,v 1.1 2021/04/03 15:34:04 nia Exp $
+
+Request confirmation if a user enables auto-downloading, since it is a
+security risk. From Debian.
+
+--- code/q3_ui/ui_local.h.orig 2011-11-08 20:27:29.000000000 +0000
++++ code/q3_ui/ui_local.h
+@@ -458,6 +458,7 @@ extern void PlayerSettings_Cache( void )
+ // ui_preferences.c
+ //
+ extern void UI_PreferencesMenu( void );
++extern void UI_ConfirmAutoDownload( void (*action) (qboolean) );
+ extern void Preferences_Cache( void );
+ 
+ //
Index: pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__preferences.c
diff -u /dev/null pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__preferences.c:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/patches/patch-code_q3__ui_ui__preferences.c  Sat Apr  3 15:34:04 2021
@@ -0,0 +1,61 @@
+$NetBSD: patch-code_q3__ui_ui__preferences.c,v 1.1 2021/04/03 15:34:04 nia Exp $
+
+Request confirmation if a user enables auto-downloading. From Debian.
+
+--- code/q3_ui/ui_preferences.c.orig   2011-11-08 20:27:29.000000000 +0000
++++ code/q3_ui/ui_preferences.c
+@@ -131,6 +131,41 @@ static void Preferences_SetMenuItems( vo
+         s_preferences.teamchatbeep.curvalue     = trap_Cvar_VariableValue( "cg_teamChatBeep" ) != 0;
+ }
+ 
++
++static void AutoDownloadAction( qboolean result )
++{
++      if (result) {
++              trap_Cvar_SetValue( "cl_allowDownload", 1 );
++      } else {
++              trap_Cvar_SetValue( "cl_allowDownload", 0 );
++      }
++      s_preferences.allowdownload.curvalue = result;
++}
++
++static void UI_ConfirmAutoDownload_Draw ( void )
++{
++      UI_DrawProportionalString( SCREEN_WIDTH/2, 356 + PROP_HEIGHT * 0,
++              "WARNING: This is a security risk.",
++              UI_CENTER|UI_SMALLFONT, color_yellow );
++      UI_DrawProportionalString( SCREEN_WIDTH/2, 356 + PROP_HEIGHT * 1,
++              "More information: <http://deb.li/Q3DL>",
++              UI_CENTER|UI_SMALLFONT, color_yellow );
++}
++
++void UI_ConfirmAutoDownload( void (*action) (qboolean) )
++{
++      if (trap_Cvar_VariableValue( "cl_allowDownload" ) != 0) {
++              /* already set */
++              return;
++      }
++
++      UI_ConfirmMenu_Style(
++              "Auto-download?",
++              UI_CENTER|UI_SMALLFONT,
++              UI_ConfirmAutoDownload_Draw,
++              action);
++}
++
+ static void Preferences_Event( void* ptr, int notification ) {
+       if( notification != QM_ACTIVATED ) {
+               return;
+@@ -216,8 +251,11 @@ static void Preferences_Event( void* ptr
+               break;
+ 
+       case ID_ALLOWDOWNLOAD:
+-              trap_Cvar_SetValue( "cl_allowDownload", s_preferences.allowdownload.curvalue );
+               trap_Cvar_SetValue( "sv_allowDownload", s_preferences.allowdownload.curvalue );
++              if ( s_preferences.allowdownload.curvalue )
++                      UI_ConfirmAutoDownload( AutoDownloadAction );
++              else
++                      trap_Cvar_SetValue( "cl_allowDownload", 0 );
+               break;
+                
+         case ID_DELAGHITSCAN:
Index: pkgsrc/games/openarena/patches/patch-code_qcommon_q__platform.h
diff -u /dev/null pkgsrc/games/openarena/patches/patch-code_qcommon_q__platform.h:1.1
--- /dev/null   Sat Apr  3 15:34:04 2021
+++ pkgsrc/games/openarena/patches/patch-code_qcommon_q__platform.h     Sat Apr  3 15:34:04 2021
@@ -0,0 +1,87 @@
+$NetBSD: patch-code_qcommon_q__platform.h,v 1.1 2021/04/03 15:34:04 nia Exp $
+
+Get ARCH_STRING from the build environment rather than hardcoded lists.
+
+--- code/qcommon/q_platform.h.orig     2011-11-08 20:27:31.000000000 +0000
++++ code/qcommon/q_platform.h
+@@ -134,13 +134,15 @@ Foundation, Inc., 51 Franklin St, Fifth 
+ #define PATH_SEP '/'
+ 
+ #ifdef __ppc__
+-#define ARCH_STRING "ppc"
+ #define Q3_BIG_ENDIAN
+ #elif defined __i386__
+-#define ARCH_STRING "i386"
+ #define Q3_LITTLE_ENDIAN
+ #endif
+ 
++#if !defined(ARCH_STRING)
++# error ARCH_STRING should be defined by the Makefile
++#endif
++
+ #define DLL_EXT ".dylib"
+ 
+ #endif
+@@ -155,34 +157,8 @@ Foundation, Inc., 51 Franklin St, Fifth 
+ #define ID_INLINE inline
+ #define PATH_SEP '/'
+ 
+-#if defined __i386__
+-#define ARCH_STRING "i386"
+-#elif defined __x86_64__
+-#define ARCH_STRING "x86_64"
+-#elif defined __powerpc64__
+-#define ARCH_STRING "ppc64"
+-#elif defined __powerpc__
+-#define ARCH_STRING "ppc"
+-#elif defined __s390__
+-#define ARCH_STRING "s390"
+-#elif defined __s390x__
+-#define ARCH_STRING "s390x"
+-#elif defined __ia64__
+-#define ARCH_STRING "ia64"
+-#elif defined __alpha__
+-#define ARCH_STRING "alpha"
+-#elif defined __sparc__
+-#define ARCH_STRING "sparc"
+-#elif defined __arm__
+-#define ARCH_STRING "arm"
+-#elif defined __cris__
+-#define ARCH_STRING "cris"
+-#elif defined __hppa__
+-#define ARCH_STRING "hppa"
+-#elif defined __mips__
+-#define ARCH_STRING "mips"
+-#elif defined __sh__
+-#define ARCH_STRING "sh"
++#if !defined(ARCH_STRING)
++# error ARCH_STRING should be defined by the Makefile
+ #endif
+ 
+ #if __FLOAT_WORD_ORDER == __BIG_ENDIAN
+@@ -217,10 +193,8 @@ Foundation, Inc., 51 Franklin St, Fifth 
+ #define ID_INLINE inline
+ #define PATH_SEP '/'
+ 
+-#ifdef __i386__
+-#define ARCH_STRING "i386"
+-#elif defined __axp__
+-#define ARCH_STRING "alpha"
++#if !defined(ARCH_STRING)
++# error ARCH_STRING should be defined by the Makefile
+ #endif
+ 
+ #if BYTE_ORDER == BIG_ENDIAN
+@@ -244,10 +218,8 @@ Foundation, Inc., 51 Franklin St, Fifth 
+ #define ID_INLINE inline
+ #define PATH_SEP '/'
+ 
+-#ifdef __i386__
+-#define ARCH_STRING "i386"
+-#elif defined __sparc
+-#define ARCH_STRING "sparc"
++#if !defined(ARCH_STRING)
++# error ARCH_STRING should be defined by the Makefile
+ #endif
+ 
+ #if defined( _BIG_ENDIAN )



Home | Main Index | Thread Index | Old Index