Hi,

Tested ok on amd64 and diff looks good.
I'm not sure the tweaks in MESSAGE are still revelant, but it can be
adjusted later.

Does someone have an idea for SDL_VIDEO_X11_DGAMOUSE ? A problem without
gfx_noclip 0 ?

ok armani@


2014-05-08 18:42 GMT+02:00 Donovan Watteau <tso...@gmail.com>:

> Hi,
>
> The following diff updates Teeworlds to 0.6.2.
>
> In early 2012, I sent an update from teeworlds-0.5.2 to 0.6.1 to
> armani@.  But today, 0.5.2 is still the tree, so I'd like to take
> its maintainership.
>
> Here are the changes:
> - don't bother building on strict-alignment archs.  On loongson, both
>   the client and the server SIGBUS during startup, and looking at the
>   code it seems that it will crash on anything not x86 or ppc.
> - don't include an extra copy of DejaVuSans.ttf.
> - use audio/wavpack, not an internal copy.
> - make sure an internal zlib is never used.
> - invoke "bam" with -a, to make sure that it will abort on error.
> - don't enforce the stack protector, base gcc(1) enables it wherever
>   it's possible.
> - fix endianness detection (my macppc is no longer supported, but
>   two years ago this patch was required).
> - drop patch-src_engine_client_ec_snd_c.  At first, I ported it to
>   teeworlds-0.6.2, but actually this patch makes audio much worse
>   for me, and I can't observe anymore the crash it was supposed
>   to fix.
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/games/teeworlds/Makefile,v
> retrieving revision 1.17
> diff -u -p -r1.17 Makefile
> --- Makefile    9 Aug 2013 19:04:49 -0000       1.17
> +++ Makefile    8 May 2014 16:16:48 -0000
> @@ -1,60 +1,69 @@
>  # $OpenBSD: Makefile,v 1.17 2013/08/09 19:04:49 ajacoutot Exp $
>
> -COMMENT =      platform game featuring buggers equipped with weapons
> +# Crashes on strict-alignment archs, see: src/base/system.c:164
> +ONLY_FOR_ARCHS=        amd64 i386 powerpc
>
> -V =            0.5.2
> -DISTNAME =     teeworlds-${V}-src
> -PKGNAME =      teeworlds-${V}
> -REVISION =     4
> -CATEGORIES =   games
> +COMMENT=       platform game featuring buggers equipped with weapons
>
> -MAINTAINER =   Jonathan Armani <arm...@openbsd.org>
> -HOMEPAGE =     http://www.teeworlds.com/
> +V=             0.6.2
> +DISTNAME=      teeworlds-${V}-source
> +PKGNAME=       teeworlds-${V}
> +CATEGORIES=    games
>
> -BAM_VERSION =  0.2.0
> -BAM_WRKSRC =   ${WRKSRC}/bam-${BAM_VERSION}
> -BAM_TARGET =   release
> +HOMEPAGE=      http://www.teeworlds.com/
>
> -MASTER_SITES = http://www.teeworlds.com/files/
> -DISTFILES =    ${DISTNAME}${EXTRACT_SUFX}
> bam-${BAM_VERSION}${EXTRACT_SUFX}
> +MAINTAINER=    Donovan Watteau <tso...@gmail.com>
>
> -# GPLv2
> -PERMIT_PACKAGE_CDROM = Yes
> +BAM_VERSION=   0.4.0
> +BAM_WRKSRC=    ${WRKSRC}/bam-${BAM_VERSION}
>
> -WANTLIB =      GL GLU SDL X11 c m pthread stdc++ z
> -LIB_DEPENDS =  devel/sdl
> +MASTER_SITES=  http://www.teeworlds.com/files/
> +DISTFILES=     ${DISTNAME}${EXTRACT_SUFX}
> bam-${BAM_VERSION}${EXTRACT_SUFX}
>
> -MODULES =      lang/python
> +# BSD-like
> +PERMIT_PACKAGE_CDROM=  Yes
>
> -NO_TEST =      Yes
> +WANTLIB=       GL GLU SDL X11 c freetype m pthread stdc++ wavpack z
>
> -GAMEDIR =      ${PREFIX}/share/teeworlds
> +LIB_DEPENDS=   audio/wavpack \
> +               devel/sdl
>
> -SUBST_VARS =   CC CXX CFLAGS
> +MODULES=       lang/python
> +
> +SUBST_VARS=    CC CXX CFLAGS CXXFLAGS X11BASE
> +
> +NO_TEST=       Yes
>
>  post-extract:
>         @mv ${WRKDIR}/bam-${BAM_VERSION} ${BAM_WRKSRC}
>
>  pre-configure:
> -       ${SUBST_CMD} ${WRKSRC}/src/engine/e_engine.c \
> -               ${WRKSRC}/scripts/make_src.py \
> +       @${SUBST_CMD} ${WRKSRC}/src/engine/shared/storage.cpp \
> +               ${WRKSRC}/src/game/client/gameclient.cpp \
> +               ${WRKSRC}/scripts/build.py \
> +               ${WRKSRC}/scripts/compiler.py \
>                 ${WRKSRC}/scripts/font_installer.sh \
> -               ${WRKSRC}/default.bam \
> +               ${WRKSRC}/scripts/make_src.py \
> +               ${WRKSRC}/bam.lua \
>                 ${BAM_WRKSRC}/make_unix.sh \
> -               ${BAM_WRKSRC}/src/driver_gcc.bam \
> -               ${BAM_WRKSRC}/src/base.bam
> +               ${BAM_WRKSRC}/src/driver_gcc.lua \
> +               ${BAM_WRKSRC}/src/base.lua
> +       # Make sure internal wavpack and zlib can't be picked up
> +       rm -rf ${WRKSRC}/src/engine/external/{wavpack,zlib}
> +       # Don't provide an extra copy of DejaVu
> +       rm -rf ${WRKSRC}/data/fonts
>
>  # build bam executable - teeworlds own build system
>  pre-build:
>         cd ${BAM_WRKSRC} && /bin/sh -v make_unix.sh
>
>  do-build:
> -       cd ${WRKSRC} && CC=${CC} ${BAM_WRKSRC}/src/bam -v ${BAM_TARGET}
> +       cd ${WRKSRC} && CC=${CC} ${BAM_WRKSRC}/bam -a -v release
> wavpack=${LOCALBASE}
>
>  do-install:
>         ${INSTALL_PROGRAM} ${WRKSRC}/teeworlds ${PREFIX}/bin
>         ${INSTALL_PROGRAM} ${WRKSRC}/teeworlds_srv ${PREFIX}/bin
> -       ${INSTALL_DATA_DIR} ${GAMEDIR}
> -       cd ${WRKSRC}; tar cf - data | tar xf - -C ${GAMEDIR}
> +       ${INSTALL_DATA_DIR} ${PREFIX}/share/teeworlds
> +       cd ${WRKSRC}; tar cf - data | tar xf - -C ${PREFIX}/share/teeworlds
>
>  .include <bsd.port.mk>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/games/teeworlds/distinfo,v
> retrieving revision 1.4
> diff -u -p -r1.4 distinfo
> --- distinfo    9 Aug 2013 19:04:49 -0000       1.4
> +++ distinfo    8 May 2014 16:16:48 -0000
> @@ -1,4 +1,4 @@
> -SHA256 (bam-0.2.0.tar.gz) = 72zdwd9HsNgQYmUDPvTlXmHeyr8ieaKs1/3wFmM8B1g=
> -SHA256 (teeworlds-0.5.2-src.tar.gz) =
> GBGnG/mhRwx6aTCANXREkvPoUK790S8bwiP7hdmM9MA=
> -SIZE (bam-0.2.0.tar.gz) = 162342
> -SIZE (teeworlds-0.5.2-src.tar.gz) = 6393472
> +SHA256 (bam-0.4.0.tar.gz) = Xk5JILTSZdpYL2Z3TpseyN37513cAo+6hsEvaG6hjbM=
> +SHA256 (teeworlds-0.6.2-source.tar.gz) =
> AAYbMDd1l6YYEO2j3F3gyq1DnKhRy47rvkFS5Phh4q8=
> +SIZE (bam-0.4.0.tar.gz) = 206780
> +SIZE (teeworlds-0.6.2-source.tar.gz) = 9179568
> Index: patches/patch-bam-0_2_0_make_unix_sh
> ===================================================================
> RCS file: patches/patch-bam-0_2_0_make_unix_sh
> diff -N patches/patch-bam-0_2_0_make_unix_sh
> --- patches/patch-bam-0_2_0_make_unix_sh        9 Aug 2013 19:04:49 -0000
>       1.3
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,10 +0,0 @@
> -$OpenBSD: patch-bam-0_2_0_make_unix_sh,v 1.3 2013/08/09 19:04:49
> ajacoutot Exp $
> ---- bam-0.2.0/make_unix.sh.orig        Thu Jan  8 13:07:44 2009
> -+++ bam-0.2.0/make_unix.sh     Sun Feb  8 18:11:29 2009
> -@@ -1,4 +1,4 @@
> - #!/bin/sh
> --gcc -Wall -ansi -pedantic src/tools/txt2c.c -o src/tools/txt2c
> -+${CC} ${CFLAGS} -Wall -ansi -pedantic src/tools/txt2c.c -o
> src/tools/txt2c
> - src/tools/txt2c src/base.bam src/driver_gcc.bam src/driver_cl.bam >
> src/internal_base.h
> --gcc -Wall -ansi -pedantic src/lua/*.c src/*.c -o src/bam -I src/lua -lm
> -lpthread -O2 $*
> -+${CC} ${CFLAGS} -Wall -ansi -pedantic src/lua/*.c src/*.c -o src/bam -I
> src/lua -lm -lpthread $*
> Index: patches/patch-bam-0_2_0_src_base_bam
> ===================================================================
> RCS file: patches/patch-bam-0_2_0_src_base_bam
> diff -N patches/patch-bam-0_2_0_src_base_bam
> --- patches/patch-bam-0_2_0_src_base_bam        18 Jan 2009 17:53:36 -0000
>      1.1.1.1
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -$OpenBSD: patch-bam-0_2_0_src_base_bam,v 1.1.1.1 2009/01/18 17:53:36
> ajacoutot Exp $
> ---- bam-0.2.0/src/base.bam.orig        Fri Jan 16 18:46:07 2009
> -+++ bam-0.2.0/src/base.bam     Fri Jan 16 18:46:33 2009
> -@@ -589,7 +589,7 @@ end
> - @END]]--
> - function OptFindCompiler()
> -       local check = function(option, settings)
> --              if ExecuteSilent("g++ -v") == 0 then
> -+              if ExecuteSilent("${CXX} -v") == 0 then
> -                       option.value = "gcc"
> -               elseif ExecuteSilent("cl") == 0 then
> -                       option.value = "cl"
> Index: patches/patch-bam-0_2_0_src_context_h
> ===================================================================
> RCS file: patches/patch-bam-0_2_0_src_context_h
> diff -N patches/patch-bam-0_2_0_src_context_h
> --- patches/patch-bam-0_2_0_src_context_h       8 Feb 2009 22:31:58 -0000
>       1.1
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,24 +0,0 @@
> -$OpenBSD: patch-bam-0_2_0_src_context_h,v 1.1 2009/02/08 22:31:58
> ajacoutot Exp $
> -
> -Fix bus error on sparc64.
> -
> ---- bam-0.2.0/src/context.h.orig       Mon Feb  9 00:11:33 2009
> -+++ bam-0.2.0/src/context.h    Mon Feb  9 00:09:59 2009
> -@@ -5,7 +5,7 @@ struct TARGET
> - {
> -       struct NODE *node;
> -       struct TARGET *next;
> --};
> -+} __attribute__((packed));
> -
> - struct CONTEXT
> - {
> -@@ -24,7 +24,7 @@ struct CONTEXT
> -
> -       volatile int current_cmd_num;
> -       int num_commands;
> --};
> -+} __attribute__((packed));
> -
> - const char *context_get_path(lua_State *L);
> - struct CONTEXT *context_get_pointer(lua_State *L);
> Index: patches/patch-bam-0_2_0_src_driver_gcc_bam
> ===================================================================
> RCS file: patches/patch-bam-0_2_0_src_driver_gcc_bam
> diff -N patches/patch-bam-0_2_0_src_driver_gcc_bam
> --- patches/patch-bam-0_2_0_src_driver_gcc_bam  18 Jan 2009 17:53:36 -0000
>      1.1.1.1
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,14 +0,0 @@
> -$OpenBSD: patch-bam-0_2_0_src_driver_gcc_bam,v 1.1.1.1 2009/01/18
> 17:53:36 ajacoutot Exp $
> ---- bam-0.2.0/src/driver_gcc.bam.orig  Fri Jan 16 18:44:47 2009
> -+++ bam-0.2.0/src/driver_gcc.bam       Fri Jan 16 18:45:47 2009
> -@@ -82,8 +82,8 @@ end
> - function SetDriversGCC(settings)
> -       if settings.cc then
> -               settings.cc.extension = ".o"
> --              settings.cc.c_compiler = "gcc"
> --              settings.cc.cxx_compiler = "g++"
> -+              settings.cc.c_compiler = "${CC} ${CFLAGS}"
> -+              settings.cc.cxx_compiler = "${CXX} ${CFLAGS}"
> -               settings.cc.DriverCTest = DriverCTest_GCC
> -               settings.cc.DriverC = DriverC_GCC
> -               settings.cc.DriverCXX = DriverCXX_GCC
> Index: patches/patch-bam-0_2_0_src_main_c
> ===================================================================
> RCS file: patches/patch-bam-0_2_0_src_main_c
> diff -N patches/patch-bam-0_2_0_src_main_c
> --- patches/patch-bam-0_2_0_src_main_c  8 Feb 2009 16:54:54 -0000       1.1
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,37 +0,0 @@
> -$OpenBSD: patch-bam-0_2_0_src_main_c,v 1.1 2009/02/08 16:54:54 ajacoutot
> Exp $
> ---- bam-0.2.0/src/main.c.orig  Sun Feb  8 18:09:12 2009
> -+++ bam-0.2.0/src/main.c       Sun Feb  8 18:10:27 2009
> -@@ -986,8 +986,8 @@ int register_lua_globals(struct CONTEXT *context)
> -
> -       /* set paths */
> -       {
> --              char cwd[512];
> --              getcwd(cwd, 512);
> -+              char cwd[1024];
> -+              getcwd(cwd, 1024);
> -
> -               lua_pushstring(context->lua, CONTEXT_LUA_PATH);
> -               lua_pushstring(context->lua, context->script_directory);
> -@@ -1131,17 +1131,17 @@ static int bam(const char *scriptfile, const char
> **ta
> -
> -       /* fetch script directory */
> -       {
> --              char cwd[512];
> --              char path[512];
> -+              char cwd[1024];
> -+              char path[1024];
> -
> --              getcwd(cwd, 512);
> --              if(path_directory(context.filename, path, 512))
> -+              getcwd(cwd, 1024);
> -+              if(path_directory(context.filename, path, 1024))
> -               {
> -                       printf("crap error1\n");
> -                       *((int*)0) = 0;
> -               }
> -
> --              if(path_join(cwd, path, context.script_directory, 512))
> -+              if(path_join(cwd, path, context.script_directory, 1024))
> -               {
> -                       printf("crap error2\n");
> -                       *((int*)0) = 0;
> Index: patches/patch-bam-0_2_0_src_node_h
> ===================================================================
> RCS file: patches/patch-bam-0_2_0_src_node_h
> diff -N patches/patch-bam-0_2_0_src_node_h
> --- patches/patch-bam-0_2_0_src_node_h  8 Feb 2009 22:31:58 -0000       1.1
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,24 +0,0 @@
> -$OpenBSD: patch-bam-0_2_0_src_node_h,v 1.1 2009/02/08 22:31:58 ajacoutot
> Exp $
> -
> -Fix bus error on sparc64.
> -
> ---- bam-0.2.0/src/node.h.orig  Mon Feb  9 00:11:20 2009
> -+++ bam-0.2.0/src/node.h       Mon Feb  9 00:10:15 2009
> -@@ -9,7 +9,7 @@ struct DEPENDENCY
> - {
> -       struct NODE *node;
> -       struct DEPENDENCY *next;
> --};
> -+} __attribute__((packed));
> -
> - #define USE_NODE_RB
> -
> -@@ -55,7 +55,7 @@ struct NODE
> -       unsigned int counted:1;
> -
> -       volatile unsigned int workstatus:2; /* 0 = undone, 1 = in the
> workings, 2 = done*/
> --};
> -+} __attribute__((packed));
> -
> - struct HEAP;
> - struct GRAPH;
> Index: patches/patch-bam-0_4_0_make_unix_sh
> ===================================================================
> RCS file: patches/patch-bam-0_4_0_make_unix_sh
> diff -N patches/patch-bam-0_4_0_make_unix_sh
> --- /dev/null   1 Jan 1970 00:00:00 -0000
> +++ patches/patch-bam-0_4_0_make_unix_sh        8 May 2014 16:16:48 -0000
> @@ -0,0 +1,13 @@
> +$OpenBSD$
> +
> +Don't hardcode compiler path and flags.
> +
> +--- bam-0.4.0/make_unix.sh.orig        Mon Aug  9 20:08:24 2010
> ++++ bam-0.4.0/make_unix.sh     Sat Mar 17 15:05:51 2012
> +@@ -1,4 +1,4 @@
> + #!/bin/sh
> +-gcc -Wall -ansi -pedantic src/tools/txt2c.c -o src/tools/txt2c
> ++${CC} ${CFLAGS}  -Wall -ansi -pedantic src/tools/txt2c.c -o
> src/tools/txt2c
> + src/tools/txt2c src/base.lua src/tools.lua src/driver_gcc.lua
> src/driver_cl.lua > src/internal_base.h
> +-gcc -Wall -ansi -pedantic src/*.c src/lua/*.c -o bam -I src/lua -lm
> -lpthread -ldl -O2 -rdynamic $*
> ++${CC} ${CFLAGS} -Wall -ansi -pedantic src/*.c src/lua/*.c -o bam -I
> src/lua -lm -lpthread -rdynamic $*
> Index: patches/patch-bam-0_4_0_src_driver_gcc_lua
> ===================================================================
> RCS file: patches/patch-bam-0_4_0_src_driver_gcc_lua
> diff -N patches/patch-bam-0_4_0_src_driver_gcc_lua
> --- /dev/null   1 Jan 1970 00:00:00 -0000
> +++ patches/patch-bam-0_4_0_src_driver_gcc_lua  8 May 2014 16:16:48 -0000
> @@ -0,0 +1,52 @@
> +$OpenBSD$
> +
> +Don't hardcode compiler path and flags.
> +
> +--- bam-0.4.0/src/driver_gcc.lua.orig  Mon Aug  9 20:08:24 2010
> ++++ bam-0.4.0/src/driver_gcc.lua       Sat Mar 17 15:14:24 2012
> +@@ -13,7 +13,6 @@ function DriverGCC_Get(exe, cache_name, flags_name)
> +                       local f = cc.flags:ToString()
> +                       f = f .. cc[flags_name]:ToString()
> +                       if settings.debug > 0 then f = f .. "-g " end
> +-                      if settings.optimize > 0 then f = f .. "-O2 " end
> +
> +                       cache.str = cc[exe] .. " " .. f .. "-c " .. d .. i
> .. " -o "
> +               end
> +@@ -27,7 +26,7 @@ function DriverGCC_CTest(code, options)
> +       f:write(code)
> +       f:write("\n")
> +       f:close()
> +-      local ret = ExecuteSilent("gcc _test.c -o _test " .. options)
> ++      local ret = ExecuteSilent("${CC} _test.c -o _test " .. options)
> +       os.remove("_test.c")
> +       os.remove("_test")
> +       return ret==0
> +@@ -80,8 +79,8 @@ end
> + function SetDriversGCC(settings)
> +       if settings.cc then
> +               settings.cc.extension = ".o"
> +-              settings.cc.exe_c = "gcc"
> +-              settings.cc.exe_cxx = "g++"
> ++              settings.cc.exe_c = "${CC} ${CFLAGS}"
> ++              settings.cc.exe_cxx = "${CXX} ${CXXFLAGS}"
> +               settings.cc.DriverCTest = DriverGCC_CTest
> +               settings.cc.DriverC = DriverGCC_Get("exe_c", "_c_cache",
> "flags_c")
> +               settings.cc.DriverCXX = DriverGCC_Get("exe_cxx",
> "_cxx_cache", "flags_cxx")
> +@@ -89,7 +88,7 @@ function SetDriversGCC(settings)
> +
> +       if settings.link then
> +               settings.link.extension = ""
> +-              settings.link.exe = "g++"
> ++              settings.link.exe = "${CXX}"
> +               settings.link.Driver = DriverGCC_Link
> +       end
> +
> +@@ -108,7 +107,7 @@ function SetDriversGCC(settings)
> +                       settings.dll.prefix = ""
> +                       settings.dll.extension = ".so"
> +               end
> +-              settings.dll.exe = "g++"
> ++              settings.dll.exe = "${CXX}"
> +               settings.dll.Driver = DriverGCC_DLL
> +       end
> + end
> Index: patches/patch-bam_lua
> ===================================================================
> RCS file: patches/patch-bam_lua
> diff -N patches/patch-bam_lua
> --- /dev/null   1 Jan 1970 00:00:00 -0000
> +++ patches/patch-bam_lua       8 May 2014 16:16:48 -0000
> @@ -0,0 +1,73 @@
> +$OpenBSD$
> +
> +- Don't enforce stack protector
> +- Don't hardcode python
> +- Make it possible to use wavpack as an external dependency (from Debian)
> +- Fix zlib external dependency (from Debian)
> +
> +--- bam.lua.orig       Wed May  1 13:47:39 2013
> ++++ bam.lua    Thu May  8 16:13:57 2014
> +@@ -7,12 +7,12 @@ Import("other/freetype/freetype.lua")
> + --- Setup Config -------
> + config = NewConfig()
> + config:Add(OptCCompiler("compiler"))
> +-config:Add(OptTestCompileC("stackprotector", "int main(){return 0;}",
> "-fstack-protector -fstack-protector-all"))
> + config:Add(OptTestCompileC("minmacosxsdk", "int main(){return 0;}",
> "-mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk"))
> + config:Add(OptTestCompileC("macosxppc", "int main(){return 0;}", "-arch
> ppc"))
> + config:Add(OptLibrary("zlib", "zlib.h", false))
> + config:Add(SDL.OptFind("sdl", true))
> + config:Add(FreeType.OptFind("freetype", true))
> ++config:Add(OptLibrary("wavpack", "wavpack/wavpack.h", false))
> + config:Finalize("config.lua")
> +
> + -- data compiler
> +@@ -20,7 +20,7 @@ function Script(name)
> +       if family == "windows" then
> +               return str_replace(name, "/", "\\")
> +       end
> +-      return "python " .. name
> ++      return "${MODPY_BIN} " .. name
> + end
> +
> + function CHash(output, ...)
> +@@ -157,9 +157,6 @@ function build(settings)
> +                               settings.cc.flags:Add("-isysroot
> /Developer/SDKs/MacOSX10.5.sdk")
> +                               settings.link.flags:Add("-isysroot
> /Developer/SDKs/MacOSX10.5.sdk")
> +                       end
> +-              elseif config.stackprotector.value == 1 then
> +-                      settings.cc.flags:Add("-fstack-protector",
> "-fstack-protector-all")
> +-                      settings.link.flags:Add("-fstack-protector",
> "-fstack-protector-all")
> +               end
> +       end
> +
> +@@ -187,7 +184,7 @@ function build(settings)
> +       end
> +
> +       -- compile zlib if needed
> +-      if config.zlib.value == 1 then
> ++      if config.zlib.value then
> +               settings.link.libs:Add("z")
> +               if config.zlib.include_path then
> +                       settings.cc.includes:Add(config.zlib.include_path)
> +@@ -198,8 +195,20 @@ function build(settings)
> +               settings.cc.includes:Add("src/engine/external/zlib")
> +       end
> +
> ++      -- compile wavpack if needed
> ++      if config.wavpack.value then
> ++              settings.link.libs:Add("wavpack")
> ++              if config.wavpack.include_path then
> ++
>  settings.cc.includes:Add(config.wavpack.include_path .. "/include")
> ++
>  settings.link.libpath:Add(config.wavpack.include_path .. "/lib")
> ++              end
> ++              wavpack = {}
> ++      else
> ++              wavpack = Compile(settings,
> Collect("src/engine/external/wavpack/*.c"))
> ++              settings.cc.includes:Add("src/engine/external")
> ++      end
> ++
> +       -- build the small libraries
> +-      wavpack = Compile(settings,
> Collect("src/engine/external/wavpack/*.c"))
> +       pnglite = Compile(settings,
> Collect("src/engine/external/pnglite/*.c"))
> +
> +       -- build game components
> Index: patches/patch-default_bam
> ===================================================================
> RCS file: patches/patch-default_bam
> diff -N patches/patch-default_bam
> --- patches/patch-default_bam   5 Apr 2009 16:59:40 -0000       1.2
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,21 +0,0 @@
> -$OpenBSD: patch-default_bam,v 1.2 2009/04/05 16:59:40 ajacoutot Exp $
> ---- default.bam.orig   Thu Mar  5 11:41:17 2009
> -+++ default.bam        Thu Mar  5 11:41:53 2009
> -@@ -15,7 +15,7 @@ function Script(name)
> -       if family == "windows" then
> -               return str_replace(name, "/", "\\")
> -       end
> --      return "python " .. name
> -+      return "${MODPY_BIN} " .. name
> - end
> -
> - function CHash(output, ...)
> -@@ -128,7 +128,7 @@ function build(settings)
> -                       settings.link.frameworks:Add("Carbon")
> -                       settings.link.frameworks:Add("AppKit")
> -               else
> --                      settings.link.libs:Add("pthread")
> -+                      settings.link.flags:Add("-pthread")
> -               end
> -       elseif family == "windows" then
> -               settings.link.libs:Add("gdi32")
> Index: patches/patch-scripts_build_py
> ===================================================================
> RCS file: patches/patch-scripts_build_py
> diff -N patches/patch-scripts_build_py
> --- /dev/null   1 Jan 1970 00:00:00 -0000
> +++ patches/patch-scripts_build_py      8 May 2014 16:16:48 -0000
> @@ -0,0 +1,12 @@
> +$OpenBSD$
> +--- scripts/build.py.orig      Sun Jul 31 23:17:00 2011
> ++++ scripts/build.py   Sat Mar 17 15:19:47 2012
> +@@ -276,7 +276,7 @@ if flag_make_release:
> +       os.chdir(src_dir_teeworlds)
> +       command = '"%s/%s/scripts/make_release.py" %s %s' % (work_dir,
> src_dir_teeworlds, version_teeworlds, platform)
> +       if os.name != "nt":
> +-              command = "python %s" % command
> ++              command = "${MODPY_BIN} %s" % command
> +       if os.system(command) != 0:
> +               bail("failed to make a relase of %s" % name)
> +       final_output = "FAIL"
> Index: patches/patch-scripts_compiler_py
> ===================================================================
> RCS file: patches/patch-scripts_compiler_py
> diff -N patches/patch-scripts_compiler_py
> --- /dev/null   1 Jan 1970 00:00:00 -0000
> +++ patches/patch-scripts_compiler_py   8 May 2014 16:16:48 -0000
> @@ -0,0 +1,9 @@
> +$OpenBSD$
> +--- scripts/compiler.py.orig   Sun Jul 31 23:17:00 2011
> ++++ scripts/compiler.py        Sat Mar 17 15:22:43 2012
> +@@ -1,4 +1,4 @@
> +-#!/usr/bin/python
> ++#!${MODPY_BIN}
> +
> + import sys
> + import struct
> Index: patches/patch-scripts_font_installer_sh
> ===================================================================
> RCS file:
> /cvs/ports/games/teeworlds/patches/patch-scripts_font_installer_sh,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 patch-scripts_font_installer_sh
> --- patches/patch-scripts_font_installer_sh     18 Jan 2009 17:53:36 -0000
>      1.1.1.1
> +++ patches/patch-scripts_font_installer_sh     8 May 2014 16:16:48 -0000
> @@ -1,6 +1,6 @@
>  $OpenBSD: patch-scripts_font_installer_sh,v 1.1.1.1 2009/01/18 17:53:36
> ajacoutot Exp $
> ---- scripts/font_installer.sh.orig     Fri Jan 16 17:18:33 2009
> -+++ scripts/font_installer.sh  Fri Jan 16 17:18:51 2009
> +--- scripts/font_installer.sh.orig     Sun Jul 31 23:17:00 2011
> ++++ scripts/font_installer.sh  Sat Mar 17 15:19:57 2012
>  @@ -1,3 +1,3 @@
>   echo Generating .fnts...
>   ../../font_generator/a.out
> Index: patches/patch-scripts_make_src_py
> ===================================================================
> RCS file: patches/patch-scripts_make_src_py
> diff -N patches/patch-scripts_make_src_py
> --- patches/patch-scripts_make_src_py   18 Jan 2009 17:53:36 -0000
>  1.1.1.1
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -$OpenBSD: patch-scripts_make_src_py,v 1.1.1.1 2009/01/18 17:53:36
> ajacoutot Exp $
> ---- scripts/make_src.py.orig   Fri Jan 16 17:17:44 2009
> -+++ scripts/make_src.py        Fri Jan 16 17:18:15 2009
> -@@ -34,7 +34,7 @@ os.chdir(root_dir)
> - if 1:
> -       os.system("svn export svn://svn.teeworlds.com/teeworlds/%s
> teeworlds" % svn_tree)
> -       os.chdir("teeworlds")
> --      os.system("python scripts/make_release.py %s src" % version)
> -+      os.system("${MODPY_BIN} scripts/make_release.py %s src" % version)
> -       os.chdir(root_dir)
> -       for f in os.listdir("teeworlds"):
> -               if "teeworlds" in f and "src" in f and (".zip" in f or
> ".tar.gz" in f):
> Index: patches/patch-src_base_detect_h
> ===================================================================
> RCS file: patches/patch-src_base_detect_h
> diff -N patches/patch-src_base_detect_h
> --- /dev/null   1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_base_detect_h     8 May 2014 16:16:48 -0000
> @@ -0,0 +1,24 @@
> +$OpenBSD$
> +
> +Fix endianness detection.
> +
> +--- src/base/detect.h.orig     Wed May  1 13:47:39 2013
> ++++ src/base/detect.h  Thu May  8 14:52:51 2014
> +@@ -79,14 +79,15 @@
> + /* use gcc endianness definitions when available */
> + #if defined(__GNUC__) && !defined(__APPLE__) && !defined(__MINGW32__) &&
> !defined(__sun)
> +       #if defined(__FreeBSD__) || defined(__OpenBSD__)
> ++              #include <sys/types.h>
> +               #include <sys/endian.h>
> +       #else
> +               #include <endian.h>
> +       #endif
> +
> +-      #if __BYTE_ORDER == __LITTLE_ENDIAN
> ++      #if BYTE_ORDER == LITTLE_ENDIAN
> +               #define CONF_ARCH_ENDIAN_LITTLE 1
> +-      #elif __BYTE_ORDER == __BIG_ENDIAN
> ++      #elif BYTE_ORDER == BIG_ENDIAN
> +               #define CONF_ARCH_ENDIAN_BIG 1
> +       #endif
> + #endif
> Index: patches/patch-src_engine_client_ec_snd_c
> ===================================================================
> RCS file: patches/patch-src_engine_client_ec_snd_c
> diff -N patches/patch-src_engine_client_ec_snd_c
> --- patches/patch-src_engine_client_ec_snd_c    10 Feb 2009 00:32:43 -0000
>      1.1
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,38 +0,0 @@
> -$OpenBSD: patch-src_engine_client_ec_snd_c,v 1.1 2009/02/10 00:32:43
> sthen Exp $
> ---- src/engine/client/ec_snd.c.orig    Tue Jan 27 11:41:17 2009
> -+++ src/engine/client/ec_snd.c Tue Jan 27 12:30:08 2009
> -@@ -139,10 +139,19 @@ static int iabs(int i)
> -
> - static void mix(short *final_out, unsigned frames)
> - {
> --      int mix_buffer[MAX_FRAMES*2] = {0};
> --      int i, s;
> -+      int *mix_buffer;
> -+      int i, s, mix_buffer_size;
> -       int master_vol;
> -
> -+      mix_buffer_size = frames * 2 * sizeof(int);
> -+      mix_buffer = malloc(mix_buffer_size);
> -+      if (mix_buffer == NULL)
> -+      {
> -+              printf("malloc failed");
> -+              return;
> -+      }
> -+      bzero(mix_buffer, mix_buffer_size);
> -+
> -       /* aquire lock while we are mixing */
> -       lock_wait(sound_lock);
> -
> -@@ -239,6 +248,12 @@ static void mix(short *final_out, unsigned frames)
> - #if defined(CONF_ARCH_ENDIAN_BIG)
> -       swap_endian(final_out, sizeof(short), frames * 2);
> - #endif
> -+
> -+      if(mix_buffer != NULL) {
> -+              free(mix_buffer);
> -+              mix_buffer = NULL;
> -+      }
> -+
> - }
> -
> - static void sdlcallback(void *unused, Uint8 *stream, int len)
> Index: patches/patch-src_engine_client_sound_cpp
> ===================================================================
> RCS file: patches/patch-src_engine_client_sound_cpp
> diff -N patches/patch-src_engine_client_sound_cpp
> --- /dev/null   1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_engine_client_sound_cpp   8 May 2014 16:16:48 -0000
> @@ -0,0 +1,82 @@
> +$OpenBSD$
> +
> +Make it possible to compile with an external and newer wavpack.
> +From Debian.
> +
> +--- src/engine/client/sound.cpp.orig   Wed May  1 13:47:39 2013
> ++++ src/engine/client/sound.cpp        Thu May  8 16:00:47 2014
> +@@ -13,7 +13,7 @@
> + #include "sound.h"
> +
> + extern "C" { // wavpack
> +-      #include <engine/external/wavpack/wavpack.h>
> ++      #include <wavpack/wavpack.h>
> + }
> + #include <math.h>
> +
> +@@ -328,17 +328,14 @@ void CSound::RateConvert(int SampleID)
> +       pSample->m_NumFrames = NumFrames;
> + }
> +
> +-int CSound::ReadData(void *pBuffer, int Size)
> +-{
> +-      return io_read(ms_File, pBuffer, Size);
> +-}
> +-
> + int CSound::LoadWV(const char *pFilename)
> + {
> +       CSample *pSample;
> +       int SampleID = -1;
> +       char aError[100];
> +       WavpackContext *pContext;
> ++      char aWholePath[1024];
> ++      IOHANDLE File;
> +
> +       // don't waste memory on sound when we are stress testing
> +       if(g_Config.m_DbgStress)
> +@@ -351,19 +348,23 @@ int CSound::LoadWV(const char *pFilename)
> +       if(!m_pStorage)
> +               return -1;
> +
> +-      ms_File = m_pStorage->OpenFile(pFilename, IOFLAG_READ,
> IStorage::TYPE_ALL);
> +-      if(!ms_File)
> ++      File = m_pStorage->OpenFile(pFilename, IOFLAG_READ,
> IStorage::TYPE_ALL, aWholePath, sizeof(aWholePath));
> ++      if(!File)
> +       {
> +               dbg_msg("sound/wv", "failed to open file. filename='%s'",
> pFilename);
> +               return -1;
> +       }
> ++      else
> ++      {
> ++              io_close(File);
> ++      }
> +
> +       SampleID = AllocID();
> +       if(SampleID < 0)
> +               return -1;
> +       pSample = &m_aSamples[SampleID];
> +
> +-      pContext = WavpackOpenFileInput(ReadData, aError);
> ++      pContext = WavpackOpenFileInput(aWholePath, aError, OPEN_2CH_MAX,
> 0);
> +       if (pContext)
> +       {
> +               int m_aSamples = WavpackGetNumSamples(pContext);
> +@@ -419,9 +420,6 @@ int CSound::LoadWV(const char *pFilename)
> +               dbg_msg("sound/wv", "failed to open %s: %s", pFilename,
> aError);
> +       }
> +
> +-      io_close(ms_File);
> +-      ms_File = NULL;
> +-
> +       if(g_Config.m_Debug)
> +               dbg_msg("sound/wv", "loaded %s", pFilename);
> +
> +@@ -526,8 +524,6 @@ void CSound::StopAll()
> +       }
> +       lock_release(m_SoundLock);
> + }
> +-
> +-IOHANDLE CSound::ms_File = 0;
> +
> + IEngineSound *CreateEngineSound() { return new CSound; }
> +
> Index: patches/patch-src_engine_client_sound_h
> ===================================================================
> RCS file: patches/patch-src_engine_client_sound_h
> diff -N patches/patch-src_engine_client_sound_h
> --- /dev/null   1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_engine_client_sound_h     8 May 2014 16:16:48 -0000
> @@ -0,0 +1,18 @@
> +$OpenBSD$
> +
> +Make it possible to compile with an external and newer wavpack.
> +From Debian.
> +
> +--- src/engine/client/sound.h.orig     Wed May  1 13:47:39 2013
> ++++ src/engine/client/sound.h  Thu May  8 15:58:08 2014
> +@@ -21,10 +21,6 @@ class CSound : public IEngineSound (public)
> +
> +       static void RateConvert(int SampleID);
> +
> +-      // TODO: Refactor: clean this mess up
> +-      static IOHANDLE ms_File;
> +-      static int ReadData(void *pBuffer, int Size);
> +-
> +       virtual bool IsSoundEnabled() { return m_SoundEnabled != 0; }
> +
> +       virtual int LoadWV(const char *pFilename);
> Index: patches/patch-src_engine_e_engine_c
> ===================================================================
> RCS file: patches/patch-src_engine_e_engine_c
> diff -N patches/patch-src_engine_e_engine_c
> --- patches/patch-src_engine_e_engine_c 18 Jan 2009 17:53:36 -0000
>  1.1.1.1
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -$OpenBSD: patch-src_engine_e_engine_c,v 1.1.1.1 2009/01/18 17:53:36
> ajacoutot Exp $
> ---- src/engine/e_engine.c.orig Fri Jan 16 17:15:42 2009
> -+++ src/engine/e_engine.c      Fri Jan 16 17:16:30 2009
> -@@ -13,7 +13,7 @@
> - #include "e_linereader.h"
> -
> - /* compiled-in data-dir path */
> --#define DATA_DIR "data"
> -+#define DATA_DIR "${PREFIX}/share/teeworlds/data"
> -
> - static JOBPOOL hostlookuppool;
> - static int engine_find_datadir(char *argv0);
> Index: patches/patch-src_engine_shared_storage_cpp
> ===================================================================
> RCS file: patches/patch-src_engine_shared_storage_cpp
> diff -N patches/patch-src_engine_shared_storage_cpp
> --- /dev/null   1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_engine_shared_storage_cpp 8 May 2014 16:16:48 -0000
> @@ -0,0 +1,12 @@
> +$OpenBSD$
> +--- src/engine/shared/storage.cpp.orig Sun Jul 31 23:17:00 2011
> ++++ src/engine/shared/storage.cpp      Sat Mar 17 15:21:21 2012
> +@@ -5,7 +5,7 @@
> + #include "linereader.h"
> +
> + // compiled-in data-dir path
> +-#define DATA_DIR "data"
> ++#define DATA_DIR "${PREFIX}/share/teeworlds/data"
> +
> + class CStorage : public IStorage
> + {
> Index: patches/patch-src_game_client_gameclient_cpp
> ===================================================================
> RCS file: patches/patch-src_game_client_gameclient_cpp
> diff -N patches/patch-src_game_client_gameclient_cpp
> --- /dev/null   1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_game_client_gameclient_cpp        8 May 2014
> 16:16:48 -0000
> @@ -0,0 +1,24 @@
> +$OpenBSD$
> +
> +Don't require a local copy of DejavuSans.ttf.
> +
> +--- src/game/client/gameclient.cpp.orig        Wed May  1 13:47:39 2013
> ++++ src/game/client/gameclient.cpp     Thu May  8 16:59:57 2014
> +@@ -240,7 +240,7 @@ void CGameClient::OnInit()
> +       // load default font
> +       static CFont *pDefaultFont = 0;
> +       char aFilename[512];
> +-      IOHANDLE File = Storage()->OpenFile("fonts/DejaVuSans.ttf",
> IOFLAG_READ, IStorage::TYPE_ALL, aFilename, sizeof(aFilename));
> ++      IOHANDLE File =
> Storage()->OpenFile("${X11BASE}/lib/X11/fonts/TTF/DejaVuSans.ttf",
> IOFLAG_READ, IStorage::TYPE_ALL, aFilename, sizeof(aFilename));
> +       if(File)
> +       {
> +               io_close(File);
> +@@ -248,7 +248,7 @@ void CGameClient::OnInit()
> +               TextRender()->SetDefaultFont(pDefaultFont);
> +       }
> +       if(!pDefaultFont)
> +-              Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD,
> "gameclient", "failed to load font. filename='fonts/DejaVuSans.ttf'");
> ++              Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD,
> "gameclient", "failed to load font. filename='DejaVuSans.ttf'");
> +
> +       // init all components
> +       for(int i = m_All.m_Num-1; i >= 0; --i)
> Index: pkg/DESCR
> ===================================================================
> RCS file: /cvs/ports/games/teeworlds/pkg/DESCR,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 DESCR
> --- pkg/DESCR   18 Jan 2009 17:53:36 -0000      1.1.1.1
> +++ pkg/DESCR   8 May 2014 16:16:48 -0000
> @@ -1,3 +1,3 @@
> -Teeworlds is a free online multiplayer game, available for all major
> -operating systems. Battle with up to 16 players in a variety of game
> +Teeworlds is a free online multiplayer game, available for all major
> +operating systems. Battle with up to 16 players in a variety of game
>  modes, including Team Deathmatch and Capture The Flag.
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/games/teeworlds/pkg/PLIST,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 PLIST
> --- pkg/PLIST   18 Jan 2009 17:53:36 -0000      1.1.1.1
> +++ pkg/PLIST   8 May 2014 16:16:48 -0000
> @@ -34,6 +34,7 @@ share/teeworlds/data/audio/hook_loop-02.
>  share/teeworlds/data/audio/hook_noattach-01.wv
>  share/teeworlds/data/audio/hook_noattach-02.wv
>  share/teeworlds/data/audio/hook_noattach-03.wv
> +share/teeworlds/data/audio/music_menu.wv
>  share/teeworlds/data/audio/sfx_ctf_cap_pl.wv
>  share/teeworlds/data/audio/sfx_ctf_drop.wv
>  share/teeworlds/data/audio/sfx_ctf_grab_en.wv
> @@ -45,6 +46,7 @@ share/teeworlds/data/audio/sfx_hit_weak-
>  share/teeworlds/data/audio/sfx_hit_weak-02.wv
>  share/teeworlds/data/audio/sfx_hit_weak-03.wv
>  share/teeworlds/data/audio/sfx_msg-client.wv
> +share/teeworlds/data/audio/sfx_msg-highlight.wv
>  share/teeworlds/data/audio/sfx_msg-server.wv
>  share/teeworlds/data/audio/sfx_pickup_arm-01.wv
>  share/teeworlds/data/audio/sfx_pickup_arm-02.wv
> @@ -137,73 +139,317 @@ share/teeworlds/data/blob.png
>  share/teeworlds/data/browse_icons.png
>  share/teeworlds/data/console.png
>  share/teeworlds/data/console_bar.png
> +share/teeworlds/data/countryflags/
> +share/teeworlds/data/countryflags/AD.png
> +share/teeworlds/data/countryflags/AE.png
> +share/teeworlds/data/countryflags/AF.png
> +share/teeworlds/data/countryflags/AG.png
> +share/teeworlds/data/countryflags/AI.png
> +share/teeworlds/data/countryflags/AL.png
> +share/teeworlds/data/countryflags/AM.png
> +share/teeworlds/data/countryflags/AO.png
> +share/teeworlds/data/countryflags/AR.png
> +share/teeworlds/data/countryflags/AS.png
> +share/teeworlds/data/countryflags/AT.png
> +share/teeworlds/data/countryflags/AU.png
> +share/teeworlds/data/countryflags/AW.png
> +share/teeworlds/data/countryflags/AX.png
> +share/teeworlds/data/countryflags/AZ.png
> +share/teeworlds/data/countryflags/BA.png
> +share/teeworlds/data/countryflags/BB.png
> +share/teeworlds/data/countryflags/BD.png
> +share/teeworlds/data/countryflags/BE.png
> +share/teeworlds/data/countryflags/BF.png
> +share/teeworlds/data/countryflags/BG.png
> +share/teeworlds/data/countryflags/BH.png
> +share/teeworlds/data/countryflags/BI.png
> +share/teeworlds/data/countryflags/BJ.png
> +share/teeworlds/data/countryflags/BL.png
> +share/teeworlds/data/countryflags/BM.png
> +share/teeworlds/data/countryflags/BN.png
> +share/teeworlds/data/countryflags/BO.png
> +share/teeworlds/data/countryflags/BR.png
> +share/teeworlds/data/countryflags/BS.png
> +share/teeworlds/data/countryflags/BT.png
> +share/teeworlds/data/countryflags/BW.png
> +share/teeworlds/data/countryflags/BY.png
> +share/teeworlds/data/countryflags/BZ.png
> +share/teeworlds/data/countryflags/CA.png
> +share/teeworlds/data/countryflags/CC.png
> +share/teeworlds/data/countryflags/CD.png
> +share/teeworlds/data/countryflags/CF.png
> +share/teeworlds/data/countryflags/CG.png
> +share/teeworlds/data/countryflags/CH.png
> +share/teeworlds/data/countryflags/CI.png
> +share/teeworlds/data/countryflags/CK.png
> +share/teeworlds/data/countryflags/CL.png
> +share/teeworlds/data/countryflags/CM.png
> +share/teeworlds/data/countryflags/CN.png
> +share/teeworlds/data/countryflags/CO.png
> +share/teeworlds/data/countryflags/CR.png
> +share/teeworlds/data/countryflags/CU.png
> +share/teeworlds/data/countryflags/CV.png
> +share/teeworlds/data/countryflags/CW.png
> +share/teeworlds/data/countryflags/CX.png
> +share/teeworlds/data/countryflags/CY.png
> +share/teeworlds/data/countryflags/CZ.png
> +share/teeworlds/data/countryflags/DE.png
> +share/teeworlds/data/countryflags/DJ.png
> +share/teeworlds/data/countryflags/DK.png
> +share/teeworlds/data/countryflags/DM.png
> +share/teeworlds/data/countryflags/DO.png
> +share/teeworlds/data/countryflags/DZ.png
> +share/teeworlds/data/countryflags/EC.png
> +share/teeworlds/data/countryflags/EE.png
> +share/teeworlds/data/countryflags/EG.png
> +share/teeworlds/data/countryflags/EH.png
> +share/teeworlds/data/countryflags/ER.png
> +share/teeworlds/data/countryflags/ES.png
> +share/teeworlds/data/countryflags/ET.png
> +share/teeworlds/data/countryflags/FI.png
> +share/teeworlds/data/countryflags/FJ.png
> +share/teeworlds/data/countryflags/FK.png
> +share/teeworlds/data/countryflags/FM.png
> +share/teeworlds/data/countryflags/FO.png
> +share/teeworlds/data/countryflags/FR.png
> +share/teeworlds/data/countryflags/GA.png
> +share/teeworlds/data/countryflags/GB.png
> +share/teeworlds/data/countryflags/GD.png
> +share/teeworlds/data/countryflags/GE.png
> +share/teeworlds/data/countryflags/GF.png
> +share/teeworlds/data/countryflags/GG.png
> +share/teeworlds/data/countryflags/GH.png
> +share/teeworlds/data/countryflags/GI.png
> +share/teeworlds/data/countryflags/GL.png
> +share/teeworlds/data/countryflags/GM.png
> +share/teeworlds/data/countryflags/GN.png
> +share/teeworlds/data/countryflags/GP.png
> +share/teeworlds/data/countryflags/GQ.png
> +share/teeworlds/data/countryflags/GR.png
> +share/teeworlds/data/countryflags/GS.png
> +share/teeworlds/data/countryflags/GT.png
> +share/teeworlds/data/countryflags/GU.png
> +share/teeworlds/data/countryflags/GW.png
> +share/teeworlds/data/countryflags/GY.png
> +share/teeworlds/data/countryflags/HK.png
> +share/teeworlds/data/countryflags/HN.png
> +share/teeworlds/data/countryflags/HR.png
> +share/teeworlds/data/countryflags/HT.png
> +share/teeworlds/data/countryflags/HU.png
> +share/teeworlds/data/countryflags/ID.png
> +share/teeworlds/data/countryflags/IE.png
> +share/teeworlds/data/countryflags/IL.png
> +share/teeworlds/data/countryflags/IM.png
> +share/teeworlds/data/countryflags/IN.png
> +share/teeworlds/data/countryflags/IO.png
> +share/teeworlds/data/countryflags/IQ.png
> +share/teeworlds/data/countryflags/IR.png
> +share/teeworlds/data/countryflags/IS.png
> +share/teeworlds/data/countryflags/IT.png
> +share/teeworlds/data/countryflags/JE.png
> +share/teeworlds/data/countryflags/JM.png
> +share/teeworlds/data/countryflags/JO.png
> +share/teeworlds/data/countryflags/JP.png
> +share/teeworlds/data/countryflags/KE.png
> +share/teeworlds/data/countryflags/KG.png
> +share/teeworlds/data/countryflags/KH.png
> +share/teeworlds/data/countryflags/KI.png
> +share/teeworlds/data/countryflags/KM.png
> +share/teeworlds/data/countryflags/KN.png
> +share/teeworlds/data/countryflags/KP.png
> +share/teeworlds/data/countryflags/KR.png
> +share/teeworlds/data/countryflags/KW.png
> +share/teeworlds/data/countryflags/KY.png
> +share/teeworlds/data/countryflags/KZ.png
> +share/teeworlds/data/countryflags/LA.png
> +share/teeworlds/data/countryflags/LB.png
> +share/teeworlds/data/countryflags/LC.png
> +share/teeworlds/data/countryflags/LI.png
> +share/teeworlds/data/countryflags/LK.png
> +share/teeworlds/data/countryflags/LR.png
> +share/teeworlds/data/countryflags/LS.png
> +share/teeworlds/data/countryflags/LT.png
> +share/teeworlds/data/countryflags/LU.png
> +share/teeworlds/data/countryflags/LV.png
> +share/teeworlds/data/countryflags/LY.png
> +share/teeworlds/data/countryflags/MA.png
> +share/teeworlds/data/countryflags/MC.png
> +share/teeworlds/data/countryflags/MD.png
> +share/teeworlds/data/countryflags/ME.png
> +share/teeworlds/data/countryflags/MF.png
> +share/teeworlds/data/countryflags/MG.png
> +share/teeworlds/data/countryflags/MH.png
> +share/teeworlds/data/countryflags/MK.png
> +share/teeworlds/data/countryflags/ML.png
> +share/teeworlds/data/countryflags/MM.png
> +share/teeworlds/data/countryflags/MN.png
> +share/teeworlds/data/countryflags/MO.png
> +share/teeworlds/data/countryflags/MP.png
> +share/teeworlds/data/countryflags/MQ.png
> +share/teeworlds/data/countryflags/MR.png
> +share/teeworlds/data/countryflags/MS.png
> +share/teeworlds/data/countryflags/MT.png
> +share/teeworlds/data/countryflags/MU.png
> +share/teeworlds/data/countryflags/MV.png
> +share/teeworlds/data/countryflags/MW.png
> +share/teeworlds/data/countryflags/MX.png
> +share/teeworlds/data/countryflags/MY.png
> +share/teeworlds/data/countryflags/MZ.png
> +share/teeworlds/data/countryflags/NA.png
> +share/teeworlds/data/countryflags/NC.png
> +share/teeworlds/data/countryflags/NE.png
> +share/teeworlds/data/countryflags/NF.png
> +share/teeworlds/data/countryflags/NG.png
> +share/teeworlds/data/countryflags/NI.png
> +share/teeworlds/data/countryflags/NL.png
> +share/teeworlds/data/countryflags/NO.png
> +share/teeworlds/data/countryflags/NP.png
> +share/teeworlds/data/countryflags/NR.png
> +share/teeworlds/data/countryflags/NU.png
> +share/teeworlds/data/countryflags/NZ.png
> +share/teeworlds/data/countryflags/OM.png
> +share/teeworlds/data/countryflags/PA.png
> +share/teeworlds/data/countryflags/PE.png
> +share/teeworlds/data/countryflags/PF.png
> +share/teeworlds/data/countryflags/PG.png
> +share/teeworlds/data/countryflags/PH.png
> +share/teeworlds/data/countryflags/PK.png
> +share/teeworlds/data/countryflags/PL.png
> +share/teeworlds/data/countryflags/PM.png
> +share/teeworlds/data/countryflags/PN.png
> +share/teeworlds/data/countryflags/PR.png
> +share/teeworlds/data/countryflags/PT.png
> +share/teeworlds/data/countryflags/PW.png
> +share/teeworlds/data/countryflags/PY.png
> +share/teeworlds/data/countryflags/QA.png
> +share/teeworlds/data/countryflags/RE.png
> +share/teeworlds/data/countryflags/RO.png
> +share/teeworlds/data/countryflags/RS.png
> +share/teeworlds/data/countryflags/RU.png
> +share/teeworlds/data/countryflags/RW.png
> +share/teeworlds/data/countryflags/SA.png
> +share/teeworlds/data/countryflags/SB.png
> +share/teeworlds/data/countryflags/SC.png
> +share/teeworlds/data/countryflags/SD.png
> +share/teeworlds/data/countryflags/SE.png
> +share/teeworlds/data/countryflags/SG.png
> +share/teeworlds/data/countryflags/SH.png
> +share/teeworlds/data/countryflags/SI.png
> +share/teeworlds/data/countryflags/SK.png
> +share/teeworlds/data/countryflags/SL.png
> +share/teeworlds/data/countryflags/SM.png
> +share/teeworlds/data/countryflags/SN.png
> +share/teeworlds/data/countryflags/SO.png
> +share/teeworlds/data/countryflags/SR.png
> +share/teeworlds/data/countryflags/SS.png
> +share/teeworlds/data/countryflags/ST.png
> +share/teeworlds/data/countryflags/SV.png
> +share/teeworlds/data/countryflags/SX.png
> +share/teeworlds/data/countryflags/SY.png
> +share/teeworlds/data/countryflags/SZ.png
> +share/teeworlds/data/countryflags/TC.png
> +share/teeworlds/data/countryflags/TD.png
> +share/teeworlds/data/countryflags/TF.png
> +share/teeworlds/data/countryflags/TG.png
> +share/teeworlds/data/countryflags/TH.png
> +share/teeworlds/data/countryflags/TJ.png
> +share/teeworlds/data/countryflags/TK.png
> +share/teeworlds/data/countryflags/TL.png
> +share/teeworlds/data/countryflags/TM.png
> +share/teeworlds/data/countryflags/TN.png
> +share/teeworlds/data/countryflags/TO.png
> +share/teeworlds/data/countryflags/TR.png
> +share/teeworlds/data/countryflags/TT.png
> +share/teeworlds/data/countryflags/TV.png
> +share/teeworlds/data/countryflags/TW.png
> +share/teeworlds/data/countryflags/TZ.png
> +share/teeworlds/data/countryflags/UA.png
> +share/teeworlds/data/countryflags/UG.png
> +share/teeworlds/data/countryflags/US.png
> +share/teeworlds/data/countryflags/UY.png
> +share/teeworlds/data/countryflags/UZ.png
> +share/teeworlds/data/countryflags/VA.png
> +share/teeworlds/data/countryflags/VC.png
> +share/teeworlds/data/countryflags/VE.png
> +share/teeworlds/data/countryflags/VG.png
> +share/teeworlds/data/countryflags/VI.png
> +share/teeworlds/data/countryflags/VN.png
> +share/teeworlds/data/countryflags/VU.png
> +share/teeworlds/data/countryflags/WF.png
> +share/teeworlds/data/countryflags/WS.png
> +share/teeworlds/data/countryflags/XEN.png
> +share/teeworlds/data/countryflags/XNI.png
> +share/teeworlds/data/countryflags/XSC.png
> +share/teeworlds/data/countryflags/XWA.png
> +share/teeworlds/data/countryflags/YE.png
> +share/teeworlds/data/countryflags/ZA.png
> +share/teeworlds/data/countryflags/ZM.png
> +share/teeworlds/data/countryflags/ZW.png
> +share/teeworlds/data/countryflags/default.png
> +share/teeworlds/data/countryflags/index.txt
>  share/teeworlds/data/debug_font.png
> +share/teeworlds/data/demo_buttons.png
>  share/teeworlds/data/editor/
>  share/teeworlds/data/editor/background.png
>  share/teeworlds/data/editor/checker.png
>  share/teeworlds/data/editor/cursor.png
> +share/teeworlds/data/editor/desert_main.rules
>  share/teeworlds/data/editor/entities.png
> +share/teeworlds/data/editor/grass_main.rules
> +share/teeworlds/data/editor/jungle_main.rules
> +share/teeworlds/data/editor/winter_main.rules
>  share/teeworlds/data/emoticons.png
> -share/teeworlds/data/fonts/
> -share/teeworlds/data/fonts/default_font10.png
> -share/teeworlds/data/fonts/default_font10.tfnt
> -share/teeworlds/data/fonts/default_font10_b.png
> -share/teeworlds/data/fonts/default_font11.png
> -share/teeworlds/data/fonts/default_font11.tfnt
> -share/teeworlds/data/fonts/default_font11_b.png
> -share/teeworlds/data/fonts/default_font12.png
> -share/teeworlds/data/fonts/default_font12.tfnt
> -share/teeworlds/data/fonts/default_font12_b.png
> -share/teeworlds/data/fonts/default_font13.png
> -share/teeworlds/data/fonts/default_font13.tfnt
> -share/teeworlds/data/fonts/default_font13_b.png
> -share/teeworlds/data/fonts/default_font14.png
> -share/teeworlds/data/fonts/default_font14.tfnt
> -share/teeworlds/data/fonts/default_font14_b.png
> -share/teeworlds/data/fonts/default_font15.png
> -share/teeworlds/data/fonts/default_font15.tfnt
> -share/teeworlds/data/fonts/default_font15_b.png
> -share/teeworlds/data/fonts/default_font16.png
> -share/teeworlds/data/fonts/default_font16.tfnt
> -share/teeworlds/data/fonts/default_font16_b.png
> -share/teeworlds/data/fonts/default_font17.png
> -share/teeworlds/data/fonts/default_font17.tfnt
> -share/teeworlds/data/fonts/default_font17_b.png
> -share/teeworlds/data/fonts/default_font18.png
> -share/teeworlds/data/fonts/default_font18.tfnt
> -share/teeworlds/data/fonts/default_font18_b.png
> -share/teeworlds/data/fonts/default_font19.png
> -share/teeworlds/data/fonts/default_font19.tfnt
> -share/teeworlds/data/fonts/default_font19_b.png
> -share/teeworlds/data/fonts/default_font20.png
> -share/teeworlds/data/fonts/default_font20.tfnt
> -share/teeworlds/data/fonts/default_font20_b.png
> -share/teeworlds/data/fonts/default_font36.png
> -share/teeworlds/data/fonts/default_font36.tfnt
> -share/teeworlds/data/fonts/default_font36_b.png
> -share/teeworlds/data/fonts/default_font8.png
> -share/teeworlds/data/fonts/default_font8.tfnt
> -share/teeworlds/data/fonts/default_font8_b.png
> -share/teeworlds/data/fonts/default_font9.png
> -share/teeworlds/data/fonts/default_font9.tfnt
> -share/teeworlds/data/fonts/default_font9_b.png
> +share/teeworlds/data/file_icons.png
>  share/teeworlds/data/game.png
> +share/teeworlds/data/gui_buttons.png
>  share/teeworlds/data/gui_cursor.png
> +share/teeworlds/data/gui_icons.png
>  share/teeworlds/data/gui_logo.png
> +share/teeworlds/data/languages/
> +share/teeworlds/data/languages/belarusian.txt
> +share/teeworlds/data/languages/bosnian.txt
> +share/teeworlds/data/languages/brazilian_portuguese.txt
> +share/teeworlds/data/languages/bulgarian.txt
> +share/teeworlds/data/languages/czech.txt
> +share/teeworlds/data/languages/danish.txt
> +share/teeworlds/data/languages/dutch.txt
> +share/teeworlds/data/languages/finnish.txt
> +share/teeworlds/data/languages/french.txt
> +share/teeworlds/data/languages/german.txt
> +share/teeworlds/data/languages/hungarian.txt
> +share/teeworlds/data/languages/index.txt
> +share/teeworlds/data/languages/italian.txt
> +share/teeworlds/data/languages/kyrgyz.txt
> +share/teeworlds/data/languages/norwegian.txt
> +share/teeworlds/data/languages/polish.txt
> +share/teeworlds/data/languages/portuguese.txt
> +share/teeworlds/data/languages/romanian.txt
> +share/teeworlds/data/languages/russian.txt
> +share/teeworlds/data/languages/serbian.txt
> +share/teeworlds/data/languages/slovak.txt
> +share/teeworlds/data/languages/spanish.txt
> +share/teeworlds/data/languages/swedish.txt
> +share/teeworlds/data/languages/turkish.txt
> +share/teeworlds/data/languages/ukrainian.txt
>  share/teeworlds/data/mapres/
>  share/teeworlds/data/mapres/bg_cloud1.png
>  share/teeworlds/data/mapres/bg_cloud2.png
>  share/teeworlds/data/mapres/bg_cloud3.png
> +share/teeworlds/data/mapres/desert_doodads.png
>  share/teeworlds/data/mapres/desert_main.png
>  share/teeworlds/data/mapres/desert_mountains.png
> +share/teeworlds/data/mapres/desert_mountains2.png
>  share/teeworlds/data/mapres/desert_sun.png
> +share/teeworlds/data/mapres/generic_deathtiles.png
>  share/teeworlds/data/mapres/generic_unhookable.png
>  share/teeworlds/data/mapres/grass_doodads.png
>  share/teeworlds/data/mapres/grass_main.png
> +share/teeworlds/data/mapres/jungle_background.png
> +share/teeworlds/data/mapres/jungle_deathtiles.png
>  share/teeworlds/data/mapres/jungle_doodads.png
>  share/teeworlds/data/mapres/jungle_main.png
> -share/teeworlds/data/mapres/jungle_night.png
> -share/teeworlds/data/mapres/jungle_night2.png
> +share/teeworlds/data/mapres/jungle_midground.png
> +share/teeworlds/data/mapres/jungle_unhookables.png
>  share/teeworlds/data/mapres/moon.png
>  share/teeworlds/data/mapres/mountains.png
>  share/teeworlds/data/mapres/snow.png
> @@ -211,12 +457,17 @@ share/teeworlds/data/mapres/stars.png
>  share/teeworlds/data/mapres/sun.png
>  share/teeworlds/data/mapres/winter_doodads.png
>  share/teeworlds/data/mapres/winter_main.png
> +share/teeworlds/data/mapres/winter_mountains.png
> +share/teeworlds/data/mapres/winter_mountains2.png
> +share/teeworlds/data/mapres/winter_mountains3.png
>  share/teeworlds/data/maps/
>  share/teeworlds/data/maps/ctf1.map
>  share/teeworlds/data/maps/ctf2.map
>  share/teeworlds/data/maps/ctf3.map
>  share/teeworlds/data/maps/ctf4.map
>  share/teeworlds/data/maps/ctf5.map
> +share/teeworlds/data/maps/ctf6.map
> +share/teeworlds/data/maps/ctf7.map
>  share/teeworlds/data/maps/dm1.map
>  share/teeworlds/data/maps/dm2.map
>  share/teeworlds/data/maps/dm6.map
>
>

Reply via email to