pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
theforceengine: import TheForceEngine-1.09.200 as wip/theforceengine
Module Name: pkgsrc-wip
Committed By: Yorick Hardy <yorickhardy%gmail.com@localhost>
Pushed By: yhardy
Date: Sun Jun 18 13:42:47 2023 +0200
Changeset: 6202b58ebae30401da1ce1eac47021830f282fbf
Modified Files:
Makefile
Added Files:
theforceengine/DESCR
theforceengine/Makefile
theforceengine/PLIST
theforceengine/distinfo
theforceengine/patches/patch-TheForceEngine_TFE__DarkForces_darkForcesMain.cpp
theforceengine/patches/patch-TheForceEngine_TFE__System_CrashHandler_crashHandlerLinux.cpp
theforceengine/patches/patch-TheForceEngine_TFE__System_system.cpp
theforceengine/patches/patch-TheForceEngine_TFE__System_types.h
theforceengine/patches/patch-TheForceEngine_main.cpp
Log Message:
theforceengine: import TheForceEngine-1.09.200 as wip/theforceengine
The Force Engine is essentially a source port designed to run the
game Dark Forces natively on modern systems with quality of life
improvements and optional enhancements.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=6202b58ebae30401da1ce1eac47021830f282fbf
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
Makefile | 1 +
theforceengine/DESCR | 3 +
theforceengine/Makefile | 27 ++++++
theforceengine/PLIST | 96 ++++++++++++++++++++++
theforceengine/distinfo | 10 +++
...eForceEngine_TFE__DarkForces_darkForcesMain.cpp | 64 +++++++++++++++
..._TFE__System_CrashHandler_crashHandlerLinux.cpp | 14 ++++
.../patch-TheForceEngine_TFE__System_system.cpp | 15 ++++
.../patch-TheForceEngine_TFE__System_types.h | 20 +++++
.../patches/patch-TheForceEngine_main.cpp | 21 +++++
10 files changed, 271 insertions(+)
diffs:
diff --git a/Makefile b/Makefile
index 5c8aa7c360..bb82ad2799 100644
--- a/Makefile
+++ b/Makefile
@@ -5544,6 +5544,7 @@ SUBDIR+= thawab
SUBDIR+= thcrut
SUBDIR+= theama
SUBDIR+= thedarkmod
+SUBDIR+= theforceengine
SUBDIR+= thepeg
SUBDIR+= thunderbird
SUBDIR+= thunderbird68-enigmail
diff --git a/theforceengine/DESCR b/theforceengine/DESCR
new file mode 100644
index 0000000000..0967322616
--- /dev/null
+++ b/theforceengine/DESCR
@@ -0,0 +1,3 @@
+The Force Engine is essentially a source port designed to run the
+game Dark Forces natively on modern systems with quality of life
+improvements and optional enhancements.
diff --git a/theforceengine/Makefile b/theforceengine/Makefile
new file mode 100644
index 0000000000..f52026395e
--- /dev/null
+++ b/theforceengine/Makefile
@@ -0,0 +1,27 @@
+# $NetBSD$
+
+GITHUB_TAG= v${PKGVERSION_NOREV}
+DISTNAME= TheForceEngine-1.09.200
+CATEGORIES= games
+MASTER_SITES= ${MASTER_SITE_GITHUB:=luciusDXL/}
+
+MAINTAINER= pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE= https://theforceengine.github.io/
+COMMENT= Modern "Jedi Engine" replacement supporting Dark Forces
+LICENSE= gnu-gpl-v2
+
+CXXFLAGS+= -D PROGDATADIR="\"${PREFIX}/share/TheForceEngine\""
+USE_LANGUAGES= c c++14
+USE_TOOLS+= pkg-config
+
+PTHREAD_AUTO_VARS= yes
+
+.include "../../devel/SDL2/buildlink3.mk"
+.include "../../devel/cmake/build.mk"
+.include "../../devel/devIL/buildlink3.mk"
+.include "../../graphics/glew/buildlink3.mk"
+.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
+.include "../../wip/rtaudio/buildlink3.mk"
+.include "../../wip/rtmidi/buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/theforceengine/PLIST b/theforceengine/PLIST
new file mode 100644
index 0000000000..10c8145bc0
--- /dev/null
+++ b/theforceengine/PLIST
@@ -0,0 +1,96 @@
+@comment $NetBSD$
+bin/theforceengine
+share/TheForceEngine/Documentation/internal/darkforces-manual.pdf
+share/TheForceEngine/Documentation/markdown/Credits.md
+share/TheForceEngine/Documentation/markdown/TheForceEngine.md
+share/TheForceEngine/Documentation/markdown/TheForceEngineManual.md
+share/TheForceEngine/Fonts/DroidSans-Bold.ttf
+share/TheForceEngine/Fonts/DroidSans.ttf
+share/TheForceEngine/Fonts/DroidSansMono.ttf
+share/TheForceEngine/Fonts/OpenSans-Bold.ttf
+share/TheForceEngine/Fonts/OpenSans-BoldItalic.ttf
+share/TheForceEngine/Fonts/OpenSans-ExtraBold.ttf
+share/TheForceEngine/Fonts/OpenSans-ExtraBoldItalic.ttf
+share/TheForceEngine/Fonts/OpenSans-Italic.ttf
+share/TheForceEngine/Fonts/OpenSans-Light.ttf
+share/TheForceEngine/Fonts/OpenSans-LightItalic.ttf
+share/TheForceEngine/Fonts/OpenSans-Regular.ttf
+share/TheForceEngine/Fonts/OpenSans-Semibold.ttf
+share/TheForceEngine/Fonts/OpenSans-SemiboldItalic.ttf
+share/TheForceEngine/Mods/TFE/AdjustableHud/AdjustableHud.txt
+share/TheForceEngine/Mods/TFE/AdjustableHud/Credits.txt
+share/TheForceEngine/Mods/TFE/AdjustableHud/HudStatusLeftAddon.bm
+share/TheForceEngine/Mods/TFE/AdjustableHud/HudStatusLeftAddon.png
+share/TheForceEngine/Mods/TFE/AdjustableHud/HudStatusRightAddon.bm
+share/TheForceEngine/Mods/TFE/AdjustableHud/HudStatusRightAddon.png
+share/TheForceEngine/Shaders/blit.frag
+share/TheForceEngine/Shaders/blit.vert
+share/TheForceEngine/Shaders/gpu_render_modelHologram.frag
+share/TheForceEngine/Shaders/gpu_render_modelHologram.vert
+share/TheForceEngine/Shaders/gpu_render_modelSolid.frag
+share/TheForceEngine/Shaders/gpu_render_modelSolid.vert
+share/TheForceEngine/Shaders/gpu_render_quad.frag
+share/TheForceEngine/Shaders/gpu_render_quad.vert
+share/TheForceEngine/Shaders/gpu_render_sprite.frag
+share/TheForceEngine/Shaders/gpu_render_sprite.vert
+share/TheForceEngine/Shaders/gpu_render_wall.frag
+share/TheForceEngine/Shaders/gpu_render_wall.vert
+share/TheForceEngine/Shaders/grid.h
+share/TheForceEngine/Shaders/grid2d.frag
+share/TheForceEngine/Shaders/grid2d.vert
+share/TheForceEngine/Shaders/grid3d.frag
+share/TheForceEngine/Shaders/grid3d.vert
+share/TheForceEngine/Shaders/line2d.frag
+share/TheForceEngine/Shaders/line2d.vert
+share/TheForceEngine/Shaders/line3d.frag
+share/TheForceEngine/Shaders/line3d.vert
+share/TheForceEngine/Shaders/line3d_debug.frag
+share/TheForceEngine/Shaders/line3d_debug.vert
+share/TheForceEngine/Shaders/overlay.frag
+share/TheForceEngine/Shaders/overlay.vert
+share/TheForceEngine/Shaders/quad2d.frag
+share/TheForceEngine/Shaders/quad2d.vert
+share/TheForceEngine/Shaders/tri2dColor.frag
+share/TheForceEngine/Shaders/tri2dColor.vert
+share/TheForceEngine/Shaders/tri2dTextured.frag
+share/TheForceEngine/Shaders/tri2dTextured.vert
+share/TheForceEngine/Shaders/tri3dColor.frag
+share/TheForceEngine/Shaders/tri3dColor.vert
+share/TheForceEngine/Shaders/tri3dTexture.frag
+share/TheForceEngine/Shaders/tri3dTexture.vert
+share/TheForceEngine/Shaders/tri3dTextureClamp.frag
+share/TheForceEngine/Shaders/tri3dTextureTrans.frag
+share/TheForceEngine/SoundFonts/AWE64.sf2
+share/TheForceEngine/SoundFonts/Roland SC-55.sf2
+share/TheForceEngine/SoundFonts/soundFonts.txt
+share/TheForceEngine/UI_Images/Boolean_128x6.png
+share/TheForceEngine/UI_Images/Boolean_32x6.png
+share/TheForceEngine/UI_Images/EditCtrl_128x6.png
+share/TheForceEngine/UI_Images/EditCtrl_32x6.png
+share/TheForceEngine/UI_Images/Gradient.png
+share/TheForceEngine/UI_Images/ReticleAtlas.png
+share/TheForceEngine/UI_Images/SafeObject.png
+share/TheForceEngine/UI_Images/SoundObject.png
+share/TheForceEngine/UI_Images/SpiritObject.png
+share/TheForceEngine/UI_Images/TFE_CreditsNormal.png
+share/TheForceEngine/UI_Images/TFE_CreditsSelected.png
+share/TheForceEngine/UI_Images/TFE_EditorNormal.png
+share/TheForceEngine/UI_Images/TFE_EditorSelected.png
+share/TheForceEngine/UI_Images/TFE_ExitNormal.png
+share/TheForceEngine/UI_Images/TFE_ExitSelected.png
+share/TheForceEngine/UI_Images/TFE_LoadNormal.png
+share/TheForceEngine/UI_Images/TFE_LoadSelected.png
+share/TheForceEngine/UI_Images/TFE_ManualNormal.png
+share/TheForceEngine/UI_Images/TFE_ManualSelected.png
+share/TheForceEngine/UI_Images/TFE_ModsNormal.png
+share/TheForceEngine/UI_Images/TFE_ModsSelected.png
+share/TheForceEngine/UI_Images/TFE_SettingsNormal.png
+share/TheForceEngine/UI_Images/TFE_SettingsSelected.png
+share/TheForceEngine/UI_Images/TFE_StartNormal.png
+share/TheForceEngine/UI_Images/TFE_StartSelected.png
+share/TheForceEngine/UI_Images/TFE_TitleLogo.png
+share/TheForceEngine/UI_Images/TFE_TitleText.png
+share/TheForceEngine/UI_Text/KeyText.txt
+share/TheForceEngine/UI_Text/TfeMessages.txt
+share/applications/TheForceEngine.desktop
+share/icons/hicolor/256x256/apps/TheForceEngine.png
diff --git a/theforceengine/distinfo b/theforceengine/distinfo
new file mode 100644
index 0000000000..0a966fe829
--- /dev/null
+++ b/theforceengine/distinfo
@@ -0,0 +1,10 @@
+$NetBSD$
+
+BLAKE2s (TheForceEngine-1.09.200.tar.gz) = 331302749e1c47cb936d7a36f718688de4bfa636048044edad76d4d28f8c6eee
+SHA512 (TheForceEngine-1.09.200.tar.gz) = 3382a36cc5790107073e906d2f451cf216d9408760118f0578f6af630adb6d70207d838756270b7fc8015de4eae54b1b71ff62d06a6aa68f4a9f9afd8897833a
+Size (TheForceEngine-1.09.200.tar.gz) = 20559146 bytes
+SHA1 (patch-TheForceEngine_TFE__DarkForces_darkForcesMain.cpp) = 9ef01755114c1e1112cb3ee70952fa2fd06c1efe
+SHA1 (patch-TheForceEngine_TFE__System_CrashHandler_crashHandlerLinux.cpp) = 0a44e0141e508365e25c7b5577360175a1f36d9d
+SHA1 (patch-TheForceEngine_TFE__System_system.cpp) = 9443243c036b8d5676818dc76ae44c0aea557df3
+SHA1 (patch-TheForceEngine_TFE__System_types.h) = 9ac18c31c65faf41572d8452bf6a9f22adddffe1
+SHA1 (patch-TheForceEngine_main.cpp) = db84d34d7a0ec84020441ae82bacda4185d62e3b
diff --git a/theforceengine/patches/patch-TheForceEngine_TFE__DarkForces_darkForcesMain.cpp b/theforceengine/patches/patch-TheForceEngine_TFE__DarkForces_darkForcesMain.cpp
new file mode 100644
index 0000000000..be2e2da59d
--- /dev/null
+++ b/theforceengine/patches/patch-TheForceEngine_TFE__DarkForces_darkForcesMain.cpp
@@ -0,0 +1,64 @@
+$NetBSD$
+
+Add a reset method to work around compile error when assigning
+to a struct.
+
+--- TheForceEngine/TFE_DarkForces/darkForcesMain.cpp.orig 2023-05-27 05:02:04.000000000 +0000
++++ TheForceEngine/TFE_DarkForces/darkForcesMain.cpp
+@@ -193,6 +193,15 @@ namespace TFE_DarkForces
+ s32 levelIndex = 0;
+ s32 cutsceneIndex = 0;
+ JBool abortLevel = JFALSE;
++ void reset(void) {
++ JBool cutscenesEnabled = JTRUE;
++ JBool localMsgLoaded = JFALSE;
++ s32 startLevel = 0;
++ GameState state = GSTATE_STARTUP_CUTSCENES;
++ s32 levelIndex = 0;
++ s32 cutsceneIndex = 0;
++ JBool abortLevel = JFALSE;
++ }
+ };
+ struct SharedGameState
+ {
+@@ -209,6 +218,21 @@ namespace TFE_DarkForces
+ CutsceneState* cutsceneList = nullptr;
+ char customGobName[256] = "";
+ LangHotkeys langKeys;
++ void reset(void) {
++ GameMessages localMessages = {};
++ GameMessages hotKeyMessages = {};
++ TextureData* diskErrorImg = nullptr;
++ Font* swFont1 = nullptr;
++ Font* mapNumFont = nullptr;
++ SoundSourceId screenShotSndSrc = NULL_SOUND;
++ BriefingList briefingList = { 0 };
++ JBool gameStarted = JFALSE;
++
++ Task* loadMissionTask = nullptr;
++ CutsceneState* cutsceneList = nullptr;
++ char customGobName[256] = "";
++ LangHotkeys langKeys;
++ }
+ };
+ static RunGameState s_runGameState = {};
+ static SharedGameState s_sharedState = {};
+@@ -375,8 +399,9 @@ namespace TFE_DarkForces
+ TFE_Audio::resume();
+
+ // Reset state.
+- s_sharedState = {};
+- s_runGameState = {};
++
++ s_sharedState.reset();
++ s_runGameState.reset();
+ }
+
+ void DarkForces::pauseGame(bool pause)
+@@ -1345,4 +1370,4 @@ namespace TFE_DarkForces
+ }
+ return true;
+ }
+-}
+\ No newline at end of file
++}
diff --git a/theforceengine/patches/patch-TheForceEngine_TFE__System_CrashHandler_crashHandlerLinux.cpp b/theforceengine/patches/patch-TheForceEngine_TFE__System_CrashHandler_crashHandlerLinux.cpp
new file mode 100644
index 0000000000..098f10d3d2
--- /dev/null
+++ b/theforceengine/patches/patch-TheForceEngine_TFE__System_CrashHandler_crashHandlerLinux.cpp
@@ -0,0 +1,14 @@
+$NetBSD$
+
+Include stdlib.h for exit(3)
+
+--- TheForceEngine/TFE_System/CrashHandler/crashHandlerLinux.cpp.orig 2023-05-27 05:02:04.000000000 +0000
++++ TheForceEngine/TFE_System/CrashHandler/crashHandlerLinux.cpp
+@@ -3,6 +3,7 @@
+ #include <TFE_FileSystem/paths.h>
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <signal.h>
+
+ static void sigabrtHandler(int);
diff --git a/theforceengine/patches/patch-TheForceEngine_TFE__System_system.cpp b/theforceengine/patches/patch-TheForceEngine_TFE__System_system.cpp
new file mode 100644
index 0000000000..e044c46e30
--- /dev/null
+++ b/theforceengine/patches/patch-TheForceEngine_TFE__System_system.cpp
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Add sleep support for *BSD
+
+--- TheForceEngine/TFE_System/system.cpp.orig 2023-05-27 05:02:04.000000000 +0000
++++ TheForceEngine/TFE_System/system.cpp
+@@ -232,7 +232,7 @@ namespace TFE_System
+ {
+ Sleep(sleepDeltaMS);
+ }
+-#elif defined __linux__
++#elif defined __linux__ || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__
+ void sleep(u32 sleepDeltaMS)
+ {
+ struct timespec ts = {0, 0};
diff --git a/theforceengine/patches/patch-TheForceEngine_TFE__System_types.h b/theforceengine/patches/patch-TheForceEngine_TFE__System_types.h
new file mode 100644
index 0000000000..7ec3dc4c1b
--- /dev/null
+++ b/theforceengine/patches/patch-TheForceEngine_TFE__System_types.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+Include stddef.h for size_t
+
+--- TheForceEngine/TFE_System/types.h.orig 2023-05-27 05:02:04.000000000 +0000
++++ TheForceEngine/TFE_System/types.h
+@@ -1,5 +1,6 @@
+ #pragma once
+
++#include <stddef.h>
+ #include <stdint.h>
+ #include <math.h>
+ #include <float.h>
+@@ -137,4 +138,4 @@ enum AssetPool
+ POOL_GAME = 0,
+ POOL_LEVEL,
+ POOL_COUNT
+-};
+\ No newline at end of file
++};
diff --git a/theforceengine/patches/patch-TheForceEngine_main.cpp b/theforceengine/patches/patch-TheForceEngine_main.cpp
new file mode 100644
index 0000000000..0031eea25e
--- /dev/null
+++ b/theforceengine/patches/patch-TheForceEngine_main.cpp
@@ -0,0 +1,21 @@
+$NetBSD$
+
+Search for program files in the install prefix.
+
+--- TheForceEngine/main.cpp.orig 2023-05-27 05:02:04.000000000 +0000
++++ TheForceEngine/main.cpp
+@@ -515,6 +515,7 @@ int main(int argc, char* argv[])
+ #endif
+
+ // Paths
++ FileUtil::setCurrentDirectory(PROGDATADIR);
+ bool pathsSet = true;
+ pathsSet &= TFE_Paths::setProgramPath();
+ pathsSet &= TFE_Paths::setProgramDataPath("TheForceEngine");
+@@ -938,4 +939,4 @@ void parseOption(const char* name, const
+ s_nullAudioDevice = true;
+ }
+ }
+-}
+\ No newline at end of file
++}
Home |
Main Index |
Thread Index |
Old Index