From nobody Sun Jan 28 23:24:42 2024 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4TNSFQ5F5bz59Vx3; Sun, 28 Jan 2024 23:24:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TNSFQ3Jrgz4g42; Sun, 28 Jan 2024 23:24:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1706484282; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NbqRu9yu7zh7kevveP+zHJXEWW8jJ4ib4N6XNP0YWVw=; b=R4KuQiaL5+LrWIb1rhuBexqyvhr4qg1EdlJLFYasZQZjHOkVy1wscviNBdfKiINPhs6KWH APpC8EZ/Zc0IgzZUeuu4k6HQrT/u/0+roX68BKCOMNyxIPqiDTd/KS/8bRSlfdhHGi6h5x EzKNH+EV/YTKSf8YgAZgNBWQrZrWZirMAfmekc2V5/1fS7etRVQ4swJYFUyfyhEswNNzCO ba1IFMNjqdwuq6sy2HypuTL8HFFCR8jxCg3kNZgZGPhTUYcvs06x+ovTadNEhAzDHRouxh Z4tmDbvU/ekvW0aSypb8vR+I9xehXmvfdYFBz2ZAz/ctOBh5XgGnmYHzuPgy2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1706484282; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NbqRu9yu7zh7kevveP+zHJXEWW8jJ4ib4N6XNP0YWVw=; b=q2dboCmY0ckcvh+DbQr7hKQIo4IJV7n+O2GhOFHuy9Qu7Rf2s0zVMqjT9RSdlr4npJ/EX8 keEU3a5SaFO5Ovt692j+NmP6SyPvpsctgGC407iq6tZtS0Bq0mCrdq7pYuK3DVQu7KTpM3 NT1wwC8wJQupIX/8M0f7QXjthlHDnjCg7WyqUqnnxrpupq0x/Bcf7VQDFb5vn5fry4Z6Cr XYpHSlPqQS1jvpmyyPWGlaJOLyWZI5oX+tx2wcMFZjmEUHAkB327ga3l4oK14PF7xDmhCj /HYMWayoA5xTIOGV8g8Ck1nuGeea/rTgbu7LWT3SerE+UVWXrfOxercJzNtbyw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1706484282; a=rsa-sha256; cv=none; b=bSKGnYVDiRnfJpF7FTTRPSBGB4OXqf2C4zRX4/CGgqIkNyGVkoYwwa+tUOASTObZkuiTEA moqnNBryyc8oDRuI3LOsEhBvKA0TkacGkQ87PMnntUeSDgcyxRjiXatVTpMsfM1VzkVAKF geb/1xs2HyrWGConYbaykxyzqloxHQ0nsX8x3MCDl5bIug7k+5+GcHblV2+b68a2KNOO/3 O3PtGve5bHCjcoEpf4vrWZ9Gtzl2HihLF6pe6i4MuPIe4vmceYzX37ByP/Ay+Jc8RDeaoH 0bylsp4dBdA3dsiS0HmIZeKut75iJq1Td2iCh9GJiusZZ4p+PghzIF6HbDwSAQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4TNSFQ2PkyzS6J; Sun, 28 Jan 2024 23:24:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 40SNOgYD069616; Sun, 28 Jan 2024 23:24:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 40SNOgXF069613; Sun, 28 Jan 2024 23:24:42 GMT (envelope-from git) Date: Sun, 28 Jan 2024 23:24:42 GMT Message-Id: <202401282324.40SNOgXF069613@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Robert Clausecker Subject: git: 2565f80c712f - main - games/vvvvvv: update to 2.4 List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fuz X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2565f80c712ff7ead8b6455c9b6a1c2c90ec4c9d Auto-Submitted: auto-generated The branch main has been updated by fuz: URL: https://cgit.FreeBSD.org/ports/commit/?id=2565f80c712ff7ead8b6455c9b6a1c2c90ec4c9d commit 2565f80c712ff7ead8b6455c9b6a1c2c90ec4c9d Author: Robert Clausecker AuthorDate: 2024-01-27 15:54:00 +0000 Commit: Robert Clausecker CommitDate: 2024-01-28 23:24:18 +0000 games/vvvvvv: update to 2.4 Changelog: https://vsix.dev/wiki/Version_2.4 --- games/vvvvvv/Makefile | 41 ++-- games/vvvvvv/distinfo | 18 +- games/vvvvvv/files/patch-CMakeLists.txt | 21 +- games/vvvvvv/files/patch-src_FileSystemUtils.cpp | 56 +++--- games/vvvvvv/files/patch-src_Music.cpp | 28 +++ games/vvvvvv/files/patch-src_main.cpp | 16 +- games/vvvvvv/pkg-plist | 237 +++++++++++++++++++++++ 7 files changed, 353 insertions(+), 64 deletions(-) diff --git a/games/vvvvvv/Makefile b/games/vvvvvv/Makefile index c061c493f10d..dce9b0b72ada 100644 --- a/games/vvvvvv/Makefile +++ b/games/vvvvvv/Makefile @@ -1,52 +1,64 @@ PORTNAME= VVVVVV -DISTVERSION= 2.3.6 -PORTREVISION= 3 +DISTVERSION= 2.4 CATEGORIES= games .if ${FLAVOR:U} == makeandplay # The data file may only be distributed if the MAKEANDPLAY define is set. # See https://github.com/TerryCavanagh/VVVVVV/blob/master/License%20exceptions.md MASTER_SITES= https://thelettervsixtim.es/makeandplay/data.zip?dummy=/:datafile DISTFILES= VVVVVV-data-${DISTVERSION}.zip:datafile -EXTRACT_ONLY= ${GH_ACCOUNT}-${GH_PROJECT}-${DISTVERSION}_GH0.tar.gz +EXTRACT_ONLY= ${_DISTFILES:NVVVVVV-data-${DISTVERSION}.zip} .endif -MAINTAINER= manu@FreeBSD.org +MAINTAINER= fuz@FreeBSD.org COMMENT= 2D Platformer game WWW= https://thelettervsixtim.es/ -LICENSE= VVVVVV BSD3CLAUSE +LICENSE= VVVVVV APACHE20 BSD3CLAUSE ZLIB LICENSE_COMB= multi LICENSE_NAME_VVVVVV= VVVVVV Source Code License v1.0 LICENSE_FILE_VVVVVV= ${WRKSRC}/../LICENSE.md -LICENSE_FILE_BSD3CLAUSE= ${WRKSRC}/../third_party/lodepng/LICENSE.txt +LICENSE_FILE_APACHE20= ${WRKSRC}/../third_party/SheenBidi/LICENSE +LICENSE_FILE_BSD3CLAUSE= ${WRKSRC}/../third_party/c-hashmap/LICENSE +# physfs is ZLIB, too +LICENSE_FILE_ZLIB= ${WRKSRC}/../third_party/lodepng/LICENSE LICENSE_PERMS_VVVVVV= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept .if defined(NO_LICENSES_INSTALL) IGNORE= license requires that the license be shipped .endif -BUILD_DEPENDS= utf8cpp>=4.0.3:devel/utf8cpp -LIB_DEPENDS= libtinyxml2.so:textproc/tinyxml2 \ +BUILD_DEPENDS= ${LOCALBASE}/include/stb/stb_vorbis.c:devel/stb +LIB_DEPENDS= libFAudio.so:audio/faudio \ + libtinyxml2.so:textproc/tinyxml2 \ libphysfs.so:devel/physfs FLAVORS= commercial makeandplay +FLAVOR?= ${FLAVORS:[1]} makeandplay_PKGNAMESUFFIX= -makeandplay USES= sdl cmake localbase:ldflags USE_GITHUB= yes GH_ACCOUNT= TerryCavanagh -GH_PROJECT= ${PORTNAME} -USE_SDL= sdl2 mixer2 +# physfs is unbundled, but the code still needs extras/physfsrwops.c, which is not +# compiled into libphysfs.so +GH_TUPLE= lvandeve:lodepng:18964554bc769255401942e0e6dfd09f2fab2093:lodepng/../third_party/lodepng \ + Tehreer:SheenBidi:v2.7:SheenBidi/../third_party/SheenBidi \ + Mashpoe:c-hashmap:dedf70e0a769bc52a17a36da840d96770fc26d12:chashmap/../third_party/c-hashmap \ + icculus:physfs:bfa7997c671957eb0a340ff1cf3c634e6269904a:physfs/../third_party/physfs +USE_SDL= sdl2 -CFLAGS+= -DASSETSPATH='\"${DATADIR}/data.zip\"' -I${LOCALBASE}/include/utf8cpp -CMAKE_OFF= BUNDLE_DEPENDENCIES +CFLAGS+= -DDATADIR='\"${DATADIR}\"' +CMAKE_OFF= BUNDLE_DEPENDENCIES GIT_FOUND .if ${FLAVOR:U} == makeandplay CMAKE_ON= MAKEANDPLAY .endif WRKSRC_SUBDIR= desktop_version -PLIST_FILES= bin/VVVVVV${PKGNAMESUFFIX} \ - ${"${FLAVOR}"=="makeandplay:?${DATADIR_REL}/data.zip:} +commercial_PLIST_FILES= bin/VVVVVV +makeandplay_PLIST_FILES= ${DATADIR_REL}/data.zip \ + bin/VVVVVV-makeandplay +PLIST_FILES= ${${FLAVOR}_PLIST_FILES} + SUB_FILES= pkg-message do-install: @@ -55,5 +67,6 @@ do-install: ${MKDIR} ${STAGEDIR}${DATADIR} ${INSTALL_DATA} ${DISTDIR}/VVVVVV-data-${DISTVERSION}.zip ${STAGEDIR}${DATADIR}/data.zip .endif + (cd ${WRKSRC} && ${COPYTREE_SHARE} "fonts lang" ${STAGEDIR}${DATADIR}/) .include diff --git a/games/vvvvvv/distinfo b/games/vvvvvv/distinfo index 59b65e4f9314..5acaf727230c 100644 --- a/games/vvvvvv/distinfo +++ b/games/vvvvvv/distinfo @@ -1,5 +1,13 @@ -TIMESTAMP = 1673609398 -SHA256 (VVVVVV-data-2.3.6.zip) = c767809594f6472da9f56136e76657e38640d584164a46112250ac6293ecc0ea -SIZE (VVVVVV-data-2.3.6.zip) = 61405423 -SHA256 (TerryCavanagh-VVVVVV-2.3.6_GH0.tar.gz) = a3366aab9e8462d330044ab1ec63927e9f5c3801c0ed96b24f08c553dcb911e9 -SIZE (TerryCavanagh-VVVVVV-2.3.6_GH0.tar.gz) = 1725842 +TIMESTAMP = 1706370408 +SHA256 (VVVVVV-data-2.4.zip) = c767809594f6472da9f56136e76657e38640d584164a46112250ac6293ecc0ea +SIZE (VVVVVV-data-2.4.zip) = 61405423 +SHA256 (TerryCavanagh-VVVVVV-2.4_GH0.tar.gz) = ff4443dc9b993f882e5a7aec15ee33ba472a8ccbdcc13bb462f202d4c06df70d +SIZE (TerryCavanagh-VVVVVV-2.4_GH0.tar.gz) = 4436178 +SHA256 (lvandeve-lodepng-18964554bc769255401942e0e6dfd09f2fab2093_GH0.tar.gz) = 58f4bce09556fc8039be04e4632c228695a9ead4b4e8d292957e3f59b26269a9 +SIZE (lvandeve-lodepng-18964554bc769255401942e0e6dfd09f2fab2093_GH0.tar.gz) = 246337 +SHA256 (Tehreer-SheenBidi-v2.7_GH0.tar.gz) = 620f732141fd62354361f921a67ba932c44d94e73f127379a0c73ad40c7fa6e0 +SIZE (Tehreer-SheenBidi-v2.7_GH0.tar.gz) = 2192472 +SHA256 (Mashpoe-c-hashmap-dedf70e0a769bc52a17a36da840d96770fc26d12_GH0.tar.gz) = 858e0245169de8504e71e59216f255605c3275082b2a216d3d8b1a22f066f835 +SIZE (Mashpoe-c-hashmap-dedf70e0a769bc52a17a36da840d96770fc26d12_GH0.tar.gz) = 8358 +SHA256 (icculus-physfs-bfa7997c671957eb0a340ff1cf3c634e6269904a_GH0.tar.gz) = e3c99716b7920dbb8e068464e71f96b6a3f2b00eb552c33084347414b6b74a6b +SIZE (icculus-physfs-bfa7997c671957eb0a340ff1cf3c634e6269904a_GH0.tar.gz) = 243130 diff --git a/games/vvvvvv/files/patch-CMakeLists.txt b/games/vvvvvv/files/patch-CMakeLists.txt index 87e3b1b9cf56..084d599e48ac 100644 --- a/games/vvvvvv/files/patch-CMakeLists.txt +++ b/games/vvvvvv/files/patch-CMakeLists.txt @@ -1,20 +1,11 @@ ---- CMakeLists.txt.orig 2021-12-22 13:20:25 UTC +--- CMakeLists.txt.orig 2024-01-27 15:19:24 UTC +++ CMakeLists.txt -@@ -181,7 +181,7 @@ if(APPLE) - endif() - set(PNG_SRC ../third_party/lodepng/lodepng.c) +@@ -205,7 +205,7 @@ set(SBIDI_SRC ../third_party/SheenBidi/Source/SheenBid + set(CHM_SRC ../third_party/c-hashmap/map.c) + set(SBIDI_SRC ../third_party/SheenBidi/Source/SheenBidi.c) -if(NOT OFFICIAL_BUILD) +if(FALSE) - # Add interim commit hash and its date to the build + # Add interim commit hash and its date to the build - # find_package sets GIT_FOUND and GIT_EXECUTABLE -@@ -296,7 +296,7 @@ if(BUNDLE_DEPENDENCIES) - else() - find_package(utf8cpp CONFIG) - -- target_link_libraries(VVVVVV physfs tinyxml2 utf8cpp lodepng-static) -+ target_link_libraries(VVVVVV physfs tinyxml2 lodepng-static) - endif() - - # SDL2 Dependency (Detection pulled from FAudio) + # find_package sets GIT_FOUND and GIT_EXECUTABLE diff --git a/games/vvvvvv/files/patch-src_FileSystemUtils.cpp b/games/vvvvvv/files/patch-src_FileSystemUtils.cpp index a93f7e9e794d..fb9c9619add1 100644 --- a/games/vvvvvv/files/patch-src_FileSystemUtils.cpp +++ b/games/vvvvvv/files/patch-src_FileSystemUtils.cpp @@ -1,29 +1,37 @@ ---- src/FileSystemUtils.cpp.orig 2021-12-22 13:20:25 UTC +--- src/FileSystemUtils.cpp.orig 2024-01-10 16:27:34 UTC +++ src/FileSystemUtils.cpp -@@ -1,3 +1,4 @@ +@@ -1,10 +1,12 @@ + #include "FileSystemUtils.h" + +#include - #include - #include #include -@@ -154,6 +155,12 @@ int FILESYSTEM_init(char *argvZero, char* baseDir, cha - } + #include + #include + #include + #include ++#include + + #include "Alloc.h" + #include "BinaryBlob.h" +@@ -315,6 +317,12 @@ int FILESYSTEM_init(char *argvZero, char* baseDir, cha + doesFontsDirExist = mount_pre_datazip(NULL, "fonts", "graphics/", fontsDir); - /* Mount the stock content last */ -+ if (assetsPath && access(assetsPath, R_OK) == -1) { -+ printf("%s: %s\n", assetsPath, strerror(errno)); -+ printf("Trying %sdata.zip instead.\n", output); -+ assetsPath = NULL; -+ } + /* Mount the stock content last */ ++ if (assetsPath && access(assetsPath, R_OK) == -1) { ++ vlog_info("%s: %s", assetsPath, strerror(errno)); ++ vlog_info("Trying %sdata.zip instead.", output); ++ assetsPath = NULL; ++ } + - if (assetsPath) - { - SDL_strlcpy(output, assetsPath, sizeof(output)); -@@ -161,7 +168,7 @@ int FILESYSTEM_init(char *argvZero, char* baseDir, cha - else - { - SDL_snprintf(output, sizeof(output), "%s%s", -- basePath, -+ output, - "data.zip" - ); - } + if (assetsPath) + { + SDL_strlcpy(output, assetsPath, sizeof(output)); +@@ -322,7 +330,7 @@ int FILESYSTEM_init(char *argvZero, char* baseDir, cha + else + { + SDL_snprintf(output, sizeof(output), "%s%s", +- basePath, ++ output, + "data.zip" + ); + } diff --git a/games/vvvvvv/files/patch-src_Music.cpp b/games/vvvvvv/files/patch-src_Music.cpp new file mode 100644 index 000000000000..6a93e33d3396 --- /dev/null +++ b/games/vvvvvv/files/patch-src_Music.cpp @@ -0,0 +1,28 @@ +--- src/Music.cpp.orig 2024-01-10 16:27:34 UTC ++++ src/Music.cpp +@@ -69,13 +69,24 @@ + #define fread(dst, size, count, io) SDL_RWread(io, dst, size, count) + #define fseek(io, offset, whence) SDL_RWseek(io, offset, whence) + #define ftell(io) SDL_RWtell(io) ++#define fgetc(stream) VVVVVV_fgetc(stream) + ++static int VVVVVV_fgetc(SDL_RWops *stream) ++{ ++ size_t n; ++ unsigned char buf; ++ ++ n = stream->read(stream, &buf, 1, 1); ++ ++ return (n == 1 ? buf : -1); ++} ++ + #define FAudio_alloca(x) SDL_stack_alloc(uint8_t, x) + #define FAudio_dealloca(x) SDL_stack_free(x) + + #define STB_VORBIS_NO_PUSHDATA_API 1 + #define STB_VORBIS_NO_INTEGER_CONVERSION 1 +-#include ++#include + + /* End stb_vorbis include */ + diff --git a/games/vvvvvv/files/patch-src_main.cpp b/games/vvvvvv/files/patch-src_main.cpp index 437afa0e181f..a5207d569931 100644 --- a/games/vvvvvv/files/patch-src_main.cpp +++ b/games/vvvvvv/files/patch-src_main.cpp @@ -1,11 +1,15 @@ ---- src/main.cpp.orig 2021-12-28 09:43:31 UTC +--- src/main.cpp.orig 2024-01-10 16:27:34 UTC +++ src/main.cpp -@@ -342,7 +342,7 @@ static void cleanup(void); +@@ -366,9 +366,9 @@ int main(int argc, char *argv[]) int main(int argc, char *argv[]) { char* baseDir = NULL; - char* assetsPath = NULL; -+ char* assetsPath = (char*)ASSETSPATH; - - for (int i = 1; i < argc; ++i) - { +- char* langDir = NULL; +- char* fontsDir = NULL; ++ char* assetsPath = (char *) DATADIR "/data.zip"; ++ char* langDir = (char *) DATADIR "/lang"; ++ char* fontsDir = (char *) DATADIR "/fonts"; + bool seed_use_sdl_getticks = false; + #ifdef _WIN32 + bool open_console = false; diff --git a/games/vvvvvv/pkg-plist b/games/vvvvvv/pkg-plist new file mode 100644 index 000000000000..d64abd25bacc --- /dev/null +++ b/games/vvvvvv/pkg-plist @@ -0,0 +1,237 @@ +%%DATADIR%%/fonts/README.txt +%%DATADIR%%/fonts/buttons_10x10.fontmeta +%%DATADIR%%/fonts/buttons_10x10.png +%%DATADIR%%/fonts/buttons_12x12.fontmeta +%%DATADIR%%/fonts/buttons_12x12.png +%%DATADIR%%/fonts/buttons_8x8.fontmeta +%%DATADIR%%/fonts/buttons_8x8.png +%%DATADIR%%/fonts/font.fontmeta +%%DATADIR%%/fonts/font.png +%%DATADIR%%/fonts/font_ar.fontmeta +%%DATADIR%%/fonts/font_ar.png +%%DATADIR%%/fonts/font_ja.fontmeta +%%DATADIR%%/fonts/font_ja.png +%%DATADIR%%/fonts/font_ko.fontmeta +%%DATADIR%%/fonts/font_ko.png +%%DATADIR%%/fonts/font_ko_license.txt +%%DATADIR%%/fonts/font_sc.fontmeta +%%DATADIR%%/fonts/font_sc.png +%%DATADIR%%/lang/README-programmers.txt +%%DATADIR%%/lang/README-translators.txt +%%DATADIR%%/lang/ar/cutscenes.xml +%%DATADIR%%/lang/ar/graphics/flipsprites.png +%%DATADIR%%/lang/ar/graphics/sprites.png +%%DATADIR%%/lang/ar/graphics/spritesmask.xml +%%DATADIR%%/lang/ar/meta.xml +%%DATADIR%%/lang/ar/numbers.xml +%%DATADIR%%/lang/ar/roomnames.xml +%%DATADIR%%/lang/ar/roomnames_special.xml +%%DATADIR%%/lang/ar/strings.xml +%%DATADIR%%/lang/ar/strings_plural.xml +%%DATADIR%%/lang/ca/cutscenes.xml +%%DATADIR%%/lang/ca/graphics/flipsprites.png +%%DATADIR%%/lang/ca/graphics/sprites.png +%%DATADIR%%/lang/ca/graphics/spritesmask.xml +%%DATADIR%%/lang/ca/meta.xml +%%DATADIR%%/lang/ca/numbers.xml +%%DATADIR%%/lang/ca/roomnames.xml +%%DATADIR%%/lang/ca/roomnames_special.xml +%%DATADIR%%/lang/ca/strings.xml +%%DATADIR%%/lang/ca/strings_plural.xml +%%DATADIR%%/lang/cy/cutscenes.xml +%%DATADIR%%/lang/cy/graphics/flipsprites.png +%%DATADIR%%/lang/cy/graphics/sprites.png +%%DATADIR%%/lang/cy/graphics/spritesmask.xml +%%DATADIR%%/lang/cy/meta.xml +%%DATADIR%%/lang/cy/numbers.xml +%%DATADIR%%/lang/cy/roomnames.xml +%%DATADIR%%/lang/cy/roomnames_special.xml +%%DATADIR%%/lang/cy/strings.xml +%%DATADIR%%/lang/cy/strings_plural.xml +%%DATADIR%%/lang/de/cutscenes.xml +%%DATADIR%%/lang/de/graphics/flipsprites.png +%%DATADIR%%/lang/de/graphics/sprites.png +%%DATADIR%%/lang/de/graphics/spritesmask.xml +%%DATADIR%%/lang/de/meta.xml +%%DATADIR%%/lang/de/numbers.xml +%%DATADIR%%/lang/de/roomnames.xml +%%DATADIR%%/lang/de/roomnames_special.xml +%%DATADIR%%/lang/de/strings.xml +%%DATADIR%%/lang/de/strings_plural.xml +%%DATADIR%%/lang/en/cutscenes.xml +%%DATADIR%%/lang/en/meta.xml +%%DATADIR%%/lang/en/numbers.xml +%%DATADIR%%/lang/en/roomnames.xml +%%DATADIR%%/lang/en/roomnames_special.xml +%%DATADIR%%/lang/en/strings.xml +%%DATADIR%%/lang/en/strings_plural.xml +%%DATADIR%%/lang/eo/cutscenes.xml +%%DATADIR%%/lang/eo/graphics/flipsprites.png +%%DATADIR%%/lang/eo/graphics/sprites.png +%%DATADIR%%/lang/eo/graphics/spritesmask.xml +%%DATADIR%%/lang/eo/meta.xml +%%DATADIR%%/lang/eo/numbers.xml +%%DATADIR%%/lang/eo/roomnames.xml +%%DATADIR%%/lang/eo/roomnames_special.xml +%%DATADIR%%/lang/eo/strings.xml +%%DATADIR%%/lang/eo/strings_plural.xml +%%DATADIR%%/lang/es/cutscenes.xml +%%DATADIR%%/lang/es/graphics/flipsprites.png +%%DATADIR%%/lang/es/graphics/sprites.png +%%DATADIR%%/lang/es/graphics/spritesmask.xml +%%DATADIR%%/lang/es/meta.xml +%%DATADIR%%/lang/es/numbers.xml +%%DATADIR%%/lang/es/roomnames.xml +%%DATADIR%%/lang/es/roomnames_special.xml +%%DATADIR%%/lang/es/strings.xml +%%DATADIR%%/lang/es/strings_plural.xml +%%DATADIR%%/lang/fr/cutscenes.xml +%%DATADIR%%/lang/fr/graphics/flipsprites.png +%%DATADIR%%/lang/fr/graphics/sprites.png +%%DATADIR%%/lang/fr/graphics/spritesmask.xml +%%DATADIR%%/lang/fr/meta.xml +%%DATADIR%%/lang/fr/numbers.xml +%%DATADIR%%/lang/fr/roomnames.xml +%%DATADIR%%/lang/fr/roomnames_special.xml +%%DATADIR%%/lang/fr/strings.xml +%%DATADIR%%/lang/fr/strings_plural.xml +%%DATADIR%%/lang/ga/cutscenes.xml +%%DATADIR%%/lang/ga/graphics/flipsprites.png +%%DATADIR%%/lang/ga/graphics/sprites.png +%%DATADIR%%/lang/ga/graphics/spritesmask.xml +%%DATADIR%%/lang/ga/meta.xml +%%DATADIR%%/lang/ga/numbers.xml +%%DATADIR%%/lang/ga/roomnames.xml +%%DATADIR%%/lang/ga/roomnames_special.xml +%%DATADIR%%/lang/ga/strings.xml +%%DATADIR%%/lang/ga/strings_plural.xml +%%DATADIR%%/lang/it/cutscenes.xml +%%DATADIR%%/lang/it/graphics/flipsprites.png +%%DATADIR%%/lang/it/graphics/sprites.png +%%DATADIR%%/lang/it/graphics/spritesmask.xml +%%DATADIR%%/lang/it/meta.xml +%%DATADIR%%/lang/it/numbers.xml +%%DATADIR%%/lang/it/roomnames.xml +%%DATADIR%%/lang/it/roomnames_special.xml +%%DATADIR%%/lang/it/strings.xml +%%DATADIR%%/lang/it/strings_plural.xml +%%DATADIR%%/lang/ja/cutscenes.xml +%%DATADIR%%/lang/ja/graphics/flipsprites.png +%%DATADIR%%/lang/ja/graphics/sprites.png +%%DATADIR%%/lang/ja/graphics/spritesmask.xml +%%DATADIR%%/lang/ja/meta.xml +%%DATADIR%%/lang/ja/numbers.xml +%%DATADIR%%/lang/ja/roomnames.xml +%%DATADIR%%/lang/ja/roomnames_special.xml +%%DATADIR%%/lang/ja/strings.xml +%%DATADIR%%/lang/ja/strings_plural.xml +%%DATADIR%%/lang/ko/cutscenes.xml +%%DATADIR%%/lang/ko/graphics/flipsprites.png +%%DATADIR%%/lang/ko/graphics/sprites.png +%%DATADIR%%/lang/ko/graphics/spritesmask.xml +%%DATADIR%%/lang/ko/meta.xml +%%DATADIR%%/lang/ko/numbers.xml +%%DATADIR%%/lang/ko/roomnames.xml +%%DATADIR%%/lang/ko/roomnames_special.xml +%%DATADIR%%/lang/ko/strings.xml +%%DATADIR%%/lang/ko/strings_plural.xml +%%DATADIR%%/lang/nl/cutscenes.xml +%%DATADIR%%/lang/nl/graphics/flipsprites.png +%%DATADIR%%/lang/nl/graphics/sprites.png +%%DATADIR%%/lang/nl/graphics/spritesmask.xml +%%DATADIR%%/lang/nl/meta.xml +%%DATADIR%%/lang/nl/numbers.xml +%%DATADIR%%/lang/nl/roomnames.xml +%%DATADIR%%/lang/nl/roomnames_special.xml +%%DATADIR%%/lang/nl/strings.xml +%%DATADIR%%/lang/nl/strings_plural.xml +%%DATADIR%%/lang/pl/cutscenes.xml +%%DATADIR%%/lang/pl/graphics/flipsprites.png +%%DATADIR%%/lang/pl/graphics/sprites.png +%%DATADIR%%/lang/pl/graphics/spritesmask.xml +%%DATADIR%%/lang/pl/meta.xml +%%DATADIR%%/lang/pl/numbers.xml +%%DATADIR%%/lang/pl/roomnames.xml +%%DATADIR%%/lang/pl/roomnames_special.xml +%%DATADIR%%/lang/pl/strings.xml +%%DATADIR%%/lang/pl/strings_plural.xml +%%DATADIR%%/lang/pt_BR/cutscenes.xml +%%DATADIR%%/lang/pt_BR/graphics/flipsprites.png +%%DATADIR%%/lang/pt_BR/graphics/sprites.png +%%DATADIR%%/lang/pt_BR/graphics/spritesmask.xml +%%DATADIR%%/lang/pt_BR/meta.xml +%%DATADIR%%/lang/pt_BR/numbers.xml +%%DATADIR%%/lang/pt_BR/roomnames.xml +%%DATADIR%%/lang/pt_BR/roomnames_special.xml +%%DATADIR%%/lang/pt_BR/strings.xml +%%DATADIR%%/lang/pt_BR/strings_plural.xml +%%DATADIR%%/lang/pt_PT/cutscenes.xml +%%DATADIR%%/lang/pt_PT/graphics/flipsprites.png +%%DATADIR%%/lang/pt_PT/graphics/sprites.png +%%DATADIR%%/lang/pt_PT/graphics/spritesmask.xml +%%DATADIR%%/lang/pt_PT/meta.xml +%%DATADIR%%/lang/pt_PT/numbers.xml +%%DATADIR%%/lang/pt_PT/roomnames.xml +%%DATADIR%%/lang/pt_PT/roomnames_special.xml +%%DATADIR%%/lang/pt_PT/strings.xml +%%DATADIR%%/lang/pt_PT/strings_plural.xml +%%DATADIR%%/lang/ru/cutscenes.xml +%%DATADIR%%/lang/ru/graphics/flipsprites.png +%%DATADIR%%/lang/ru/graphics/sprites.png +%%DATADIR%%/lang/ru/graphics/spritesmask.xml +%%DATADIR%%/lang/ru/meta.xml +%%DATADIR%%/lang/ru/numbers.xml +%%DATADIR%%/lang/ru/roomnames.xml +%%DATADIR%%/lang/ru/roomnames_special.xml +%%DATADIR%%/lang/ru/strings.xml +%%DATADIR%%/lang/ru/strings_plural.xml +%%DATADIR%%/lang/szl/cutscenes.xml +%%DATADIR%%/lang/szl/graphics/flipsprites.png +%%DATADIR%%/lang/szl/graphics/sprites.png +%%DATADIR%%/lang/szl/graphics/spritesmask.xml +%%DATADIR%%/lang/szl/meta.xml +%%DATADIR%%/lang/szl/numbers.xml +%%DATADIR%%/lang/szl/roomnames.xml +%%DATADIR%%/lang/szl/roomnames_special.xml +%%DATADIR%%/lang/szl/strings.xml +%%DATADIR%%/lang/szl/strings_plural.xml +%%DATADIR%%/lang/tr/cutscenes.xml +%%DATADIR%%/lang/tr/graphics/flipsprites.png +%%DATADIR%%/lang/tr/graphics/sprites.png +%%DATADIR%%/lang/tr/graphics/spritesmask.xml +%%DATADIR%%/lang/tr/meta.xml +%%DATADIR%%/lang/tr/numbers.xml +%%DATADIR%%/lang/tr/roomnames.xml +%%DATADIR%%/lang/tr/roomnames_special.xml +%%DATADIR%%/lang/tr/strings.xml +%%DATADIR%%/lang/tr/strings_plural.xml +%%DATADIR%%/lang/uk/cutscenes.xml +%%DATADIR%%/lang/uk/graphics/flipsprites.png +%%DATADIR%%/lang/uk/graphics/sprites.png +%%DATADIR%%/lang/uk/graphics/spritesmask.xml +%%DATADIR%%/lang/uk/meta.xml +%%DATADIR%%/lang/uk/numbers.xml +%%DATADIR%%/lang/uk/roomnames.xml +%%DATADIR%%/lang/uk/roomnames_special.xml +%%DATADIR%%/lang/uk/strings.xml +%%DATADIR%%/lang/uk/strings_plural.xml +%%DATADIR%%/lang/zh/cutscenes.xml +%%DATADIR%%/lang/zh/graphics/flipsprites.png +%%DATADIR%%/lang/zh/graphics/sprites.png +%%DATADIR%%/lang/zh/graphics/spritesmask.xml +%%DATADIR%%/lang/zh/meta.xml +%%DATADIR%%/lang/zh/numbers.xml +%%DATADIR%%/lang/zh/roomnames.xml +%%DATADIR%%/lang/zh/roomnames_special.xml +%%DATADIR%%/lang/zh/strings.xml +%%DATADIR%%/lang/zh/strings_plural.xml +%%DATADIR%%/lang/zh_TW/cutscenes.xml +%%DATADIR%%/lang/zh_TW/graphics/flipsprites.png +%%DATADIR%%/lang/zh_TW/graphics/sprites.png +%%DATADIR%%/lang/zh_TW/graphics/spritesmask.xml +%%DATADIR%%/lang/zh_TW/meta.xml +%%DATADIR%%/lang/zh_TW/numbers.xml +%%DATADIR%%/lang/zh_TW/roomnames.xml +%%DATADIR%%/lang/zh_TW/roomnames_special.xml +%%DATADIR%%/lang/zh_TW/strings.xml +%%DATADIR%%/lang/zh_TW/strings_plural.xml