From 44f263cb901d52959ef4f021655043337133f480 Mon Sep 17 00:00:00 2001 From: Peppersawce <157759066+Peppersawce@users.noreply.github.com> Date: Mon, 7 Oct 2024 17:00:04 +0200 Subject: [PATCH] Recipe for Dune Legacy (#11153) --- .../additional-files/dunelegacy.rdef.in | 35 +++++++++ .../dunelegacy/dunelegacy-0.96.4~git.recipe | 76 +++++++++++++++++++ .../patches/dunelegacy-0.96.4~git.patchset | 48 ++++++++++++ 3 files changed, 159 insertions(+) create mode 100644 games-strategy/dunelegacy/additional-files/dunelegacy.rdef.in create mode 100644 games-strategy/dunelegacy/dunelegacy-0.96.4~git.recipe create mode 100644 games-strategy/dunelegacy/patches/dunelegacy-0.96.4~git.patchset diff --git a/games-strategy/dunelegacy/additional-files/dunelegacy.rdef.in b/games-strategy/dunelegacy/additional-files/dunelegacy.rdef.in new file mode 100644 index 000000000..b513f6365 --- /dev/null +++ b/games-strategy/dunelegacy/additional-files/dunelegacy.rdef.in @@ -0,0 +1,35 @@ +resource app_flags B_SINGLE_LAUNCH | B_ARGV_ONLY; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "Dune Legacy", + long_info = "A Dune II game engine (@VERSION@ build)" +}; + +resource app_signature "application/x-vnd.dunelegacy"; + +resource vector_icon { + $"6E63696606034185FF03006FB902010603BC600B3E9838BE4C72BC1AAE476A93" + $"4A018600E49154A185522DFF26140604017F02010603B6E764392C12B8CF6EB6" + $"92964825F949AF480086827E97373634FF17161504003A060606FF07CB63BFC9" + $"CB63BFC9CB63C611C004CB28C64BCB28B9BCCB28B4A4BFC9B4A4C611B4A4B981" + $"C004B46AB9BCB46AC64BB46ACB63BFC9CB63B981CB63BFC9BFC90606FF07CB0D" + $"BFC9CB0DBFC9CB0DC5E1C004CAD2C61CCAD2B9EBCAD2B4FABFC9B4FAC5E1B4FA" + $"B9B1C004B4C0B9EBB4C0C61CB4C0CB0DBFC9CB0DB9B1CB0DBFC9BFC90606FF07" + $"CABABFC9CABABFC9CABAC5B4C004CA80C5EECA80BA19CA80B54DBFC9B54DC5B4" + $"B54DB9DEC004B512BA19B512C5EEB512CABABFC9CABAB9DECABABFC9BFC90606" + $"FF07BC49BF1DBC49BF1DBC49C005BAA6C0C1BB8EC0C1B9BFC0C1B903BF1DB903" + $"C005B903BE36BAA6BD7AB9BFBD7ABB8EBD7ABC49BF1DBC49BE36BC49BF1DBF1D" + $"0606FF07BC49BF1DBC49BF1DBC49C005BAA6C0C1BB8EC0C1B9BFC0C1B903BF1D" + $"B903C005B903BE36BAA6BD7AB9BFBD7ABB8EBD7ABC49BF1DBC49BE36BC49BF1D" + $"BF1D0606FF07C1B1C069C1B1C069C1B1C151C00DC20CC0F5C20CBF26C20CBE6A" + $"C069BE6AC151BE6ABF82C00DBEC6BF26BEC6C0F5BEC6C1B1C069C1B1BF82C1B1" + $"C069C069060A000100000A010101000A020102000A030103000A040104000A05" + $"010500" +}; diff --git a/games-strategy/dunelegacy/dunelegacy-0.96.4~git.recipe b/games-strategy/dunelegacy/dunelegacy-0.96.4~git.recipe new file mode 100644 index 000000000..6da64dd11 --- /dev/null +++ b/games-strategy/dunelegacy/dunelegacy-0.96.4~git.recipe @@ -0,0 +1,76 @@ +SUMMARY="A Dune II game engine" +DESCRIPTION="Dune Legacy is an effort by a handful of developers to revitalize \ +the first-ever real-time strategy game. \ +It tries to be as similar as possible to the original gameplay but to integrate \ +user interface features most modern realtime-strategy games have like selecting \ +multiple units" +HOMEPAGE="https://dunelegacy.sourceforge.net/website/" +COPYRIGHT="2016-2022 Dune Legacy" +LICENSE="GNU GPL v2" +REVISION="1" +srcGitRev=d25a654c429050fed96d79dd512f7d4cff7ed89c +SOURCE_URI="https://github.com/Peppersawce/dunelegacyfork-2022/archive/$srcGitRev.zip" +CHECKSUM_SHA256="c314ca55e6973d01491beb73a845b379146966f5a9b89c38e42e9ac8837074ce" +SOURCE_DIR="dunelegacyfork-2022-$srcGitRev/" +PATCHES="dunelegacy-$portVersion.patchset" +ADDITIONAL_FILES="dunelegacy.rdef.in" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + dunelegacy$secondaryArchSuffix = $portVersion + app:dunelegacy = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libSDL2_2.0$secondaryArchSuffix + lib:libSDL2_mixer_2.0$secondaryArchSuffix + lib:libSDL2_ttf_2.0$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libSDL2_2.0$secondaryArchSuffix + devel:libSDL2_mixer_2.0$secondaryArchSuffix + devel:libSDL2_ttf_2.0$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +defineDebugInfoPackage dunelegacy$secondaryArchSuffix \ + $appsDir/dunelegacy + +BUILD() +{ + autoreconf --install + + runConfigure --omit-dirs "bindir" configure --bindir=$appsDir + + make $jobArgs +} + +INSTALL() +{ + make install + + # Generate the rdef + local MAJOR="`echo "$portVersion" | cut -b1`" + local MIDDLE="`echo "$portVersion" | cut -b3,4`" + local MINOR="`echo "$portVersion" | cut -b6`" + local VERSION="Development" + sed \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@VERSION@|$VERSION|" \ + $portDir/additional-files/dunelegacy.rdef.in > dunelegacy.rdef + + addResourcesToBinaries dunelegacy.rdef $appsDir/dunelegacy + addAppDeskbarSymlink $appsDir/dunelegacy "Dune Legacy" +} diff --git a/games-strategy/dunelegacy/patches/dunelegacy-0.96.4~git.patchset b/games-strategy/dunelegacy/patches/dunelegacy-0.96.4~git.patchset new file mode 100644 index 000000000..4a23d818e --- /dev/null +++ b/games-strategy/dunelegacy/patches/dunelegacy-0.96.4~git.patchset @@ -0,0 +1,48 @@ +From 18f16b1ee55e5cbc89058f86098d5e7a323eaf09 Mon Sep 17 00:00:00 2001 +From: Yourself +Date: Mon, 23 Sep 2024 23:26:20 +0200 +Subject: Fix to autoconf, missing array, screen flicker issue + + +diff --git a/configure.ac b/configure.ac +index bc8c862..5290841 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -18,6 +18,8 @@ fi + + AC_SUBST(dunelegacydatadir) + ++AC_SEARCH_LIBS(gethostbyname, [socket, network]) ++ + dnl Some flags for gcc + CXXFLAGS="-std=c++14 -pthread -fPIC -O3 -pipe -pedantic -Wall -Wextra -Wno-unused-parameter -Wno-shift-negative-value -Wno-unknown-pragmas -D__STDC_FORMAT_MACROS -DNDEBUG" + CFLAGS="-std=c99 -pthread -fPIC -O3 -pipe -pedantic -Wall -Wextra -Wno-unused-parameter -Wno-shift-negative-value -Wno-unknown-pragmas -D__STDC_FORMAT_MACROS -DNDEBUG" +diff --git a/include/misc/format.h b/include/misc/format.h +index 49c4598..7fe13f5 100644 +--- a/include/misc/format.h ++++ b/include/misc/format.h +@@ -40,6 +40,8 @@ + #include + #include // for std::pair + ++#include ++ + // The fmt library version in the form major * 10000 + minor * 100 + patch. + #define FMT_VERSION 30002 + +diff --git a/src/Game.cpp b/src/Game.cpp +index eda05fe..f8c4380 100644 +--- a/src/Game.cpp ++++ b/src/Game.cpp +@@ -1094,7 +1094,7 @@ void Game::runMainLoop() { + + drawScreen(); + +- SDL_RenderPresent(renderer); ++ //SDL_RenderPresent(renderer); + + SDL_SetRenderTarget(renderer, nullptr); + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); +-- +2.45.2 +