[UPDATE] games/teeworlds 0.6.4 -> 0.7.2

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[UPDATE] games/teeworlds 0.6.4 -> 0.7.2

Donovan Watteau-2
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 <[hidden email]>
+HOMEPAGE= https://www.teeworlds.com/
 
-BAM_VERSION= 0.4.0
-BAM_WRKSRC= ${WRKSRC}/bam-${BAM_VERSION}
+MAINTAINER= Donovan Watteau <[hidden email]>
 
-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