diff options
-rw-r--r-- | games/battletanks/Makefile | 23 | ||||
-rw-r--r-- | games/battletanks/files/btanks.6 | 145 | ||||
-rw-r--r-- | games/battletanks/files/patch-clunk-SConscript | 24 | ||||
-rw-r--r-- | games/battletanks/files/patch-gcc-4.6 | 26 |
4 files changed, 183 insertions, 35 deletions
diff --git a/games/battletanks/Makefile b/games/battletanks/Makefile index 5edfe4104775..a2500bbc6803 100644 --- a/games/battletanks/Makefile +++ b/games/battletanks/Makefile @@ -11,7 +11,7 @@ PORTREVISION= 1 CATEGORIES= games MASTER_SITES= SF/${PORTNAME}/${PORTNAME}-source/ -MAINTAINER= danfe@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= Fast 2D tank arcade game with multiplayer and split-screen modes BUILD_DEPENDS= zip:${PORTSDIR}/archivers/zip @@ -29,31 +29,32 @@ USE_SDL= image sdl USE_SCONS= yes SCONS_ARGS= prefix=${PREFIX} resources_dir=${DATADIR} SCONS_BUILDENV= CC="${CC}" CXX="${CXX}" \ - CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \ + CFLAGS="${CFLAGS} -fpermissive" CXXFLAGS="${CXXFLAGS}" \ LDFLAGS="${LDFLAGS} ${PTHREAD_LIBS}" \ - CPPPATH="${LOCALBASE}/include" \ - LIBPATH="${LOCALBASE}/lib" + CPPPATH="${LOCALBASE}/include" LIBPATH="${LOCALBASE}/lib" + +MAN6= ${PORTNAME}.6 PORTDOCS= LICENSE LICENSE.EXCEPTION README-en.txt README-linux.txt \ donate.url homepage.url project_page.url video.txt -DESKTOP_ENTRIES="Battle Tanks" "${COMMENT}" "" "btanks" \ +DESKTOP_ENTRIES="Battle Tanks" "${COMMENT}" "" "${PORTNAME}" \ "Application;Game;" false -.include <bsd.port.pre.mk> - -.if ${OSVERSION} < 700000 -SCONS_ARGS+= gcc_visibility=false -.endif +pre-build: +# Must regenerate `sl08.h' after we patch `sl08.py' (patching header itself +# would have resulted in a larger diff and gratuitous difference with Debian) + @cd ${WRKSRC} && python engine/sl08/sl08.py > engine/sl08/sl08.h post-install: ${INSTALL_DATA} ${WRKSRC}/build/release/clunk/libclunk.so \ ${WRKSRC}/build/release/engine/libbtanks_engine.so \ ${WRKSRC}/build/release/mrt/libmrt.so \ ${WRKSRC}/build/release/sdlx/libsdlx.so ${PREFIX}/lib + ${INSTALL_MAN} ${FILESDIR}/${MAN6} ${MANPREFIX}/man/man6 .if !defined(NOPORTDOCS) @${MKDIR} ${DOCSDIR} ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${DOCSDIR} .endif -.include <bsd.port.post.mk> +.include <bsd.port.mk> diff --git a/games/battletanks/files/btanks.6 b/games/battletanks/files/btanks.6 new file mode 100644 index 000000000000..3546544aa660 --- /dev/null +++ b/games/battletanks/files/btanks.6 @@ -0,0 +1,145 @@ +.\" (c) 2007 Miriam Ruiz <little_miry@yahoo.es> +.\" (c) 2006-2007 Battle Tanks Team +.\" (c) 2005-2007 Vladimir Menshakov +.\" +.\" This document 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. +.\" +.\" This package 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 this package; if not, write to the Free Software +.\" Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +.TH "Battle Tanks" "6" "" "" "" +.SH "NAME" +btanks \- fast 2D tank arcade game +.SH "DESCRIPTION" +Battle Tanks is a funny battle on your desk, where you can choose one of three vehicles and eliminate your enemy using the whole arsenal of weapons. has original cartoon\-like graphics and cool music, it is fun and dynamic, it has several network modes for deathmatch and cooperative. + +.P +what else is needed to have fun with your friends? And all is packed and ready for you in "Battle Tanks". + +.P +Features: +.TP +\fBMultiplayer\fR +"Battle Tanks" is a multiplayer game in the first place. Network game and split screen mode are available, and also a mixed mode is possible, when two players use split screen on the server computer, and others connect via LAN.Two modes are possible: deathmatch battle and cooperative game. +.TP +\fBCross\-platform\fR +"Battle Tanks" is cross\-platform. Both Windows and Linux fans are welcome on the battlefield where they will settle their quarrels in the name of weapons. +.TP +\fBFree distribution and open source\fR +The multiplayer version is licensed under GNU GPL. This means two things. Firstly, it doesn't cost anything for you. You can download it for free and share with your friends, with no preliminary or future fees. And secondly, the full source code of the game is available, so any guy who knows C++ can poke his nose there and probably find some surprises that developers have prepared for curious fans. +.TP +\fBOld\-school oriented\fR +Builders of "Battle Tanks" love these good old arcades of the past century. So they have tried hard to implement everything best of these old arcade games. + +.P +Performance characteristics: +.TP +\fBThree vehicles:\fR tank, Shilka, and rocket launcher. Each vehicle has its special features. +.TP +\fBLots of weapons:\fR four types of ammo, six types of rockets, landing troops, mines, and so on. +.TP +\fBTen multiplayer maps\fR (seven ones for deathmatch and three ones for cooperative mode) in different locations such as city, village, forest, desert and so on. +.TP +\fBGame world that reacts on player.\fR Roads have traffic, buildings can be destroyed, weather effects are simulated. +.TP +\fBLots of war objects:\fR troops, vehicles, helicopters and other. +.TP +\fBKeyboard and gamepad\fR are supported. +.SH "WEAPON LIST" +1. Ammo + +Gun is the main weapon of tank and Shilka. Guns don't require ammunition, but their piercing ability is much lower that one for rockets. + +.TP +\fB"Eternal fire" type tank shell\fR +Type shell that is shipped with tank and Shilka. The gun on Shilka is faster that one on tank, but each hit does less damage. +Guns have infinite ammunition. + +.TP +\fBShell with laughset focal point\fR +The main feature of the shell with laughset focal point (also called shell with uncertain orientation) is bouncing from obstacles. This shell is good for urban battles, also it will help when shooting an enemy that has covered behind something solid or impenetrable. The disadvantage of this model is that you never know where it will bounce. + +.TP +\fBExplosive shell\fR +The explosive shell is also known as Matreshka shell. Inside the jacket of this shell, several small shells are nested. A small time after the shot, the matreshka opens, and nested shells spread in different directions. Each hit causes relatively small damage, but large area is covered. This model is intended for use against enemy crowds. It is ineffective in close face to face duels. + +.TP +\fBDirt gun\fR +Dirt gun is invented by crazy agronomists. By the aid of concentration of energy in near\-surface layers, nano\-wave fluctuations cause temporary inversion of field. Lower layers are found on the top, thus introducing a short\-time effect of plowing the surface (this is broadly used during the sowing campaign). In battle, the dirt gun can be used for making dirt spots of reduced passability. Enemy troops and vehicles suffer loss of control and speed in these plowed areas. +Pimary weapon Secondary weapon + +.P +2. Rockets + +Rockets are large, so number of rockets that a vehicle carries is limited. Rockets are main weapon of rocket launcher. + +.TP +\fBHoming missile\fR +Homing missile is a type weapon and is shipped with rocket launchers. It can also be used on tanks as a secondary weapon. After the launch, the rocket finds a target and guides its flight by its own. Unlike the heat\-aimed rockets, this model detects delta waves emitted by human brains, and thus can be used against troops and manned vehicles. Unfortunately, this method of detection ignores androids and intellectually challenged individuals. +Another disadvantage is that rocket doesn't avoid obstacles (avoiding function is announced in the next stable release of rocket drivers binary). + +.TP +\fBUncontrolled rocket\fR +This is a Dumb\-fire modification of the type rocket that can be equipped as a secondary weapon. At the expense of electronics, explosive charge and velocity are increased. Due to its high velocity and high damage caused, this rocket is very good for making fire barriers, destroying enemy weapon emplacements, and in face to face battles. + +.TP +\fBBoomerang rocket\fR +Boomerang rocket is an accidental modification of the homing missile that has been found after beta drivers were installed from a damaged CD on some test rocket. On ground tests, that rocket introduced a non\-typical behaviour: it didn't select a target after the launch, but just circled around the launcher, following an elliptical trajectory. Nobody can explain still why the rocket does that; however boomerang rockets have been approved and are produced on the line now. They can be used for defense; also boomerang rockets are effective in close battle. + +.TP +\fBGas rocket\fR +Gas rocket is stuffed with toxic and radioactive wastes of fragrance industry. They are prohibited by Geneva Protocol because of their incredibly disgusting and beautiful smell. A humanoid that has inhaled the gas suffers convulsions, sialorrhea, retching, diarrhea, and dies with happy smile on face. +The gas rockets are perfect for eliminating troops. In multiplayer, they scan be used for making smoke screens. + +.TP +\fBStop\-rocket\fR +This homing missile is filled with artificial viruses\-malicious nanorobots. When a rocket hits target, viruses clod between tracks of tank caterpillars, raise pressure of braking fluid in hydraulic systems, and cause temporary paralysis of lower extremities of humanoids. However, these viruses don't affect functioning of weapons systems and other organs of humanoids; side effects or contra\-indication are unknown. Stop\-rocket does not inflict damage, but it's a great secondary weapon that is very effective if combined with explosive or bouncing tank shells, homing missiles and machine guns. + +.TP +\fBNuclear missile "Pure Thermonuke"\fR +This 15 kilotons nuke is the most destructive weapon in the game. It destroys everything in range of explosion, and using or thermonuclear reaction guarantees that radiation pollution will be negligibly small. So the ground can be used just after the enemy is vaporized by the heat of nuclear blast. +Secondary weapon + +.P +3. Preserved landing force + +Five fully equipped troops are frozen and GZIPped into standard rectangular bricks. Before refrigeration, each trooper is prepared using special hormons and steroids, and can be used in action after quick microwave\-aided defreezing. Shipped in two versions with machine guns and handheld rocket launchers. + +.TP +\fBMachine gun trooper\fR +The trooper takes a position and fires the enemy objects (including missiles). 16 directions of fire are available. +Shilka lands MG troopers for support. Thanks to their high fire rate and mobility, MG troopers can defend a vehicle against enemy missiles. + +.TP +\fBRocket trooper\fR +The trooper takes a position and fires the enemy objects (NOT including missiles). 8 directions of fire are available. Shilka lands rocket troopers for support. Due to their fire power, rocket troopers are good for attacking the enemy. + +.P +4. Other weapons + +Other weapons include mines and MG turrets. +Mine + +.TP +\fBMine\fR +Mines are effective equally against troops and vehicles. They have winning appearance, and are easy to install and use. +Using of mines allows unique and great tactical opportunities, both in single missions and deathmatch. Routes, respawn points, hidings of weapons \- everything can be mined. Remember that the mine is invisible if covered with dirt or smoke! + +.TP +\fBMG turret\fR +MG turret is a primitive robot that shoots everything that is moving. Some turrets are shipped with "ally\-enemy" recognition system. In stationary version, MG turrets can be used for automated security systems. Mobile versions can be mounted on rocket launchers. 16 directions of fire are available. +.SH "SEE ALSO" +You can find more about the game on its homepage: http://btanks.sourceforge.net +.P +You have more information available in /usr/share/doc/btanks/html/index.html +.SH "AUTHOR" +The game has been written by Vladimir Menshakov, Methos Wagner and Vladimir Zhuravlev, and is distributed under the GNU General Public License, either version 2 of the License, or (at your option) any later version. + diff --git a/games/battletanks/files/patch-clunk-SConscript b/games/battletanks/files/patch-clunk-SConscript deleted file mode 100644 index 8729e59a7897..000000000000 --- a/games/battletanks/files/patch-clunk-SConscript +++ /dev/null @@ -1,24 +0,0 @@ ---- clunk/SConscript.orig 2009-07-14 19:35:56.000000000 +0200 -+++ clunk/SConscript 2010-01-16 16:16:31.000000000 +0100 -@@ -10,8 +10,8 @@ - env.Append(CPPPATH=['..', '.']) - env.Append(LIBPATH=['.']) - env.Append(CPPDEFINES=['CLUNKAPI=DLLEXPORT']) --if have_sse: -- env.Append(CPPDEFINES=['USE_SIMD']) -+#if have_sse: -+# env.Append(CPPDEFINES=['USE_SIMD']) - - clunk_libs = ['SDL'] - -@@ -25,8 +25,8 @@ - 'context.cpp', 'sample.cpp', 'object.cpp', 'source.cpp', 'sdl_ex.cpp', 'stream.cpp', - 'kemar.c', 'buffer.cpp', 'distance_model.cpp', 'logger.cpp', 'clunk_ex.cpp', ] - --if have_sse: -- clunk_src.append('sse_fft_context.cpp') -+#if have_sse: -+# clunk_src.append('sse_fft_context.cpp') - - clunk = env.SharedLibrary('clunk', clunk_src, LIBS=clunk_libs) - diff --git a/games/battletanks/files/patch-gcc-4.6 b/games/battletanks/files/patch-gcc-4.6 new file mode 100644 index 000000000000..fec0be39443a --- /dev/null +++ b/games/battletanks/files/patch-gcc-4.6 @@ -0,0 +1,26 @@ +From: Ansgar Burchardt <ansgar@debian.org> +Bug-Debian: http://bugs.debian.org/624916 +Subject: Fix FTBFS with gcc-4.6 + +--- engine/sl08/sl08.py.orig ++++ engine/sl08/sl08.py +@@ -152,8 +152,8 @@ class Generator(object): + 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); } +@@ -187,7 +187,7 @@ class Generator(object): + 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); } |