patches/teeworlds-0.7.5.diff

1107 lines
44 KiB
Diff

Index: games/teeworlds/Makefile
===================================================================
RCS file: /home/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 18 Oct 2021 21:13:05 -0000
@@ -1,76 +1,51 @@
# $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
+V= 0.7.5
PKGNAME= teeworlds-${V}
+DISTNAME= ${PKGNAME}-src
+
CATEGORIES= games
-REVISION= 3
-HOMEPAGE= https://www.teeworlds.com/
+HOMEPAGE= https://www.teeworlds.com
-BAM_VERSION= 0.4.0
-BAM_WRKSRC= ${WRKSRC}/bam-${BAM_VERSION}
+MAINTAINER= Stefan Hagen <sh+ports@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-${V}-data.tar.gz{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}
+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
# 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: /home/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 18 Oct 2021 21:00:06 -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-data.tar.gz) = My+UViTDKr75PkYu8/IfHWJGpPqF0ynJN49vEG4h6iI=
+SHA256 (teeworlds-0.7.5-src.tar.gz) = /N4iIzmOAnQ07JYxUQPphh/EWBYbSbFZCNxWuOeo7Nk=
+SIZE (teeworlds-0.7.5-data.tar.gz) = 304464
+SIZE (teeworlds-0.7.5-src.tar.gz) = 8935505
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 18 Oct 2021 21:00:06 -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: /home/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 18 Oct 2021 21:00:06 -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/DESCR
===================================================================
RCS file: /home/cvs/ports/games/teeworlds/pkg/DESCR,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 DESCR
--- games/teeworlds/pkg/DESCR 27 Dec 2015 17:56:22 -0000 1.2
+++ games/teeworlds/pkg/DESCR 19 Oct 2021 06:07:48 -0000
@@ -1,3 +1,4 @@
Teeworlds is a free online multiplayer game, available for all major
operating systems. Battle with up to 16 players in a variety of game
modes, including Team Deathmatch and Capture The Flag.
+
Index: 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: /home/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 18 Oct 2021 21:00:06 -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