diff options
Diffstat (limited to 'community/btanks')
-rw-r--r-- | community/btanks/PKGBUILD | 75 | ||||
-rw-r--r-- | community/btanks/btanks.install | 7 | ||||
-rw-r--r-- | community/btanks/btanks_desktop | 10 | ||||
-rw-r--r-- | community/btanks/btanks_script | 6 | ||||
-rw-r--r-- | community/btanks/bted_script | 6 | ||||
-rw-r--r-- | community/btanks/gcc-4.6.patch | 70 | ||||
-rw-r--r-- | community/btanks/lua52.patch | 21 |
7 files changed, 195 insertions, 0 deletions
diff --git a/community/btanks/PKGBUILD b/community/btanks/PKGBUILD new file mode 100644 index 000000000..838429b61 --- /dev/null +++ b/community/btanks/PKGBUILD @@ -0,0 +1,75 @@ +# $Id: PKGBUILD 81100 2012-12-12 00:47:26Z eric $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Nick B <Shirakawasuna at gmail _dot_ com> + +pkgname=btanks +pkgver=0.9.8083 +pkgrel=4 +pkgdesc="Fast 2d tank arcade game with multiplayer and split-screen modes." +arch=('i686' 'x86_64') +url="http://btanks.sourceforge.net" +license=('GPL') +depends=('expat' 'libgl' 'libsigc++2.0' 'libvorbis' 'lua' 'openal' 'sdl' 'sdl_image' + 'smpeg' 'glu' "btanks-data=$pkgver") +makedepends=('scons' 'chrpath' 'mesa') +source=(http://downloads.sourceforge.net/btanks/btanks-$pkgver.tar.bz2 + btanks_desktop + btanks_script + bted_script + gcc-4.6.patch + lua52.patch) +install=btanks.install +md5sums=('49cb95c0eec47d3436c4fdf65e7c9d12' + 'a2ddeb1e79dff8d3fd702984c8d3aab5' + '07657cfa71b1de1d008cc5e3ade9749b' + '91a61c0f581ea27281bdaecb7a3cd58b' + 'b816c5f3ae2d6cd954c15569d4baf123' + 'e7af4af59255166bee530cbabd953226') + +build() { + cd $srcdir/$pkgname-$pkgver + + sed -i '1,1i#include <sys/types.h>' mrt/base_file.h + patch -p1 <$srcdir/gcc-4.6.patch + patch -p1 <$srcdir/lua52.patch + + python2 engine/sl08/sl08.py >engine/sl08/sl08.h + scons + + mkdir -p $pkgdir/usr/share/btanks + cp *.so btanks bted $pkgdir/usr/share/btanks/ + + # Install script + install -D -m755 $srcdir/bted_script $pkgdir/usr/bin/bted + install -D -m755 $srcdir/btanks_script $pkgdir/usr/bin/btanks + + # Install desktop file + install -D -m644 $srcdir/btanks_desktop $pkgdir/usr/share/applications/btanks.desktop + + # Install icon + install -D -m644 $srcdir/$pkgname-$pkgver/data/tiles/icon.png $pkgdir/usr/share/pixmaps/btanks.png + + # Make settings saveable + touch $pkgdir/usr/share/btanks/bt.xml + chown :games $pkgdir/usr/share/btanks/bt.xml + chmod 664 $pkgdir/usr/share/btanks/bt.xml + + # move executables, fix rpath + cd $pkgdir/usr/share/btanks + mkdir -p $pkgdir/usr/bin $pkgdir/usr/lib/btanks + + mv btanks $pkgdir/usr/bin/btanks-bin + mv bted $pkgdir/usr/bin/bted-bin + mv *.so $pkgdir/usr/lib/btanks/ + + ln -s /usr/bin/btanks-bin ./btanks + ln -s /usr/bin/bted-bin ./bted + + ls -1 $pkgdir/usr/lib/btanks/ | while read A; do + ln -s /usr/lib/btanks/$A ./$A + done + + chrpath -d $pkgdir/usr/bin/bted-bin + chrpath -d $pkgdir/usr/bin/btanks-bin + chrpath -d $pkgdir/usr/lib/btanks/*.so +} diff --git a/community/btanks/btanks.install b/community/btanks/btanks.install new file mode 100644 index 000000000..f9ac8fce7 --- /dev/null +++ b/community/btanks/btanks.install @@ -0,0 +1,7 @@ +post_install() { + echo "In order to be able to change game preferences, you must be in the 'games' group." +} + +post_upgrade() { + echo "In order to be able to change game preferences, you must be in the 'games' group." +} diff --git a/community/btanks/btanks_desktop b/community/btanks/btanks_desktop new file mode 100644 index 000000000..548fa7bfe --- /dev/null +++ b/community/btanks/btanks_desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Version=1.0 +Name=Battle Tanks! +Comment= A 2D arcade tank battle! +Icon=btanks +Exec=btanks +Terminal=false +StartupNotify=false +Categories=Game;ArcadeGame; diff --git a/community/btanks/btanks_script b/community/btanks/btanks_script new file mode 100644 index 000000000..86ad105ef --- /dev/null +++ b/community/btanks/btanks_script @@ -0,0 +1,6 @@ +#!/bin/bash +#This is the script for running the actual btanks executable + +cd /usr/share/btanks/ +export LD_LIBRARY_PATH=/usr/lib/btanks +exec ./btanks diff --git a/community/btanks/bted_script b/community/btanks/bted_script new file mode 100644 index 000000000..69ba70309 --- /dev/null +++ b/community/btanks/bted_script @@ -0,0 +1,6 @@ +#!/bin/bash +#This is the script for running the actual bted executable + +cd /usr/share/btanks/ +export LD_LIBRARY_PATH=/usr/lib/btanks +exec ./bted diff --git a/community/btanks/gcc-4.6.patch b/community/btanks/gcc-4.6.patch new file mode 100644 index 000000000..c944378fd --- /dev/null +++ b/community/btanks/gcc-4.6.patch @@ -0,0 +1,70 @@ +diff -wbBur btanks-0.9.8083/engine/sl08/sl08.py btanks-0.9.8083.my/engine/sl08/sl08.py +--- btanks-0.9.8083/engine/sl08/sl08.py 2008-08-13 13:10:45.000000000 +0400 ++++ btanks-0.9.8083.my/engine/sl08/sl08.py 2012-11-15 18:04:44.002524495 +0400 +@@ -152,11 +152,11 @@ + typedef base_signalXXX %s signal_type; + typedef return_type (object_type::*func_t) %s; + +- inline slotXXX () : object(NULL), func(NULL) {} +- inline slotXXX(object_type *object, func_t func, signal_type * signal = NULL) : object(object), func(func) {} ++ inline slotXXX () : object(0), func(0) {} ++ inline slotXXX(object_type *object, func_t func, signal_type * signal = 0) : object(object), func(func) {} + + inline void assign(object_type *o, func_t f) { object = o; func = f; } +- inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; connect(signal_ref); } ++ inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; base_slotXXX%s::connect(signal_ref); } + + inline return_type operator() %s const { + return (object->*func) %s ; +@@ -175,7 +175,9 @@ + self.template_declaration('slot'), + self.template_parameters('base-slot'), + self.template_parameters('base-slot'), +- self.prototype(True), self.prototype(True), self.prototype(False), ++ self.prototype(True), ++ self.template_parameters('base-signal'), ++ self.prototype(True), self.prototype(False), + ) + + #specialized version of the slot +@@ -187,10 +189,10 @@ + typedef base_signalXXX %s signal_type; + typedef void (object_type::*func_t) %s ; + +- inline slotXXX () : object(NULL), func(NULL) {} ++ inline slotXXX () : object(0), func(0) {} + inline slotXXX (object_type *object, func_t func) : object(object), func(func) {} + inline void assign(object_type *o, func_t f) { object = o; func = f; } +- inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; connect(signal_ref); } ++ inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; base_slotXXX%s::connect(signal_ref); } + + inline void operator() %s const { + (object->*func) %s; +@@ -206,6 +208,7 @@ + self.template_parameters('base-slot', True), + self.template_parameters('base-slot', True), + self.prototype(True), ++ self.template_parameters('base-slot', True), + self.prototype(True), + self.prototype(False), + ) +diff -wbBur btanks-0.9.8083/math/range_list.h btanks-0.9.8083.my/math/range_list.h +--- btanks-0.9.8083/math/range_list.h 2008-10-24 18:15:55.000000000 +0400 ++++ btanks-0.9.8083.my/math/range_list.h 2012-11-15 18:11:52.049236706 +0400 +@@ -53,14 +53,14 @@ + return; + } + +- typename parent_type::iterator i = lower_bound(value); ++ typename parent_type::iterator i = std::map<const T, T>::lower_bound(value); + if (i != parent_type::end()) { + if (i->first == value) + return; + + if (value + 1 == i->first) { + T e = i->second; +- erase(i); ++ std::map<const T, T>::erase(i); + i = parent_type::insert(typename parent_type::value_type(value, e)).first; //expand beginning + i = pack_left(i); + } diff --git a/community/btanks/lua52.patch b/community/btanks/lua52.patch new file mode 100644 index 000000000..e27d5fdb7 --- /dev/null +++ b/community/btanks/lua52.patch @@ -0,0 +1,21 @@ +diff -wbBur btanks-0.9.8083/engine/luaxx/state.cpp btanks-0.9.8083.my/engine/luaxx/state.cpp +--- btanks-0.9.8083/engine/luaxx/state.cpp 2008-06-08 13:02:39.000000000 +0400 ++++ btanks-0.9.8083.my/engine/luaxx/state.cpp 2012-11-15 18:59:07.000000000 +0400 +@@ -59,7 +59,7 @@ + void State::load(const std::string &fname, const mrt::Chunk &data) { + //throw_ex(("implement me[%s]", fname.c_str())); + reader_state x(data); +- int err = lua_load(state, chunk_reader, &x, fname.c_str()); ++ int err = lua_load(state, chunk_reader, &x, fname.c_str(), NULL); + check_error(state, err); + } + +@@ -81,7 +81,7 @@ + assert(state == NULL); + + //state = lua_newstate(l_alloc, this); +- state = lua_open(); ++ state = luaL_newstate(); + if (state == NULL) + throw_ex(("cannot create lua interpreter")); + |