Donovan Watteau wrote: > I did some tests on loongson, macppc and amd64.
Neat, thank you. I successfully compiled teeworlds on a sparc64 machine. It doesn't have a graphics card that's able to handle SDL stuff though. The server part runs fine. > The server part does run on loongson, so I'd suggest removing the whole > ONLY_FOR_ARCHS line. I think it should probably work on arm64 and > powerpc64 too, but I don't have the hardware to confirm that. > > As for macppc and other big-endian hosts, my original patch > (patch-src_base_detect_h) needs to be kept, otherwise big-endian hosts > are misdetected as being little-endian (since it checks for internal > defines instead of using the proper visible symbols). With this, > both the client and the server appear to be OK on my PowerBook G4. > > New suggested changes (on top of yours) below [1]. Thanks. Yes, we should keep that one. > However, the game is still unplayable by default on all my > machines here: > > [...issues...] > > I have no idea about the origin of this. Happens on an Intel > Haswell GPU and on an old ATI Radeon Mobility. I'm curious to > know if others experience this problem too, or if I'm just in > bad luck with I have here. Hmm. I don't have any of those problems. Teeworlds runs fine here on two Intel machines: * Intel i5 Gen3 / HD 4000 (on a small laptop screen) * Intel i7 Gen8 / UHD 630 (on a 4k screen) I got one report with this double mouse issue on a dual screen setup, where the fullscreen mode also spans over both screens. This is something for upstream to look into imho. 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 Best Regards, Stefan Index: Makefile =================================================================== RCS file: /cvs/ports/games/teeworlds/Makefile,v retrieving revision 1.28 diff -u -p -u -p -r1.28 Makefile --- Makefile 23 Feb 2021 19:39:23 -0000 1.28 +++ Makefile 10 Aug 2021 19:27:19 -0000 @@ -1,76 +1,57 @@ # $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} +MODULES= devel/cmake lang/python +MODPY_VERSION = ${MODPY_DEFAULT_VERSION_3} 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: distinfo =================================================================== RCS file: /cvs/ports/games/teeworlds/distinfo,v retrieving revision 1.6 diff -u -p -u -p -r1.6 distinfo --- distinfo 30 Nov 2016 18:17:03 -0000 1.6 +++ distinfo 10 Aug 2021 19:27:19 -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: patches/patch-CMakeLists_txt =================================================================== RCS file: patches/patch-CMakeLists_txt diff -N patches/patch-CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-CMakeLists_txt 10 Aug 2021 19:27:19 -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: 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: patches/patch-bam_lua diff -N patches/patch-bam_lua --- 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: patches/patch-configure_lua =================================================================== RCS file: patches/patch-configure_lua diff -N patches/patch-configure_lua --- 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: 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: patches/patch-src_base_detect_h diff -N patches/patch-src_base_detect_h --- patches/patch-src_base_detect_h 27 Dec 2015 17:56:22 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,25 +0,0 @@ -$OpenBSD: patch-src_base_detect_h,v 1.1 2015/12/27 17:56:22 jasper Exp $ - -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 @@ - - /* use gcc endianness definitions when available */ - #if defined(__GNUC__) && !defined(__APPLE__) && !defined(__MINGW32__) && !defined(__sun) -- #if defined(__FreeBSD__) || defined(__OpenBSD__) -+ #if defined(__FreeBSD__) - #include <sys/endian.h> - #else - #include <endian.h> - #endif - -- #if __BYTE_ORDER == __LITTLE_ENDIAN -+ #if BYTE_ORDER == LITTLE_ENDIAN - #define CONF_ARCH_ENDIAN_LITTLE 1 -- #elif __BYTE_ORDER == __BIG_ENDIAN -+ #elif BYTE_ORDER == BIG_ENDIAN - #define CONF_ARCH_ENDIAN_BIG 1 - #endif - #endif Index: patches/patch-src_engine_client_sound_cpp =================================================================== RCS file: patches/patch-src_engine_client_sound_cpp diff -N patches/patch-src_engine_client_sound_cpp --- 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: patches/patch-src_engine_client_sound_h =================================================================== RCS file: patches/patch-src_engine_client_sound_h diff -N patches/patch-src_engine_client_sound_h --- 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: 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: patches/patch-src_engine_shared_storage_cpp diff -N patches/patch-src_engine_shared_storage_cpp --- 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: 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/MESSAGE =================================================================== RCS file: pkg/MESSAGE diff -N pkg/MESSAGE --- 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: pkg/PLIST =================================================================== RCS file: /cvs/ports/games/teeworlds/pkg/PLIST,v retrieving revision 1.3 diff -u -p -u -p -r1.3 PLIST --- pkg/PLIST 30 Nov 2016 18:17:03 -0000 1.3 +++ pkg/PLIST 10 Aug 2021 19:27:19 -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