mirror of
https://github.com/yann64/haikuports.git
synced 2026-03-19 01:46:00 +01:00
Tesseract (Cube 2) port (#12249)
This commit is contained in:
@@ -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"
|
||||
};
|
||||
64
games-fps/cube2tesseract/cube2tesseract-r2553.recipe
Normal file
64
games-fps/cube2tesseract/cube2tesseract-r2553.recipe
Normal 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"
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user