Hi,

The following diff updates games/teeworlds from 0.6.4 to 0.7.2.

This requires my new devel/bam port, sent here:
https://marc.info/?l=openbsd-ports&m=155008600618612&w=2

Some changes:

*  this now uses SDL2
*  move bam to an independent port, to ease maintenance
*  this can now run on strict-alignment archs (at least teeworlds_srv)
*  don't bother removing the extra DejaVuSans.ttf font from
   upstream, because they made this harder
*  don't bother patching some scripts which aren't used during
   the build
*  make the gfx_texture_quality setting a noop at the moment,
   to work around some libGLU crashes.

(I'm also updating my email address in MAINTAINER, while here)

The way to deal with gcc/clang in bam is really perfectible, but
teeworlds is its sole consumer and I've verified that it builds
on amd64, macppc and loongson.

As for the libGLU crashes, they're random and I have no idea if
the bug is in this port, X or SDL2 (I find SDL2 a bit less
reliable than SDL1, especially on macppc). gdb output here, if
someone understands which part is to blame:

https://www.dwatteau.fr/tmp/gdb_teeworlds_072_crash.txt

If you don't have an XDG desktop, you might need to
mkdir ~/.local/share to avoid a crash on startup.  This will
be fixed in the next release.

The following diff is also available here, in case it gets
corrupted:

https://www.dwatteau.fr/tmp/teeworlds_072_update.diff

Thanks.

Index: Makefile
===================================================================
RCS file: /cvs/ports/games/teeworlds/Makefile,v
retrieving revision 1.24
diff -u -p -r1.24 Makefile
--- Makefile    24 Oct 2018 14:28:04 -0000      1.24
+++ Makefile    10 Mar 2019 09:54:36 -0000
@@ -1,77 +1,55 @@
 # $OpenBSD: Makefile,v 1.24 2018/10/24 14:28:04 sthen Exp $
 
-# Crashes on strict-alignment archs, see: src/base/system.c:164
-ONLY_FOR_ARCHS=        amd64 i386 powerpc
-
 COMMENT=       platform game featuring buggers equipped with weapons
 
-V=             0.6.4
+V=             0.7.2
 DISTNAME=      teeworlds-${V}-src
 PKGNAME=       teeworlds-${V}
+EXTRACT_SUFX=  .tar.xz
 CATEGORIES=    games
-REVISION=      1
-
-HOMEPAGE=      http://www.teeworlds.com/
 
-MAINTAINER=    Donovan Watteau <tso...@gmail.com>
+HOMEPAGE=      https://www.teeworlds.com/
 
-BAM_VERSION=   0.4.0
-BAM_WRKSRC=    ${WRKSRC}/bam-${BAM_VERSION}
+MAINTAINER=    Donovan Watteau <cont...@dwatteau.fr>
 
-MASTER_SITES=  https://downloads.teeworlds.com/
-DISTFILES=     ${DISTNAME}${EXTRACT_SUFX} bam-${BAM_VERSION}${EXTRACT_SUFX}
+MASTER_SITES=  https://github.com/teeworlds/teeworlds/releases/download/${V}/
 
 # BSD-like
 PERMIT_PACKAGE_CDROM=  Yes
 
-WANTLIB=       GL GLU SDL X11 c freetype m pthread ${COMPILER_LIBCXX} wavpack z
+WANTLIB=       GL GLU SDL2 X11 c freetype m pthread ${COMPILER_LIBCXX} wavpack 
z
+
+COMPILER=      base-clang ports-gcc base-gcc
 
-COMPILER =             base-clang ports-gcc base-gcc
+BUILD_DEPENDS= devel/bam
 
 LIB_DEPENDS=   audio/wavpack \
-               devel/sdl
+               devel/sdl2
 
 MODULES=       lang/python
 MODPY_RUNDEP=  No
 
-SUBST_VARS=    CC CXX CFLAGS CXXFLAGS X11BASE
+SUBST_VARS=    CC
 
 NO_TEST=       Yes
 
 # Give it a chance on ppc
 CXXFLAGS+=     -fsigned-char
 
-post-extract:
-       @mv ${WRKDIR}/bam-${BAM_VERSION} ${BAM_WRKSRC}
-
 pre-configure:
-       @${SUBST_CMD} ${WRKSRC}/src/engine/shared/storage.cpp \
+       ${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}/scripts/make_src.py \
-               ${WRKSRC}/bam.lua \
-               ${WRKSRC}/configure.lua \
-               ${BAM_WRKSRC}/make_unix.sh \
-               ${BAM_WRKSRC}/src/driver_gcc.lua \
-               ${BAM_WRKSRC}/src/base.lua
+               ${WRKSRC}/{bam,configure}.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}/bam -a -v release 
wavpack=${LOCALBASE}
+       cd ${WRKSRC} && env CXXFLAGS="${CXXFLAGS}" bam -a -v -j ${MAKE_JOBS} \
+               conf=release builddir=build wavpack=${LOCALBASE}
 
 do-install:
-       ${INSTALL_PROGRAM} ${WRKSRC}/teeworlds ${PREFIX}/bin
-       ${INSTALL_PROGRAM} ${WRKSRC}/teeworlds_srv ${PREFIX}/bin
+       ${INSTALL_PROGRAM} ${WRKSRC}/build/teeworlds{,_srv} ${PREFIX}/bin
        ${INSTALL_DATA_DIR} ${PREFIX}/share/teeworlds
-       cd ${WRKSRC}; tar cf - data | tar xf - -C ${PREFIX}/share/teeworlds
+       cd ${WRKSRC}/build && 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.6
diff -u -p -r1.6 distinfo
--- distinfo    30 Nov 2016 18:17:03 -0000      1.6
+++ distinfo    10 Mar 2019 09:54:36 -0000
@@ -1,4 +1,2 @@
-SHA256 (bam-0.4.0.tar.gz) = Xk5JILTSZdpYL2Z3TpseyN37513cAo+6hsEvaG6hjbM=
-SHA256 (teeworlds-0.6.4-src.tar.gz) = 
wmHRnrsAtUUfqizrSnypRcrSrdSLBgRutDtAzMn9mOI=
-SIZE (bam-0.4.0.tar.gz) = 206780
-SIZE (teeworlds-0.6.4-src.tar.gz) = 8771622
+SHA256 (teeworlds-0.7.2-src.tar.xz) = 
mXbF8Rm2HjPi7dQGC10Hpxg6NgR5PdFP0y4qKQnj32M=
+SIZE (teeworlds-0.7.2-src.tar.xz) = 8237124
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
--- patches/patch-bam-0_4_0_make_unix_sh        27 Dec 2015 17:56:22 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-$OpenBSD: patch-bam-0_4_0_make_unix_sh,v 1.1 2015/12/27 17:56:22 jasper Exp $
-
-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
--- patches/patch-bam-0_4_0_src_driver_gcc_lua  27 Dec 2015 17:56:22 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,52 +0,0 @@
-$OpenBSD: patch-bam-0_4_0_src_driver_gcc_lua,v 1.1 2015/12/27 17:56:22 jasper 
Exp $
-
-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: /cvs/ports/games/teeworlds/patches/patch-bam_lua,v
retrieving revision 1.1
diff -u -p -r1.1 patch-bam_lua
--- patches/patch-bam_lua       27 Dec 2015 17:56:22 -0000      1.1
+++ patches/patch-bam_lua       10 Mar 2019 09:54:36 -0000
@@ -2,27 +2,29 @@ $OpenBSD: patch-bam_lua,v 1.1 2015/12/27
 
 - Don't enforce stack protector
 - Don't hardcode python
+- Don't hardcode gcc or clang
+- Don't hardcode supported archs
 - 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")
+Index: bam.lua
+--- bam.lua.orig
++++ bam.lua
+@@ -7,11 +7,11 @@ 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(OptTestCompileC("minmacosxsdk", "int main(){return 0;}", 
"-mmacosx-version-min=10.7 -isysroot /Developer/SDKs/MacOSX10.7.sdk"))
  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
+ generated_src_dir = "build/src"
+@@ -25,7 +25,7 @@ function Python(name)
+               -- Python is usually registered for .py files in Windows
                return str_replace(name, "/", "\\")
        end
 -      return "python " .. name
@@ -30,44 +32,105 @@ $OpenBSD: patch-bam_lua,v 1.1 2015/12/27
  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
+@@ -55,7 +55,7 @@ function ResCompile(scriptfile, compiler)
+       if compiler == "cl" then
+               output = PathJoin(generated_icon_dir, 
PathBase(PathFilename(scriptfile)) .. ".res")
+               AddJob(output, "rc " .. scriptfile, "rc /fo " .. output .. " " 
.. scriptfile)
+-      elseif compiler == "gcc" or compiler == "clang" then
++      else
+               output = PathJoin(generated_icon_dir, 
PathBase(PathFilename(scriptfile)) .. ".coff")
+               AddJob(output, "windres " .. scriptfile, "windres -i " .. 
scriptfile .. " -o " .. output)
        end
+@@ -77,13 +77,13 @@ end
  
-@@ -187,7 +184,7 @@ function build(settings)
+ 
+ function GenerateCommonSettings(settings, conf, arch, compiler)
+-      if compiler == "gcc" or compiler == "clang" then
++      if compiler ~= "cl" then
+               settings.cc.flags:Add("-Wall", "-fno-exceptions")
        end
  
-       -- compile zlib if needed
+       -- Compile zlib if needed
+       local zlib = nil
 -      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")
+@@ -93,8 +93,20 @@ function GenerateCommonSettings(settings, conf, arch, 
+               zlib = Compile(settings, 
Collect("src/engine/external/zlib/*.c"))
        end
  
-+      -- compile wavpack if needed
++      -- Compile wavpack if needed
++      local wavpack = nil
 +      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
++              settings.cc.include:Add("src/engine/external/wavpack")
 +              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"))
+       local md5 = Compile(settings, Collect("src/engine/external/md5/*.c"))
+-      local wavpack = Compile(settings, 
Collect("src/engine/external/wavpack/*.c"))
+       local png = Compile(settings, 
Collect("src/engine/external/pnglite/*.c"))
+       local json = Compile(settings, 
Collect("src/engine/external/json-parser/*.c"))
+ 
+@@ -170,16 +182,6 @@ end
+ function GenerateLinuxSettings(settings, conf, arch, compiler)
+       if arch == "x86" then
+               settings.cc.flags:Add("-msse2") -- for the _mm_pause call
+-              settings.cc.flags:Add("-m32")
+-              settings.link.flags:Add("-m32")
+-      elseif arch == "x86_64" then
+-              settings.cc.flags:Add("-m64")
+-              settings.link.flags:Add("-m64")
+-      elseif arch == "armv7l" then
+-              -- arm 32 bit
+-      else
+-              print("Unknown Architecture '" .. arch .. "'. Supported: x86, 
x86_64")
+-              os.exit(1)
+       end
+       settings.link.libs:Add("pthread")
  
-       -- build game components
+@@ -198,6 +200,7 @@ function GenerateLinuxSettings(settings, conf, arch, c
+       BuildServer(settings)
+ 
+       -- Client
++      settings.link.libs:Add("wavpack")
+       settings.link.libs:Add("X11")
+       settings.link.libs:Add("GL")
+       settings.link.libs:Add("GLU")
+@@ -222,7 +225,7 @@ function GenerateWindowsSettings(settings, conf, targe
+                       os.exit(1)
+               end
+               settings.cc.flags:Add("/wd4244", "/wd4577")
+-      elseif compiler == "gcc" or config.compiler.driver == "clang" then
++      else
+               if target_arch ~= "x86" and target_arch ~= "x86_64" then
+                       print("Unknown Architecture '" .. arch .. "'. 
Supported: x86, x86_64")
+                       os.exit(1)
+@@ -377,17 +380,11 @@ end
+ function GenerateSettings(conf, arch, builddir, compiler)
+       local settings = NewSettings()
+ 
+-      -- Set compiler if explicitly requested
+-      if compiler == "gcc" then
+-              SetDriversGCC(settings)
+-      elseif compiler == "clang" then
+-              SetDriversClang(settings)
+-      elseif compiler == "cl" then
++      if compiler == "cl" then
+               SetDriversCL(settings)
+       else
+-              -- apply compiler settings
+-              config.compiler:Apply(settings)
+-              compiler = config.compiler.driver
++              -- Assume GCC compatible
++              SetDriversGCC(settings)
+       end
+       
+       if conf ==  "debug" then
Index: patches/patch-configure_lua
===================================================================
RCS file: /cvs/ports/games/teeworlds/patches/patch-configure_lua,v
retrieving revision 1.1
diff -u -p -r1.1 patch-configure_lua
--- patches/patch-configure_lua 1 Mar 2017 20:42:57 -0000       1.1
+++ patches/patch-configure_lua 10 Mar 2019 09:54:36 -0000
@@ -1,17 +1,19 @@
 $OpenBSD: patch-configure_lua,v 1.1 2017/03/01 20:42:57 naddy Exp $
 
-Accept more compilers than a hardcoded gcc.
+Assume that CC is gcc compatible, instead of hardcoding gcc and clang.
 
-(SetDriversClang() is also a no-op) 
-
---- configure.lua.orig Sun Nov 13 16:41:35 2016
-+++ configure.lua      Tue Feb 28 19:34:03 2017
-@@ -362,10 +362,9 @@ function OptCCompiler(name, default_driver, default_c,
+Index: configure.lua
+--- configure.lua.orig
++++ configure.lua
+@@ -359,12 +359,11 @@ function OptCCompiler(name, default_driver, default_c,
+                       -- no need todo anything if we have a driver
+                       -- TODO: test if we can find the compiler
                else
-                       if ExecuteSilent("cl") == 0 then
-                               option.driver = "cl"
--                      elseif ExecuteSilent("g++ -v") == 0 then
+-                      if ExecuteSilent("g++ -v") == 0 then
 -                              option.driver = "gcc"
+-                      elseif ExecuteSilent("cl") == 0 then
++                      if ExecuteSilent("cl") == 0 then
+                               option.driver = "cl"
                        else
 -                              error("no c/c++ compiler found")
 +                              -- Assume GCC compatible
@@ -19,7 +21,7 @@ Accept more compilers than a hardcoded g
                        end
                end
                --setup_compiler(option.value)
-@@ -374,12 +373,9 @@ function OptCCompiler(name, default_driver, default_c,
+@@ -373,12 +372,9 @@ function OptCCompiler(name, default_driver, default_c,
        local apply = function(option, settings)
                if option.driver == "cl" then
                        SetDriversCL(settings)
Index: patches/patch-datasrc_languages_french_json
===================================================================
RCS file: patches/patch-datasrc_languages_french_json
diff -N patches/patch-datasrc_languages_french_json
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-datasrc_languages_french_json 10 Mar 2019 09:54:36 -0000
@@ -0,0 +1,23 @@
+$OpenBSD$
+
+Sorry, but it bugs me when the main action in the UI has a big
+translation error.
+
+Index: datasrc/languages/french.json
+--- datasrc/languages/french.json.orig
++++ datasrc/languages/french.json
+@@ -751,12 +751,12 @@
+       },
+       {
+               "or": "Play",
+-              "tr": "Lire"
++              "tr": "Jouer"
+       },
+       {
+               "context": "DemoBrowser",
+               "or": "Play",
+-              "tr": "Lire"
++              "tr": "Jouer"
+       },
+       {
+               "or": "Play background music",
Index: patches/patch-scripts_build_py
===================================================================
RCS file: patches/patch-scripts_build_py
diff -N patches/patch-scripts_build_py
--- patches/patch-scripts_build_py      27 Dec 2015 17:56:22 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-scripts_build_py,v 1.1 2015/12/27 17:56:22 jasper Exp $
---- 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
--- patches/patch-scripts_compiler_py   27 Dec 2015 17:56:22 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
-$OpenBSD: patch-scripts_compiler_py,v 1.1 2015/12/27 17:56:22 jasper Exp $
---- 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: patches/patch-scripts_font_installer_sh
diff -N patches/patch-scripts_font_installer_sh
--- patches/patch-scripts_font_installer_sh     27 Dec 2015 17:56:22 -0000      
1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,8 +0,0 @@
-$OpenBSD: patch-scripts_font_installer_sh,v 1.2 2015/12/27 17:56:22 jasper Exp 
$
---- 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
--python ../scripts/font_converter.py default*.fnt
-+${MODPY_BIN} ../scripts/font_converter.py default*.fnt
Index: patches/patch-src_base_detect_h
===================================================================
RCS file: /cvs/ports/games/teeworlds/patches/patch-src_base_detect_h,v
retrieving revision 1.1
diff -u -p -r1.1 patch-src_base_detect_h
--- patches/patch-src_base_detect_h     27 Dec 2015 17:56:22 -0000      1.1
+++ patches/patch-src_base_detect_h     10 Mar 2019 09:54:36 -0000
@@ -2,14 +2,15 @@ $OpenBSD: patch-src_base_detect_h,v 1.1 
 
 Fix endianness detection.
 
---- src/base/detect.h.orig     Wed Nov 19 23:08:22 2014
-+++ src/base/detect.h  Sat Aug 22 16:44:40 2015
-@@ -78,15 +78,15 @@
+Index: src/base/detect.h
+--- src/base/detect.h.orig
++++ src/base/detect.h
+@@ -85,15 +85,15 @@
  
  /* use gcc endianness definitions when available */
  #if defined(__GNUC__) && !defined(__APPLE__) && !defined(__MINGW32__) && 
!defined(__sun)
--      #if defined(__FreeBSD__) || defined(__OpenBSD__)
-+      #if defined(__FreeBSD__)
+-      #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
++      #if defined(__FreeBSD__) || defined(__NetBSD__)
                #include <sys/endian.h>
        #else
                #include <endian.h>
Index: patches/patch-src_engine_client_client_cpp
===================================================================
RCS file: patches/patch-src_engine_client_client_cpp
diff -N patches/patch-src_engine_client_client_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_engine_client_client_cpp  10 Mar 2019 09:54:36 -0000
@@ -0,0 +1,36 @@
+$OpenBSD$
+
+Kill LimitFps() on archs where _mm_pause() can't be used
+
+Index: src/engine/client/client.cpp
+--- src/engine/client/client.cpp.orig
++++ src/engine/client/client.cpp
+@@ -2,7 +2,10 @@
+ /* If you are missing that file, acquire a complete release at teeworlds.com. 
               */
+ #include <new>
+ 
++#if defined(__x86_64__) || defined(__i386__)
+ #include <immintrin.h> //_mm_pause
++#endif
++
+ #include <stdlib.h> // qsort
+ #include <stdarg.h>
+ 
+@@ -1733,6 +1736,9 @@ void CClient::InitInterfaces()
+ 
+ bool CClient::LimitFps()
+ {
++#if !defined(__x86_64__) && !defined(__i386__)
++      return false;
++#else
+       if(g_Config.m_GfxVsync || !g_Config.m_GfxLimitFps) return false;
+ 
+       /**
+@@ -1809,6 +1815,7 @@ bool CClient::LimitFps()
+ #endif
+ 
+       return SkipFrame;
++#endif
+ }
+ 
+ void CClient::Run()
Index: patches/patch-src_engine_client_graphics_threaded_cpp
===================================================================
RCS file: patches/patch-src_engine_client_graphics_threaded_cpp
diff -N patches/patch-src_engine_client_graphics_threaded_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_engine_client_graphics_threaded_cpp       10 Mar 2019 
09:54:36 -0000
@@ -0,0 +1,20 @@
+$OpenBSD$
+
+Ignore "gfx_texture_quality" setting at the moment, it makes some crashes
+in libGLU more likely to happen.
+
+Index: src/engine/client/graphics_threaded.cpp
+--- src/engine/client/graphics_threaded.cpp.orig
++++ src/engine/client/graphics_threaded.cpp
+@@ -351,8 +351,11 @@ IGraphics::CTextureHandle CGraphics_Threaded::LoadText
+               Cmd.m_Flags |= CCommandBuffer::TEXFLAG_NOMIPMAPS;
+       if(g_Config.m_GfxTextureCompression)
+               Cmd.m_Flags |= CCommandBuffer::TEXFLAG_COMPRESSED;
++#if 0
++      // XXX
+       if(g_Config.m_GfxTextureQuality || Flags&TEXLOAD_NORESAMPLE)
+               Cmd.m_Flags |= CCommandBuffer::TEXFLAG_QUALITY;
++#endif
+       if(Flags&IGraphics::TEXLOAD_ARRAY_256)
+       {
+               Cmd.m_Flags |= CCommandBuffer::TEXFLAG_TEXTURE3D;
Index: patches/patch-src_engine_client_sound_cpp
===================================================================
RCS file: /cvs/ports/games/teeworlds/patches/patch-src_engine_client_sound_cpp,v
retrieving revision 1.2
diff -u -p -r1.2 patch-src_engine_client_sound_cpp
--- patches/patch-src_engine_client_sound_cpp   30 Nov 2016 18:19:33 -0000      
1.2
+++ patches/patch-src_engine_client_sound_cpp   10 Mar 2019 09:54:36 -0000
@@ -3,8 +3,9 @@ $OpenBSD: patch-src_engine_client_sound_
 Make it possible to compile with an external and newer wavpack.
 From Debian.
 
---- src/engine/client/sound.cpp.orig   Sun Nov 13 16:41:35 2016
-+++ src/engine/client/sound.cpp        Wed Nov 30 19:18:11 2016
+Index: src/engine/client/sound.cpp
+--- src/engine/client/sound.cpp.orig
++++ src/engine/client/sound.cpp
 @@ -13,7 +13,7 @@
  #include "sound.h"
  
@@ -14,7 +15,7 @@ From Debian.
  }
  #include <math.h>
  
-@@ -328,17 +328,14 @@ void CSound::RateConvert(int SampleID)
+@@ -325,17 +325,14 @@ void CSound::RateConvert(int SampleID)
        pSample->m_NumFrames = NumFrames;
  }
  
@@ -23,7 +24,7 @@ From Debian.
 -      return io_read(ms_File, pBuffer, Size);
 -}
 -
- int CSound::LoadWV(const char *pFilename)
+ ISound::CSampleHandle CSound::LoadWV(const char *pFilename)
  {
        CSample *pSample;
        int SampleID = -1;
@@ -34,26 +35,35 @@ From Debian.
  
        // 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;
+@@ -349,25 +346,30 @@ ISound::CSampleHandle CSound::LoadWV(const char *pFile
+               return CSampleHandle();
  
+       lock_wait(m_SoundLock);
 -      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;
+               lock_unlock(m_SoundLock);
+               return CSampleHandle();
        }
 +      else
 +      {
 +              io_close(File);
++              File = 0;
 +      }
  
        SampleID = AllocID();
        if(SampleID < 0)
-               return -1;
+       {
+-              io_close(ms_File);
+-              ms_File = 0;
++              io_close(File);
++              File = 0;
+               lock_unlock(m_SoundLock);
+               return CSampleHandle();
+       }
        pSample = &m_aSamples[SampleID];
  
 -      pContext = WavpackOpenFileInput(ReadData, aError);
@@ -61,7 +71,29 @@ From Debian.
        if (pContext)
        {
                int m_aSamples = WavpackGetNumSamples(pContext);
-@@ -419,9 +420,6 @@ int CSound::LoadWV(const char *pFilename)
+@@ -385,8 +387,8 @@ ISound::CSampleHandle CSound::LoadWV(const char *pFile
+               if(pSample->m_Channels > 2)
+               {
+                       dbg_msg("sound/wv", "file is not mono or stereo. 
filename='%s'", pFilename);
+-                      io_close(ms_File);
+-                      ms_File = 0;
++                      io_close(File);
++                      File = 0;
+                       lock_unlock(m_SoundLock);
+                       return CSampleHandle();
+               }
+@@ -401,8 +403,8 @@ ISound::CSampleHandle CSound::LoadWV(const char *pFile
+               if(BitsPerSample != 16)
+               {
+                       dbg_msg("sound/wv", "bps is %d, not 16, filname='%s'", 
BitsPerSample, pFilename);
+-                      io_close(ms_File);
+-                      ms_File = 0;
++                      io_close(File);
++                      File = 0;
+                       lock_unlock(m_SoundLock);
+                       return CSampleHandle();
+               }
+@@ -429,9 +431,6 @@ ISound::CSampleHandle CSound::LoadWV(const char *pFile
                dbg_msg("sound/wv", "failed to open %s: %s", pFilename, aError);
        }
  
@@ -71,9 +103,9 @@ From Debian.
        if(g_Config.m_Debug)
                dbg_msg("sound/wv", "loaded %s", pFilename);
  
-@@ -526,8 +524,6 @@ void CSound::StopAll()
-       }
+@@ -559,8 +558,6 @@ bool CSound::IsPlaying(CSampleHandle SampleID)
        lock_unlock(m_SoundLock);
+       return Ret;
  }
 -
 -IOHANDLE CSound::ms_File = 0;
Index: patches/patch-src_engine_client_sound_h
===================================================================
RCS file: /cvs/ports/games/teeworlds/patches/patch-src_engine_client_sound_h,v
retrieving revision 1.1
diff -u -p -r1.1 patch-src_engine_client_sound_h
--- patches/patch-src_engine_client_sound_h     27 Dec 2015 17:56:22 -0000      
1.1
+++ patches/patch-src_engine_client_sound_h     10 Mar 2019 09:54:36 -0000
@@ -3,8 +3,9 @@ $OpenBSD: patch-src_engine_client_sound_
 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
+Index: src/engine/client/sound.h
+--- src/engine/client/sound.h.orig
++++ src/engine/client/sound.h
 @@ -21,10 +21,6 @@ class CSound : public IEngineSound (public)
  
        static void RateConvert(int SampleID);
@@ -15,4 +16,4 @@ From Debian.
 -
        virtual bool IsSoundEnabled() { return m_SoundEnabled != 0; }
  
-       virtual int LoadWV(const char *pFilename);
+       virtual CSampleHandle LoadWV(const char *pFilename);
Index: patches/patch-src_engine_shared_netban_cpp
===================================================================
RCS file: patches/patch-src_engine_shared_netban_cpp
diff -N patches/patch-src_engine_shared_netban_cpp
--- patches/patch-src_engine_shared_netban_cpp  6 May 2017 13:42:17 -0000       
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-src_engine_shared_netban_cpp,v 1.1 2017/05/06 13:42:17 espie 
Exp $
-
-Index: src/engine/shared/netban.cpp
---- src/engine/shared/netban.cpp.orig
-+++ src/engine/shared/netban.cpp
-@@ -601,3 +601,6 @@ void CNetBan::ConBansSave(IConsole::IResult *pResult, 
-       str_format(aBuf, sizeof(aBuf), "saved banlist to '%s'", 
pResult->GetString(0));
-       pThis->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "net_ban", 
aBuf);
- }
-+
-+template class CNetBan::CBanPool<NETADDR, 1>;
-+template class CNetBan::CBanPool<CNetRange, 16>;
Index: patches/patch-src_engine_shared_storage_cpp
===================================================================
RCS file: 
/cvs/ports/games/teeworlds/patches/patch-src_engine_shared_storage_cpp,v
retrieving revision 1.1
diff -u -p -r1.1 patch-src_engine_shared_storage_cpp
--- patches/patch-src_engine_shared_storage_cpp 27 Dec 2015 17:56:22 -0000      
1.1
+++ patches/patch-src_engine_shared_storage_cpp 10 Mar 2019 09:54:36 -0000
@@ -1,8 +1,10 @@
 $OpenBSD: patch-src_engine_shared_storage_cpp,v 1.1 2015/12/27 17:56:22 jasper 
Exp $
---- 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"
+
+Index: src/engine/shared/storage.cpp
+--- src/engine/shared/storage.cpp.orig
++++ src/engine/shared/storage.cpp
+@@ -6,7 +6,7 @@
+ #include <zlib.h>
  
  // compiled-in data-dir path
 -#define DATA_DIR "data"
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
--- patches/patch-src_game_client_gameclient_cpp        27 Dec 2015 17:56:59 
-0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
-$OpenBSD: patch-src_game_client_gameclient_cpp,v 1.1 2015/12/27 17:56:59 
jasper Exp $
-
-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/PLIST
===================================================================
RCS file: /cvs/ports/games/teeworlds/pkg/PLIST,v
retrieving revision 1.3
diff -u -p -r1.3 PLIST
--- pkg/PLIST   30 Nov 2016 18:17:03 -0000      1.3
+++ pkg/PLIST   10 Mar 2019 09:54:36 -0000
@@ -110,6 +110,12 @@ share/teeworlds/data/audio/wp_hammer_hit
 share/teeworlds/data/audio/wp_hammer_swing-01.wv
 share/teeworlds/data/audio/wp_hammer_swing-02.wv
 share/teeworlds/data/audio/wp_hammer_swing-03.wv
+share/teeworlds/data/audio/wp_laser_bnce-01.wv
+share/teeworlds/data/audio/wp_laser_bnce-02.wv
+share/teeworlds/data/audio/wp_laser_bnce-03.wv
+share/teeworlds/data/audio/wp_laser_fire-01.wv
+share/teeworlds/data/audio/wp_laser_fire-02.wv
+share/teeworlds/data/audio/wp_laser_fire-03.wv
 share/teeworlds/data/audio/wp_ninja_attack-01.wv
 share/teeworlds/data/audio/wp_ninja_attack-02.wv
 share/teeworlds/data/audio/wp_ninja_attack-03.wv
@@ -123,22 +129,12 @@ share/teeworlds/data/audio/wp_noammo-02.
 share/teeworlds/data/audio/wp_noammo-03.wv
 share/teeworlds/data/audio/wp_noammo-04.wv
 share/teeworlds/data/audio/wp_noammo-05.wv
-share/teeworlds/data/audio/wp_rifle_bnce-01.wv
-share/teeworlds/data/audio/wp_rifle_bnce-02.wv
-share/teeworlds/data/audio/wp_rifle_bnce-03.wv
-share/teeworlds/data/audio/wp_rifle_fire-01.wv
-share/teeworlds/data/audio/wp_rifle_fire-02.wv
-share/teeworlds/data/audio/wp_rifle_fire-03.wv
 share/teeworlds/data/audio/wp_shotty_fire-01.wv
 share/teeworlds/data/audio/wp_shotty_fire-02.wv
 share/teeworlds/data/audio/wp_shotty_fire-03.wv
 share/teeworlds/data/audio/wp_switch-01.wv
 share/teeworlds/data/audio/wp_switch-02.wv
 share/teeworlds/data/audio/wp_switch-03.wv
-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
@@ -318,6 +314,7 @@ 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/PS.png
 share/teeworlds/data/countryflags/PT.png
 share/teeworlds/data/countryflags/PW.png
 share/teeworlds/data/countryflags/PY.png
@@ -377,7 +374,11 @@ 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/XBZ.png
+share/teeworlds/data/countryflags/XCA.png
 share/teeworlds/data/countryflags/XEN.png
+share/teeworlds/data/countryflags/XES.png
+share/teeworlds/data/countryflags/XGA.png
 share/teeworlds/data/countryflags/XNI.png
 share/teeworlds/data/countryflags/XSC.png
 share/teeworlds/data/countryflags/XWA.png
@@ -386,10 +387,12 @@ 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/countryflags/index.json
+share/teeworlds/data/deadtee.png
 share/teeworlds/data/editor/
+share/teeworlds/data/editor/automap/
+share/teeworlds/data/editor/automap/grass_doodads.json
+share/teeworlds/data/editor/automap/grass_main.json
 share/teeworlds/data/editor/background.png
 share/teeworlds/data/editor/checker.png
 share/teeworlds/data/editor/cursor.png
@@ -399,40 +402,52 @@ share/teeworlds/data/editor/grass_main.r
 share/teeworlds/data/editor/jungle_main.rules
 share/teeworlds/data/editor/winter_main.rules
 share/teeworlds/data/emoticons.png
-share/teeworlds/data/file_icons.png
+share/teeworlds/data/fonts/
+share/teeworlds/data/fonts/DejaVuSans.ttf
 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/chuvash.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/sakha.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/languages/belarusian.json
+share/teeworlds/data/languages/bosnian.json
+share/teeworlds/data/languages/brazilian_portuguese.json
+share/teeworlds/data/languages/breton.json
+share/teeworlds/data/languages/bulgarian.json
+share/teeworlds/data/languages/catalan.json
+share/teeworlds/data/languages/chinese.json
+share/teeworlds/data/languages/chuvash.json
+share/teeworlds/data/languages/czech.json
+share/teeworlds/data/languages/danish.json
+share/teeworlds/data/languages/dutch.json
+share/teeworlds/data/languages/esperanto.json
+share/teeworlds/data/languages/estonian.json
+share/teeworlds/data/languages/finnish.json
+share/teeworlds/data/languages/french.json
+share/teeworlds/data/languages/gaelic_scottish.json
+share/teeworlds/data/languages/galician.json
+share/teeworlds/data/languages/german.json
+share/teeworlds/data/languages/greek.json
+share/teeworlds/data/languages/hungarian.json
+share/teeworlds/data/languages/index.json
+share/teeworlds/data/languages/irish.json
+share/teeworlds/data/languages/italian.json
+share/teeworlds/data/languages/japanese.json
+share/teeworlds/data/languages/korean.json
+share/teeworlds/data/languages/kyrgyz.json
+share/teeworlds/data/languages/license.txt
+share/teeworlds/data/languages/lithuanian.json
+share/teeworlds/data/languages/norwegian.json
+share/teeworlds/data/languages/polish.json
+share/teeworlds/data/languages/portuguese.json
+share/teeworlds/data/languages/readme.txt
+share/teeworlds/data/languages/romanian.json
+share/teeworlds/data/languages/russian.json
+share/teeworlds/data/languages/serbian.json
+share/teeworlds/data/languages/simplified_chinese.json
+share/teeworlds/data/languages/slovak.json
+share/teeworlds/data/languages/slovenian.json
+share/teeworlds/data/languages/spanish.json
+share/teeworlds/data/languages/swedish.json
+share/teeworlds/data/languages/turkish.json
+share/teeworlds/data/languages/ukrainian.json
 share/teeworlds/data/mapres/
 share/teeworlds/data/mapres/bg_cloud1.png
 share/teeworlds/data/mapres/bg_cloud2.png
@@ -443,6 +458,8 @@ share/teeworlds/data/mapres/desert_mount
 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_lamps.png
+share/teeworlds/data/mapres/generic_shadows.png
 share/teeworlds/data/mapres/generic_unhookable.png
 share/teeworlds/data/mapres/grass_doodads.png
 share/teeworlds/data/mapres/grass_main.png
@@ -452,6 +469,7 @@ share/teeworlds/data/mapres/jungle_dooda
 share/teeworlds/data/mapres/jungle_main.png
 share/teeworlds/data/mapres/jungle_midground.png
 share/teeworlds/data/mapres/jungle_unhookables.png
+share/teeworlds/data/mapres/light.png
 share/teeworlds/data/mapres/moon.png
 share/teeworlds/data/mapres/mountains.png
 share/teeworlds/data/mapres/snow.png
@@ -470,28 +488,109 @@ 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/ctf8.map
 share/teeworlds/data/maps/dm1.map
 share/teeworlds/data/maps/dm2.map
+share/teeworlds/data/maps/dm3.map
 share/teeworlds/data/maps/dm6.map
 share/teeworlds/data/maps/dm7.map
 share/teeworlds/data/maps/dm8.map
 share/teeworlds/data/maps/dm9.map
+share/teeworlds/data/maps/license.txt
+share/teeworlds/data/maps/lms1.map
+share/teeworlds/data/maps/readme.txt
 share/teeworlds/data/particles.png
 share/teeworlds/data/skins/
-share/teeworlds/data/skins/bluekitty.png
-share/teeworlds/data/skins/bluestripe.png
-share/teeworlds/data/skins/brownbear.png
-share/teeworlds/data/skins/cammo.png
-share/teeworlds/data/skins/cammostripes.png
-share/teeworlds/data/skins/coala.png
-share/teeworlds/data/skins/default.png
-share/teeworlds/data/skins/limekitty.png
-share/teeworlds/data/skins/pinky.png
-share/teeworlds/data/skins/redbopp.png
-share/teeworlds/data/skins/redstripe.png
-share/teeworlds/data/skins/saddo.png
-share/teeworlds/data/skins/toptri.png
-share/teeworlds/data/skins/twinbop.png
-share/teeworlds/data/skins/twintri.png
-share/teeworlds/data/skins/warpaint.png
-share/teeworlds/data/skins/x_ninja.png
+share/teeworlds/data/skins/bluekitty.json
+share/teeworlds/data/skins/bluestripe.json
+share/teeworlds/data/skins/body/
+share/teeworlds/data/skins/body/bear.png
+share/teeworlds/data/skins/body/kitty.png
+share/teeworlds/data/skins/body/standard.png
+share/teeworlds/data/skins/body/x_ninja.png
+share/teeworlds/data/skins/brownbear.json
+share/teeworlds/data/skins/cammo.json
+share/teeworlds/data/skins/cammostripes.json
+share/teeworlds/data/skins/decoration/
+share/teeworlds/data/skins/decoration/hair.png
+share/teeworlds/data/skins/decoration/twinbopp.png
+share/teeworlds/data/skins/decoration/unibop.png
+share/teeworlds/data/skins/default.json
+share/teeworlds/data/skins/eyes/
+share/teeworlds/data/skins/eyes/standard.png
+share/teeworlds/data/skins/eyes/standardreal.png
+share/teeworlds/data/skins/eyes/x_ninja.png
+share/teeworlds/data/skins/feet/
+share/teeworlds/data/skins/feet/standard.png
+share/teeworlds/data/skins/hands/
+share/teeworlds/data/skins/hands/standard.png
+share/teeworlds/data/skins/koala.json
+share/teeworlds/data/skins/limekitty.json
+share/teeworlds/data/skins/marking/
+share/teeworlds/data/skins/marking/bear.png
+share/teeworlds/data/skins/marking/cammo1.png
+share/teeworlds/data/skins/marking/cammo2.png
+share/teeworlds/data/skins/marking/cammostripes.png
+share/teeworlds/data/skins/marking/donny.png
+share/teeworlds/data/skins/marking/duodonny.png
+share/teeworlds/data/skins/marking/saddo.png
+share/teeworlds/data/skins/marking/stripe.png
+share/teeworlds/data/skins/marking/stripes.png
+share/teeworlds/data/skins/marking/toptri.png
+share/teeworlds/data/skins/marking/twintri.png
+share/teeworlds/data/skins/marking/uppy.png
+share/teeworlds/data/skins/marking/warpaint.png
+share/teeworlds/data/skins/marking/whisker.png
+share/teeworlds/data/skins/pinky.json
+share/teeworlds/data/skins/redbopp.json
+share/teeworlds/data/skins/redstripe.json
+share/teeworlds/data/skins/saddo.json
+share/teeworlds/data/skins/toptri.json
+share/teeworlds/data/skins/twinbop.json
+share/teeworlds/data/skins/twintri.json
+share/teeworlds/data/skins/warpaint.json
+share/teeworlds/data/skins/x_ninja.json
+share/teeworlds/data/skins/xmas_hat.png
+share/teeworlds/data/ui/
+share/teeworlds/data/ui/blob.png
+share/teeworlds/data/ui/console.png
+share/teeworlds/data/ui/console_bar.png
+share/teeworlds/data/ui/debug_font.png
+share/teeworlds/data/ui/demo_buttons.png
+share/teeworlds/data/ui/file_icons.png
+share/teeworlds/data/ui/gametypes/
+share/teeworlds/data/ui/gametypes/ctf.png
+share/teeworlds/data/ui/gametypes/dm.png
+share/teeworlds/data/ui/gametypes/lms.png
+share/teeworlds/data/ui/gametypes/lts.png
+share/teeworlds/data/ui/gametypes/mod.png
+share/teeworlds/data/ui/gametypes/tdm.png
+share/teeworlds/data/ui/gui_buttons.png
+share/teeworlds/data/ui/gui_cursor.png
+share/teeworlds/data/ui/gui_icons.png
+share/teeworlds/data/ui/gui_logo.png
+share/teeworlds/data/ui/icons/
+share/teeworlds/data/ui/icons/arrows.png
+share/teeworlds/data/ui/icons/browse.png
+share/teeworlds/data/ui/icons/chat_whisper.png
+share/teeworlds/data/ui/icons/friend.png
+share/teeworlds/data/ui/icons/info.png
+share/teeworlds/data/ui/icons/level.png
+share/teeworlds/data/ui/icons/menu.png
+share/teeworlds/data/ui/icons/sidebar.png
+share/teeworlds/data/ui/icons/tools.png
+share/teeworlds/data/ui/menuimages/
+share/teeworlds/data/ui/menuimages/demos.png
+share/teeworlds/data/ui/menuimages/editor.png
+share/teeworlds/data/ui/menuimages/local_server.png
+share/teeworlds/data/ui/menuimages/play_game.png
+share/teeworlds/data/ui/menuimages/settings.png
+share/teeworlds/data/ui/no_skinpart.png
+share/teeworlds/data/ui/themes/
+share/teeworlds/data/ui/themes/heavens.png
+share/teeworlds/data/ui/themes/heavens_day.map
+share/teeworlds/data/ui/themes/heavens_night.map
+share/teeworlds/data/ui/themes/jungle.png
+share/teeworlds/data/ui/themes/jungle_day.map
+share/teeworlds/data/ui/themes/jungle_night.map
+share/teeworlds/data/ui/themes/none.png

Reply via email to