Hi,

I would like a review / ok from another porter to commit that.

Thanks


2014-07-11 12:19 GMT+02:00 Jonathan Armani <d...@asystant.net>:

> 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