Tesseract (Cube 2) port (#12249)

This commit is contained in:
Peppersawce
2025-04-28 06:12:43 +00:00
committed by GitHub
parent 9a9383d7c2
commit cdb7db9bc6
3 changed files with 219 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
resource app_flags B_SINGLE_LAUNCH;
resource app_version {
variety = B_APPV_DEVELOPMENT,
internal = 0,
short_info = "Tesseract",
long_info = "Free first-person instagib shooter game derived from the Cube 2 engine"
};
resource app_signature "application/x-vnd.cube2-tesseract";
resource large_icon array {
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFAF0C0C0C0C0C0C0C0C0C0C0CFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF0EA9A9A9A90F0FA9A9A9A9A90C09FFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF101515156767676767670F0E0B0BFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFA91267949393737373738E0F0C0B0B0AFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFF0D10169473466646464667A90E0B0F120BFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFF10146D9367404040404013A90CAF948D0D0BFFFFFFFFFFFFFF"
$"FFFFFFFFFFFF0F89679373404040404067100E0B676D93140C0AFFFFFFFFFFFF"
$"FFFFFFFFFFFF8915937346404040404012100C104646938D0F0CFFFFFFFFFFFF"
$"FFFFFFFFFF89126D936D404040404017100E0C6746466D938EAF0BFFFFFFFFFF"
$"FFFFFFFFFF1214121215161616161689100C1246464646939411AFFFFFFFFFFF"
$"FFFFFFFF8913131289898989898989890DAF66464646466C738D0E0CFFFFFFFF"
$"FFFFFFFF0707070707070707070707070BAF664646464C4C726D0E0CFFFFFFFF"
$"FFFFFFFFFF070AB5B594949494949408080C8E464C4C4C73948E0DFFFFFFFFFF"
$"FFFFFFFFFF0709949473727272727294070BAF6D4C4C72938DA90CFFFFFFFFFF"
$"FFFFFFFFFFFF079494937272727272720A07AF106C6C7393100DFFFFFFFFFFFF"
$"FFFFFFFFFFFF0707949473727272727293060A0D6D73938E0E0BFFFFFFFFFFFF"
$"FFFFFFFFFFFFFF07B59494727272727272B5060D0F73930F0DFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFF06D6947E7372727272727306090E8E8E0EFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFD6099473739393939393B5060C0E0E0DFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF0694949494949494949407080E0EFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFF0606060606060606060606060CAFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFF050506060606060606060507FFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
};
resource mini_icon array {
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFF0E12131313110D09FFFFFFFF"
$"FFFFFFFF12936D6D6D0FAF0EFFFFFFFF"
$"FFFFFF108D6D4040170D8E8E0BFFFFFF"
$"FFFFFF1473404040101046730FFFFFFF"
$"FFFF8913131514130D66466C8D0CFFFF"
$"FFFF070AB5B5B50B0B66466C8DAFFFFF"
$"FFFFFFB59372727209114C7310FFFFFF"
$"FFFFFF0794737272940B8D8E0CFFFFFF"
$"FFFFFFFFB593727373090E0FFFFFFFFF"
$"FFFFFFFF06B5B5B4B4B50A0CFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
};

View File

@@ -0,0 +1,64 @@
SUMMARY="Free first-person instagib shooter game derived from the Cube 2 engine"
DESCRIPTION="Tesseract is a first-person shooter game focused on instagib deathmatch and capture-the-flag \
gameplay as well as cooperative in-game map editing.
Tesseract provides a unique open-source engine derived from Cube 2: Sauerbraten technology \
but with upgraded modern rendering techniques."
HOMEPAGE="http://tesseract.gg/"
COPYRIGHT="2024 Tesseract team"
LICENSE="Zlib"
REVISION="1"
srcSvnRev="`echo "$portVersion" | cut -b2-5`"
SOURCE_URI="svn://svn.tuxfamily.org/svnroot/tesseract/main#$srcSvnRev"
SOURCE_DIR=""
PATCHES="cube2tesseract-$portVersion.patchset"
ADDITIONAL_FILES="cube2tesseract.rdef"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
cube2tesseract$secondaryArchSuffix = $portVersion
app:tess_client
app:tess_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/Cube2Tesseract
mv -t $appsDir/Cube2Tesseract src/tess_client src/tess_server
cp -rt $appsDir/Cube2Tesseract config media
# Pack docs
mkdir -p $docDir && cp -rt $docDir README doc/* src/readme_*
addResourcesToBinaries \
$portDir/additional-files/cube2tesseract.rdef $appsDir/Cube2Tesseract/tess_client
addAppDeskbarSymlink $appsDir/Cube2Tesseract/tess_client "Tesseract"
}

View File

@@ -0,0 +1,90 @@
From 45cd547e8044406f517b87f1145389dc64f836b4 Mon Sep 17 00:00:00 2001
From: Peppersawce <michaelpeppers89@yahoo.it>
Date: Sat, 26 Apr 2025 10:36:10 +0200
Subject: De-linuxify Makefile, set up default config path
diff --git a/src/Makefile b/src/Makefile
index a2e23ab..01b50ec 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -56,8 +56,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)
@@ -129,7 +131,7 @@ SERVER_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_LIBS= -Lenet -lenet -lz
+SERVER_LIBS= -Lenet -lenet -lbsd -lnetwork -lz
MASTER_LIBS= $(SERVER_LIBS)
endif
diff --git a/src/engine/main.cpp b/src/engine/main.cpp
index 0eeaea1..2ec7ab8 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()
@@ -1104,6 +1109,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] == 'u') { 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, "/cube2tesseract");
+ 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
From ad2d0d5c959c6dab89a9ae3bc170e2159ea47702 Mon Sep 17 00:00:00 2001
From: Peppersawce <michaelpeppers89@yahoo.it>
Date: Sat, 26 Apr 2025 11:13:10 +0200
Subject: Disable socklen_t definition
diff --git a/src/enet/unix.c b/src/enet/unix.c
index 6669216..1a15fa5 100644
--- a/src/enet/unix.c
+++ b/src/enet/unix.c
@@ -54,7 +54,7 @@
#endif
#if !defined(HAS_SOCKLEN_T) && !defined(__socklen_t_defined)
-typedef int socklen_t;
+//typedef int socklen_t;
#endif
#ifndef MSG_NOSIGNAL
--
2.48.1