mirror of
https://github.com/yann64/haikuports.git
synced 2026-03-19 01:46:00 +01:00
Cube 2: Sauerbraten port (#12164)
This commit is contained in:
35
games-fps/sauerbraten/additional-files/sauerbraten.rdef
Normal file
35
games-fps/sauerbraten/additional-files/sauerbraten.rdef
Normal file
@@ -0,0 +1,35 @@
|
||||
resource app_flags B_SINGLE_LAUNCH;
|
||||
|
||||
resource app_version {
|
||||
variety = B_APPV_FINAL,
|
||||
internal = 0,
|
||||
|
||||
short_info = "Sauerbraten",
|
||||
long_info = "Free multiplayer & singleplayer first person shooter based on the Cube 2 engine"
|
||||
};
|
||||
|
||||
resource app_signature "application/x-vnd.cube2-sauerbraten";
|
||||
|
||||
resource vector_icon array {
|
||||
$"6E6369660503F8671403E51D14020006023E00000000000000003C00004A0000"
|
||||
$"4A000000F86714FFFFFFFF020006023C38E30000000000003A38E34A00004B1C"
|
||||
$"7100FFFFFFFFF86714020006023B8E38000000000000398E3849FFFF4A000000"
|
||||
$"F86714FFFFFFFF0C00046030603060BD9F605060C1DFC83FC83F4060C400CA60"
|
||||
$"40C83F404040C4004040000420302030B740BB804040BB80BD9F40C400406040"
|
||||
$"C83FBB80CA602050B740C83F2050000440204020C400B5206030C83FB740C83F"
|
||||
$"BB804040C400BD9FBB80BD9F2030B740BB802030000440B8AA40B8AAC21CB9D8"
|
||||
$"C6D5BC35C478BB07C6D5BE91C6D5C34AC6D5C0EEC478C21C4040C21CC0EE4040"
|
||||
$"000440B8AA40B8AABD63B9D8B8AABC35BB07BB07B8AABE91B8AAC34AB8AAC0EE"
|
||||
$"BB07C21C4040BD63C0EE4040000440404040BD63C0EEB8AAC34ABB07C21CBB07"
|
||||
$"C47840C6D5BD63C5A7C21CC5A7C6D5C34AC478C478C6D5C34A0004BA15BCEABA"
|
||||
$"15BCEABBF8BDDC4040BDDCBECE40C1A340C56A40C387BDDCC478BA15C295BBF8"
|
||||
$"C387BA15C295000440BA1540BA15C1A3BB07C56ABCEAC387BBF8C387BDDC4040"
|
||||
$"C1A3BECEBDDCBECEBA15BCEABBF8BDDCBA15BCEA0004C56ABCEAC56ABCEAC56A"
|
||||
$"BECEC56AC295C56AC0B1C387C38740C56AC1A3C47840C387404040C1A3404000"
|
||||
$"03C1B2BB0EC1B2BB0EC093BBADBE55BCEABF74BC4CBF74BD89C1B2BEC6C0933C"
|
||||
$"C1B2BEC60003C1B2BEC6C1B2BEC648BF65C56AC0A2C42DC004C42DC148C1B2C2"
|
||||
$"9548C1EFC1B2C2950004C1B234C1B234C2F7BB8FC581BCBDC43CBC26C581BE11"
|
||||
$"C581C0B9C581BF65C43CC013C1B2BEC6C2F7BF6CC1B2BEC60C0A000100000A01"
|
||||
$"0101000A020102000A010103000A000104000A030105000A010106000A040107"
|
||||
$"000A000108000A000109000A03010A000A01010B00"
|
||||
};
|
||||
@@ -0,0 +1,69 @@
|
||||
From d107b814ebf6161fe86a49f1ff034a7a3b6c5d53 Mon Sep 17 00:00:00 2001
|
||||
From: Peppersawce <michaelpeppers89@yahoo.it>
|
||||
Date: Mon, 14 Apr 2025 18:16:07 +0200
|
||||
Subject: De-linuxify Makefile, set up default config path
|
||||
|
||||
|
||||
diff --git a/src/Makefile b/src/Makefile
|
||||
index bb15b25..7d28d57 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -65,8 +65,10 @@ CLIENT_LIBS= -F../sauerbraten.app/Contents/Frameworks/ -framework SDL2 -framewor
|
||||
CLIENT_LIBS+= -framework SDL2_mixer -framework CoreAudio -framework AudioToolbox
|
||||
CLIENT_LIBS+= -framework AudioUnit -framework OpenGL -framework Cocoa -lz -Lenet -lenet
|
||||
else
|
||||
-CLIENT_INCLUDES= $(INCLUDES) -I/usr/X11R6/include `sdl2-config --cflags`
|
||||
-CLIENT_LIBS= -Lenet -lenet -L/usr/X11R6/lib -lX11 `sdl2-config --libs` -lSDL2_image -lSDL2_mixer -lz -lGL
|
||||
+USRLIB=$(shell if [ -e /boot/system/lib/x86 ]; then echo "/boot/system/lib/x86"; else echo "/boot/system/lib"; fi)
|
||||
+INCLUDEDIR=$(shell if [ -e /boot/system/develop/headers/x86 ]; then echo "/boot/system/develop/headers/x86"; else echo "/boot/system/develop/headers"; fi)
|
||||
+CLIENT_INCLUDES= $(INCLUDES) -I$(INCLUDEDIR)/SDL2 `sdl2-config --cflags`
|
||||
+CLIENT_LIBS= -Lenet -lenet -L$(USRLIB) -lbsd -lnetwork `sdl2-config --libs` -lSDL2_image -lSDL2_mixer -lz -lGL
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),LINUX)
|
||||
@@ -140,8 +142,8 @@ SERVER_INCLUDES= -DSTANDALONE $(INCLUDES) -Iinclude
|
||||
SERVER_LIBS= -mwindows $(STD_LIBS) -L$(WINBIN) -L$(WINLIB) -lzlib1 -lenet -lws2_32 -lwinmm
|
||||
MASTER_LIBS= $(STD_LIBS) -L$(WINBIN) -L$(WINLIB) -lzlib1 -lenet -lws2_32 -lwinmm
|
||||
else
|
||||
-SERVER_INCLUDES= -DSTANDALONE $(INCLUDES)
|
||||
-SERVER_LIBS= -Lenet -lenet -lz
|
||||
+SERVER_INCLUDES= -DSTANDALONE $(INCLUDES) -I$(INCLUDEDIR)
|
||||
+SERVER_LIBS= -Lenet -lenet -lbsd -lnetwork -lz -L$(USRLIB)
|
||||
MASTER_LIBS= $(SERVER_LIBS)
|
||||
endif
|
||||
SERVER_OBJS= \
|
||||
diff --git a/src/engine/main.cpp b/src/engine/main.cpp
|
||||
index 95e494d..0e23b9b 100644
|
||||
--- a/src/engine/main.cpp
|
||||
+++ b/src/engine/main.cpp
|
||||
@@ -6,6 +6,11 @@
|
||||
#include "SDL_syswm.h"
|
||||
#endif
|
||||
|
||||
+#ifdef __HAIKU__
|
||||
+#include <FindDirectory.h>
|
||||
+#include <fs_info.h>
|
||||
+#endif
|
||||
+
|
||||
extern void cleargamma();
|
||||
|
||||
void cleanup()
|
||||
@@ -1184,6 +1189,15 @@ int main(int argc, char **argv)
|
||||
initing = INIT_RESET;
|
||||
// set home dir first
|
||||
for(int i = 1; i<argc; i++) if(argv[i][0]=='-' && argv[i][1] == 'q') { sethomedir(&argv[i][2]); break; }
|
||||
+ #ifdef __HAIKU__
|
||||
+ if(!homedir[0])
|
||||
+ {
|
||||
+ char buffer[B_PATH_NAME_LENGTH+10];
|
||||
+ find_directory(B_USER_SETTINGS_DIRECTORY, dev_for_path("/boot"), false, buffer, B_PATH_NAME_LENGTH);
|
||||
+ strcat(buffer, "/sauerbraten");
|
||||
+ sethomedir(buffer);
|
||||
+ }
|
||||
+ #endif
|
||||
// set log after home dir, but before anything else
|
||||
for(int i = 1; i<argc; i++) if(argv[i][0]=='-' && argv[i][1] == 'g')
|
||||
{
|
||||
--
|
||||
2.48.1
|
||||
|
||||
64
games-fps/sauerbraten/sauerbraten-2020.12.29.recipe
Normal file
64
games-fps/sauerbraten/sauerbraten-2020.12.29.recipe
Normal file
@@ -0,0 +1,64 @@
|
||||
SUMMARY="Free multiplayer & singleplayer first person shooter based on the Cube 2 engine"
|
||||
DESCRIPTION="Cube 2: Sauerbraten is a free multiplayer & singleplayer first person shooter, the successor of the Cube FPS.
|
||||
|
||||
Much like the original Cube, the aim of this game is fun, old school deathmatch gameplay and also \
|
||||
to allow map/geometry editing to be done cooperatively in-game."
|
||||
HOMEPAGE="http://sauerbraten.org/"
|
||||
COPYRIGHT="2020 Cube 2: Sauerbraten team"
|
||||
LICENSE="Zlib"
|
||||
REVISION="1"
|
||||
SOURCE_URI="https://sourceforge.net/projects/sauerbraten/files/sauerbraten/2020_11_29/sauerbraten_2020_12_29_linux.tar.bz2"
|
||||
CHECKSUM_SHA256="cdba7c4a47cefd30d0afdd6a912199a1384319cf1619923cb7189e72e468be70"
|
||||
SOURCE_DIR="sauerbraten"
|
||||
PATCHES="sauerbraten-$portVersion.patchset"
|
||||
ADDITIONAL_FILES="sauerbraten.rdef"
|
||||
|
||||
ARCHITECTURES="all !x86_gcc2"
|
||||
SECONDARY_ARCHITECTURES="x86"
|
||||
|
||||
PROVIDES="
|
||||
sauerbraten$secondaryArchSuffix = $portVersion
|
||||
app:sauer_client
|
||||
app:sauer_server
|
||||
"
|
||||
REQUIRES="
|
||||
haiku$secondaryArchSuffix
|
||||
lib:libgl$secondaryArchSuffix
|
||||
lib:libSDL2_2.0$secondaryArchSuffix
|
||||
lib:libSDL2_image_2.0$secondaryArchSuffix
|
||||
lib:libSDL2_mixer_2.0$secondaryArchSuffix
|
||||
lib:libz$secondaryArchSuffix
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
haiku${secondaryArchSuffix}_devel
|
||||
devel:libgl$secondaryArchSuffix
|
||||
devel:libSDL2$secondaryArchSuffix
|
||||
devel:libSDL2_image$secondaryArchSuffix
|
||||
devel:libSDL2_mixer$secondaryArchSuffix
|
||||
devel:libz$secondaryArchSuffix
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
cmd:gcc$secondaryArchSuffix
|
||||
cmd:make
|
||||
"
|
||||
|
||||
BUILD()
|
||||
{
|
||||
cd src && make $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
# Pack binaries and game data
|
||||
mkdir -p $appsDir/Sauerbraten
|
||||
mv -t $appsDir/Sauerbraten src/sauer_client src/sauer_server
|
||||
cp -rt $appsDir/Sauerbraten server-init.cfg data packages
|
||||
|
||||
# Pack docs
|
||||
mkdir -p $docDir && cp -rt $docDir README.html docs src/readme_source.txt
|
||||
|
||||
addResourcesToBinaries \
|
||||
$portDir/additional-files/sauerbraten.rdef $appsDir/Sauerbraten/sauer_client
|
||||
addAppDeskbarSymlink $appsDir/Sauerbraten/sauer_client "Cube 2: Sauerbraten"
|
||||
}
|
||||
Reference in New Issue
Block a user