aboutsummaryrefslogtreecommitdiffstats
path: root/games
diff options
context:
space:
mode:
authormiwi <miwi@FreeBSD.org>2008-02-19 03:52:20 +0800
committermiwi <miwi@FreeBSD.org>2008-02-19 03:52:20 +0800
commit0459bafd80a4854c49b4e13a676db063b66d87ea (patch)
tree633e6cd318c2b8bd9818f8f0f591a9639df69deb /games
parent4e4d90197e23549ea69451893ebbab1c7827295c (diff)
downloadfreebsd-ports-gnome-0459bafd80a4854c49b4e13a676db063b66d87ea.tar.gz
freebsd-ports-gnome-0459bafd80a4854c49b4e13a676db063b66d87ea.tar.zst
freebsd-ports-gnome-0459bafd80a4854c49b4e13a676db063b66d87ea.zip
Teewars is a freeware online multiplayer game, designed as a crossover
between Quake and Worms. Set on platform-based maps, players control a cute little bugger with guns to take out as many opponents as possible. The characters can jump but move more quickly using a grappling hook, swinging through the levels. It can also be used to lock other players to keep them near. The available weapons include a pistol, shotgun, grenade launcher and a hammer. The shooting and grappling direction is shown through a cursor, controlled by the mouse. A special power-up temporarily provides a ninja sword, used to slash through enemies. Each character has an amount of health and shield. Items scattered around include additional ammo, and health and shield bonuses. Unlike Worms, all the action that happens is fast-paced and happens in real-time. It supports CTF mode. WWW: http://www.teewars.com/ PR: ports/120778 Submitted by: Dmitry Marakasov <amdmi3 at amdmi3.ru>
Diffstat (limited to 'games')
-rw-r--r--games/Makefile1
-rw-r--r--games/teewars/Makefile69
-rw-r--r--games/teewars/distinfo6
-rw-r--r--games/teewars/files/patch-default.bam76
-rw-r--r--games/teewars/pkg-descr16
-rw-r--r--games/teewars/pkg-plist158
-rw-r--r--games/teeworlds/Makefile69
-rw-r--r--games/teeworlds/distinfo6
-rw-r--r--games/teeworlds/files/patch-default.bam76
-rw-r--r--games/teeworlds/pkg-descr16
-rw-r--r--games/teeworlds/pkg-plist158
11 files changed, 651 insertions, 0 deletions
diff --git a/games/Makefile b/games/Makefile
index fe472c1141d8..e9af9eef9362 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -749,6 +749,7 @@
SUBDIR += taxipilot
SUBDIR += tbclock
SUBDIR += tecnoballz
+ SUBDIR += teewars
SUBDIR += teg
SUBDIR += tenebrae
SUBDIR += tetrinet
diff --git a/games/teewars/Makefile b/games/teewars/Makefile
new file mode 100644
index 000000000000..7559d8c18589
--- /dev/null
+++ b/games/teewars/Makefile
@@ -0,0 +1,69 @@
+# New ports collection makefile for: teewars
+# Date created: 17 Feb 2008
+# Whom: Dmitry Marakasov <amdmi3@amdmi3.ru>
+#
+# $FreeBSD$
+#
+
+PORTNAME= teewars
+PORTVERSION= 0.3.4
+CATEGORIES= games
+MASTER_SITES= http://www.teewars.com/files/ \
+ http://www.amdmi3.ru/distfiles/
+DISTNAME= ${PORTNAME}-${PORTVERSION}-src
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX} bam${EXTRACT_SUFX}
+
+MAINTAINER= amdmi3@amdmi3.ru
+COMMENT= Platform game featuring buggers equipped with weapons
+
+USE_ZIP= yes
+USE_PYTHON_BUILD= yes
+
+BAM= ${WRKDIR}/bam.bin
+BAM_TARGET= release
+
+OPTIONS= TEEWARS_SERVER_ONLY "Build dedicated server only" off
+
+.include <bsd.port.pre.mk>
+
+.if defined(WITH_TEEWARS_SERVER_ONLY)
+BAM_TARGET= server_release
+PLIST_SUB+= CLIENT="@comment "
+.else
+LIB_DEPENDS+= portaudio.2:${PORTSDIR}/audio/portaudio2
+USE_GL= yes
+PLIST_SUB+= CLIENT=""
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' ${WRKSRC}/default.bam
+ @${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|g' ${WRKSRC}/default.bam
+ @${REINPLACE_CMD} -e 's|\(s.cc.c_compiler = \).*|\1"${CC}"|; \
+ s|\(s.cc.cxx_compiler = \).*|\1"${CXX}"|; \
+ s|\(s.cc.flags = \).*|\1"${CFLAGS}"|; \
+ s|\(s.linker.linker = \).*|\1"${CXX}"|' \
+ ${WRKDIR}/bam/src/base.bam
+ @${FIND} ${WRKSRC}/src -name "*.c" -o -name "*.cpp" | \
+ ${XARGS} ${REINPLACE_CMD} -e 's|"data/|"${DATADIR}/|g'
+ @${REINPLACE_CMD} -e 's|"data/|"${DATADIR}/|g' ${WRKSRC}/datasrc/*
+
+# build bam executable - teewars own build system
+pre-build:
+ cd ${WRKDIR}/bam && ${CC} ${CFLAGS} src/tools/txt2c.c -o src/tools/txt2c
+ cd ${WRKDIR}/bam && src/tools/txt2c < src/base.bam > src/internal_base.h
+ cd ${WRKDIR}/bam && ${CC} ${CFLAGS} src/lua/src/*.c src/lua/src/lib/*.c \
+ src/*.c -Isrc/lua/include -o ${BAM} -lm ${PTHREAD_LIBS}
+
+# build teewars
+do-build:
+ cd ${WRKSRC} && ${BAM} ${BAM_TARGET}
+
+do-install:
+.if !defined(WITH_TEEWARS_SERVER_ONLY)
+ ${INSTALL_PROGRAM} ${WRKSRC}/teewars ${PREFIX}/bin
+.endif
+ ${INSTALL_PROGRAM} ${WRKSRC}/teewars_srv ${PREFIX}/bin
+ ${MKDIR} ${DATADIR}
+ @cd ${WRKSRC}/data && ${COPYTREE_SHARE} . ${DATADIR}/
+
+.include <bsd.port.post.mk>
diff --git a/games/teewars/distinfo b/games/teewars/distinfo
new file mode 100644
index 000000000000..2aa8a4040a79
--- /dev/null
+++ b/games/teewars/distinfo
@@ -0,0 +1,6 @@
+MD5 (teewars-0.3.4-src.zip) = ed56470043b0dc73caa55a741282c761
+SHA256 (teewars-0.3.4-src.zip) = 8ed3152a9fc631dce0c4da7ca991728895e2660b217bb26063c02503a36c0861
+SIZE (teewars-0.3.4-src.zip) = 4438820
+MD5 (bam.zip) = 91065fcce9296b7259d71ef6aafe347a
+SHA256 (bam.zip) = 616834108060c4f573d19dd087d6c4c5d5e40b8987002c9b9df089fb194fa71c
+SIZE (bam.zip) = 475348
diff --git a/games/teewars/files/patch-default.bam b/games/teewars/files/patch-default.bam
new file mode 100644
index 000000000000..b360144c23b0
--- /dev/null
+++ b/games/teewars/files/patch-default.bam
@@ -0,0 +1,76 @@
+--- default.bam.orig 2008-02-09 22:10:40.000000000 +0300
++++ default.bam 2008-02-18 00:06:31.000000000 +0300
+@@ -173,19 +173,20 @@
+ settings.cc.flags = "/wd4244"
+ else
+ settings.cc.flags = "-Wall"
+- settings.linker.flags = ""
++ settings.linker.flags = "-L/usr/local/lib/portaudio2 -L/usr/local/lib -pthread"
++ settings.linker.libs:add("z")
+ end
+
+ -- set some platform specific settings
+ settings.cc.includes:add("src")
+- settings.cc.includes:add("src/external/zlib")
++ settings.cc.includes:add("/usr/local/include/portaudio2")
++ settings.cc.includes:add("/usr/local/include")
+
+ if family == "unix" then
+ if platform == "macosx" then
+ glfw_platform = "macosx"
+ else
+ glfw_platform = "x11"
+- settings.linker.libs:add("pthread")
+ end
+ elseif family == "windows" then
+ glfw_platform = "win32"
+@@ -217,7 +218,6 @@
+ else
+ engine_settings.cc.flags = "-Wall -pedantic-errors"
+ end
+- engine_settings.linker.flags = ""
+ end
+
+ -- server
+@@ -237,10 +237,11 @@
+ client_settings.linker.frameworks:add("AudioToolbox")
+ client_settings.linker.frameworks:add("AudioUnit")
+ else
+- client_settings.linker.libs:add("asound")
+ client_settings.linker.libs:add("X11")
++ client_settings.linker.libs:add("Xxf86vm")
+ client_settings.linker.libs:add("GL")
+ client_settings.linker.libs:add("GLU")
++ client_settings.linker.libs:add("portaudio")
+ end
+ elseif family == "windows" then
+ client_settings.linker.libs:add("opengl32.lib")
+@@ -249,10 +250,8 @@
+ end
+
+ external_settings = settings:copy()
+- zlib = Compile(external_settings, Collect("src/engine/external/zlib/*.c"))
+ wavpack = Compile(external_settings, Collect("src/engine/external/wavpack/*.c"))
+ pnglite = Compile(external_settings, Collect("src/engine/external/pnglite/*.c"))
+- portaudio = Compile(external_settings, Collect("src/engine/external/pa.c"))
+
+ engine = Compile(engine_settings, Collect("src/engine/*.c"))
+ client = Compile(client_settings, Collect("src/engine/client/*.c"))
+@@ -280,7 +279,7 @@
+
+ -- build client, server and master server
+ client_exe = Link(client_settings, "teewars", game_shared, game_client,
+- engine, client, editor, glfw, portaudio, zlib, pnglite, wavpack,
++ engine, client, editor, glfw, pnglite, wavpack,
+ client_link_other)
+
+ server_exe = Link(server_settings, "teewars_srv", engine, server,
+@@ -326,7 +325,7 @@
+ release_settings.config_name = "release"
+ release_settings.config_ext = ""
+ release_settings.debug = 0
+-release_settings.cc.optimize = 1
++release_settings.cc.optimize = 0
+
+ DefaultTarget(build(debug_settings))
+ build(release_settings)
diff --git a/games/teewars/pkg-descr b/games/teewars/pkg-descr
new file mode 100644
index 000000000000..005c6a855e7d
--- /dev/null
+++ b/games/teewars/pkg-descr
@@ -0,0 +1,16 @@
+Teewars is a freeware online multiplayer game, designed as a crossover
+between Quake and Worms. Set on platform-based maps, players control
+a cute little bugger with guns to take out as many opponents as
+possible. The characters can jump but move more quickly using a
+grappling hook, swinging through the levels. It can also be used
+to lock other players to keep them near. The available weapons
+include a pistol, shotgun, grenade launcher and a hammer. The
+shooting and grappling direction is shown through a cursor, controlled
+by the mouse. A special power-up temporarily provides a ninja sword,
+used to slash through enemies. Each character has an amount of
+health and shield. Items scattered around include additional ammo,
+and health and shield bonuses. Unlike Worms, all the action that
+happens is fast-paced and happens in real-time. It supports CTF
+mode.
+
+WWW: http://www.teewars.com/
diff --git a/games/teewars/pkg-plist b/games/teewars/pkg-plist
new file mode 100644
index 000000000000..b8659e82d595
--- /dev/null
+++ b/games/teewars/pkg-plist
@@ -0,0 +1,158 @@
+%%CLIENT%%bin/teewars
+bin/teewars_srv
+%%DATADIR%%/audio/foley_body_impact-01.wv
+%%DATADIR%%/audio/foley_body_impact-02.wv
+%%DATADIR%%/audio/foley_body_impact-03.wv
+%%DATADIR%%/audio/foley_body_splat-01.wv
+%%DATADIR%%/audio/foley_body_splat-02.wv
+%%DATADIR%%/audio/foley_body_splat-03.wv
+%%DATADIR%%/audio/foley_body_splat-04.wv
+%%DATADIR%%/audio/foley_dbljump-01.wv
+%%DATADIR%%/audio/foley_dbljump-02.wv
+%%DATADIR%%/audio/foley_dbljump-03.wv
+%%DATADIR%%/audio/foley_foot_left-01.wv
+%%DATADIR%%/audio/foley_foot_left-02.wv
+%%DATADIR%%/audio/foley_foot_left-03.wv
+%%DATADIR%%/audio/foley_foot_left-04.wv
+%%DATADIR%%/audio/foley_foot_right-01.wv
+%%DATADIR%%/audio/foley_foot_right-02.wv
+%%DATADIR%%/audio/foley_foot_right-03.wv
+%%DATADIR%%/audio/foley_foot_right-04.wv
+%%DATADIR%%/audio/foley_land-01.wv
+%%DATADIR%%/audio/foley_land-02.wv
+%%DATADIR%%/audio/foley_land-03.wv
+%%DATADIR%%/audio/foley_land-04.wv
+%%DATADIR%%/audio/hook_attach-01.wv
+%%DATADIR%%/audio/hook_attach-02.wv
+%%DATADIR%%/audio/hook_attach-03.wv
+%%DATADIR%%/audio/hook_loop-01.wv
+%%DATADIR%%/audio/hook_loop-02.wv
+%%DATADIR%%/audio/sfx_ctf_cap_pl.wv
+%%DATADIR%%/audio/sfx_ctf_drop.wv
+%%DATADIR%%/audio/sfx_ctf_grab_en.wv
+%%DATADIR%%/audio/sfx_ctf_grab_pl.wv
+%%DATADIR%%/audio/sfx_ctf_rtn.wv
+%%DATADIR%%/audio/sfx_hit_strong-01.wv
+%%DATADIR%%/audio/sfx_hit_strong-02.wv
+%%DATADIR%%/audio/sfx_hit_weak-01.wv
+%%DATADIR%%/audio/sfx_hit_weak-02.wv
+%%DATADIR%%/audio/sfx_hit_weak-03.wv
+%%DATADIR%%/audio/sfx_msg-client.wv
+%%DATADIR%%/audio/sfx_msg-server.wv
+%%DATADIR%%/audio/sfx_pickup_arm-01.wv
+%%DATADIR%%/audio/sfx_pickup_arm-02.wv
+%%DATADIR%%/audio/sfx_pickup_arm-03.wv
+%%DATADIR%%/audio/sfx_pickup_arm-04.wv
+%%DATADIR%%/audio/sfx_pickup_gun.wv
+%%DATADIR%%/audio/sfx_pickup_hrt-01.wv
+%%DATADIR%%/audio/sfx_pickup_hrt-02.wv
+%%DATADIR%%/audio/sfx_pickup_launcher.wv
+%%DATADIR%%/audio/sfx_pickup_ninja.wv
+%%DATADIR%%/audio/sfx_pickup_sg.wv
+%%DATADIR%%/audio/sfx_spawn_wpn-01.wv
+%%DATADIR%%/audio/sfx_spawn_wpn-02.wv
+%%DATADIR%%/audio/sfx_spawn_wpn-03.wv
+%%DATADIR%%/audio/vo_teefault_cry-01.wv
+%%DATADIR%%/audio/vo_teefault_cry-02.wv
+%%DATADIR%%/audio/vo_teefault_ninja-01.wv
+%%DATADIR%%/audio/vo_teefault_ninja-02.wv
+%%DATADIR%%/audio/vo_teefault_ninja-03.wv
+%%DATADIR%%/audio/vo_teefault_ninja-04.wv
+%%DATADIR%%/audio/vo_teefault_pain_long-01.wv
+%%DATADIR%%/audio/vo_teefault_pain_long-02.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-01.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-02.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-03.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-04.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-05.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-06.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-07.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-08.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-09.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-10.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-11.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-12.wv
+%%DATADIR%%/audio/vo_teefault_sledge-01.wv
+%%DATADIR%%/audio/vo_teefault_sledge-02.wv
+%%DATADIR%%/audio/vo_teefault_sledge-03.wv
+%%DATADIR%%/audio/vo_teefault_spawn-01.wv
+%%DATADIR%%/audio/vo_teefault_spawn-02.wv
+%%DATADIR%%/audio/vo_teefault_spawn-03.wv
+%%DATADIR%%/audio/vo_teefault_spawn-04.wv
+%%DATADIR%%/audio/vo_teefault_spawn-05.wv
+%%DATADIR%%/audio/vo_teefault_spawn-06.wv
+%%DATADIR%%/audio/vo_teefault_spawn-07.wv
+%%DATADIR%%/audio/wp_flump_explo-01.wv
+%%DATADIR%%/audio/wp_flump_explo-02.wv
+%%DATADIR%%/audio/wp_flump_explo-03.wv
+%%DATADIR%%/audio/wp_flump_launch-01.wv
+%%DATADIR%%/audio/wp_flump_launch-02.wv
+%%DATADIR%%/audio/wp_flump_launch-03.wv
+%%DATADIR%%/audio/wp_gun_fire-01.wv
+%%DATADIR%%/audio/wp_gun_fire-02.wv
+%%DATADIR%%/audio/wp_gun_fire-03.wv
+%%DATADIR%%/audio/wp_hammer_hit-01.wv
+%%DATADIR%%/audio/wp_hammer_hit-02.wv
+%%DATADIR%%/audio/wp_hammer_hit-03.wv
+%%DATADIR%%/audio/wp_hammer_swing-01.wv
+%%DATADIR%%/audio/wp_hammer_swing-02.wv
+%%DATADIR%%/audio/wp_hammer_swing-03.wv
+%%DATADIR%%/audio/wp_ninja_attack-01.wv
+%%DATADIR%%/audio/wp_ninja_attack-02.wv
+%%DATADIR%%/audio/wp_ninja_attack-03.wv
+%%DATADIR%%/audio/wp_ninja_attack-04.wv
+%%DATADIR%%/audio/wp_ninja_hit-01.wv
+%%DATADIR%%/audio/wp_ninja_hit-02.wv
+%%DATADIR%%/audio/wp_ninja_hit-03.wv
+%%DATADIR%%/audio/wp_ninja_hit-04.wv
+%%DATADIR%%/audio/wp_noammo-01.wv
+%%DATADIR%%/audio/wp_noammo-02.wv
+%%DATADIR%%/audio/wp_noammo-03.wv
+%%DATADIR%%/audio/wp_noammo-04.wv
+%%DATADIR%%/audio/wp_noammo-05.wv
+%%DATADIR%%/audio/wp_shotty_fire-01.wv
+%%DATADIR%%/audio/wp_shotty_fire-02.wv
+%%DATADIR%%/audio/wp_shotty_fire-03.wv
+%%DATADIR%%/audio/wp_switch-01.wv
+%%DATADIR%%/audio/wp_switch-02.wv
+%%DATADIR%%/audio/wp_switch-03.wv
+%%DATADIR%%/big_font.png
+%%DATADIR%%/browse_icons.png
+%%DATADIR%%/checker.png
+%%DATADIR%%/cloudmap.png
+%%DATADIR%%/debug_font.png
+%%DATADIR%%/emoticons.png
+%%DATADIR%%/game.png
+%%DATADIR%%/gui_cursor.png
+%%DATADIR%%/gui_logo.png
+%%DATADIR%%/maps/ctf1.map
+%%DATADIR%%/maps/ctf2.map
+%%DATADIR%%/maps/dm1.map
+%%DATADIR%%/maps/dm2.map
+%%DATADIR%%/maps/dm6.map
+%%DATADIR%%/moon.png
+%%DATADIR%%/mountain_paralax.png
+%%DATADIR%%/skins/bluekitty.png
+%%DATADIR%%/skins/bluestripe.png
+%%DATADIR%%/skins/brownbear.png
+%%DATADIR%%/skins/cammo.png
+%%DATADIR%%/skins/cammostripes.png
+%%DATADIR%%/skins/coala.png
+%%DATADIR%%/skins/default.png
+%%DATADIR%%/skins/limekitty.png
+%%DATADIR%%/skins/ninja.png
+%%DATADIR%%/skins/pinky.png
+%%DATADIR%%/skins/redbopp.png
+%%DATADIR%%/skins/redstripe.png
+%%DATADIR%%/skins/saddo.png
+%%DATADIR%%/skins/toptri.png
+%%DATADIR%%/skins/twinbop.png
+%%DATADIR%%/skins/twintri.png
+%%DATADIR%%/skins/warpaint.png
+%%DATADIR%%/snow.png
+%%DATADIR%%/stars.png
+%%DATADIR%%/sun.png
+@dirrm %%DATADIR%%/skins
+@dirrm %%DATADIR%%/maps
+@dirrm %%DATADIR%%/audio
+@dirrm %%DATADIR%%
diff --git a/games/teeworlds/Makefile b/games/teeworlds/Makefile
new file mode 100644
index 000000000000..7559d8c18589
--- /dev/null
+++ b/games/teeworlds/Makefile
@@ -0,0 +1,69 @@
+# New ports collection makefile for: teewars
+# Date created: 17 Feb 2008
+# Whom: Dmitry Marakasov <amdmi3@amdmi3.ru>
+#
+# $FreeBSD$
+#
+
+PORTNAME= teewars
+PORTVERSION= 0.3.4
+CATEGORIES= games
+MASTER_SITES= http://www.teewars.com/files/ \
+ http://www.amdmi3.ru/distfiles/
+DISTNAME= ${PORTNAME}-${PORTVERSION}-src
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX} bam${EXTRACT_SUFX}
+
+MAINTAINER= amdmi3@amdmi3.ru
+COMMENT= Platform game featuring buggers equipped with weapons
+
+USE_ZIP= yes
+USE_PYTHON_BUILD= yes
+
+BAM= ${WRKDIR}/bam.bin
+BAM_TARGET= release
+
+OPTIONS= TEEWARS_SERVER_ONLY "Build dedicated server only" off
+
+.include <bsd.port.pre.mk>
+
+.if defined(WITH_TEEWARS_SERVER_ONLY)
+BAM_TARGET= server_release
+PLIST_SUB+= CLIENT="@comment "
+.else
+LIB_DEPENDS+= portaudio.2:${PORTSDIR}/audio/portaudio2
+USE_GL= yes
+PLIST_SUB+= CLIENT=""
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' ${WRKSRC}/default.bam
+ @${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|g' ${WRKSRC}/default.bam
+ @${REINPLACE_CMD} -e 's|\(s.cc.c_compiler = \).*|\1"${CC}"|; \
+ s|\(s.cc.cxx_compiler = \).*|\1"${CXX}"|; \
+ s|\(s.cc.flags = \).*|\1"${CFLAGS}"|; \
+ s|\(s.linker.linker = \).*|\1"${CXX}"|' \
+ ${WRKDIR}/bam/src/base.bam
+ @${FIND} ${WRKSRC}/src -name "*.c" -o -name "*.cpp" | \
+ ${XARGS} ${REINPLACE_CMD} -e 's|"data/|"${DATADIR}/|g'
+ @${REINPLACE_CMD} -e 's|"data/|"${DATADIR}/|g' ${WRKSRC}/datasrc/*
+
+# build bam executable - teewars own build system
+pre-build:
+ cd ${WRKDIR}/bam && ${CC} ${CFLAGS} src/tools/txt2c.c -o src/tools/txt2c
+ cd ${WRKDIR}/bam && src/tools/txt2c < src/base.bam > src/internal_base.h
+ cd ${WRKDIR}/bam && ${CC} ${CFLAGS} src/lua/src/*.c src/lua/src/lib/*.c \
+ src/*.c -Isrc/lua/include -o ${BAM} -lm ${PTHREAD_LIBS}
+
+# build teewars
+do-build:
+ cd ${WRKSRC} && ${BAM} ${BAM_TARGET}
+
+do-install:
+.if !defined(WITH_TEEWARS_SERVER_ONLY)
+ ${INSTALL_PROGRAM} ${WRKSRC}/teewars ${PREFIX}/bin
+.endif
+ ${INSTALL_PROGRAM} ${WRKSRC}/teewars_srv ${PREFIX}/bin
+ ${MKDIR} ${DATADIR}
+ @cd ${WRKSRC}/data && ${COPYTREE_SHARE} . ${DATADIR}/
+
+.include <bsd.port.post.mk>
diff --git a/games/teeworlds/distinfo b/games/teeworlds/distinfo
new file mode 100644
index 000000000000..2aa8a4040a79
--- /dev/null
+++ b/games/teeworlds/distinfo
@@ -0,0 +1,6 @@
+MD5 (teewars-0.3.4-src.zip) = ed56470043b0dc73caa55a741282c761
+SHA256 (teewars-0.3.4-src.zip) = 8ed3152a9fc631dce0c4da7ca991728895e2660b217bb26063c02503a36c0861
+SIZE (teewars-0.3.4-src.zip) = 4438820
+MD5 (bam.zip) = 91065fcce9296b7259d71ef6aafe347a
+SHA256 (bam.zip) = 616834108060c4f573d19dd087d6c4c5d5e40b8987002c9b9df089fb194fa71c
+SIZE (bam.zip) = 475348
diff --git a/games/teeworlds/files/patch-default.bam b/games/teeworlds/files/patch-default.bam
new file mode 100644
index 000000000000..b360144c23b0
--- /dev/null
+++ b/games/teeworlds/files/patch-default.bam
@@ -0,0 +1,76 @@
+--- default.bam.orig 2008-02-09 22:10:40.000000000 +0300
++++ default.bam 2008-02-18 00:06:31.000000000 +0300
+@@ -173,19 +173,20 @@
+ settings.cc.flags = "/wd4244"
+ else
+ settings.cc.flags = "-Wall"
+- settings.linker.flags = ""
++ settings.linker.flags = "-L/usr/local/lib/portaudio2 -L/usr/local/lib -pthread"
++ settings.linker.libs:add("z")
+ end
+
+ -- set some platform specific settings
+ settings.cc.includes:add("src")
+- settings.cc.includes:add("src/external/zlib")
++ settings.cc.includes:add("/usr/local/include/portaudio2")
++ settings.cc.includes:add("/usr/local/include")
+
+ if family == "unix" then
+ if platform == "macosx" then
+ glfw_platform = "macosx"
+ else
+ glfw_platform = "x11"
+- settings.linker.libs:add("pthread")
+ end
+ elseif family == "windows" then
+ glfw_platform = "win32"
+@@ -217,7 +218,6 @@
+ else
+ engine_settings.cc.flags = "-Wall -pedantic-errors"
+ end
+- engine_settings.linker.flags = ""
+ end
+
+ -- server
+@@ -237,10 +237,11 @@
+ client_settings.linker.frameworks:add("AudioToolbox")
+ client_settings.linker.frameworks:add("AudioUnit")
+ else
+- client_settings.linker.libs:add("asound")
+ client_settings.linker.libs:add("X11")
++ client_settings.linker.libs:add("Xxf86vm")
+ client_settings.linker.libs:add("GL")
+ client_settings.linker.libs:add("GLU")
++ client_settings.linker.libs:add("portaudio")
+ end
+ elseif family == "windows" then
+ client_settings.linker.libs:add("opengl32.lib")
+@@ -249,10 +250,8 @@
+ end
+
+ external_settings = settings:copy()
+- zlib = Compile(external_settings, Collect("src/engine/external/zlib/*.c"))
+ wavpack = Compile(external_settings, Collect("src/engine/external/wavpack/*.c"))
+ pnglite = Compile(external_settings, Collect("src/engine/external/pnglite/*.c"))
+- portaudio = Compile(external_settings, Collect("src/engine/external/pa.c"))
+
+ engine = Compile(engine_settings, Collect("src/engine/*.c"))
+ client = Compile(client_settings, Collect("src/engine/client/*.c"))
+@@ -280,7 +279,7 @@
+
+ -- build client, server and master server
+ client_exe = Link(client_settings, "teewars", game_shared, game_client,
+- engine, client, editor, glfw, portaudio, zlib, pnglite, wavpack,
++ engine, client, editor, glfw, pnglite, wavpack,
+ client_link_other)
+
+ server_exe = Link(server_settings, "teewars_srv", engine, server,
+@@ -326,7 +325,7 @@
+ release_settings.config_name = "release"
+ release_settings.config_ext = ""
+ release_settings.debug = 0
+-release_settings.cc.optimize = 1
++release_settings.cc.optimize = 0
+
+ DefaultTarget(build(debug_settings))
+ build(release_settings)
diff --git a/games/teeworlds/pkg-descr b/games/teeworlds/pkg-descr
new file mode 100644
index 000000000000..005c6a855e7d
--- /dev/null
+++ b/games/teeworlds/pkg-descr
@@ -0,0 +1,16 @@
+Teewars is a freeware online multiplayer game, designed as a crossover
+between Quake and Worms. Set on platform-based maps, players control
+a cute little bugger with guns to take out as many opponents as
+possible. The characters can jump but move more quickly using a
+grappling hook, swinging through the levels. It can also be used
+to lock other players to keep them near. The available weapons
+include a pistol, shotgun, grenade launcher and a hammer. The
+shooting and grappling direction is shown through a cursor, controlled
+by the mouse. A special power-up temporarily provides a ninja sword,
+used to slash through enemies. Each character has an amount of
+health and shield. Items scattered around include additional ammo,
+and health and shield bonuses. Unlike Worms, all the action that
+happens is fast-paced and happens in real-time. It supports CTF
+mode.
+
+WWW: http://www.teewars.com/
diff --git a/games/teeworlds/pkg-plist b/games/teeworlds/pkg-plist
new file mode 100644
index 000000000000..b8659e82d595
--- /dev/null
+++ b/games/teeworlds/pkg-plist
@@ -0,0 +1,158 @@
+%%CLIENT%%bin/teewars
+bin/teewars_srv
+%%DATADIR%%/audio/foley_body_impact-01.wv
+%%DATADIR%%/audio/foley_body_impact-02.wv
+%%DATADIR%%/audio/foley_body_impact-03.wv
+%%DATADIR%%/audio/foley_body_splat-01.wv
+%%DATADIR%%/audio/foley_body_splat-02.wv
+%%DATADIR%%/audio/foley_body_splat-03.wv
+%%DATADIR%%/audio/foley_body_splat-04.wv
+%%DATADIR%%/audio/foley_dbljump-01.wv
+%%DATADIR%%/audio/foley_dbljump-02.wv
+%%DATADIR%%/audio/foley_dbljump-03.wv
+%%DATADIR%%/audio/foley_foot_left-01.wv
+%%DATADIR%%/audio/foley_foot_left-02.wv
+%%DATADIR%%/audio/foley_foot_left-03.wv
+%%DATADIR%%/audio/foley_foot_left-04.wv
+%%DATADIR%%/audio/foley_foot_right-01.wv
+%%DATADIR%%/audio/foley_foot_right-02.wv
+%%DATADIR%%/audio/foley_foot_right-03.wv
+%%DATADIR%%/audio/foley_foot_right-04.wv
+%%DATADIR%%/audio/foley_land-01.wv
+%%DATADIR%%/audio/foley_land-02.wv
+%%DATADIR%%/audio/foley_land-03.wv
+%%DATADIR%%/audio/foley_land-04.wv
+%%DATADIR%%/audio/hook_attach-01.wv
+%%DATADIR%%/audio/hook_attach-02.wv
+%%DATADIR%%/audio/hook_attach-03.wv
+%%DATADIR%%/audio/hook_loop-01.wv
+%%DATADIR%%/audio/hook_loop-02.wv
+%%DATADIR%%/audio/sfx_ctf_cap_pl.wv
+%%DATADIR%%/audio/sfx_ctf_drop.wv
+%%DATADIR%%/audio/sfx_ctf_grab_en.wv
+%%DATADIR%%/audio/sfx_ctf_grab_pl.wv
+%%DATADIR%%/audio/sfx_ctf_rtn.wv
+%%DATADIR%%/audio/sfx_hit_strong-01.wv
+%%DATADIR%%/audio/sfx_hit_strong-02.wv
+%%DATADIR%%/audio/sfx_hit_weak-01.wv
+%%DATADIR%%/audio/sfx_hit_weak-02.wv
+%%DATADIR%%/audio/sfx_hit_weak-03.wv
+%%DATADIR%%/audio/sfx_msg-client.wv
+%%DATADIR%%/audio/sfx_msg-server.wv
+%%DATADIR%%/audio/sfx_pickup_arm-01.wv
+%%DATADIR%%/audio/sfx_pickup_arm-02.wv
+%%DATADIR%%/audio/sfx_pickup_arm-03.wv
+%%DATADIR%%/audio/sfx_pickup_arm-04.wv
+%%DATADIR%%/audio/sfx_pickup_gun.wv
+%%DATADIR%%/audio/sfx_pickup_hrt-01.wv
+%%DATADIR%%/audio/sfx_pickup_hrt-02.wv
+%%DATADIR%%/audio/sfx_pickup_launcher.wv
+%%DATADIR%%/audio/sfx_pickup_ninja.wv
+%%DATADIR%%/audio/sfx_pickup_sg.wv
+%%DATADIR%%/audio/sfx_spawn_wpn-01.wv
+%%DATADIR%%/audio/sfx_spawn_wpn-02.wv
+%%DATADIR%%/audio/sfx_spawn_wpn-03.wv
+%%DATADIR%%/audio/vo_teefault_cry-01.wv
+%%DATADIR%%/audio/vo_teefault_cry-02.wv
+%%DATADIR%%/audio/vo_teefault_ninja-01.wv
+%%DATADIR%%/audio/vo_teefault_ninja-02.wv
+%%DATADIR%%/audio/vo_teefault_ninja-03.wv
+%%DATADIR%%/audio/vo_teefault_ninja-04.wv
+%%DATADIR%%/audio/vo_teefault_pain_long-01.wv
+%%DATADIR%%/audio/vo_teefault_pain_long-02.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-01.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-02.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-03.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-04.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-05.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-06.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-07.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-08.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-09.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-10.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-11.wv
+%%DATADIR%%/audio/vo_teefault_pain_short-12.wv
+%%DATADIR%%/audio/vo_teefault_sledge-01.wv
+%%DATADIR%%/audio/vo_teefault_sledge-02.wv
+%%DATADIR%%/audio/vo_teefault_sledge-03.wv
+%%DATADIR%%/audio/vo_teefault_spawn-01.wv
+%%DATADIR%%/audio/vo_teefault_spawn-02.wv
+%%DATADIR%%/audio/vo_teefault_spawn-03.wv
+%%DATADIR%%/audio/vo_teefault_spawn-04.wv
+%%DATADIR%%/audio/vo_teefault_spawn-05.wv
+%%DATADIR%%/audio/vo_teefault_spawn-06.wv
+%%DATADIR%%/audio/vo_teefault_spawn-07.wv
+%%DATADIR%%/audio/wp_flump_explo-01.wv
+%%DATADIR%%/audio/wp_flump_explo-02.wv
+%%DATADIR%%/audio/wp_flump_explo-03.wv
+%%DATADIR%%/audio/wp_flump_launch-01.wv
+%%DATADIR%%/audio/wp_flump_launch-02.wv
+%%DATADIR%%/audio/wp_flump_launch-03.wv
+%%DATADIR%%/audio/wp_gun_fire-01.wv
+%%DATADIR%%/audio/wp_gun_fire-02.wv
+%%DATADIR%%/audio/wp_gun_fire-03.wv
+%%DATADIR%%/audio/wp_hammer_hit-01.wv
+%%DATADIR%%/audio/wp_hammer_hit-02.wv
+%%DATADIR%%/audio/wp_hammer_hit-03.wv
+%%DATADIR%%/audio/wp_hammer_swing-01.wv
+%%DATADIR%%/audio/wp_hammer_swing-02.wv
+%%DATADIR%%/audio/wp_hammer_swing-03.wv
+%%DATADIR%%/audio/wp_ninja_attack-01.wv
+%%DATADIR%%/audio/wp_ninja_attack-02.wv
+%%DATADIR%%/audio/wp_ninja_attack-03.wv
+%%DATADIR%%/audio/wp_ninja_attack-04.wv
+%%DATADIR%%/audio/wp_ninja_hit-01.wv
+%%DATADIR%%/audio/wp_ninja_hit-02.wv
+%%DATADIR%%/audio/wp_ninja_hit-03.wv
+%%DATADIR%%/audio/wp_ninja_hit-04.wv
+%%DATADIR%%/audio/wp_noammo-01.wv
+%%DATADIR%%/audio/wp_noammo-02.wv
+%%DATADIR%%/audio/wp_noammo-03.wv
+%%DATADIR%%/audio/wp_noammo-04.wv
+%%DATADIR%%/audio/wp_noammo-05.wv
+%%DATADIR%%/audio/wp_shotty_fire-01.wv
+%%DATADIR%%/audio/wp_shotty_fire-02.wv
+%%DATADIR%%/audio/wp_shotty_fire-03.wv
+%%DATADIR%%/audio/wp_switch-01.wv
+%%DATADIR%%/audio/wp_switch-02.wv
+%%DATADIR%%/audio/wp_switch-03.wv
+%%DATADIR%%/big_font.png
+%%DATADIR%%/browse_icons.png
+%%DATADIR%%/checker.png
+%%DATADIR%%/cloudmap.png
+%%DATADIR%%/debug_font.png
+%%DATADIR%%/emoticons.png
+%%DATADIR%%/game.png
+%%DATADIR%%/gui_cursor.png
+%%DATADIR%%/gui_logo.png
+%%DATADIR%%/maps/ctf1.map
+%%DATADIR%%/maps/ctf2.map
+%%DATADIR%%/maps/dm1.map
+%%DATADIR%%/maps/dm2.map
+%%DATADIR%%/maps/dm6.map
+%%DATADIR%%/moon.png
+%%DATADIR%%/mountain_paralax.png
+%%DATADIR%%/skins/bluekitty.png
+%%DATADIR%%/skins/bluestripe.png
+%%DATADIR%%/skins/brownbear.png
+%%DATADIR%%/skins/cammo.png
+%%DATADIR%%/skins/cammostripes.png
+%%DATADIR%%/skins/coala.png
+%%DATADIR%%/skins/default.png
+%%DATADIR%%/skins/limekitty.png
+%%DATADIR%%/skins/ninja.png
+%%DATADIR%%/skins/pinky.png
+%%DATADIR%%/skins/redbopp.png
+%%DATADIR%%/skins/redstripe.png
+%%DATADIR%%/skins/saddo.png
+%%DATADIR%%/skins/toptri.png
+%%DATADIR%%/skins/twinbop.png
+%%DATADIR%%/skins/twintri.png
+%%DATADIR%%/skins/warpaint.png
+%%DATADIR%%/snow.png
+%%DATADIR%%/stars.png
+%%DATADIR%%/sun.png
+@dirrm %%DATADIR%%/skins
+@dirrm %%DATADIR%%/maps
+@dirrm %%DATADIR%%/audio
+@dirrm %%DATADIR%%