Download raw body.
[update] games/openmw to 0.50.0
On Sun, November 9, 2025 11:37, Pascal Stumpf wrote:
> I have already sent out the devel/collada-dom port which is now
> required. Pieces below are:
>
> Update mygui to 3.4.3 and enable -DMYGUI_DONT_USE_OBSOLETE.
>
> Enable the DAE plugin in graphics/openscenegraph (this is what
> collada-dom is for)
>
> And finally the update to 0.50.0.
Works fine for me.
ok kirby@
>
>
> Index: devel/mygui/Makefile
> ===================================================================
> RCS file: /home/cvs/ports/devel/mygui/Makefile,v
> diff -u -p -r1.12 Makefile
> --- devel/mygui/Makefile 11 Sep 2023 20:51:24 -0000 1.12
> +++ devel/mygui/Makefile 7 Nov 2025 20:50:09 -0000
> @@ -1,6 +1,6 @@
> COMMENT = library for creating GUIs for games and 3D applications
>
> -V = 3.4.1
> +V = 3.4.3
> GH_ACCOUNT = MyGUI
> GH_PROJECT = mygui
> GH_TAGNAME = MyGUI${V}
> @@ -30,6 +30,8 @@ CXXFLAGS += -fPIC
> CONFIGURE_ARGS += -DMYGUI_BUILD_DEMOS=false \
> -DMYGUI_BUILD_PLUGINS=false \
> -DMYGUI_BUILD_TOOLS=false \
> + -DMYGUI_DONT_USE_OBSOLETE=ON \
> + -DMYGUI_USE_SYSTEM_GLEW=true \
> -DMYGUI_RENDERSYSTEM=4 \
> -DCMAKE_CXX_FLAGS="-I${X11BASE}/include" \
> -Wno-dev
> Index: devel/mygui/distinfo
> ===================================================================
> RCS file: /home/cvs/ports/devel/mygui/distinfo,v
> diff -u -p -r1.3 distinfo
> --- devel/mygui/distinfo 11 Sep 2023 20:51:24 -0000 1.3
> +++ devel/mygui/distinfo 28 Jan 2025 17:54:26 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (mygui-3.4.1.tar.gz) = vfcwvetK2J5rgiOWfbAapSdNK5OtwsDWqkhC+u7U3ho=
> -SIZE (mygui-3.4.1.tar.gz) = 22433198
> +SHA256 (mygui-3.4.3.tar.gz) = M8kbUxmTBH53ys421v6nNjS4wXvQ7Rk9TNEqx8Yyir0=
> +SIZE (mygui-3.4.3.tar.gz) = 18797995
> Index: devel/mygui/patches/patch-Common_Base_Ogre_BaseManager_cpp
> ===================================================================
> RCS file:
> /home/cvs/ports/devel/mygui/patches/patch-Common_Base_Ogre_BaseManager_cpp,v
> diff -u -p -r1.5 patch-Common_Base_Ogre_BaseManager_cpp
> --- devel/mygui/patches/patch-Common_Base_Ogre_BaseManager_cpp 11 Sep 2023
> 20:51:24 -0000 1.5
> +++ devel/mygui/patches/patch-Common_Base_Ogre_BaseManager_cpp 28 Jan 2025
> 18:03:10 -0000
> @@ -1,13 +1,9 @@
> Index: Common/Base/Ogre/BaseManager.cpp
> --- Common/Base/Ogre/BaseManager.cpp.orig
> +++ Common/Base/Ogre/BaseManager.cpp
> -@@ -36,15 +36,19 @@ namespace base
> - #if MYGUI_PLATFORM == MYGUI_PLATFORM_APPLE
> - const std::string resourcePath = macBundlePath() + "/Contents/Resources/";
> - #else
> -- const std::string resourcePath = "";
> -+ const std::string resourcePath = "${SYSCONFDIR}/MYGUI/";
> - #endif
> +@@ -14,12 +14,16 @@ namespace base
> + bool BaseManager::createRender(int _width, int _height, bool _windowed)
> + {
> Ogre::String pluginsPath;
> + char *homedir;
> + homedir = getenv("HOME");
> @@ -15,10 +11,10 @@ Index: Common/Base/Ogre/BaseManager.cpp
> + homePath = homedir;
>
> #ifndef OGRE_STATIC_LIB
> - pluginsPath = resourcePath + "plugins.cfg";
> + pluginsPath = "plugins.cfg";
> #endif
>
> -- mRoot = new Ogre::Root(pluginsPath, resourcePath + "ogre.cfg",
> resourcePath + "Ogre.log");
> +- mRoot = new Ogre::Root(pluginsPath, "ogre.cfg", "Ogre.log");
> + mRoot = new Ogre::Root(pluginsPath, homePath + "/mygui-ogre.cfg", homePath
> + "/mygui-Ogre.log");
> auto renderSystem =
> mRoot->getRenderSystemByName(mRoot->getAvailableRenderers()[0]->getName());
> mRoot->setRenderSystem(renderSystem);
> Index: devel/mygui/patches/patch-MyGUIEngine_include_MyGUI_UString_h
> ===================================================================
> RCS file:
> /home/cvs/ports/devel/mygui/patches/patch-MyGUIEngine_include_MyGUI_UString_h,v
> diff -u -p -r1.1 patch-MyGUIEngine_include_MyGUI_UString_h
> --- devel/mygui/patches/patch-MyGUIEngine_include_MyGUI_UString_h 21 Aug 2025
> 16:31:48 -0000 1.1
> +++ devel/mygui/patches/patch-MyGUIEngine_include_MyGUI_UString_h 7 Nov 2025
> 18:58:58 -0000
> @@ -2,8 +2,8 @@ Unbreak with libcxx
> Index: MyGUIEngine/include/MyGUI_UString.h
> --- MyGUIEngine/include/MyGUI_UString.h.orig
> +++ MyGUIEngine/include/MyGUI_UString.h
> -@@ -154,10 +154,10 @@ namespace MyGUI
> - static const size_type npos = static_cast<size_type>(~0);
> +@@ -163,10 +163,10 @@ namespace MyGUI
> + static const size_type npos = std::numeric_limits<size_t>::max();
>
> //! a single 32-bit Unicode character
> - using unicode_char = uint32;
> Index:
> devel/mygui/patches/patch-Platforms_OpenGL_OpenGLPlatform_CMakeLists_txt
> ===================================================================
> RCS file:
> devel/mygui/patches/patch-Platforms_OpenGL_OpenGLPlatform_CMakeLists_txt
> diff -N
> devel/mygui/patches/patch-Platforms_OpenGL_OpenGLPlatform_CMakeLists_txt
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++
> devel/mygui/patches/patch-Platforms_OpenGL_OpenGLPlatform_CMakeLists_txt 28
> Jan 2025 19:33:01 -0000
> @@ -0,0 +1,13 @@
> +Index: Platforms/OpenGL/OpenGLPlatform/CMakeLists.txt
> +--- Platforms/OpenGL/OpenGLPlatform/CMakeLists.txt.orig
> ++++ Platforms/OpenGL/OpenGLPlatform/CMakeLists.txt
> +@@ -25,9 +25,6 @@ add_dependencies(${PROJECTNAME} MyGUIEngine)
> +
> + if (APPLE OR WIN32)
> + target_link_libraries(${PROJECTNAME} ${OPENGL_gl_LIBRARY} MyGUIEngine)
> +-else ()
> +- # opengl instead of gl makes it compile and work in a libX11-free wayland
> setup
> +- target_link_libraries(${PROJECTNAME} ${OPENGL_opengl_LIBRARY} MyGUIEngine)
> + endif ()
> + if (MYGUI_USE_SYSTEM_GLEW)
> + target_link_libraries(${PROJECTNAME} ${GLEW_LIBRARIES})
> Index: graphics/openscenegraph/Makefile
> ===================================================================
> RCS file: /home/cvs/ports/graphics/openscenegraph/Makefile,v
> diff -u -p -r1.40 Makefile
> --- graphics/openscenegraph/Makefile 7 Sep 2025 16:33:46 -0000 1.40
> +++ graphics/openscenegraph/Makefile 9 Nov 2025 08:36:14 -0000
> @@ -10,7 +10,7 @@ GH_ACCOUNT = openscenegraph
> GH_PROJECT = OpenSceneGraph
> GH_TAGNAME = OpenSceneGraph-$V
> DISTNAME = openscenegraph-${V}
> -REVISION = 10
> +REVISION = 11
>
> SUBST_VARS += V
>
> @@ -46,15 +46,17 @@ COMPILER = base-clang ports-gcc
>
> CXXFLAGS_base-clang = -std=c++14
>
> -WANTLIB += ${COMPILER_LIBCXX} GL Iex-3_4 IlmThread-3_4
> -WANTLIB += SDL X11 Xinerama Xrandr fontconfig OpenEXRCore-3_4
> -WANTLIB += avcodec avdevice avformat avutil c cairo
> -WANTLIB += curl freetype gdal gdk_pixbuf-2.0 gif gio-2.0 glib-2.0
> -WANTLIB += gobject-2.0 intl jasper jpeg m png poppler-glib rsvg-2
> -WANTLIB += swresample swscale tiff z Imath-3_2 OpenEXR-3_4
> +WANTLIB += ${COMPILER_LIBCXX} GL Iex-3_4 IlmThread-3_4 Imath-3_2
> +WANTLIB += OpenEXR-3_4 OpenEXRCore-3_4 SDL X11 Xinerama Xrandr
> +WANTLIB += avcodec avdevice avformat avutil boost_filesystem c
> +WANTLIB += cairo collada-dom2.4-dp curl fontconfig freetype gdal
> +WANTLIB += gdk_pixbuf-2.0 gif gio-2.0 glib-2.0 gobject-2.0 intl
> +WANTLIB += jasper jpeg m png poppler-glib rsvg-2 swresample swscale
> +WANTLIB += tiff z
>
> MODULES = devel/cmake
> -LIB_DEPENDS = devel/sdl \
> +LIB_DEPENDS = devel/collada-dom \
> + devel/sdl \
> graphics/openexr \
> graphics/ffmpeg \
> graphics/jasper \
> Index: graphics/openscenegraph/pkg/PLIST
> ===================================================================
> RCS file: /home/cvs/ports/graphics/openscenegraph/pkg/PLIST,v
> diff -u -p -r1.5 PLIST
> --- graphics/openscenegraph/pkg/PLIST 11 Mar 2022 19:22:57 -0000 1.5
> +++ graphics/openscenegraph/pkg/PLIST 8 Nov 2025 16:42:08 -0000
> @@ -669,6 +669,7 @@ lib/osgPlugins-${V}/
> @so lib/osgPlugins-${V}/osgdb_bvh.so
> @so lib/osgPlugins-${V}/osgdb_cfg.so
> @so lib/osgPlugins-${V}/osgdb_curl.so
> +@so lib/osgPlugins-${V}/osgdb_dae.so
> @so lib/osgPlugins-${V}/osgdb_dds.so
> @so lib/osgPlugins-${V}/osgdb_deprecated_osg.so
> @so lib/osgPlugins-${V}/osgdb_deprecated_osganimation.so
> Index: games/openmw/Makefile
> ===================================================================
> RCS file: /home/cvs/ports/games/openmw/Makefile,v
> diff -u -p -r1.38 Makefile
> --- games/openmw/Makefile 17 Oct 2025 11:31:01 -0000 1.38
> +++ games/openmw/Makefile 8 Nov 2025 17:56:26 -0000
> @@ -4,14 +4,13 @@ ONLY_FOR_ARCHS = amd64 i386
>
> COMMENT = open source implementation of TES III: Morrowind
>
> -V = 0.48.0
> +V = 0.50.0
> GH_ACCOUNT = OpenMW
> GH_PROJECT = openmw
> GH_TAGNAME = openmw-$V
> DISTNAME = openmw-$V
> -REVISION = 3
>
> -DISTFILES.a = e75adf86f91eb3082220085e42dda62679f9a3ea.zip
> +DISTFILES.a = c393777d26d2ff6519ac23612abf8af42678c9dd.zip
> DIST_SUBDIR = openmw
> SITES.a = https://github.com/recastnavigation/recastnavigation/archive/
>
> @@ -27,15 +26,17 @@ PERMIT_PACKAGE = Yes
> USE_NOBTCFI-aarch64 = Yes
>
> WANTLIB += ${COMPILER_LIBCXX} BulletCollision GL LinearMath MyGUIEngine
> -WANTLIB += boost_atomic-mt boost_filesystem-mt boost_iostreams-mt
> -WANTLIB += boost_program_options-mt boost_system-mt icudata icui18n
> -WANTLIB += icuuc luajit-5.1
> -WANTLIB += OpenThreads Qt5Core Qt5Gui Qt5Network Qt5OpenGL Qt5Widgets
> -WANTLIB += SDL2 avcodec avformat avutil c lz4 m openal osg osgAnimation
> -WANTLIB += osgDB osgFX osgGA osgParticle osgShadow osgText osgUtil
> -WANTLIB += osgViewer sqlite3 swresample swscale unshield yaml-cpp
> -
> -MODULES = devel/cmake lang/lua x11/qt5
> +WANTLIB += OpenThreads Qt6Core Qt6Gui Qt6Network Qt6OpenGL Qt6OpenGLWidgets
> +WANTLIB += Qt6Svg Qt6Widgets SDL2 avcodec avformat avutil boost_iostreams-mt
> +WANTLIB += boost_program_options-mt boost_random-mt boost_regex-mt
> +WANTLIB += boost_system-mt c collada-dom2.4-dp icudata icui18n icuuc
> luajit-5.1
> +WANTLIB += lz4 m openal osg osgAnimation osgDB osgFX osgGA osgParticle
> +WANTLIB += osgShadow osgSim osgText osgUtil osgViewer sqlite3
> +WANTLIB += swresample swscale unshield yaml-cpp z
> +
> +MODULES = devel/cmake lang/lua x11/qt6 lang/clang
> +MODCLANG_VERSION = 19
> +COMPILER = ports-clang
>
> BUILD_DEPENDS = sysutils/e2fsprogs
> LIB_DEPENDS = archivers/unshield \
> @@ -47,9 +48,10 @@ LIB_DEPENDS = archivers/unshield \
> devel/sdl2 \
> devel/yaml-cpp \
> graphics/ffmpeg \
> - graphics/openscenegraph \
> + graphics/openscenegraph>=3.6.5p11 \
> lang/luajit \
> - textproc/icu4c
> + textproc/icu4c \
> + x11/qt6/qtsvg
> RUN_DEPENDS = devel/desktop-file-utils
>
> CONFIGURE_ARGS += -DBINDIR=${LOCALBASE}/bin \
> @@ -57,12 +59,13 @@ CONFIGURE_ARGS += -DBINDIR=${LOCALBASE}
> -DSYSCONFDIR=${PREFIX}/share/examples/openmw \
> -DGLOBAL_CONFIG_PATH="${SYSCONFDIR}" \
> -DOPENMW_RESOURCE_FILES="${LOCALBASE}/share/openmw/resources" \
> - -DCMAKE_PREFIX_PATH="${LOCALBASE}/lib/qt5/cmake" \
> - -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON
> + -DCMAKE_PREFIX_PATH="${LOCALBASE}/lib/qt5/cmake:${LOCALBASE}" \
> + -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON \
> + -DCOLLADA_DOM_VERSION_MINOR=4
>
> NO_TEST = Yes
>
> -WRKDIST = ${WRKDIR}/openmw-openmw-$V
> +WRKDIST = ${WRKDIR}/openmw-${GH_TAGNAME}
>
> CFLAGS += -I${X11BASE}/include -pthread
> CXXFLAGS += -I${X11BASE}/include -pthread
> @@ -70,7 +73,10 @@ MODCMAKE_LDFLAGS = -L${X11BASE}/lib
>
> post-extract:
> mkdir ${WRKDIST}/extern/fetched
> - mv ${WRKDIR}/recastnavigation-e75adf86f91eb3082220085e42dda62679f9a3ea \
> + mv ${WRKDIR}/recastnavigation-c393777d26d2ff6519ac23612abf8af42678c9dd \
> ${WRKDIST}/extern/fetched/recastnavigation
> +
> +post-patch:
> + ${SUBST_CMD} ${WRKSRC}/components/files/linuxpath.cpp
>
> .include <bsd.port.mk>
> Index: games/openmw/distinfo
> ===================================================================
> RCS file: /home/cvs/ports/games/openmw/distinfo,v
> diff -u -p -r1.13 distinfo
> --- games/openmw/distinfo 25 Apr 2024 22:05:21 -0000 1.13
> +++ games/openmw/distinfo 7 Nov 2025 17:06:03 -0000
> @@ -1,4 +1,4 @@
> -SHA256 (openmw/e75adf86f91eb3082220085e42dda62679f9a3ea.zip) =
> 0zOarqHYEwe8rCvs4XbFNZ7V+Mj5ch/DYNKPgvkRklM=
> -SHA256 (openmw/openmw-0.48.0.tar.gz) =
> vpe46QCFPEPd6IFvLOSYAftnLP/fSKx6+Xgqv7inSvQ=
> -SIZE (openmw/e75adf86f91eb3082220085e42dda62679f9a3ea.zip) = 1644592
> -SIZE (openmw/openmw-0.48.0.tar.gz) = 6022261
> +SHA256 (openmw/c393777d26d2ff6519ac23612abf8af42678c9dd.zip) =
> fX/DjJpS29oLodq3DR7VnaEXirHE+iCc23zC3Pzo5Oo=
> +SHA256 (openmw/openmw-0.50.0.tar.gz) =
> cJOozvJlhSIGWFaeuEY2xauQHoL3TIo/ejqK7DW/xUw=
> +SIZE (openmw/c393777d26d2ff6519ac23612abf8af42678c9dd.zip) = 1406094
> +SIZE (openmw/openmw-0.50.0.tar.gz) = 6244084
> Index: games/openmw/patches/patch-apps_openmw_mwsound_ffmpeg_decoder_cpp
> ===================================================================
> RCS file: games/openmw/patches/patch-apps_openmw_mwsound_ffmpeg_decoder_cpp
> diff -N games/openmw/patches/patch-apps_openmw_mwsound_ffmpeg_decoder_cpp
> --- games/openmw/patches/patch-apps_openmw_mwsound_ffmpeg_decoder_cpp 21 Oct
> 2025 12:53:02 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,229 +0,0 @@
> -https://github.com/OpenMW/openmw/commit/61cb5b4da638d520c41a9d99b5850384b2e22679
> -
> -Index: apps/openmw/mwsound/ffmpeg_decoder.cpp
> ---- apps/openmw/mwsound/ffmpeg_decoder.cpp.orig
> -+++ apps/openmw/mwsound/ffmpeg_decoder.cpp
> -@@ -8,6 +8,10 @@
> - #include <components/debug/debuglog.hpp>
> - #include <components/vfs/manager.hpp>
> -
> -+#if FFMPEG_5_OR_GREATER
> -+#include <libavutil/channel_layout.h>
> -+#endif
> -+
> - namespace MWSound
> - {
> -
> -@@ -29,7 +33,11 @@ int FFmpeg_Decoder::readPacket(void *user_data, uint8_
> - }
> - }
> -
> -+#if FFMPEG_CONST_WRITEPACKET
> -+int FFmpeg_Decoder::writePacket(void*, const uint8_t*, int)
> -+#else
> - int FFmpeg_Decoder::writePacket(void *, uint8_t *, int)
> -+#endif
> - {
> - Log(Debug::Error) << "can't write to read-only stream";
> - return -1;
> -@@ -124,7 +132,11 @@ bool FFmpeg_Decoder::getAVAudioData()
> - if(!mDataBuf || mDataBufLen < mFrame->nb_samples)
> - {
> - av_freep(&mDataBuf);
> -+#if FFMPEG_5_OR_GREATER
> -+ if (av_samples_alloc(&mDataBuf, nullptr,
> mOutputChannelLayout.nb_channels,
> -+#else
> - if(av_samples_alloc(&mDataBuf, nullptr,
> av_get_channel_layout_nb_channels(mOutputChannelLayout),
> -+#endif
> - mFrame->nb_samples, mOutputSampleFormat,
> 0) < 0)
> - return false;
> - else
> -@@ -159,7 +171,11 @@ size_t FFmpeg_Decoder::readAVAudioData(void *data, siz
> - if(!getAVAudioData())
> - break;
> - mFramePos = 0;
> -+#if FFMPEG_5_OR_GREATER
> -+ mFrameSize = mFrame->nb_samples *
> mOutputChannelLayout.nb_channels *
> -+#else
> - mFrameSize = mFrame->nb_samples *
> av_get_channel_layout_nb_channels(mOutputChannelLayout) *
> -+#endif
> - av_get_bytes_per_sample(mOutputSampleFormat);
> - }
> -
> -@@ -256,11 +272,20 @@ void FFmpeg_Decoder::open(const std::string &fname)
> - else
> - mOutputSampleFormat = AV_SAMPLE_FMT_S16;
> -
> -+#if FFMPEG_5_OR_GREATER
> -+ mOutputChannelLayout = (*mStream)->codecpar->ch_layout; // sefault
> -+ if (mOutputChannelLayout.u.mask == 0)
> -+ av_channel_layout_default(&mOutputChannelLayout,
> mCodecCtx->ch_layout.nb_channels);
> -+
> -+ mCodecCtx->ch_layout = mOutputChannelLayout;
> -+#else
> - mOutputChannelLayout = (*mStream)->codecpar->channel_layout;
> - if(mOutputChannelLayout == 0)
> - mOutputChannelLayout =
> av_get_default_channel_layout(mCodecCtx->channels);
> -
> - mCodecCtx->channel_layout = mOutputChannelLayout;
> -+#endif
> -+
> - }
> - catch(...)
> - {
> -@@ -346,42 +371,87 @@ void FFmpeg_Decoder::getInfo(int *samplerate, ChannelC
> - *type = SampleType_Int16;
> - }
> -
> -- if(mOutputChannelLayout == AV_CH_LAYOUT_MONO)
> -- *chans = ChannelConfig_Mono;
> -- else if(mOutputChannelLayout == AV_CH_LAYOUT_STEREO)
> -- *chans = ChannelConfig_Stereo;
> -- else if(mOutputChannelLayout == AV_CH_LAYOUT_QUAD)
> -- *chans = ChannelConfig_Quad;
> -- else if(mOutputChannelLayout == AV_CH_LAYOUT_5POINT1)
> -- *chans = ChannelConfig_5point1;
> -- else if(mOutputChannelLayout == AV_CH_LAYOUT_7POINT1)
> -- *chans = ChannelConfig_7point1;
> -- else
> -+#if FFMPEG_5_OR_GREATER
> -+ switch (mOutputChannelLayout.u.mask)
> -+#else
> -+ switch (mOutputChannelLayout)
> -+#endif
> - {
> -- char str[1024];
> -- av_get_channel_layout_string(str, sizeof(str), mCodecCtx->channels,
> mCodecCtx->channel_layout);
> -- Log(Debug::Error) << "Unsupported channel layout: "<< str;
> --
> -- if(mCodecCtx->channels == 1)
> -- {
> -- mOutputChannelLayout = AV_CH_LAYOUT_MONO;
> -+ case AV_CH_LAYOUT_MONO:
> - *chans = ChannelConfig_Mono;
> -- }
> -- else
> -- {
> -- mOutputChannelLayout = AV_CH_LAYOUT_STEREO;
> -+ break;
> -+ case AV_CH_LAYOUT_STEREO:
> - *chans = ChannelConfig_Stereo;
> -- }
> -- }
> -+ break;
> -+ case AV_CH_LAYOUT_QUAD:
> -+ *chans = ChannelConfig_Quad;
> -+ break;
> -+ case AV_CH_LAYOUT_5POINT1:
> -+ *chans = ChannelConfig_5point1;
> -+ break;
> -+ case AV_CH_LAYOUT_7POINT1:
> -+ *chans = ChannelConfig_7point1;
> -+ break;
> -+ default:
> -+ char str[1024];
> -+#if FFMPEG_5_OR_GREATER
> -+ av_channel_layout_describe(&mCodecCtx->ch_layout, str,
> sizeof(str));
> -+ Log(Debug::Error) << "Unsupported channel layout: " << str;
> -
> -+ if (mCodecCtx->ch_layout.nb_channels == 1)
> -+ {
> -+ mOutputChannelLayout = AV_CHANNEL_LAYOUT_MONO;
> -+ *chans = ChannelConfig_Mono;
> -+ }
> -+ else
> -+ {
> -+ mOutputChannelLayout = AV_CHANNEL_LAYOUT_STEREO;
> -+ *chans = ChannelConfig_Stereo;
> -+ }
> -+#else
> -+ av_get_channel_layout_string(str, sizeof(str),
> mCodecCtx->channels, mCodecCtx->channel_layout);
> -+ Log(Debug::Error) << "Unsupported channel layout: " << str;
> -+
> -+ if (mCodecCtx->channels == 1)
> -+ {
> -+ mOutputChannelLayout = AV_CH_LAYOUT_MONO;
> -+ *chans = ChannelConfig_Mono;
> -+ }
> -+ else
> -+ {
> -+ mOutputChannelLayout = AV_CH_LAYOUT_STEREO;
> -+ *chans = ChannelConfig_Stereo;
> -+ }
> -+#endif
> -+ break;
> -+ }
> - *samplerate = mCodecCtx->sample_rate;
> -+#if FFMPEG_5_OR_GREATER
> -+ AVChannelLayout ch_layout = mCodecCtx->ch_layout;
> -+ if (ch_layout.u.mask == 0)
> -+ av_channel_layout_default(&ch_layout,
> mCodecCtx->ch_layout.nb_channels);
> -+
> -+ if (mOutputSampleFormat != mCodecCtx->sample_fmt ||
> mOutputChannelLayout.u.mask != ch_layout.u.mask)
> -+#else
> - int64_t ch_layout = mCodecCtx->channel_layout;
> - if(ch_layout == 0)
> - ch_layout = av_get_default_channel_layout(mCodecCtx->channels);
> -
> - if(mOutputSampleFormat != mCodecCtx->sample_fmt ||
> - mOutputChannelLayout != ch_layout)
> -+#endif
> - {
> -+#if FFMPEG_5_OR_GREATER
> -+ swr_alloc_set_opts2(&mSwr, // SwrContext
> -+ &mOutputChannelLayout, // output ch
> layout
> -+ mOutputSampleFormat, // output sample
> format
> -+ mCodecCtx->sample_rate, // output sample
> rate
> -+ &ch_layout, // input ch layout
> -+ mCodecCtx->sample_fmt, // input sample
> format
> -+ mCodecCtx->sample_rate, // input sample
> rate
> -+ 0, // logging level
> offset
> -+ nullptr); // log context
> -+#else
> - mSwr = swr_alloc_set_opts(mSwr, // SwrContext
> - mOutputChannelLayout, // output ch
> layout
> - mOutputSampleFormat, // output sample
> format
> -@@ -391,6 +461,7 @@ void FFmpeg_Decoder::getInfo(int *samplerate, ChannelC
> - mCodecCtx->sample_rate, // input sample rate
> - 0, // logging level
> offset
> - nullptr); // log context
> -+#endif
> - if(!mSwr)
> - throw std::runtime_error("Couldn't allocate SwrContext");
> - int init=swr_init(mSwr);
> -@@ -419,7 +490,11 @@ void FFmpeg_Decoder::readAll(std::vector<char> &output
> -
> - while(getAVAudioData())
> - {
> -+#if FFMPEG_5_OR_GREATER
> -+ size_t got = mFrame->nb_samples * mOutputChannelLayout.nb_channels *
> -+#else
> - size_t got = mFrame->nb_samples *
> av_get_channel_layout_nb_channels(mOutputChannelLayout) *
> -+#endif
> - av_get_bytes_per_sample(mOutputSampleFormat);
> - const char *inbuf = reinterpret_cast<char*>(mFrameData[0]);
> - output.insert(output.end(), inbuf, inbuf+got);
> -@@ -428,7 +503,11 @@ void FFmpeg_Decoder::readAll(std::vector<char> &output
> -
> - size_t FFmpeg_Decoder::getSampleOffset()
> - {
> -+#if FFMPEG_5_OR_GREATER
> -+ int delay = (mFrameSize - mFramePos) / mOutputChannelLayout.nb_channels
> /
> -+#else
> - int delay = (mFrameSize-mFramePos) /
> av_get_channel_layout_nb_channels(mOutputChannelLayout) /
> -+#endif
> - av_get_bytes_per_sample(mOutputSampleFormat);
> - return (int)(mNextPts*mCodecCtx->sample_rate) - delay;
> - }
> -@@ -444,7 +523,11 @@ FFmpeg_Decoder::FFmpeg_Decoder(const VFS::Manager* vfs
> - , mNextPts(0.0)
> - , mSwr(nullptr)
> - , mOutputSampleFormat(AV_SAMPLE_FMT_NONE)
> -+#if FFMPEG_5_OR_GREATER
> -+ , mOutputChannelLayout({})
> -+#else
> - , mOutputChannelLayout(0)
> -+#endif
> - , mDataBuf(nullptr)
> - , mFrameData(nullptr)
> - , mDataBufLen(0)
> Index: games/openmw/patches/patch-apps_openmw_mwsound_ffmpeg_decoder_hpp
> ===================================================================
> RCS file: games/openmw/patches/patch-apps_openmw_mwsound_ffmpeg_decoder_hpp
> diff -N games/openmw/patches/patch-apps_openmw_mwsound_ffmpeg_decoder_hpp
> --- games/openmw/patches/patch-apps_openmw_mwsound_ffmpeg_decoder_hpp 21 Oct
> 2025 12:53:02 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,39 +0,0 @@
> -https://github.com/OpenMW/openmw/commit/61cb5b4da638d520c41a9d99b5850384b2e22679
> -
> -Index: apps/openmw/mwsound/ffmpeg_decoder.hpp
> ---- apps/openmw/mwsound/ffmpeg_decoder.hpp.orig
> -+++ apps/openmw/mwsound/ffmpeg_decoder.hpp
> -@@ -31,6 +31,9 @@ extern "C"
> - #include "sound_decoder.hpp"
> -
> -
> -+#define FFMPEG_5_OR_GREATER (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28,
> 100))
> -+#define FFMPEG_CONST_WRITEPACKET (LIBAVFORMAT_VERSION_INT >=
> AV_VERSION_INT(60, 12, 100) && !defined(FF_API_AVIO_WRITE_NONCONST))
> -+
> - namespace MWSound
> - {
> - class FFmpeg_Decoder final : public Sound_Decoder
> -@@ -49,7 +52,11 @@ namespace MWSound
> -
> - SwrContext *mSwr;
> - enum AVSampleFormat mOutputSampleFormat;
> -+#if FFMPEG_5_OR_GREATER
> -+ AVChannelLayout mOutputChannelLayout;
> -+#else
> - int64_t mOutputChannelLayout;
> -+#endif
> - uint8_t *mDataBuf;
> - uint8_t **mFrameData;
> - int mDataBufLen;
> -@@ -59,7 +66,11 @@ namespace MWSound
> - Files::IStreamPtr mDataStream;
> -
> - static int readPacket(void *user_data, uint8_t *buf, int buf_size);
> -+#if FFMPEG_CONST_WRITEPACKET
> -+ static int writePacket(void* user_data, const uint8_t* buf, int
> buf_size);
> -+#else
> - static int writePacket(void *user_data, uint8_t *buf, int buf_size);
> -+#endif
> - static int64_t seek(void *user_data, int64_t offset, int whence);
> -
> - bool getAVAudioData();
> Index: games/openmw/patches/patch-apps_openmw_mwsound_movieaudiofactory_cpp
> ===================================================================
> RCS file: games/openmw/patches/patch-apps_openmw_mwsound_movieaudiofactory_cpp
> diff -N games/openmw/patches/patch-apps_openmw_mwsound_movieaudiofactory_cpp
> --- games/openmw/patches/patch-apps_openmw_mwsound_movieaudiofactory_cpp 21
> Oct 2025 12:53:02 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,17 +0,0 @@
> -https://github.com/OpenMW/openmw/commit/61cb5b4da638d520c41a9d99b5850384b2e22679
> -
> -Index: apps/openmw/mwsound/movieaudiofactory.cpp
> ---- apps/openmw/mwsound/movieaudiofactory.cpp.orig
> -+++ apps/openmw/mwsound/movieaudiofactory.cpp
> -@@ -44,7 +44,11 @@ namespace MWSound
> -
> - size_t getSampleOffset()
> - {
> -+#if FFMPEG_5_OR_GREATER
> -+ ssize_t clock_delay = (mFrameSize - mFramePos) /
> mOutputChannelLayout.nb_channels /
> -+#else
> - ssize_t clock_delay = (mFrameSize-mFramePos) /
> av_get_channel_layout_nb_channels(mOutputChannelLayout) /
> -+#endif
> -
> av_get_bytes_per_sample(mOutputSampleFormat);
> - return (size_t)(mAudioClock*mAudioContext->sample_rate) -
> clock_delay;
> - }
> Index: games/openmw/patches/patch-apps_openmw_mwstate_charactermanager_hpp
> ===================================================================
> RCS file: games/openmw/patches/patch-apps_openmw_mwstate_charactermanager_hpp
> diff -N games/openmw/patches/patch-apps_openmw_mwstate_charactermanager_hpp
> --- games/openmw/patches/patch-apps_openmw_mwstate_charactermanager_hpp 19 Apr
> 2025 15:15:13 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,14 +0,0 @@
> -Fix build with boost 1.87; from FreeBSD
> -
> -Index: apps/openmw/mwstate/charactermanager.hpp
> ---- apps/openmw/mwstate/charactermanager.hpp.orig
> -+++ apps/openmw/mwstate/charactermanager.hpp
> -@@ -1,6 +1,8 @@
> - #ifndef GAME_STATE_CHARACTERMANAGER_H
> - #define GAME_STATE_CHARACTERMANAGER_H
> -
> -+#include <list>
> -+
> - #include <boost/filesystem/path.hpp>
> -
> - #include "character.hpp"
> Index: games/openmw/patches/patch-components_bsa_bsa_file_cpp
> ===================================================================
> RCS file: games/openmw/patches/patch-components_bsa_bsa_file_cpp
> diff -N games/openmw/patches/patch-components_bsa_bsa_file_cpp
> --- games/openmw/patches/patch-components_bsa_bsa_file_cpp 19 Apr 2025
> 15:15:13 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,13 +0,0 @@
> -Fix build with boost 1.87; from FreeBSD
> -
> -Index: components/bsa/bsa_file.cpp
> ---- components/bsa/bsa_file.cpp.orig
> -+++ components/bsa/bsa_file.cpp
> -@@ -26,6 +26,7 @@
> - #include <components/files/constrainedfilestream.hpp>
> -
> - #include <cassert>
> -+#include <algorithm>
> -
> - #include <boost/filesystem/path.hpp>
> - #include <boost/filesystem/fstream.hpp>
> Index: games/openmw/patches/patch-components_to_utf8_to_utf8_cpp
> ===================================================================
> RCS file: games/openmw/patches/patch-components_to_utf8_to_utf8_cpp
> diff -N games/openmw/patches/patch-components_to_utf8_to_utf8_cpp
> --- games/openmw/patches/patch-components_to_utf8_to_utf8_cpp 3 Sep 2025
> 07:51:31 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,14 +0,0 @@
> -Fix build with libc++19; backported from openmw-0.49.0
> -
> -Index: components/to_utf8/to_utf8.cpp
> ---- components/to_utf8/to_utf8.cpp.orig
> -+++ components/to_utf8/to_utf8.cpp
> -@@ -52,7 +52,7 @@ namespace
> - return std::find_if(input.begin(), input.end(), [] (unsigned char v)
> { return v == 0 || v >= 128; });
> - }
> -
> -- std::basic_string_view<signed char> getTranslationArray(FromType
> sourceEncoding)
> -+ std::span<const signed char> getTranslationArray(FromType
> sourceEncoding)
> - {
> - switch (sourceEncoding)
> - {
> Index: games/openmw/patches/patch-components_to_utf8_to_utf8_hpp
> ===================================================================
> RCS file: games/openmw/patches/patch-components_to_utf8_to_utf8_hpp
> diff -N games/openmw/patches/patch-components_to_utf8_to_utf8_hpp
> --- games/openmw/patches/patch-components_to_utf8_to_utf8_hpp 3 Sep 2025
> 07:51:31 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,22 +0,0 @@
> -Fix build with libc++19; backported from openmw-0.49.0
> -
> -Index: components/to_utf8/to_utf8.hpp
> ---- components/to_utf8/to_utf8.hpp.orig
> -+++ components/to_utf8/to_utf8.hpp
> -@@ -3,6 +3,7 @@
> -
> - #include <string>
> - #include <cstring>
> -+#include <span>
> - #include <vector>
> - #include <string_view>
> -
> -@@ -46,7 +47,7 @@ namespace ToUTF8
> - inline std::pair<std::size_t, bool>
> getLengthLegacyEnc(std::string_view input) const;
> - inline void copyFromArrayLegacyEnc(std::string_view::iterator&
> chp, std::string_view::iterator end, char* &out) const;
> -
> -- const std::basic_string_view<signed char> mTranslationArray;
> -+ const std::span<const signed char> mTranslationArray;
> - };
> -
> - class Utf8Encoder
> Index: games/openmw/patches/patch-extern_CMakeLists_txt
> ===================================================================
> RCS file: /home/cvs/ports/games/openmw/patches/patch-extern_CMakeLists_txt,v
> diff -u -p -r1.3 patch-extern_CMakeLists_txt
> --- games/openmw/patches/patch-extern_CMakeLists_txt 25 Apr 2024 22:05:21
> -0000 1.3
> +++ games/openmw/patches/patch-extern_CMakeLists_txt 27 Jan 2025 20:31:24
> -0000
> @@ -1,15 +1,14 @@
> Index: extern/CMakeLists.txt
> --- extern/CMakeLists.txt.orig
> +++ extern/CMakeLists.txt
> -@@ -179,14 +179,7 @@ if(NOT OPENMW_USE_SYSTEM_RECASTNAVIGATION)
> +@@ -173,13 +173,7 @@ if(NOT OPENMW_USE_SYSTEM_RECASTNAVIGATION)
> set(RECASTNAVIGATION_TESTS OFF CACHE BOOL "")
> set(RECASTNAVIGATION_EXAMPLES OFF CACHE BOOL "")
>
> -- # master on 15 Feb 2021
> - include(FetchContent)
> - FetchContent_Declare(recastnavigation
> -- URL
> https://github.com/recastnavigation/recastnavigation/archive/e75adf86f91eb3082220085e42dda62679f9a3ea.zip
> -- URL_HASH
> SHA512=93a19490cdfa55e98a6af9cc050e94af88fdb95fae2059ceeff28b62f3b48515f5fdd2c806c910550933b6861a4f6a91173ee0ed1b61c1396f7b34d4c78f0793
> +- URL
> https://github.com/recastnavigation/recastnavigation/archive/c393777d26d2ff6519ac23612abf8af42678c9dd.zip
> +- URL_HASH
> SHA512=48f20cee7a70c2f20f4c68bb74d5af11a1434be85294e37f5fe7b7aae820fbcdff4f35d3be286eaf6f9cbce0aed4201fcc090df409a5bd04aec5fd7c29b3ad94
> - SOURCE_DIR fetched/recastnavigation
> - )
> - FetchContent_MakeAvailableExcludeFromAll(recastnavigation)
> Index:
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_audiodecoder_cpp
> ===================================================================
> RCS file:
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_audiodecoder_cpp
> diff -N
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_audiodecoder_cpp
> ---
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_audiodecoder_cpp 21
> Oct 2025 12:53:02 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,147 +0,0 @@
> -https://github.com/OpenMW/openmw/commit/61cb5b4da638d520c41a9d99b5850384b2e22679
> -
> -Index: extern/osg-ffmpeg-videoplayer/audiodecoder.cpp
> ---- extern/osg-ffmpeg-videoplayer/audiodecoder.cpp.orig
> -+++ extern/osg-ffmpeg-videoplayer/audiodecoder.cpp
> -@@ -18,6 +18,10 @@ extern "C"
> - #pragma warning (pop)
> - #endif
> -
> -+#if FFMPEG_5_OR_GREATER
> -+ #include <libavutil/channel_layout.h>
> -+#endif
> -+
> - #include "videostate.hpp"
> -
> - namespace
> -@@ -53,7 +57,11 @@ MovieAudioDecoder::MovieAudioDecoder(VideoState* video
> - : mVideoState(videoState)
> - , mAVStream(*videoState->audio_st)
> - , mOutputSampleFormat(AV_SAMPLE_FMT_NONE)
> -+ #if FFMPEG_5_OR_GREATER
> -+ , mOutputChannelLayout({})
> -+ #else
> - , mOutputChannelLayout(0)
> -+ #endif
> - , mOutputSampleRate(0)
> - , mFramePos(0)
> - , mFrameSize(0)
> -@@ -109,21 +117,49 @@ void MovieAudioDecoder::setupFormat()
> -
> - AVSampleFormat inputSampleFormat = mAudioContext->sample_fmt;
> -
> -+#if FFMPEG_5_OR_GREATER
> -+ AVChannelLayout inputChannelLayout = mAudioContext->ch_layout;
> -+ if (inputChannelLayout.u.mask != 0)
> -+ mOutputChannelLayout = inputChannelLayout;
> -+ else
> -+ av_channel_layout_default(&mOutputChannelLayout,
> mAudioContext->ch_layout.nb_channels);
> -+#else
> - uint64_t inputChannelLayout = mAudioContext->channel_layout;
> - if (inputChannelLayout == 0)
> - inputChannelLayout =
> av_get_default_channel_layout(mAudioContext->channels);
> -+#endif
> -
> - int inputSampleRate = mAudioContext->sample_rate;
> -
> - mOutputSampleRate = inputSampleRate;
> - mOutputSampleFormat = inputSampleFormat;
> -+
> -+#if FFMPEG_5_OR_GREATER
> -+ adjustAudioSettings(mOutputSampleFormat, mOutputChannelLayout.u.mask,
> mOutputSampleRate);
> -+#else
> - mOutputChannelLayout = inputChannelLayout;
> - adjustAudioSettings(mOutputSampleFormat, mOutputChannelLayout,
> mOutputSampleRate);
> -+#endif
> -
> - if (inputSampleFormat != mOutputSampleFormat
> -+ #if FFMPEG_5_OR_GREATER
> -+ || inputChannelLayout.u.mask != mOutputChannelLayout.u.mask
> -+ #else
> - || inputChannelLayout != mOutputChannelLayout
> -+ #endif
> - || inputSampleRate != mOutputSampleRate)
> - {
> -+ #if FFMPEG_5_OR_GREATER
> -+ swr_alloc_set_opts2(&mAudioResampler->mSwr,
> -+ &mOutputChannelLayout,
> -+ mOutputSampleFormat,
> -+ mOutputSampleRate,
> -+ &inputChannelLayout,
> -+ inputSampleFormat,
> -+ inputSampleRate,
> -+ 0, // logging level offset
> -+ nullptr); // log context
> -+ #else
> - mAudioResampler->mSwr = swr_alloc_set_opts(mAudioResampler->mSwr,
> - mOutputChannelLayout,
> - mOutputSampleFormat,
> -@@ -133,6 +169,8 @@ void MovieAudioDecoder::setupFormat()
> - inputSampleRate,
> - 0, // logging level
> offset
> - nullptr); // log context
> -+ #endif
> -+
> - if(!mAudioResampler->mSwr)
> - fail(std::string("Couldn't allocate SwrContext"));
> - if(swr_init(mAudioResampler->mSwr) < 0)
> -@@ -158,7 +196,11 @@ int MovieAudioDecoder::synchronize_audio()
> - if(fabs(avg_diff) >= mAudioDiffThreshold)
> - {
> - int n = av_get_bytes_per_sample(mOutputSampleFormat) *
> -+ #if FFMPEG_5_OR_GREATER
> -+ mOutputChannelLayout.nb_channels;
> -+ #else
> - av_get_channel_layout_nb_channels(mOutputChannelLayout);
> -+ #endif
> - sample_skip = ((int)(diff * mAudioContext->sample_rate) * n);
> - }
> - }
> -@@ -204,7 +246,11 @@ int MovieAudioDecoder::audio_decode_frame(AVFrame *fra
> - if(!mDataBuf || mDataBufLen < frame->nb_samples)
> - {
> - av_freep(&mDataBuf);
> -+ #if FFMPEG_5_OR_GREATER
> -+ if(av_samples_alloc(&mDataBuf, nullptr,
> mOutputChannelLayout.nb_channels,
> -+ #else
> - if(av_samples_alloc(&mDataBuf, nullptr,
> av_get_channel_layout_nb_channels(mOutputChannelLayout),
> -+ #endif
> - frame->nb_samples,
> mOutputSampleFormat, 0) < 0)
> - break;
> - else
> -@@ -221,7 +267,11 @@ int MovieAudioDecoder::audio_decode_frame(AVFrame *fra
> - else
> - mFrameData = &frame->data[0];
> -
> -+ #if FFMPEG_5_OR_GREATER
> -+ int result = frame->nb_samples *
> mOutputChannelLayout.nb_channels *
> -+ #else
> - int result = frame->nb_samples *
> av_get_channel_layout_nb_channels(mOutputChannelLayout) *
> -+ #endif
> - av_get_bytes_per_sample(mOutputSampleFormat);
> -
> - /* We have data, return it and come back for more later */
> -@@ -298,7 +348,11 @@ size_t MovieAudioDecoder::read(char *stream, size_t le
> - len1 = std::min<size_t>(len1, -mFramePos);
> -
> - int n = av_get_bytes_per_sample(mOutputSampleFormat)
> -+ #if FFMPEG_5_OR_GREATER
> -+ * mOutputChannelLayout.nb_channels;
> -+ #else
> - *
> av_get_channel_layout_nb_channels(mOutputChannelLayout);
> -+ #endif
> -
> - /* add samples by copying the first sample*/
> - if(n == 1)
> -@@ -348,7 +402,11 @@ int MovieAudioDecoder::getOutputSampleRate() const
> -
> - uint64_t MovieAudioDecoder::getOutputChannelLayout() const
> - {
> -+ #if FFMPEG_5_OR_GREATER
> -+ return mOutputChannelLayout.u.mask;
> -+ #else
> - return mOutputChannelLayout;
> -+ #endif
> - }
> -
> - AVSampleFormat MovieAudioDecoder::getOutputSampleFormat() const
> Index:
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_audiodecoder_hpp
> ===================================================================
> RCS file:
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_audiodecoder_hpp
> diff -N
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_audiodecoder_hpp
> ---
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_audiodecoder_hpp 21
> Oct 2025 12:53:02 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,26 +0,0 @@
> -https://github.com/OpenMW/openmw/commit/61cb5b4da638d520c41a9d99b5850384b2e22679
> -
> -Index: extern/osg-ffmpeg-videoplayer/audiodecoder.hpp
> ---- extern/osg-ffmpeg-videoplayer/audiodecoder.hpp.orig
> -+++ extern/osg-ffmpeg-videoplayer/audiodecoder.hpp
> -@@ -29,6 +29,8 @@ extern "C"
> - typedef SSIZE_T ssize_t;
> - #endif
> -
> -+#define FFMPEG_5_OR_GREATER (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28,
> 100))
> -+
> - namespace Video
> - {
> -
> -@@ -43,7 +45,11 @@ class MovieAudioDecoder (protected)
> - AVCodecContext* mAudioContext;
> - AVStream *mAVStream;
> - enum AVSampleFormat mOutputSampleFormat;
> -+ #if FFMPEG_5_OR_GREATER
> -+ AVChannelLayout mOutputChannelLayout;
> -+ #else
> - uint64_t mOutputChannelLayout;
> -+ #endif
> - int mOutputSampleRate;
> - ssize_t mFramePos;
> - ssize_t mFrameSize;
> Index: games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_videostate_cpp
> ===================================================================
> RCS file:
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_videostate_cpp
> diff -N
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_videostate_cpp
> --- games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_videostate_cpp 21
> Oct 2025 12:53:02 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,17 +0,0 @@
> -https://github.com/OpenMW/openmw/commit/61cb5b4da638d520c41a9d99b5850384b2e22679
> -
> -Index: extern/osg-ffmpeg-videoplayer/videostate.cpp
> ---- extern/osg-ffmpeg-videoplayer/videostate.cpp.orig
> -+++ extern/osg-ffmpeg-videoplayer/videostate.cpp
> -@@ -243,7 +243,11 @@ int VideoState::istream_read(void *user_data, uint8_t
> - }
> - }
> -
> -+#if FFMPEG_CONST_WRITEPACKET
> -+int VideoState::istream_write(void *, const unsigned char *, int)
> -+#else
> - int VideoState::istream_write(void *, uint8_t *, int)
> -+#endif
> - {
> - throw std::runtime_error("can't write to read-only stream");
> - }
> Index: games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_videostate_hpp
> ===================================================================
> RCS file:
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_videostate_hpp
> diff -N
> games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_videostate_hpp
> --- games/openmw/patches/patch-extern_osg-ffmpeg-videoplayer_videostate_hpp 21
> Oct 2025 12:53:02 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,30 +0,0 @@
> -https://github.com/OpenMW/openmw/commit/61cb5b4da638d520c41a9d99b5850384b2e22679
> -
> -Index: extern/osg-ffmpeg-videoplayer/videostate.hpp
> ---- extern/osg-ffmpeg-videoplayer/videostate.hpp.orig
> -+++ extern/osg-ffmpeg-videoplayer/videostate.hpp
> -@@ -42,6 +42,9 @@ extern "C"
> -
> - #define VIDEO_PICTURE_QUEUE_SIZE 50
> -
> -+#define FFMPEG_5_OR_GREATER (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28,
> 100))
> -+#define FFMPEG_CONST_WRITEPACKET (LIBAVFORMAT_VERSION_INT >=
> AV_VERSION_INT(60, 12, 100) && !defined(FF_API_AVIO_WRITE_NONCONST))
> -+
> - extern "C"
> - {
> - struct SwsContext;
> -@@ -155,7 +158,13 @@ struct VideoState {
> - double get_master_clock();
> -
> - static int istream_read(void *user_data, uint8_t *buf, int buf_size);
> -- static int istream_write(void *user_data, uint8_t *buf, int buf_size);
> -+
> -+#if FFMPEG_CONST_WRITEPACKET
> -+ static int istream_write(void *, const unsigned char *, int);
> -+#else
> -+ static int istream_write(void *, uint8_t *, int);
> -+#endif
> -+
> - static int64_t istream_seek(void *user_data, int64_t offset, int
> whence);
> -
> - osg::ref_ptr<osg::Texture2D> mTexture;
> Index: games/openmw/patches/patch-extern_sol3_sol_optional_implementation_hpp
> ===================================================================
> RCS file:
> games/openmw/patches/patch-extern_sol3_sol_optional_implementation_hpp
> diff -N games/openmw/patches/patch-extern_sol3_sol_optional_implementation_hpp
> --- games/openmw/patches/patch-extern_sol3_sol_optional_implementation_hpp 31
> Jan 2025 09:03:56 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,15 +0,0 @@
> -https://github.com/ThePhD/sol2/pull/1606
> -
> -Index: extern/sol3/sol/optional_implementation.hpp
> ---- extern/sol3/sol/optional_implementation.hpp.orig
> -+++ extern/sol3/sol/optional_implementation.hpp
> -@@ -2191,7 +2191,8 @@ namespace sol {
> - static_assert(std::is_constructible<T, Args&&...>::value, "T must be
> constructible with Args");
> -
> - *this = nullopt;
> -- this->construct(std::forward<Args>(args)...);
> -+ new (static_cast<void*>(this)) optional(std::in_place,
> std::forward<Args>(args)...);
> -+ return **this;
> - }
> -
> - /// Swaps this optional with the other.
> Index: games/openmw/pkg/PLIST
> ===================================================================
> RCS file: /home/cvs/ports/games/openmw/pkg/PLIST,v
> diff -u -p -r1.13 PLIST
> --- games/openmw/pkg/PLIST 25 Apr 2024 22:05:21 -0000 1.13
> +++ games/openmw/pkg/PLIST 7 Nov 2025 21:33:42 -0000
> @@ -34,11 +34,18 @@ include/recastnavigation/RecastAlloc.h
> include/recastnavigation/RecastAssert.h
> include/recastnavigation/RecastDebugDraw.h
> include/recastnavigation/RecastDump.h
> +include/recastnavigation/version.h
> +lib/cmake/recastnavigation/
> +lib/cmake/recastnavigation/recastnavigation-config-version.cmake
> +lib/cmake/recastnavigation/recastnavigation-config.cmake
> +lib/cmake/recastnavigation/recastnavigation-targets${MODCMAKE_BUILD_SUFFIX}
> +lib/cmake/recastnavigation/recastnavigation-targets.cmake
> @static-lib lib/libDebugUtils.a
> @static-lib lib/libDetour.a
> @static-lib lib/libDetourCrowd.a
> @static-lib lib/libDetourTileCache.a
> @static-lib lib/libRecast.a
> +lib/pkgconfig/recastnavigation.pc
> share/applications/org.openmw.cs.desktop
> share/applications/org.openmw.launcher.desktop
> share/doc/pkg-readmes/${PKGSTEM}
> @@ -52,12 +59,9 @@ share/examples/openmw/gamecontrollerdb.t
> @sample ${SYSCONFDIR}/openmw/gamecontrollerdb.txt
> share/examples/openmw/openmw.cfg
> @sample ${SYSCONFDIR}/openmw/openmw.cfg
> -share/examples/openmw/version
> -@sample ${SYSCONFDIR}/openmw/version
> share/metainfo/
> share/metainfo/openmw.appdata.xml
> share/openmw/
> -share/openmw/data/
> share/openmw/resources/
> share/openmw/resources/defaultfilters
> share/openmw/resources/lua_api/
> @@ -66,72 +70,145 @@ share/openmw/resources/lua_api/coroutine
> share/openmw/resources/lua_api/global.doclua
> share/openmw/resources/lua_api/math.doclua
> share/openmw/resources/lua_api/openmw/
> +share/openmw/resources/lua_api/openmw/ambient.lua
> +share/openmw/resources/lua_api/openmw/animation.lua
> share/openmw/resources/lua_api/openmw/async.lua
> +share/openmw/resources/lua_api/openmw/camera.lua
> share/openmw/resources/lua_api/openmw/core.lua
> share/openmw/resources/lua_api/openmw/debug.lua
> +share/openmw/resources/lua_api/openmw/input.lua
> +share/openmw/resources/lua_api/openmw/interfaces.lua
> +share/openmw/resources/lua_api/openmw/markup.lua
> +share/openmw/resources/lua_api/openmw/menu.lua
> share/openmw/resources/lua_api/openmw/nearby.lua
> share/openmw/resources/lua_api/openmw/postprocessing.lua
> share/openmw/resources/lua_api/openmw/self.lua
> +share/openmw/resources/lua_api/openmw/storage.lua
> share/openmw/resources/lua_api/openmw/types.lua
> share/openmw/resources/lua_api/openmw/ui.lua
> share/openmw/resources/lua_api/openmw/util.lua
> +share/openmw/resources/lua_api/openmw/vfs.lua
> share/openmw/resources/lua_api/openmw/world.lua
> share/openmw/resources/lua_api/string.doclua
> share/openmw/resources/lua_api/table.doclua
> share/openmw/resources/lua_libs/
> share/openmw/resources/lua_libs/content.lua
> +share/openmw/resources/lua_libs/util.lua
> share/openmw/resources/openmw.png
> share/openmw/resources/shaders/
> -share/openmw/resources/shaders/alpha.glsl
> -share/openmw/resources/shaders/blended_depth_postpass_fragment.glsl
> -share/openmw/resources/shaders/blended_depth_postpass_vertex.glsl
> -share/openmw/resources/shaders/debug_fragment.glsl
> -share/openmw/resources/shaders/debug_vertex.glsl
> -share/openmw/resources/shaders/depth.glsl
> -share/openmw/resources/shaders/fog.glsl
> -share/openmw/resources/shaders/fullscreen_tri_fragment.glsl
> -share/openmw/resources/shaders/fullscreen_tri_vertex.glsl
> -share/openmw/resources/shaders/groundcover_fragment.glsl
> -share/openmw/resources/shaders/groundcover_vertex.glsl
> -share/openmw/resources/shaders/gui_fragment.glsl
> -share/openmw/resources/shaders/gui_vertex.glsl
> -share/openmw/resources/shaders/hdr_luminance_fragment.glsl
> -share/openmw/resources/shaders/hdr_resolve_fragment.glsl
> -share/openmw/resources/shaders/lighting.glsl
> -share/openmw/resources/shaders/lighting_util.glsl
> -share/openmw/resources/shaders/multiview_resolve_fragment.glsl
> -share/openmw/resources/shaders/multiview_resolve_vertex.glsl
> -share/openmw/resources/shaders/nv_default_fragment.glsl
> -share/openmw/resources/shaders/nv_default_vertex.glsl
> -share/openmw/resources/shaders/nv_nolighting_fragment.glsl
> -share/openmw/resources/shaders/nv_nolighting_vertex.glsl
> -share/openmw/resources/shaders/objects_fragment.glsl
> -share/openmw/resources/shaders/objects_vertex.glsl
> -share/openmw/resources/shaders/openmw_fragment.glsl
> -share/openmw/resources/shaders/openmw_fragment.h.glsl
> -share/openmw/resources/shaders/openmw_fragment_multiview.glsl
> -share/openmw/resources/shaders/openmw_vertex.glsl
> -share/openmw/resources/shaders/openmw_vertex.h.glsl
> -share/openmw/resources/shaders/openmw_vertex_multiview.glsl
> -share/openmw/resources/shaders/parallax.glsl
> -share/openmw/resources/shaders/s360_fragment.glsl
> -share/openmw/resources/shaders/s360_vertex.glsl
> -share/openmw/resources/shaders/shadowcasting_fragment.glsl
> -share/openmw/resources/shaders/shadowcasting_vertex.glsl
> -share/openmw/resources/shaders/shadows_fragment.glsl
> -share/openmw/resources/shaders/shadows_vertex.glsl
> -share/openmw/resources/shaders/sky_fragment.glsl
> -share/openmw/resources/shaders/sky_vertex.glsl
> -share/openmw/resources/shaders/skypasses.glsl
> -share/openmw/resources/shaders/softparticles.glsl
> -share/openmw/resources/shaders/terrain_fragment.glsl
> -share/openmw/resources/shaders/terrain_vertex.glsl
> -share/openmw/resources/shaders/vertexcolors.glsl
> -share/openmw/resources/shaders/water_fragment.glsl
> -share/openmw/resources/shaders/water_nm.png
> -share/openmw/resources/shaders/water_vertex.glsl
> +share/openmw/resources/shaders/compatibility/
> +share/openmw/resources/shaders/compatibility/bs/
> +share/openmw/resources/shaders/compatibility/bs/default.frag
> +share/openmw/resources/shaders/compatibility/bs/default.vert
> +share/openmw/resources/shaders/compatibility/bs/nolighting.frag
> +share/openmw/resources/shaders/compatibility/bs/nolighting.vert
> +share/openmw/resources/shaders/compatibility/debug.frag
> +share/openmw/resources/shaders/compatibility/debug.vert
> +share/openmw/resources/shaders/compatibility/depthclipped.frag
> +share/openmw/resources/shaders/compatibility/depthclipped.vert
> +share/openmw/resources/shaders/compatibility/fog.glsl
> +share/openmw/resources/shaders/compatibility/fullscreen_tri.frag
> +share/openmw/resources/shaders/compatibility/fullscreen_tri.vert
> +share/openmw/resources/shaders/compatibility/groundcover.frag
> +share/openmw/resources/shaders/compatibility/groundcover.vert
> +share/openmw/resources/shaders/compatibility/gui.frag
> +share/openmw/resources/shaders/compatibility/gui.vert
> +share/openmw/resources/shaders/compatibility/luminance/
> +share/openmw/resources/shaders/compatibility/luminance/luminance.frag
> +share/openmw/resources/shaders/compatibility/luminance/resolve.frag
> +share/openmw/resources/shaders/compatibility/multiview_resolve.frag
> +share/openmw/resources/shaders/compatibility/multiview_resolve.vert
> +share/openmw/resources/shaders/compatibility/normals.glsl
> +share/openmw/resources/shaders/compatibility/objects.frag
> +share/openmw/resources/shaders/compatibility/objects.vert
> +share/openmw/resources/shaders/compatibility/ripples_blobber.frag
> +share/openmw/resources/shaders/compatibility/ripples_simulate.frag
> +share/openmw/resources/shaders/compatibility/shadowcasting.frag
> +share/openmw/resources/shaders/compatibility/shadowcasting.vert
> +share/openmw/resources/shaders/compatibility/shadows_fragment.glsl
> +share/openmw/resources/shaders/compatibility/shadows_vertex.glsl
> +share/openmw/resources/shaders/compatibility/sky.frag
> +share/openmw/resources/shaders/compatibility/sky.vert
> +share/openmw/resources/shaders/compatibility/terrain.frag
> +share/openmw/resources/shaders/compatibility/terrain.vert
> +share/openmw/resources/shaders/compatibility/vertexcolors.glsl
> +share/openmw/resources/shaders/compatibility/water.frag
> +share/openmw/resources/shaders/compatibility/water.vert
> +share/openmw/resources/shaders/core/
> +share/openmw/resources/shaders/core/gui.frag
> +share/openmw/resources/shaders/core/gui.vert
> +share/openmw/resources/shaders/core/ripples_blobber.comp
> +share/openmw/resources/shaders/core/ripples_simulate.comp
> +share/openmw/resources/shaders/lib/
> +share/openmw/resources/shaders/lib/core/
> +share/openmw/resources/shaders/lib/core/fragment.glsl
> +share/openmw/resources/shaders/lib/core/fragment.h.glsl
> +share/openmw/resources/shaders/lib/core/fragment_multiview.glsl
> +share/openmw/resources/shaders/lib/core/vertex.glsl
> +share/openmw/resources/shaders/lib/core/vertex.h.glsl
> +share/openmw/resources/shaders/lib/core/vertex_multiview.glsl
> +share/openmw/resources/shaders/lib/light/
> +share/openmw/resources/shaders/lib/light/lighting.glsl
> +share/openmw/resources/shaders/lib/light/lighting_util.glsl
> +share/openmw/resources/shaders/lib/luminance/
> +share/openmw/resources/shaders/lib/luminance/constants.glsl
> +share/openmw/resources/shaders/lib/material/
> +share/openmw/resources/shaders/lib/material/alpha.glsl
> +share/openmw/resources/shaders/lib/material/parallax.glsl
> +share/openmw/resources/shaders/lib/particle/
> +share/openmw/resources/shaders/lib/particle/occlusion.glsl
> +share/openmw/resources/shaders/lib/particle/soft.glsl
> +share/openmw/resources/shaders/lib/sky/
> +share/openmw/resources/shaders/lib/sky/passes.glsl
> +share/openmw/resources/shaders/lib/util/
> +share/openmw/resources/shaders/lib/util/coordinates.glsl
> +share/openmw/resources/shaders/lib/util/distortion.glsl
> +share/openmw/resources/shaders/lib/util/quickstep.glsl
> +share/openmw/resources/shaders/lib/view/
> +share/openmw/resources/shaders/lib/view/depth.glsl
> +share/openmw/resources/shaders/lib/water/
> +share/openmw/resources/shaders/lib/water/fresnel.glsl
> +share/openmw/resources/shaders/lib/water/rain_ripples.glsl
> +share/openmw/resources/shaders/lib/water/ripples.glsl
> +share/openmw/resources/translations/
> +share/openmw/resources/translations/components_de.qm
> +share/openmw/resources/translations/components_en.qm
> +share/openmw/resources/translations/components_fr.qm
> +share/openmw/resources/translations/components_pl.qm
> +share/openmw/resources/translations/components_ru.qm
> +share/openmw/resources/translations/components_sv.qm
> +share/openmw/resources/translations/launcher_de.qm
> +share/openmw/resources/translations/launcher_en.qm
> +share/openmw/resources/translations/launcher_fr.qm
> +share/openmw/resources/translations/launcher_pl.qm
> +share/openmw/resources/translations/launcher_ru.qm
> +share/openmw/resources/translations/launcher_sv.qm
> +share/openmw/resources/translations/wizard_de.qm
> +share/openmw/resources/translations/wizard_en.qm
> +share/openmw/resources/translations/wizard_fr.qm
> +share/openmw/resources/translations/wizard_pl.qm
> +share/openmw/resources/translations/wizard_ru.qm
> +share/openmw/resources/translations/wizard_sv.qm
> share/openmw/resources/version
> share/openmw/resources/vfs/
> +share/openmw/resources/vfs-mw/
> +share/openmw/resources/vfs-mw/l10n/
> +share/openmw/resources/vfs-mw/l10n/Calendar/
> +share/openmw/resources/vfs-mw/l10n/Calendar/de.yaml
> +share/openmw/resources/vfs-mw/l10n/Calendar/en.yaml
> +share/openmw/resources/vfs-mw/l10n/Calendar/fr.yaml
> +share/openmw/resources/vfs-mw/l10n/Calendar/gmst.yaml
> +share/openmw/resources/vfs-mw/l10n/Calendar/pl.yaml
> +share/openmw/resources/vfs-mw/l10n/Calendar/ru.yaml
> +share/openmw/resources/vfs-mw/l10n/Calendar/sv.yaml
> +share/openmw/resources/vfs-mw/l10n/Interface/
> +share/openmw/resources/vfs-mw/l10n/Interface/gmst.yaml
> +share/openmw/resources/vfs-mw/l10n/OMWEngine/
> +share/openmw/resources/vfs-mw/l10n/OMWEngine/gmst.yaml
> +share/openmw/resources/vfs-mw/openmw_aux/
> +share/openmw/resources/vfs-mw/openmw_aux/calendarconfig.lua
> +share/openmw/resources/vfs/animations/
> +share/openmw/resources/vfs/animations/animation-config.yaml
> share/openmw/resources/vfs/builtin.omwscripts
> share/openmw/resources/vfs/fonts/
> share/openmw/resources/vfs/fonts/DejaVuFontLicense.txt
> @@ -144,60 +221,61 @@ share/openmw/resources/vfs/fonts/MysticC
> share/openmw/resources/vfs/fonts/MysticCards.ttf
> share/openmw/resources/vfs/fonts/MysticCardsFontLicense.txt
> share/openmw/resources/vfs/l10n/
> -share/openmw/resources/vfs/l10n/BuiltInShaders/
> -share/openmw/resources/vfs/l10n/BuiltInShaders/de.yaml
> -share/openmw/resources/vfs/l10n/BuiltInShaders/en.yaml
> -share/openmw/resources/vfs/l10n/BuiltInShaders/fr.yaml
> -share/openmw/resources/vfs/l10n/BuiltInShaders/ru.yaml
> -share/openmw/resources/vfs/l10n/BuiltInShaders/sv.yaml
> share/openmw/resources/vfs/l10n/Calendar/
> share/openmw/resources/vfs/l10n/Calendar/de.yaml
> share/openmw/resources/vfs/l10n/Calendar/en.yaml
> -share/openmw/resources/vfs/l10n/Calendar/fr.yaml
> +share/openmw/resources/vfs/l10n/Calendar/pl.yaml
> share/openmw/resources/vfs/l10n/Calendar/ru.yaml
> share/openmw/resources/vfs/l10n/Calendar/sv.yaml
> -share/openmw/resources/vfs/l10n/DebugMenu/
> -share/openmw/resources/vfs/l10n/DebugMenu/de.yaml
> -share/openmw/resources/vfs/l10n/DebugMenu/en.yaml
> -share/openmw/resources/vfs/l10n/DebugMenu/fr.yaml
> -share/openmw/resources/vfs/l10n/DebugMenu/ru.yaml
> -share/openmw/resources/vfs/l10n/DebugMenu/sv.yaml
> share/openmw/resources/vfs/l10n/Interface/
> share/openmw/resources/vfs/l10n/Interface/de.yaml
> share/openmw/resources/vfs/l10n/Interface/en.yaml
> share/openmw/resources/vfs/l10n/Interface/fr.yaml
> +share/openmw/resources/vfs/l10n/Interface/pl.yaml
> share/openmw/resources/vfs/l10n/Interface/ru.yaml
> share/openmw/resources/vfs/l10n/Interface/sv.yaml
> -share/openmw/resources/vfs/l10n/Navigation/
> -share/openmw/resources/vfs/l10n/Navigation/de.yaml
> -share/openmw/resources/vfs/l10n/Navigation/en.yaml
> -share/openmw/resources/vfs/l10n/Navigation/fr.yaml
> -share/openmw/resources/vfs/l10n/Navigation/ru.yaml
> -share/openmw/resources/vfs/l10n/Navigation/sv.yaml
> share/openmw/resources/vfs/l10n/OMWCamera/
> share/openmw/resources/vfs/l10n/OMWCamera/de.yaml
> share/openmw/resources/vfs/l10n/OMWCamera/en.yaml
> share/openmw/resources/vfs/l10n/OMWCamera/fr.yaml
> +share/openmw/resources/vfs/l10n/OMWCamera/pl.yaml
> share/openmw/resources/vfs/l10n/OMWCamera/ru.yaml
> share/openmw/resources/vfs/l10n/OMWCamera/sv.yaml
> -share/openmw/resources/vfs/l10n/PostProcessing/
> -share/openmw/resources/vfs/l10n/PostProcessing/de.yaml
> -share/openmw/resources/vfs/l10n/PostProcessing/en.yaml
> -share/openmw/resources/vfs/l10n/PostProcessing/fr.yaml
> -share/openmw/resources/vfs/l10n/PostProcessing/ru.yaml
> -share/openmw/resources/vfs/l10n/PostProcessing/sv.yaml
> -share/openmw/resources/vfs/l10n/SavegameMenu/
> -share/openmw/resources/vfs/l10n/SavegameMenu/de.yaml
> -share/openmw/resources/vfs/l10n/SavegameMenu/en.yaml
> -share/openmw/resources/vfs/l10n/SavegameMenu/fr.yaml
> -share/openmw/resources/vfs/l10n/SavegameMenu/ru.yaml
> -share/openmw/resources/vfs/l10n/SavegameMenu/sv.yaml
> -share/openmw/resources/vfs/l10n/SettingsMenu/
> -share/openmw/resources/vfs/l10n/SettingsMenu/de.yaml
> -share/openmw/resources/vfs/l10n/SettingsMenu/en.yaml
> -share/openmw/resources/vfs/l10n/SettingsMenu/fr.yaml
> -share/openmw/resources/vfs/l10n/SettingsMenu/ru.yaml
> -share/openmw/resources/vfs/l10n/SettingsMenu/sv.yaml
> +share/openmw/resources/vfs/l10n/OMWCombat/
> +share/openmw/resources/vfs/l10n/OMWCombat/de.yaml
> +share/openmw/resources/vfs/l10n/OMWCombat/en.yaml
> +share/openmw/resources/vfs/l10n/OMWCombat/fr.yaml
> +share/openmw/resources/vfs/l10n/OMWCombat/pl.yaml
> +share/openmw/resources/vfs/l10n/OMWCombat/ru.yaml
> +share/openmw/resources/vfs/l10n/OMWCombat/sv.yaml
> +share/openmw/resources/vfs/l10n/OMWControls/
> +share/openmw/resources/vfs/l10n/OMWControls/de.yaml
> +share/openmw/resources/vfs/l10n/OMWControls/en.yaml
> +share/openmw/resources/vfs/l10n/OMWControls/fr.yaml
> +share/openmw/resources/vfs/l10n/OMWControls/pl.yaml
> +share/openmw/resources/vfs/l10n/OMWControls/ru.yaml
> +share/openmw/resources/vfs/l10n/OMWControls/sv.yaml
> +share/openmw/resources/vfs/l10n/OMWEngine/
> +share/openmw/resources/vfs/l10n/OMWEngine/de.yaml
> +share/openmw/resources/vfs/l10n/OMWEngine/en.yaml
> +share/openmw/resources/vfs/l10n/OMWEngine/fr.yaml
> +share/openmw/resources/vfs/l10n/OMWEngine/pl.yaml
> +share/openmw/resources/vfs/l10n/OMWEngine/ru.yaml
> +share/openmw/resources/vfs/l10n/OMWEngine/sv.yaml
> +share/openmw/resources/vfs/l10n/OMWMusic/
> +share/openmw/resources/vfs/l10n/OMWMusic/de.yaml
> +share/openmw/resources/vfs/l10n/OMWMusic/en.yaml
> +share/openmw/resources/vfs/l10n/OMWMusic/fr.yaml
> +share/openmw/resources/vfs/l10n/OMWMusic/pl.yaml
> +share/openmw/resources/vfs/l10n/OMWMusic/ru.yaml
> +share/openmw/resources/vfs/l10n/OMWMusic/sv.yaml
> +share/openmw/resources/vfs/l10n/OMWShaders/
> +share/openmw/resources/vfs/l10n/OMWShaders/de.yaml
> +share/openmw/resources/vfs/l10n/OMWShaders/en.yaml
> +share/openmw/resources/vfs/l10n/OMWShaders/fr.yaml
> +share/openmw/resources/vfs/l10n/OMWShaders/pl.yaml
> +share/openmw/resources/vfs/l10n/OMWShaders/ru.yaml
> +share/openmw/resources/vfs/l10n/OMWShaders/sv.yaml
> share/openmw/resources/vfs/mygui/
> share/openmw/resources/vfs/mygui/OpenMWResourcePlugin.xml
> share/openmw/resources/vfs/mygui/core.skin
> @@ -222,6 +300,7 @@ share/openmw/resources/vfs/mygui/openmw_
> share/openmw/resources/vfs/mygui/openmw_console.layout
> share/openmw/resources/vfs/mygui/openmw_console.skin.xml
> share/openmw/resources/vfs/mygui/openmw_container_window.layout
> +share/openmw/resources/vfs/mygui/openmw_controllerbuttons.layout
> share/openmw/resources/vfs/mygui/openmw_count_window.layout
> share/openmw/resources/vfs/mygui/openmw_debug_window.layout
> share/openmw/resources/vfs/mygui/openmw_debug_window.skin.xml
> @@ -237,6 +316,7 @@ share/openmw/resources/vfs/mygui/openmw_
> share/openmw/resources/vfs/mygui/openmw_infobox.layout
> share/openmw/resources/vfs/mygui/openmw_interactive_messagebox.layout
> share/openmw/resources/vfs/mygui/openmw_interactive_messagebox_notransp.layout
> +share/openmw/resources/vfs/mygui/openmw_inventory_tabs.layout
> share/openmw/resources/vfs/mygui/openmw_inventory_window.layout
> share/openmw/resources/vfs/mygui/openmw_itemselection_dialog.layout
> share/openmw/resources/vfs/mygui/openmw_jail_screen.layout
> @@ -287,11 +367,13 @@ share/openmw/resources/vfs/mygui/openmw_
> share/openmw/resources/vfs/mygui/skins.xml
> share/openmw/resources/vfs/openmw_aux/
> share/openmw/resources/vfs/openmw_aux/calendar.lua
> +share/openmw/resources/vfs/openmw_aux/calendarconfig.lua
> share/openmw/resources/vfs/openmw_aux/time.lua
> share/openmw/resources/vfs/openmw_aux/ui.lua
> share/openmw/resources/vfs/openmw_aux/util.lua
> share/openmw/resources/vfs/scripts/
> share/openmw/resources/vfs/scripts/omw/
> +share/openmw/resources/vfs/scripts/omw/activationhandlers.lua
> share/openmw/resources/vfs/scripts/omw/ai.lua
> share/openmw/resources/vfs/scripts/omw/camera/
> share/openmw/resources/vfs/scripts/omw/camera/camera.lua
> @@ -300,10 +382,34 @@ share/openmw/resources/vfs/scripts/omw/c
> share/openmw/resources/vfs/scripts/omw/camera/move360.lua
> share/openmw/resources/vfs/scripts/omw/camera/settings.lua
> share/openmw/resources/vfs/scripts/omw/camera/third_person.lua
> +share/openmw/resources/vfs/scripts/omw/cellhandlers.lua
> +share/openmw/resources/vfs/scripts/omw/combat/
> +share/openmw/resources/vfs/scripts/omw/combat/common.lua
> +share/openmw/resources/vfs/scripts/omw/combat/global.lua
> +share/openmw/resources/vfs/scripts/omw/combat/local.lua
> +share/openmw/resources/vfs/scripts/omw/combat/menu.lua
> share/openmw/resources/vfs/scripts/omw/console/
> share/openmw/resources/vfs/scripts/omw/console/global.lua
> share/openmw/resources/vfs/scripts/omw/console/local.lua
> +share/openmw/resources/vfs/scripts/omw/console/menu.lua
> share/openmw/resources/vfs/scripts/omw/console/player.lua
> +share/openmw/resources/vfs/scripts/omw/crimes.lua
> +share/openmw/resources/vfs/scripts/omw/input/
> +share/openmw/resources/vfs/scripts/omw/input/actionbindings.lua
> +share/openmw/resources/vfs/scripts/omw/input/gamepadcontrols.lua
> +share/openmw/resources/vfs/scripts/omw/input/playercontrols.lua
> +share/openmw/resources/vfs/scripts/omw/input/settings.lua
> +share/openmw/resources/vfs/scripts/omw/input/smoothmovement.lua
> +share/openmw/resources/vfs/scripts/omw/mechanics/
> +share/openmw/resources/vfs/scripts/omw/mechanics/actorcontroller.lua
> +share/openmw/resources/vfs/scripts/omw/mechanics/animationcontroller.lua
> +share/openmw/resources/vfs/scripts/omw/mechanics/globalcontroller.lua
> +share/openmw/resources/vfs/scripts/omw/mechanics/playercontroller.lua
> +share/openmw/resources/vfs/scripts/omw/music/
> +share/openmw/resources/vfs/scripts/omw/music/actor.lua
> +share/openmw/resources/vfs/scripts/omw/music/helpers.lua
> +share/openmw/resources/vfs/scripts/omw/music/music.lua
> +share/openmw/resources/vfs/scripts/omw/music/settings.lua
> share/openmw/resources/vfs/scripts/omw/mwui/
> share/openmw/resources/vfs/scripts/omw/mwui/borders.lua
> share/openmw/resources/vfs/scripts/omw/mwui/constants.lua
> @@ -315,20 +421,56 @@ share/openmw/resources/vfs/scripts/omw/m
> share/openmw/resources/vfs/scripts/omw/settings/
> share/openmw/resources/vfs/scripts/omw/settings/common.lua
> share/openmw/resources/vfs/scripts/omw/settings/global.lua
> +share/openmw/resources/vfs/scripts/omw/settings/menu.lua
> share/openmw/resources/vfs/scripts/omw/settings/player.lua
> -share/openmw/resources/vfs/scripts/omw/settings/render.lua
> share/openmw/resources/vfs/scripts/omw/settings/renderers.lua
> +share/openmw/resources/vfs/scripts/omw/skillhandlers.lua
> +share/openmw/resources/vfs/scripts/omw/ui.lua
> +share/openmw/resources/vfs/scripts/omw/usehandlers.lua
> +share/openmw/resources/vfs/scripts/omw/worldeventhandlers.lua
> share/openmw/resources/vfs/shaders/
> share/openmw/resources/vfs/shaders/adjustments.omwfx
> share/openmw/resources/vfs/shaders/bloomlinear.omwfx
> share/openmw/resources/vfs/shaders/debug.omwfx
> +share/openmw/resources/vfs/shaders/internal_distortion.omwfx
> share/openmw/resources/vfs/textures/
> +share/openmw/resources/vfs/textures/omw/
> +share/openmw/resources/vfs/textures/omw/water_nm.png
> +share/openmw/resources/vfs/textures/omw_menu_icon_active.dds
> share/openmw/resources/vfs/textures/omw_menu_scroll_center_h.dds
> share/openmw/resources/vfs/textures/omw_menu_scroll_center_v.dds
> share/openmw/resources/vfs/textures/omw_menu_scroll_down.dds
> share/openmw/resources/vfs/textures/omw_menu_scroll_left.dds
> share/openmw/resources/vfs/textures/omw_menu_scroll_right.dds
> share/openmw/resources/vfs/textures/omw_menu_scroll_up.dds
> +share/openmw/resources/vfs/textures/omw_psx_button_circle.dds
> +share/openmw/resources/vfs/textures/omw_psx_button_dpad.dds
> +share/openmw/resources/vfs/textures/omw_psx_button_square.dds
> +share/openmw/resources/vfs/textures/omw_psx_button_triangle.dds
> +share/openmw/resources/vfs/textures/omw_psx_button_x.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_a.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_b.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_dpad.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_l1.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_l2.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_l3.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_lstick.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_menu.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_r1.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_r2.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_r3.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_rstick.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_view.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_x.dds
> +share/openmw/resources/vfs/textures/omw_steam_button_y.dds
> +share/openmw/resources/vfs/textures/omw_switch_button_l.dds
> +share/openmw/resources/vfs/textures/omw_switch_button_r.dds
> +share/openmw/resources/vfs/textures/omw_switch_button_zl.dds
> +share/openmw/resources/vfs/textures/omw_switch_button_zr.dds
> +share/openmw/resources/vfs/textures/omw_xbox_button_lb.dds
> +share/openmw/resources/vfs/textures/omw_xbox_button_lt.dds
> +share/openmw/resources/vfs/textures/omw_xbox_button_rb.dds
> +share/openmw/resources/vfs/textures/omw_xbox_button_rt.dds
> share/pixmaps/
> share/pixmaps/openmw-cs.png
> share/pixmaps/openmw.png
>
>
[update] games/openmw to 0.50.0