Stefan Hagen wrote:
> Stefan Hagen wrote:
> > Stefan Hagen wrote:
> >>> Updated version below with the following changes:
> >>>
> >>> * dropped MESSAGE (outdated)
> >>> * dropped ONLY_FOR_ARCHS
> >>> * brought back your patch-src_base_detect_h which fixes BE archs
> >>> * put myself into the maintainer seat

Again with a small, non-functional correction:

  -MODPY_VERSION =    ${MODPY_DEFAULT_VERSION_3}
  +FLAVORS=           python3
  +FLAVOR=            python3

Index: games/teeworlds/Makefile
===================================================================
RCS file: /cvs/ports/games/teeworlds/Makefile,v
retrieving revision 1.28
diff -u -p -u -p -r1.28 Makefile
--- games/teeworlds/Makefile    23 Feb 2021 19:39:23 -0000      1.28
+++ games/teeworlds/Makefile    16 Aug 2021 11:32:05 -0000
@@ -1,76 +1,59 @@
 # $OpenBSD: Makefile,v 1.28 2021/02/23 19:39:23 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
-DISTNAME=      teeworlds-${V}-src
-PKGNAME=       teeworlds-${V}
+V=             0.7.5
+GH_ACCOUNT=    teeworlds
+GH_PROJECT=    teeworlds
+GH_TAGNAME=    ${V}
+
 CATEGORIES=    games
-REVISION=      3
 
-HOMEPAGE=      https://www.teeworlds.com/
+HOMEPAGE=      https://www.teeworlds.com
+
+PKGNAME=       ${GH_PROJECT}-${V}
+DISTNAME=      ${PKGNAME}-src
 
-BAM_VERSION=   0.4.0
-BAM_WRKSRC=    ${WRKSRC}/bam-${BAM_VERSION}
+MAINTAINER=    Stefan Hagen <sh+po...@codevoid.de>
 
-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}/
+# maps repo without tags/releases on 
https://github.com/teeworlds/teeworlds-maps
+# therefore hosted as archive on perso.pw
+MASTER_SITES0= http://distfiles-openbsd.perso.pw/
+DISTFILES=     ${DISTNAME}${EXTRACT_SUFX} teeworlds-data.tar.gz:0
 
 # BSD-like
 PERMIT_PACKAGE=        Yes
 
-WANTLIB=       GL GLU SDL X11 c freetype m pthread ${COMPILER_LIBCXX} wavpack z
+WANTLIB=       GL SDL2 X11 c crypto freetype m pthread ${COMPILER_LIBCXX}
+WANTLIB+=      wavpack z
 
 COMPILER =     base-clang ports-gcc
 
 LIB_DEPENDS=   audio/wavpack \
-               devel/sdl
+               devel/sdl2
 
-MODULES=       lang/python
-MODPY_VERSION =        ${MODPY_DEFAULT_VERSION_2}
+FLAVORS=       python3
+FLAVOR=                python3
+
+MODULES=       devel/cmake lang/python
 MODPY_RUNDEP=  No
 
-SUBST_VARS=    CC CXX CFLAGS CXXFLAGS X11BASE
+CONFIGURE_STYLE=       cmake
+CONFIGURE_ARGS=                -DPYTHON_EXECUTABLE="${MODPY_BIN}"
 
 NO_TEST=       Yes
 
+WRKSRC=                ${WRKDIR}/${DISTNAME}
+WRKDIST=       ${WRKSRC}
+
 # 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 \
-               ${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
-       # 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}
-
-do-install:
-       ${INSTALL_PROGRAM} ${WRKSRC}/teeworlds ${PREFIX}/bin
-       ${INSTALL_PROGRAM} ${WRKSRC}/teeworlds_srv ${PREFIX}/bin
-       ${INSTALL_DATA_DIR} ${PREFIX}/share/teeworlds
-       cd ${WRKSRC}; tar cf - data | tar xf - -C ${PREFIX}/share/teeworlds
+post-install:
+       ${INSTALL_DATA_DIR} ${WRKDIST}/datasrc/maps
+       ${INSTALL_DATA_DIR} ${WRKDIST}/datasrc/maps
+       ${INSTALL_DATA} ${WRKDIR}/maps/* ${WRKDIST}/datasrc/maps/
+       ${INSTALL_DATA} ${WRKDIR}/languages/* ${WRKDIST}/datasrc/languages/
 
 .include <bsd.port.mk>
Index: games/teeworlds/distinfo
===================================================================
RCS file: /cvs/ports/games/teeworlds/distinfo,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 distinfo
--- games/teeworlds/distinfo    30 Nov 2016 18:17:03 -0000      1.6
+++ games/teeworlds/distinfo    16 Aug 2021 11:32:05 -0000
@@ -1,4 +1,4 @@
-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.5-src.tar.gz) = 
/N4iIzmOAnQ07JYxUQPphh/EWBYbSbFZCNxWuOeo7Nk=
+SHA256 (teeworlds-data.tar.gz) = My+UViTDKr75PkYu8/IfHWJGpPqF0ynJN49vEG4h6iI=
+SIZE (teeworlds-0.7.5-src.tar.gz) = 8935505
+SIZE (teeworlds-data.tar.gz) = 304464
Index: games/teeworlds/patches/patch-CMakeLists_txt
===================================================================
RCS file: games/teeworlds/patches/patch-CMakeLists_txt
diff -N games/teeworlds/patches/patch-CMakeLists_txt
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ games/teeworlds/patches/patch-CMakeLists_txt        16 Aug 2021 11:32:05 
-0000
@@ -0,0 +1,86 @@
+$OpenBSD$
+
+- fstack-clash-protection is unused
+- don't execute git
+
+Index: CMakeLists.txt
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -155,7 +155,7 @@ if(NOT MSVC)
+   add_c_compiler_flag_if_supported(OUR_FLAGS -fstack-protector-strong)
+ 
+   # Protect the stack from clashing.
+-  add_c_compiler_flag_if_supported(OUR_FLAGS -fstack-clash-protection)
++  # add_c_compiler_flag_if_supported(OUR_FLAGS -fstack-clash-protection)
+ 
+   # Control-flow protection. Should protect against ROP.
+   add_c_compiler_flag_if_supported(OUR_FLAGS -fcf-protection)
+@@ -1222,29 +1222,29 @@ function(generate_source output_file script_parameter)
+ endfunction()
+ 
+ file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/src/generated/")
+-if(GIT_FOUND)
+-  execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --git-dir
+-    ERROR_QUIET
+-    OUTPUT_VARIABLE PROJECT_GIT_DIR
+-    OUTPUT_STRIP_TRAILING_WHITESPACE
+-    RESULT_VARIABLE PROJECT_GIT_DIR_ERROR
+-  )
+-  if(NOT PROJECT_GIT_DIR_ERROR)
+-    set(GIT_REVISION_EXTRA_DEPS
+-      ${PROJECT_GIT_DIR}/index
+-      ${PROJECT_GIT_DIR}/logs/HEAD
+-    )
+-  endif()
+-endif()
+-add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/src/generated/git_revision.cpp
+-  COMMAND ${PYTHON_EXECUTABLE}
+-    scripts/git_revision.py
+-    > ${PROJECT_BINARY_DIR}/src/generated/git_revision.cpp
+-  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+-  DEPENDS
+-    ${GIT_REVISION_EXTRA_DEPS}
+-    scripts/git_revision.py
+-)
++#if(GIT_FOUND)
++#  execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --git-dir
++#    ERROR_QUIET
++#    OUTPUT_VARIABLE PROJECT_GIT_DIR
++#    OUTPUT_STRIP_TRAILING_WHITESPACE
++#    RESULT_VARIABLE PROJECT_GIT_DIR_ERROR
++#  )
++#  if(NOT PROJECT_GIT_DIR_ERROR)
++#    set(GIT_REVISION_EXTRA_DEPS
++#      ${PROJECT_GIT_DIR}/index
++#      ${PROJECT_GIT_DIR}/logs/HEAD
++#    )
++#  endif()
++#endif()
++#add_custom_command(OUTPUT 
${PROJECT_BINARY_DIR}/src/generated/git_revision.cpp
++#  COMMAND ${PYTHON_EXECUTABLE}
++#    scripts/git_revision.py
++#    > ${PROJECT_BINARY_DIR}/src/generated/git_revision.cpp
++#  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
++#  DEPENDS
++#    ${GIT_REVISION_EXTRA_DEPS}
++#    scripts/git_revision.py
++#)
+ chash("src/generated/nethash.cpp"
+   "src/engine/shared/protocol.h"
+   "src/game/tuning.h"
+@@ -1375,7 +1375,6 @@ set_src(GAME_SHARED GLOB src/game
+   voting.h
+ )
+ set(GAME_GENERATED_SHARED
+-  src/generated/git_revision.cpp
+   src/generated/nethash.cpp
+   src/generated/protocol.h
+ )
+@@ -1724,7 +1723,6 @@ if(GTEST_FOUND OR DOWNLOAD_GTEST)
+   set_src(TESTS GLOB src/test
+     datafile.cpp
+     fs.cpp
+-    git_revision.cpp
+     hash.cpp
+     jsonwriter.cpp
+     storage.cpp
Index: games/teeworlds/patches/patch-bam-0_4_0_make_unix_sh
===================================================================
RCS file: games/teeworlds/patches/patch-bam-0_4_0_make_unix_sh
diff -N games/teeworlds/patches/patch-bam-0_4_0_make_unix_sh
--- games/teeworlds/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: games/teeworlds/patches/patch-bam-0_4_0_src_driver_gcc_lua
===================================================================
RCS file: games/teeworlds/patches/patch-bam-0_4_0_src_driver_gcc_lua
diff -N games/teeworlds/patches/patch-bam-0_4_0_src_driver_gcc_lua
--- games/teeworlds/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: games/teeworlds/patches/patch-bam_lua
===================================================================
RCS file: games/teeworlds/patches/patch-bam_lua
diff -N games/teeworlds/patches/patch-bam_lua
--- games/teeworlds/patches/patch-bam_lua       27 Dec 2015 17:56:22 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,73 +0,0 @@
-$OpenBSD: patch-bam_lua,v 1.1 2015/12/27 17:56:22 jasper Exp $
-
-- 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: games/teeworlds/patches/patch-configure_lua
===================================================================
RCS file: games/teeworlds/patches/patch-configure_lua
diff -N games/teeworlds/patches/patch-configure_lua
--- games/teeworlds/patches/patch-configure_lua 1 Mar 2017 20:42:57 -0000       
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,36 +0,0 @@
-$OpenBSD: patch-configure_lua,v 1.1 2017/03/01 20:42:57 naddy Exp $
-
-Accept more compilers than a hardcoded gcc.
-
-(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,
-               else
-                       if ExecuteSilent("cl") == 0 then
-                               option.driver = "cl"
--                      elseif ExecuteSilent("g++ -v") == 0 then
--                              option.driver = "gcc"
-                       else
--                              error("no c/c++ compiler found")
-+                              -- Assume GCC compatible
-+                              option.driver = "${CC}"
-                       end
-               end
-               --setup_compiler(option.value)
-@@ -374,12 +373,9 @@ function OptCCompiler(name, default_driver, default_c,
-       local apply = function(option, settings)
-               if option.driver == "cl" then
-                       SetDriversCL(settings)
--              elseif option.driver == "gcc" then
--                      SetDriversGCC(settings)
--              elseif option.driver == "clang" then
--                      SetDriversClang(settings)
-               else
--                      error(option.driver.." is not a known c/c++ compile 
driver")
-+                      -- Assume GCC compatible
-+                      SetDriversGCC(settings)
-               end
- 
-               if option.c_compiler then settings.cc.c_compiler = 
option.c_compiler end
Index: games/teeworlds/patches/patch-scripts_build_py
===================================================================
RCS file: games/teeworlds/patches/patch-scripts_build_py
diff -N games/teeworlds/patches/patch-scripts_build_py
--- games/teeworlds/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: games/teeworlds/patches/patch-scripts_compiler_py
===================================================================
RCS file: games/teeworlds/patches/patch-scripts_compiler_py
diff -N games/teeworlds/patches/patch-scripts_compiler_py
--- games/teeworlds/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: games/teeworlds/patches/patch-scripts_font_installer_sh
===================================================================
RCS file: games/teeworlds/patches/patch-scripts_font_installer_sh
diff -N games/teeworlds/patches/patch-scripts_font_installer_sh
--- games/teeworlds/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: games/teeworlds/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 -u -p -r1.1 patch-src_base_detect_h
--- games/teeworlds/patches/patch-src_base_detect_h     27 Dec 2015 17:56:22 
-0000      1.1
+++ games/teeworlds/patches/patch-src_base_detect_h     16 Aug 2021 11:32:05 
-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: games/teeworlds/patches/patch-src_engine_client_sound_cpp
===================================================================
RCS file: games/teeworlds/patches/patch-src_engine_client_sound_cpp
diff -N games/teeworlds/patches/patch-src_engine_client_sound_cpp
--- games/teeworlds/patches/patch-src_engine_client_sound_cpp   30 Nov 2016 
18:19:33 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,82 +0,0 @@
-$OpenBSD: patch-src_engine_client_sound_cpp,v 1.2 2016/11/30 18:19:33 jca Exp $
-
-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
-@@ -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_unlock(m_SoundLock);
- }
--
--IOHANDLE CSound::ms_File = 0;
- 
- IEngineSound *CreateEngineSound() { return new CSound; }
- 
Index: games/teeworlds/patches/patch-src_engine_client_sound_h
===================================================================
RCS file: games/teeworlds/patches/patch-src_engine_client_sound_h
diff -N games/teeworlds/patches/patch-src_engine_client_sound_h
--- games/teeworlds/patches/patch-src_engine_client_sound_h     27 Dec 2015 
17:56:22 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
-$OpenBSD: patch-src_engine_client_sound_h,v 1.1 2015/12/27 17:56:22 jasper Exp 
$
-
-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: games/teeworlds/patches/patch-src_engine_shared_netban_cpp
===================================================================
RCS file: games/teeworlds/patches/patch-src_engine_shared_netban_cpp
diff -N games/teeworlds/patches/patch-src_engine_shared_netban_cpp
--- games/teeworlds/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: games/teeworlds/patches/patch-src_engine_shared_storage_cpp
===================================================================
RCS file: games/teeworlds/patches/patch-src_engine_shared_storage_cpp
diff -N games/teeworlds/patches/patch-src_engine_shared_storage_cpp
--- games/teeworlds/patches/patch-src_engine_shared_storage_cpp 27 Dec 2015 
17:56:22 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$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"
- 
- // compiled-in data-dir path
--#define DATA_DIR "data"
-+#define DATA_DIR "${PREFIX}/share/teeworlds/data"
- 
- class CStorage : public IStorage
- {
Index: games/teeworlds/patches/patch-src_game_client_gameclient_cpp
===================================================================
RCS file: games/teeworlds/patches/patch-src_game_client_gameclient_cpp
diff -N games/teeworlds/patches/patch-src_game_client_gameclient_cpp
--- games/teeworlds/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: games/teeworlds/pkg/MESSAGE
===================================================================
RCS file: games/teeworlds/pkg/MESSAGE
diff -N games/teeworlds/pkg/MESSAGE
--- games/teeworlds/pkg/MESSAGE 18 Jan 2009 17:53:36 -0000      1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,7 +0,0 @@
-Please note that some users will need to set the following environment
-variable to fix erratic mouse behaviour on their system:
-       export SDL_VIDEO_X11_DGAMOUSE=0
-
-Users of ati video chipset will need to add the following line in
-~/.teeworlds/settings.cfg:
-       gfx_noclip 1
Index: games/teeworlds/pkg/PLIST
===================================================================
RCS file: /cvs/ports/games/teeworlds/pkg/PLIST,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 PLIST
--- games/teeworlds/pkg/PLIST   30 Nov 2016 18:17:03 -0000      1.3
+++ games/teeworlds/pkg/PLIST   16 Aug 2021 11:32:05 -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,53 +387,67 @@ 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/desert_main.json
+share/teeworlds/data/editor/automap/grass_doodads.json
+share/teeworlds/data/editor/automap/grass_main.json
+share/teeworlds/data/editor/automap/jungle_deathtiles.json
+share/teeworlds/data/editor/automap/jungle_main.json
+share/teeworlds/data/editor/automap/winter_main.json
 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/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/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/traditional_chinese.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
@@ -442,7 +457,10 @@ share/teeworlds/data/mapres/desert_main.
 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/easter.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 +470,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 +489,194 @@ 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/race_flag.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/beaver.json
+share/teeworlds/data/skins/bluekitty.json
+share/teeworlds/data/skins/bluestripe.json
+share/teeworlds/data/skins/body/
+share/teeworlds/data/skins/body/bat.png
+share/teeworlds/data/skins/body/bear.png
+share/teeworlds/data/skins/body/beaver.png
+share/teeworlds/data/skins/body/dog.png
+share/teeworlds/data/skins/body/force.png
+share/teeworlds/data/skins/body/fox.png
+share/teeworlds/data/skins/body/hippo.png
+share/teeworlds/data/skins/body/kitty.png
+share/teeworlds/data/skins/body/koala.png
+share/teeworlds/data/skins/body/monkey.png
+share/teeworlds/data/skins/body/mouse.png
+share/teeworlds/data/skins/body/piglet.png
+share/teeworlds/data/skins/body/raccoon.png
+share/teeworlds/data/skins/body/spiky.png
+share/teeworlds/data/skins/body/standard.png
+share/teeworlds/data/skins/body/x_ninja.png
+share/teeworlds/data/skins/bot.png
+share/teeworlds/data/skins/brownbear.json
+share/teeworlds/data/skins/bumbler.json
+share/teeworlds/data/skins/cammo.json
+share/teeworlds/data/skins/cammostripes.json
+share/teeworlds/data/skins/cavebat.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/twinmello.png
+share/teeworlds/data/skins/decoration/twinpen.png
+share/teeworlds/data/skins/decoration/unibop.png
+share/teeworlds/data/skins/decoration/unimelo.png
+share/teeworlds/data/skins/decoration/unipento.png
+share/teeworlds/data/skins/default.json
+share/teeworlds/data/skins/eyes/
+share/teeworlds/data/skins/eyes/colorable.png
+share/teeworlds/data/skins/eyes/negative.png
+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/force.json
+share/teeworlds/data/skins/fox.json
+share/teeworlds/data/skins/greycoon.json
+share/teeworlds/data/skins/greyfox.json
+share/teeworlds/data/skins/hands/
+share/teeworlds/data/skins/hands/standard.png
+share/teeworlds/data/skins/hippo.json
+share/teeworlds/data/skins/koala.json
+share/teeworlds/data/skins/limedog.json
+share/teeworlds/data/skins/limekitty.json
+share/teeworlds/data/skins/marking/
+share/teeworlds/data/skins/marking/bear.png
+share/teeworlds/data/skins/marking/belly1.png
+share/teeworlds/data/skins/marking/belly2.png
+share/teeworlds/data/skins/marking/blush.png
+share/teeworlds/data/skins/marking/bug.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/coonfluff.png
+share/teeworlds/data/skins/marking/donny.png
+share/teeworlds/data/skins/marking/downdony.png
+share/teeworlds/data/skins/marking/duodonny.png
+share/teeworlds/data/skins/marking/fox.png
+share/teeworlds/data/skins/marking/hipbel.png
+share/teeworlds/data/skins/marking/lowcross.png
+share/teeworlds/data/skins/marking/lowpaint.png
+share/teeworlds/data/skins/marking/marksman.png
+share/teeworlds/data/skins/marking/mice.png
+share/teeworlds/data/skins/marking/mixture1.png
+share/teeworlds/data/skins/marking/mixture2.png
+share/teeworlds/data/skins/marking/monkey.png
+share/teeworlds/data/skins/marking/panda1.png
+share/teeworlds/data/skins/marking/panda2.png
+share/teeworlds/data/skins/marking/purelove.png
+share/teeworlds/data/skins/marking/saddo.png
+share/teeworlds/data/skins/marking/setisu.png
+share/teeworlds/data/skins/marking/sidemarks.png
+share/teeworlds/data/skins/marking/singu.png
+share/teeworlds/data/skins/marking/stripe.png
+share/teeworlds/data/skins/marking/striped.png
+share/teeworlds/data/skins/marking/stripes.png
+share/teeworlds/data/skins/marking/stripes2.png
+share/teeworlds/data/skins/marking/thunder.png
+share/teeworlds/data/skins/marking/tiger1.png
+share/teeworlds/data/skins/marking/tiger2.png
+share/teeworlds/data/skins/marking/toptri.png
+share/teeworlds/data/skins/marking/triangular.png
+share/teeworlds/data/skins/marking/tricircular.png
+share/teeworlds/data/skins/marking/tripledon.png
+share/teeworlds/data/skins/marking/tritri.png
+share/teeworlds/data/skins/marking/twinbelly.png
+share/teeworlds/data/skins/marking/twincross.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/warstripes.png
+share/teeworlds/data/skins/marking/whisker.png
+share/teeworlds/data/skins/marking/wildpaint.png
+share/teeworlds/data/skins/marking/wildpatch.png
+share/teeworlds/data/skins/marking/yinyang.png
+share/teeworlds/data/skins/monkey.json
+share/teeworlds/data/skins/paintgre.json
+share/teeworlds/data/skins/pandabear.json
+share/teeworlds/data/skins/panther.json
+share/teeworlds/data/skins/pento.json
+share/teeworlds/data/skins/piggy.json
+share/teeworlds/data/skins/pinky.json
+share/teeworlds/data/skins/raccoon.json
+share/teeworlds/data/skins/redbopp.json
+share/teeworlds/data/skins/redstripe.json
+share/teeworlds/data/skins/saddo.json
+share/teeworlds/data/skins/setisu.json
+share/teeworlds/data/skins/snowti.json
+share/teeworlds/data/skins/spiky.json
+share/teeworlds/data/skins/swardy.json
+share/teeworlds/data/skins/tiger.json
+share/teeworlds/data/skins/tooxy.json
+share/teeworlds/data/skins/toptri.json
+share/teeworlds/data/skins/twinbop.json
+share/teeworlds/data/skins/twintri.json
+share/teeworlds/data/skins/warmouse.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/race.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/browser.png
+share/teeworlds/data/ui/icons/chat_whisper.png
+share/teeworlds/data/ui/icons/friend.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/timer_clock.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/sound_icons.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
+share/teeworlds/data/ui/themes/winter.png
+share/teeworlds/data/ui/themes/winter_day.map
+share/teeworlds/data/ui/themes/winter_night.map

Reply via email to