Recipe for Dune Legacy (#11153)

This commit is contained in:
Peppersawce
2024-10-07 17:00:04 +02:00
committed by GitHub
parent e9fd75e9b7
commit 44f263cb90
3 changed files with 159 additions and 0 deletions

View File

@@ -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"
};

View File

@@ -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"
}

View File

@@ -0,0 +1,48 @@
From 18f16b1ee55e5cbc89058f86098d5e7a323eaf09 Mon Sep 17 00:00:00 2001
From: Yourself <user@shredder.fritz.box>
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 <vector>
#include <utility> // for std::pair
+#include <array>
+
// 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