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