diff options
author | tej-arch | 2017-02-05 14:44:58 +0400 |
---|---|---|
committer | tej-arch | 2017-02-05 14:44:58 +0400 |
commit | e89386b46c6ee22ea4e70d4ca65eedd21c5ae577 (patch) | |
tree | a4c2c4380b4d476a39414697fc1fae6df015ca1c | |
download | aur-e89386b46c6ee22ea4e70d4ca65eedd21c5ae577.tar.gz |
Release with auth
-rw-r--r-- | .SRCINFO | 36 | ||||
-rw-r--r-- | PKGBUILD | 56 | ||||
-rw-r--r-- | actionfps | 4 | ||||
-rw-r--r-- | actionfps-gcc6-1.patch | 270 | ||||
-rw-r--r-- | actionfps-server | 4 | ||||
-rw-r--r-- | actionfps.desktop | 14 | ||||
-rw-r--r-- | actionfps.png | bin | 0 -> 4061 bytes |
7 files changed, 384 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..3832037ea235 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,36 @@ +pkgbase = actionfps + pkgdesc = A game based on the open-source AssaultCube first-person shooter (FPS) + pkgver = 1000 + pkgrel = 1 + url = https://actionfps.com + arch = i686 + arch = x86_64 + license = ZLIB + license = custom + makedepends = mesa + makedepends = clang + depends = sdl + depends = sdl_mixer + depends = sdl_image + depends = openal + depends = zlib + depends = gcc-libs + depends = libgl + depends = glu + depends = curl + provides = actionfps + source = https://github.com/ActionFPS/ActionFPS-Game/archive/version_1000.tar.gz + source = actionfps-gcc6-1.patch + source = actionfps + source = actionfps-server + source = actionfps.desktop + source = actionfps.png + md5sums = 32dad06e74202dea378efff732c0c249 + md5sums = ac0b864edc62900fecaa547fd456645e + md5sums = 3273bc8220f2e50e39e8076f06d8144d + md5sums = d00249969554bd600f5a39187a10c5d4 + md5sums = 22aaf111f2bce517000baaa375ba9321 + md5sums = f7da6cb5df462439693b4c2560223a97 + +pkgname = actionfps + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..068f9a3e5b7e --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,56 @@ +# $Id$ +# Maintainer: Tejuswi Vaghjee <tejvghj at gmail dot com> +# Contributor: Sven-Hendrik Haase <sh at lutzhaase dot com> +# Contributor: Jaroslaw Swierczynski <swiergot at aur dot archlinux dot org> +# Contributor: Roman Kyrylych <Roman dot Kyrylych at gmail dot com> +# Contributor: Rabyte <rabyte at gmail dot com> + +pkgname=actionfps +gitname=ActionFPS-Game-version_1000 +pkgver=1000 +pkgrel=1 +pkgdesc="A game based on the open-source AssaultCube first-person shooter (FPS)" +arch=('i686' 'x86_64') +url="https://actionfps.com" +license=('ZLIB' 'custom') +depends=('sdl' 'sdl_mixer' 'sdl_image' 'openal' 'zlib' 'gcc-libs' 'libgl' 'glu' 'curl') +makedepends=('mesa' 'clang') +provides=('actionfps') +source=("https://github.com/ActionFPS/ActionFPS-Game/archive/version_1000.tar.gz" + 'actionfps-gcc6-1.patch' + 'actionfps' + 'actionfps-server' + 'actionfps.desktop' + 'actionfps.png') +md5sums=('32dad06e74202dea378efff732c0c249' + 'ac0b864edc62900fecaa547fd456645e' + '3273bc8220f2e50e39e8076f06d8144d' + 'd00249969554bd600f5a39187a10c5d4' + '22aaf111f2bce517000baaa375ba9321' + 'f7da6cb5df462439693b4c2560223a97') + +prepare() { + cd ${gitname} + # Fix build with GCC 6 + patch -p1 -i ../actionfps-gcc6-1.patch +} + +build() { + cd "${gitname}/source/src" + make +} + +package() { + cd "${gitname}/source/src" + install -Dm755 ac_client ${pkgdir}/usr/bin/actionfps_client + install -Dm755 ac_server ${pkgdir}/usr/bin/actionfps_server + + cd ${srcdir}/${gitname} + mkdir -p ${pkgdir}/usr/share/actionfps + cp -rf config packages docs ${pkgdir}/usr/share/actionfps + install -Dm644 ${srcdir}/actionfps.png ${pkgdir}/usr/share/pixmaps/actionfps.png + install -Dm644 ${srcdir}/actionfps.desktop ${pkgdir}/usr/share/applications/actionfps.desktop + install -Dm644 docs/package_copyrights.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE + install -Dm755 ${srcdir}/actionfps ${pkgdir}/usr/bin/actionfps + install -Dm755 ${srcdir}/actionfps-server ${pkgdir}/usr/bin/actionfps-server +} diff --git a/actionfps b/actionfps new file mode 100644 index 000000000000..7f46160f33b1 --- /dev/null +++ b/actionfps @@ -0,0 +1,4 @@ +#!/bin/bash + +cd /usr/share/actionfps +actionfps_client "--home=${HOME}/.actionfps/v1.2next" "--init=${HOME}/.actionfps/v1.2next/config/init.cfg" "$@" diff --git a/actionfps-gcc6-1.patch b/actionfps-gcc6-1.patch new file mode 100644 index 000000000000..c2dc62b19344 --- /dev/null +++ b/actionfps-gcc6-1.patch @@ -0,0 +1,270 @@ +diff -Naur a/source/src/bot/bot_waypoint.cpp b/source/src/bot/bot_waypoint.cpp +--- a/source/src/bot/bot_waypoint.cpp 2017-01-28 18:36:39.304498305 +0400 ++++ b/source/src/bot/bot_waypoint.cpp 2017-01-28 18:50:44.804515824 +0400 +@@ -1202,7 +1202,7 @@ + flCost += (1.0f-flFraction)*0.5f; + } + +- if ((abs(a) > 4) || (abs(b) > 4)) continue; ++ if ((iabs(a) > 4) || (iabs(b) > 4)) continue; + + vec from = to; + to.z -= (JUMP_HEIGHT - 1.0f); +@@ -1230,7 +1230,7 @@ + flCost += (1.0f-flFraction)*0.5f; + } + +- if ((abs(a) > 4) || (abs(b) > 4)) continue; ++ if ((iabs(a) > 4) || (iabs(b) > 4)) continue; + + vec from = to; + to.z -= (JUMP_HEIGHT - 1.0f); +@@ -1650,12 +1650,12 @@ + void CWaypointClass::GetNodeIndexes(const vec &v_origin, short *i, short *j) + { + // Function code by cheesy and PMB +- //*i = abs((int)((int)(v_origin.x + (2*ssize)) / SECTOR_SIZE)); +- //*j = abs((int)((int)(v_origin.y + (2*ssize)) / SECTOR_SIZE)); ++ //*i = iabs((int)((int)(v_origin.x + (2*ssize)) / SECTOR_SIZE)); ++ //*j = iabs((int)((int)(v_origin.y + (2*ssize)) / SECTOR_SIZE)); + //*i = (int)((v_origin.x) / ssize * MAX_MAP_GRIDS); + //*j = (int)((v_origin.y) / ssize * MAX_MAP_GRIDS); +- *i = abs((int)((v_origin.x) / MAX_MAP_GRIDS)); +- *j = abs((int)((v_origin.y) / MAX_MAP_GRIDS)); ++ *i = iabs((int)((v_origin.x) / MAX_MAP_GRIDS)); ++ *j = iabs((int)((v_origin.y) / MAX_MAP_GRIDS)); + + if (*i > MAX_MAP_GRIDS - 1) + *i = MAX_MAP_GRIDS - 1; +diff -Naur a/source/src/command.cpp b/source/src/command.cpp +--- a/source/src/command.cpp 2017-01-28 18:36:39.307831652 +0400 ++++ b/source/src/command.cpp 2017-01-28 18:52:31.451604564 +0400 +@@ -560,7 +560,7 @@ + if(lc<=seer_t1.length()) + { + int dt = seer_t1[seer_index] - seer_t1[lc]; +- if(abs(dt)<2) ++ if(iabs(dt)<2) + { + conoutf("SCRIPT EXECUTION warning [%d:%s]", &p, p); + seer_t2.add(seer_t1[seer_index]); +@@ -1876,4 +1876,4 @@ + printf("\n"); + } + +-COMMAND(debugargs, "v"); +\ No newline at end of file ++COMMAND(debugargs, "v"); +diff -Naur a/source/src/command.h b/source/src/command.h +--- a/source/src/command.h 2017-01-28 18:36:39.307831652 +0400 ++++ b/source/src/command.h 2017-01-28 18:55:14.932251334 +0400 +@@ -92,6 +92,7 @@ + #define VARNP(name, global, min, cur, max) int global = variable(#name, min, cur, max, &global, NULL, true) + #define VARF(name, min, cur, max, body) extern int name; void var_##name() { body; } int name = variable(#name, min, cur, max, &name, var_##name, false) + #define VARFP(name, min, cur, max, body) extern int name; void var_##name() { body; } int name = variable(#name, min, cur, max, &name, var_##name, true) ++#define VARNFP(name, global, min, cur, max, body) extern int global; void var_##name() { body; } int global = variable(#name, min, cur, max, &global, var_##name, true) + + #define FVARP(name, min, cur, max) float name = fvariable(#name, min, cur, max, &name, NULL, true) + #define FVAR(name, min, cur, max) float name = fvariable(#name, min, cur, max, &name, NULL, false) +diff -Naur a/source/src/crypto.cpp b/source/src/crypto.cpp +--- a/source/src/crypto.cpp 2017-01-28 18:36:39.307831652 +0400 ++++ b/source/src/crypto.cpp 2017-01-28 19:00:46.546895794 +0400 +@@ -760,7 +760,7 @@ + const char *genpwdhash(const char *name, const char *pwd, int salt) + { + static string temp; +- formatstring(temp)("%s %d %s %s %d", pwd, salt, name, pwd, abs(PROTOCOL_VERSION)); ++ formatstring(temp)("%s %d %s %s %d", pwd, salt, name, pwd, iabs(PROTOCOL_VERSION)); + tiger::hashval hash; + tiger::hash((uchar *)temp, (int)strlen(temp), hash); + formatstring(temp)("%s %s %s", hashchunktoa(hash.chunks[0]), hashchunktoa(hash.chunks[1]), hashchunktoa(hash.chunks[2])); +@@ -914,4 +914,4 @@ + } + + return ret; +-} +\ No newline at end of file ++} +diff -Naur a/source/src/editing.cpp b/source/src/editing.cpp +--- a/source/src/editing.cpp 2017-01-28 18:36:39.307831652 +0400 ++++ b/source/src/editing.cpp 2017-01-28 19:03:14.050897839 +0400 +@@ -165,12 +165,12 @@ + // update current selection, or add a new one + void makesel(bool isnew) + { +- if(isnew || sels.length() == 0) addselection(min(lastx, cx), min(lasty, cy), abs(lastx-cx)+1, abs(lasty-cy)+1, max(lasth, ch)); ++ if(isnew || sels.length() == 0) addselection(min(lastx, cx), min(lasty, cy), iabs(lastx-cx)+1, iabs(lasty-cy)+1, max(lasth, ch)); + else + { + block &cursel = sels.last(); + cursel.x = min(lastx, cx); cursel.y = min(lasty, cy); +- cursel.xs = abs(lastx-cx)+1; cursel.ys = abs(lasty-cy)+1; ++ cursel.xs = iabs(lastx-cx)+1; cursel.ys = iabs(lasty-cy)+1; + cursel.h = max(lasth, ch); + correctsel(cursel); + } +@@ -991,7 +991,7 @@ + } + if(xo || yo) + { +- block b = { max(-xo, 0), max(-yo, 0), ssize - abs(xo), ssize - abs(yo) }, *cp = blockcopy(b); ++ block b = { max(-xo, 0), max(-yo, 0), ssize - iabs(xo), ssize - iabs(yo) }, *cp = blockcopy(b); + cp->x = max(xo, 0); + cp->y = max(yo, 0); + blockpaste(*cp); +diff -Naur a/source/src/entity.h b/source/src/entity.h +--- a/source/src/entity.h 2017-01-28 18:36:39.307831652 +0400 ++++ b/source/src/entity.h 2017-01-28 19:04:03.171122415 +0400 +@@ -561,7 +561,7 @@ + { + const int maxskin[2] = { 4, 6 }; + t = team_base(t < 0 ? team : t); +- nextskin[t] = abs(s) % maxskin[t]; ++ nextskin[t] = iabs(s) % maxskin[t]; + } + }; + +diff -Naur a/source/src/main.cpp b/source/src/main.cpp +--- a/source/src/main.cpp 2017-01-28 18:36:39.307831652 +0400 ++++ b/source/src/main.cpp 2017-01-28 19:08:03.538884468 +0400 +@@ -526,11 +526,11 @@ + COMMANDF(screenres, "ii", (int *w, int *h) { screenres(*w, *h); }); + + static int curgamma = 100; +-VARFP(gamma, 30, 100, 300, ++VARNFP(gamma, vgamma, 30, 100, 300, + { +- if(gamma == curgamma) return; +- curgamma = gamma; +- float f = gamma/100.0f; ++ if(vgamma == curgamma) return; ++ curgamma = vgamma; ++ float f = vgamma/100.0f; + if(SDL_SetGamma(f,f,f)==-1) conoutf("Could not set gamma: %s", SDL_GetError()); + }); + +diff -Naur a/source/src/platform.h b/source/src/platform.h +--- a/source/src/platform.h 2017-01-28 18:36:39.311164998 +0400 ++++ b/source/src/platform.h 2017-01-28 19:12:19.610248054 +0400 +@@ -3,13 +3,6 @@ + #undef _FORTIFY_SOURCE + #endif + +- #define gamma __gamma +-#endif +- +-#include <math.h> +- +-#ifdef __GNUC__ +- #undef gamma + #endif + + #include <string.h> +@@ -22,6 +15,7 @@ + #include <vector> + #include <algorithm> + #include <string> ++#include <math.h> + + #ifdef __MINGW32__ + #include <stdint.h> +diff -Naur a/source/src/protos.h b/source/src/protos.h +--- a/source/src/protos.h 2017-01-28 18:36:39.311164998 +0400 ++++ b/source/src/protos.h 2017-01-28 19:14:56.971094022 +0400 +@@ -1109,7 +1109,8 @@ + { + demo_interm = true; + } +- else if(ai > 0) maxdemos = ai; break; ++ else if(ai > 0) maxdemos = ai; ++ break; + } + case 'W': demopath = a; break; + case 'r': maprot = a; break; +diff -Naur a/source/src/rendercubes.cpp b/source/src/rendercubes.cpp +--- a/source/src/rendercubes.cpp 2017-01-28 18:36:39.311164998 +0400 ++++ b/source/src/rendercubes.cpp 2017-01-28 19:20:09.016083692 +0400 +@@ -216,9 +216,9 @@ + else // continue strip + { + int lighterr = lighterror*2; +- if((abs(ol1r-l3->r)<lighterr && abs(ol2r-l4->r)<lighterr // skip vertices if light values are close enough +- && abs(ol1g-l3->g)<lighterr && abs(ol2g-l4->g)<lighterr +- && abs(ol1b-l3->b)<lighterr && abs(ol2b-l4->b)<lighterr) || !wtex) ++ if((iabs(ol1r-l3->r)<lighterr && iabs(ol2r-l4->r)<lighterr // skip vertices if light values are close enough ++ && iabs(ol1g-l3->g)<lighterr && iabs(ol2g-l4->g)<lighterr ++ && iabs(ol1b-l3->b)<lighterr && iabs(ol2b-l4->b)<lighterr) || !wtex) + { + verts.setsize(verts.length()-2); + nquads--; +@@ -375,7 +375,7 @@ + { + int lighterr = lighterror*2; + if((!hf && !ohf) +- && ((abs(ol1r-l2->r)<lighterr && abs(ol1g-l2->g)<lighterr && abs(ol1b-l2->b)<lighterr) || !wtex)) // skip vertices if light values are close enough ++ && ((iabs(ol1r-l2->r)<lighterr && iabs(ol1g-l2->g)<lighterr && abs(ol1b-l2->b)<lighterr) || !wtex)) // skip vertices if light values are close enough + { + verts.setsize(verts.length()-2); + nquads--; +diff -Naur a/source/src/rendertext.cpp b/source/src/rendertext.cpp +--- a/source/src/rendertext.cpp 2017-01-28 18:36:39.311164998 +0400 ++++ b/source/src/rendertext.cpp 2017-01-28 19:21:03.273035596 +0400 +@@ -154,7 +154,7 @@ + if(c=='r') c = stack[(sp > 0) ? --sp : sp]; // restore color + else if(c == 'b') { if(allowblinkingtext && !ignoreblinkingbit) stack[sp] *= -1; } // blinking text - only if allowed + else stack[sp] = c; +- switch(abs(stack[sp])) ++ switch(iabs(stack[sp])) + { + case '0': color = bvec( 2, 255, 128 ); break; // green: player talk + case '1': color = bvec( 96, 160, 255 ); break; // blue: team chat +@@ -204,7 +204,7 @@ + //default: color = bvec( 255, 255, 255 ); break; + } + int b = (int) (sinf(lastmillis / 200.0f) * 115.0f); +- b = stack[sp] > 0 ? 100 : min(abs(b), 100); ++ b = stack[sp] > 0 ? 100 : min(iabs(b), 100); + glColor4ub(color.x, color.y, color.z, (a * b) / 100); + } + } +diff -Naur a/source/src/tools.h b/source/src/tools.h +--- a/source/src/tools.h 2017-01-28 18:36:39.314498345 +0400 ++++ b/source/src/tools.h 2017-01-28 19:24:31.250788417 +0400 +@@ -56,6 +56,7 @@ + } + + template <typename T> inline T pow2(T x) { return x*x; } ++inline int iabs(int n) { return labs(n); } + + #define clamp(x,minval,maxval) (max(minval, min(x, maxval))) + #define rnd(x) ((int)(randomMT()&0xFFFFFF)%(x)) +diff -Naur a/source/src/world.cpp b/source/src/world.cpp +--- a/source/src/world.cpp 2017-01-28 18:36:39.314498345 +0400 ++++ b/source/src/world.cpp 2017-01-28 19:25:19.394371587 +0400 +@@ -79,8 +79,8 @@ + || abs(q->b - o[0]->b) > lighterr + || q->ftex != o[0]->ftex + || q->ctex != o[0]->ctex +- || abs(q->r - o[0]->r) > lighterr // perfect mip even if light is not exactly equal +- || abs(q->g - o[0]->g) > lighterr ++ || iabs(q->r - o[0]->r) > lighterr // perfect mip even if light is not exactly equal ++ || iabs(q->g - o[0]->g) > lighterr + || q->utex != o[0]->utex) goto c; + } + if(r->type==CHF || r->type==FHF) // can make a perfect mip out of a hf if slopes lie on one line +diff -Naur a/source/src/worldrender.cpp b/source/src/worldrender.cpp +--- a/source/src/worldrender.cpp 2017-01-28 18:36:39.314498345 +0400 ++++ b/source/src/worldrender.cpp 2017-01-28 19:26:36.448103569 +0400 +@@ -297,10 +297,10 @@ + void render_world(float vx, float vy, float vh, float changelod, int yaw, int pitch, float fov, float fovy, int w, int h) + { + loopi(LARGEST_FACTOR) stats[i] = 0; +- min_lod = minimap || (player1->isspectating() && player1->spectatemode == SM_OVERVIEW) ? MAX_LOD : MIN_LOD+abs(pitch)/12; ++ min_lod = minimap || (player1->isspectating() && player1->spectatemode == SM_OVERVIEW) ? MAX_LOD : MIN_LOD+iabs(pitch)/12; + yaw = 360-yaw; + float widef = fov/75.0f; +- int cdist = abs(yaw%90-45); ++ int cdist = iabs(yaw%90-45); + if(cdist<7) // hack to avoid popup at high fovs at 45 yaw + { + min_lod = max(min_lod, (int)(MIN_LOD+(10-cdist)/1.0f*widef)); // less if lod worked better diff --git a/actionfps-server b/actionfps-server new file mode 100644 index 000000000000..8aa24bba6c65 --- /dev/null +++ b/actionfps-server @@ -0,0 +1,4 @@ +#!/bin/bash + +cd /usr/share/actionfps +actionfps_server "$@" diff --git a/actionfps.desktop b/actionfps.desktop new file mode 100644 index 000000000000..0d9ce937de8b --- /dev/null +++ b/actionfps.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Encoding=UTF-8 +Exec=actionfps +Icon=actionfps +Type=Application +Terminal=false +MultipleArgs=false +Name=Actionfps +GenericName=Realistic Multiplayer FPS +MimeType=text/html +StartupNotify=false +Categories=Game;ActionGame; +Comment=A multiplayer, first-person shooter game, based on the CUBE engine. Fast, arcade gameplay. +MimeType=x-scheme-handler/actionfps diff --git a/actionfps.png b/actionfps.png Binary files differnew file mode 100644 index 000000000000..3eb3b0b44af0 --- /dev/null +++ b/actionfps.png |