Here is an update to corsixth 0.66.
Index: Makefile =================================================================== RCS file: /home/cvs/ports/games/corsixth/Makefile,v retrieving revision 1.14 diff -u -p -u -p -r1.14 Makefile --- Makefile 24 Apr 2023 11:40:39 -0000 1.14 +++ Makefile 11 May 2023 04:10:30 -0000 @@ -1,10 +1,9 @@ ONLY_FOR_ARCHS = ${CXX11_ARCHS} -V = 0.65.1 +V = 0.66 COMMENT = open source clone of Theme Hospital PKGNAME = corsixth-${V} CATEGORIES = games x11 -REVISION = 0 GH_ACCOUNT = CorsixTH GH_PROJECT = CorsixTH Index: distinfo =================================================================== RCS file: /home/cvs/ports/games/corsixth/distinfo,v retrieving revision 1.7 diff -u -p -u -p -r1.7 distinfo --- distinfo 22 Jul 2021 20:25:14 -0000 1.7 +++ distinfo 11 May 2023 04:10:39 -0000 @@ -1,2 +1,2 @@ -SHA256 (CorsixTH-0.65.1.tar.gz) = uKFQM3H6DA89B9Ozmj3idpuO0lkj0NkxtwdbyI4/UI8= -SIZE (CorsixTH-0.65.1.tar.gz) = 4163922 +SHA256 (CorsixTH-0.66.tar.gz) = n4f/ACQFUBsSeYpxW2kUlndaT5cnGI7roWcUOBaZKg8= +SIZE (CorsixTH-0.66.tar.gz) = 4117046 Index: patches/patch-CorsixTH_Lua_app_lua =================================================================== RCS file: /home/cvs/ports/games/corsixth/patches/patch-CorsixTH_Lua_app_lua,v retrieving revision 1.3 diff -u -p -u -p -r1.3 patch-CorsixTH_Lua_app_lua --- patches/patch-CorsixTH_Lua_app_lua 11 Mar 2022 19:04:13 -0000 1.3 +++ patches/patch-CorsixTH_Lua_app_lua 11 May 2023 04:11:11 -0000 @@ -3,7 +3,7 @@ Do not check or download updates. Index: CorsixTH/Lua/app.lua --- CorsixTH/Lua/app.lua.orig +++ CorsixTH/Lua/app.lua -@@ -64,7 +64,7 @@ function App:App() +@@ -65,7 +65,7 @@ function App:App() } self.strings = {} self.savegame_version = SAVEGAME_VERSION Index: patches/patch-CorsixTH_Src_th_movie_cpp =================================================================== RCS file: patches/patch-CorsixTH_Src_th_movie_cpp diff -N patches/patch-CorsixTH_Src_th_movie_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-CorsixTH_Src_th_movie_cpp 11 May 2023 04:20:35 -0000 @@ -0,0 +1,44 @@ +Use ffmpeg 5.1 new channel layout api + +Index: CorsixTH/Src/th_movie.cpp +--- CorsixTH/Src/th_movie.cpp.orig ++++ CorsixTH/Src/th_movie.cpp +@@ -446,9 +446,29 @@ void movie_player::play(int iChannel) { + default: + std::cerr << "WARN: unsupported channel layout " << mixer_channels + << ". Please report issue."; +- target_channel_layout = av_get_default_channel_layout(mixer_channels); ++ target_channel_layout = 0; + } + ++#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 24, 100) && \ ++ LIBSWRESAMPLE_VERSION_INT >= AV_VERSION_INT(4, 5, 100) ++ av_channel_layout_unique_ptr ch_layout(new AVChannelLayout{}); ++ ++ if (target_channel_layout == 0) { ++ av_channel_layout_default(ch_layout.get(), mixer_channels); ++ } else { ++ av_channel_layout_from_mask(ch_layout.get(), target_channel_layout); ++ } ++ ++ swr_alloc_set_opts2(&audio_resample_context, ch_layout.get(), ++ AV_SAMPLE_FMT_S16, mixer_frequency, ++ &(audio_codec_context->ch_layout), ++ audio_codec_context->sample_fmt, ++ audio_codec_context->sample_rate, 0, nullptr); ++#else ++ if (target_channel_layout == 0) { ++ target_channel_layout = av_get_default_channel_layout(mixer_channels); ++ } ++ + audio_resample_context = swr_alloc_set_opts( + audio_resample_context, + static_cast<std::int64_t>(target_channel_layout), AV_SAMPLE_FMT_S16, +@@ -456,6 +476,7 @@ void movie_player::play(int iChannel) { + static_cast<std::int64_t>(audio_codec_context->channel_layout), + audio_codec_context->sample_fmt, audio_codec_context->sample_rate, 0, + nullptr); ++#endif + swr_init(audio_resample_context); + empty_audio_chunk.reset( + Mix_QuickLoad_RAW(audio_chunk_buffer.data(), Index: patches/patch-CorsixTH_Src_th_movie_h =================================================================== RCS file: patches/patch-CorsixTH_Src_th_movie_h diff -N patches/patch-CorsixTH_Src_th_movie_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-CorsixTH_Src_th_movie_h 11 May 2023 04:20:47 -0000 @@ -0,0 +1,27 @@ +Use ffmpeg 5.1 new channel layout api + +Index: CorsixTH/Src/th_movie.h +--- CorsixTH/Src/th_movie.h.orig ++++ CorsixTH/Src/th_movie.h +@@ -96,6 +96,21 @@ class mix_chunk_deleter { + + using mix_chunk_unique_ptr = std::unique_ptr<Mix_Chunk, mix_chunk_deleter>; + ++#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 24, 100) ++//! \brief Functor for deleting AVChannelLayout ++class av_channel_layout_deleter { ++ public: ++ void operator()(AVChannelLayout* c) { ++ av_channel_layout_uninit(c); ++ delete c; ++ } ++}; ++ ++//! \brief unique_ptr for AVChannelLayout ++using av_channel_layout_unique_ptr = ++ std::unique_ptr<AVChannelLayout, av_channel_layout_deleter>; ++#endif ++ + //! \brief A picture in movie_picture_buffer + //! + //! Stores the picture from a frame in the movie from the time that it is