games/egoboo: update to last stable version 2.8.1

Alex Raschi helped find a fix for a cursor control bug.
Minimally tested: I can walk around and die.
This commit is contained in:
naddy 2021-03-08 18:20:14 +00:00
parent 203f676451
commit f7e1c93da9
15 changed files with 8389 additions and 12914 deletions

View File

@ -1,9 +1,8 @@
# $OpenBSD: Makefile,v 1.10 2021/03/02 00:23:18 naddy Exp $
# $OpenBSD: Makefile,v 1.11 2021/03/08 18:20:14 naddy Exp $
COMMENT = dungeon-crawling action-RPG adventure
DISTNAME = egoboo-2.7.4
REVISION = 2
DISTNAME = egoboo-2.8.1
CATEGORIES = games
HOMEPAGE = http://egoboo.sourceforge.net
@ -12,29 +11,28 @@ MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=egoboo/}
# GPL v3 or later
PERMIT_PACKAGE = Yes
WANTLIB = GL GLU SDL c m pthread SDL_net SDL_image SDL_mixer \
WANTLIB = GL GLU SDL c m physfs pthread SDL_image SDL_mixer \
SDL_ttf
LIB_DEPENDS = devel/sdl-net \
devel/sdl-image \
LIB_DEPENDS = devel/sdl-image \
devel/sdl-mixer \
devel/sdl-ttf
devel/sdl-ttf \
devel/physfs
FIX_CRLF_FILES = src/Makefile src/enet/Makefile src/game/Makefile \
src/game/extensions/ogl_texture.c \
src/game/game.c \
src/game/platform/file_linux.c
FIX_CRLF_FILES = game/Makefile.unix game/egoboo_setup.h \
game/file_linux.c game/graphic.c
USE_GMAKE = Yes
MAKE_FILE = Makefile.unix
WRKSRC = ${WRKDIST}/game
EGOBOO_PREFIX = ${PREFIX}
EGOBOO_SHARED = ${PREFIX}/share/egoboo
pre-configure:
@${SUBST_CMD} ${WRKSRC}/egoboo.sh
WRKSRC = ${WRKDIST}/src
MAKE_FLAGS = PREFIX=${PREFIX} SYSCONFDIR=${SYSCONFDIR}
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/egoboo ${PREFIX}/libexec/
${INSTALL_SCRIPT} ${WRKSRC}/egoboo.sh ${PREFIX}/bin/egoboo
${INSTALL_DATA_DIR} ${EGOBOO_SHARED}
@cd ${WRKDIST} && pax -rw *.* basicdat modules players \
${EGOBOO_SHARED}
${INSTALL_PROGRAM} ${WRKBUILD}/game/egoboo ${PREFIX}/bin/
${INSTALL_DATA_DIR} ${PREFIX}/share/egoboo
@cd ${WRKDIST} && pax -rw basicdat modules ${PREFIX}/share/egoboo
${INSTALL_DATA_DIR} ${PREFIX}/share/examples/egoboo
${INSTALL_DATA} ${WRKDIST}/setup.txt ${WRKDIST}/controls.txt \
${PREFIX}/share/examples/egoboo
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
SHA256 (egoboo-2.7.4.tar.gz) = sizbcOq5m/VXlARZLkoicBXagIfevfMvEe5D1Aa9nJA=
SIZE (egoboo-2.7.4.tar.gz) = 143487850
SHA256 (egoboo-2.8.1.tar.gz) = omlBh9KKeq30yjubemxtzTuwPsjxRUNcdEu3evtfTCY=
SIZE (egoboo-2.8.1.tar.gz) = 150029960

View File

@ -1,19 +0,0 @@
$OpenBSD: patch-game_Makefile_unix,v 1.4 2021/03/02 00:23:18 naddy Exp $
Index: game/Makefile.unix
--- game/Makefile.unix.orig
+++ game/Makefile.unix
@@ -20,11 +20,11 @@ SDL_CONF := sdl-config
SDLCONF_I := $(shell ${SDL_CONF} --cflags)
SDLCONF_L := $(shell ${SDL_CONF} --libs)
-CC := gcc
-OPT := -Os -Wall
+CC ?= gcc
+OPT := ${CFLAGS}
INC := -I. -I../enet/include -I.. ${SDLCONF_I}
CFLAGS := ${OPT} ${INC}
-LDFLAGS := ${SDLCONF_L} -lSDL_ttf -lSDL_mixer -lGL -lGLU -lSDL_image
+LDFLAGS := ${SDLCONF_L} -lSDL_ttf -lSDL_mixer -lGL -lGLU -lSDL_image -lm ${LDFLAGS}
EGO_BIN := egoboo

View File

@ -1,14 +0,0 @@
$OpenBSD: patch-game_egoboo_setup_h,v 1.1 2021/03/02 00:23:18 naddy Exp $
Index: game/egoboo_setup.h
--- game/egoboo_setup.h.orig
+++ game/egoboo_setup.h
@@ -78,7 +78,7 @@ struct s_egoboo_config
};
typedef struct s_egoboo_config egoboo_config_t;
-egoboo_config_t cfg;
+extern egoboo_config_t cfg;
bool_t setup_read( const char* filename );
bool_t setup_write();

View File

@ -1,31 +0,0 @@
$OpenBSD: patch-game_egoboo_sh,v 1.2 2019/05/07 20:32:32 jca Exp $
Index: game/egoboo.sh
--- game/egoboo.sh.orig
+++ game/egoboo.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-EGOBOO_PREFIX=${HOME}/.local
+EGOBOO_PREFIX="${TRUEPREFIX}"
EGOBOO_SHARED="${EGOBOO_PREFIX}/share/egoboo"
# exit on any error
@@ -11,15 +11,15 @@ if [ ! -d ~/.egoboo ]; then
fi
if [ ! -f ~/.egoboo/setup.txt ]; then
- cp -a "${EGOBOO_SHARED}/setup.txt" ~/.egoboo
+ cp "${EGOBOO_SHARED}/setup.txt" ~/.egoboo
fi
if [ ! -f ~/.egoboo/controls.txt ]; then
- cp -a "${EGOBOO_SHARED}/controls.txt" ~/.egoboo
+ cp "${EGOBOO_SHARED}/controls.txt" ~/.egoboo
fi
if [ ! -d ~/.egoboo/players ]; then
- cp -a "${EGOBOO_SHARED}/players" ~/.egoboo
+ cp -r "${EGOBOO_SHARED}/players" ~/.egoboo
fi
if [ ! -d ~/.egoboo/basicdat ]; then

View File

@ -1,11 +0,0 @@
$OpenBSD: patch-game_file_linux_c,v 1.2 2021/02/26 18:20:33 naddy Exp $
--- game/file_linux.c.orig Sat Oct 10 18:26:40 2009
+++ game/file_linux.c Sat Oct 10 18:27:25 2009
@@ -31,6 +31,7 @@
#include <glob.h>
#include <sys/types.h>
#include <sys/stat.h>
+#include <sys/syslimits.h>
#include <sys/dir.h>
//--------------------------------------------------------------------------------------------

View File

@ -1,15 +0,0 @@
$OpenBSD: patch-game_graphic_c,v 1.1 2021/03/02 00:23:18 naddy Exp $
Index: game/graphic.c
--- game/graphic.c.orig
+++ game/graphic.c
@@ -134,9 +134,6 @@ gfx_config_t gfx;
SDLX_video_parameters_t sdl_vparam;
oglx_video_parameters_t ogl_vparam;
-Uint8 maxformattypes = 0;
-STRING TxFormatSupported[20]; // List of texture formats that we search for
-
oglx_texture TxIcon[MAX_ICON]; // OpenGL icon surfaces
oglx_texture TxFont; // OpenGL font surface
oglx_texture TxBars; // OpenGL status bar surface

View File

@ -0,0 +1,38 @@
$OpenBSD: patch-src_Makefile,v 1.1 2021/03/08 18:20:14 naddy Exp $
Index: src/Makefile
--- src/Makefile.orig
+++ src/Makefile
@@ -10,26 +10,26 @@ ifndef ($(PREFIX),"")
endif
-PROJ_NAME := egoboo-2.x
+PROJ_NAME := egoboo
.PHONY: all clean
all: enet egoboo
clean:
- make -C ./enet clean
- make -C ./game clean
+ $(MAKE) -C ./enet clean
+ $(MAKE) -C ./game clean
./enet/lib/libenet.a:
- make -C ./enet all
+ $(MAKE) -C ./enet all
enet: ./enet/lib/libenet.a
egoboo: enet
- make -C ./game all PREFIX=$(PREFIX) PROJ_NAME=$(PROJ_NAME)
+ $(MAKE) -C ./game all PREFIX=$(PREFIX) PROJ_NAME=$(PROJ_NAME)
egoboo_lua: enet
- make -F Makefile.lua -C game all PREFIX=$(PREFIX) PROJ_NAME=$(PROJ_NAME)
+ $(MAKE) -F Makefile.lua -C game all PREFIX=$(PREFIX) PROJ_NAME=$(PROJ_NAME)
install: egoboo

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-src_enet_Makefile,v 1.1 2021/03/08 18:20:14 naddy Exp $
Index: src/enet/Makefile
--- src/enet/Makefile.orig
+++ src/enet/Makefile
@@ -4,8 +4,8 @@ ENET_TARGET := libenet.a
ENET_SRCLST := host.c list.c memory.c packet.c peer.c protocol.c unix.c
ENET_OBJLST := $(ENET_SRCLST:.c=.o)
-CC := gcc
-OPT := -Os
+CC ?= gcc
+OPT := $(CFLAGS)
INC := -Iinclude
CFLAGS := $(OPT) $(INC)

View File

@ -0,0 +1,25 @@
$OpenBSD: patch-src_game_Makefile,v 1.1 2021/03/08 18:20:14 naddy Exp $
Index: src/game/Makefile
--- src/game/Makefile.orig
+++ src/game/Makefile
@@ -32,15 +32,15 @@ SDLCONF_L := $(shell ${SDL_CONF} --libs)
#---------------------
# the compiler options
-CC := gcc
+CC ?= gcc
INC := -I. -I.. -I../enet/include ${SDLCONF_I} -I./extensions -I./file_formats -I./platform
-LDFLAGS := ${SDLCONF_L} -L../enet/lib -lSDL_ttf -lSDL_mixer -lGL -lGLU -lSDL_image -lphysfs -lenet
+LDFLAGS := -L../enet/lib ${SDLCONF_L} -lSDL_ttf -lSDL_mixer -lGL -lGLU -lSDL_image -lm -lphysfs -lenet
# use different options if the environmental variable PREFIX is defined
ifdef ($(PREFIX),"")
- OPT := -Os -Wall
+ OPT :=
else
- OPT := -Os -Wall -DPREFIX=\"${PREFIX}\" -D_NIX_PREFIX
+ OPT := ${CFLAGS} -DPREFIX=\"${PREFIX}\" -DSYSCONFDIR=\"${SYSCONFDIR}\" -D_NIX_PREFIX
endif
CFLAGS := ${OPT} ${INC}

View File

@ -0,0 +1,116 @@
$OpenBSD: patch-src_game_extensions_ogl_texture_c,v 1.1 2021/03/08 18:20:14 naddy Exp $
Read the correct number of bytes for a pixel.
Index: src/game/extensions/ogl_texture.c
--- src/game/extensions/ogl_texture.c.orig
+++ src/game/extensions/ogl_texture.c
@@ -243,7 +243,7 @@ SDL_bool IMG_test_alpha( SDL_Surface * psurf )
Uint8 r, g, b, a;
// the info necessary to scan the image
- int bypp, bpp, bit_mask;
+ int bypp;
int w, h;
int pitch;
@@ -251,7 +251,6 @@ SDL_bool IMG_test_alpha( SDL_Surface * psurf )
int ix, iy;
const char * row_ptr;
const char * char_ptr;
- Uint32 * ui32_ptr;
if ( NULL == psurf ) return SDL_FALSE;
@@ -272,8 +271,6 @@ SDL_bool IMG_test_alpha( SDL_Surface * psurf )
}
// grab the info for scanning the surface
- bpp = pformat->BitsPerPixel;
- bit_mask = pformat->Rmask | pformat->Gmask | pformat->Bmask | pformat->Amask;
bypp = pformat->BytesPerPixel;
w = psurf->w;
h = psurf->h;
@@ -285,8 +282,25 @@ SDL_bool IMG_test_alpha( SDL_Surface * psurf )
char_ptr = row_ptr;
for ( ix = 0; ix < w; ix++ )
{
- ui32_ptr = ( Uint32 * )char_ptr;
- pix_value = ( *ui32_ptr ) & bit_mask;
+ switch (bypp)
+ {
+ case 1:
+ pix_value = *( Uint8 * )char_ptr;
+ break;
+ case 2:
+ pix_value = *( Uint16 * )char_ptr;
+ break;
+ case 3:
+ pix_value = 0;
+ memcpy(&pix_value, char_ptr, 3);
+ #if SDL_BYTEORDER == SDL_BIG_ENDIAN
+ pix_value >>= 8;
+ #endif
+ break;
+ case 4:
+ pix_value = *( Uint32 * )char_ptr;
+ break;
+ }
SDL_GetRGBA( pix_value, pformat, &r, &g, &b, &a );
@@ -317,7 +331,7 @@ SDL_bool IMG_test_alpha_key( SDL_Surface * psurf, Uint
Uint8 r, g, b, a;
// the info necessary to scan the image
- int bypp, bpp, bit_mask;
+ int bypp;
int w, h;
int pitch;
@@ -325,7 +339,6 @@ SDL_bool IMG_test_alpha_key( SDL_Surface * psurf, Uint
int ix, iy;
const char * row_ptr;
const char * char_ptr;
- Uint32 * ui32_ptr;
// flags
bool_t check_index = SDL_FALSE;
@@ -353,8 +366,6 @@ SDL_bool IMG_test_alpha_key( SDL_Surface * psurf, Uint
if ( 0xff != pformat->alpha ) return SDL_TRUE;
// grab the info for scanning the surface
- bpp = pformat->BitsPerPixel;
- bit_mask = pformat->Rmask | pformat->Gmask | pformat->Bmask | pformat->Amask;
bypp = pformat->BytesPerPixel;
w = psurf->w;
h = psurf->h;
@@ -366,8 +377,26 @@ SDL_bool IMG_test_alpha_key( SDL_Surface * psurf, Uint
char_ptr = row_ptr;
for ( ix = 0; ix < w; ix++ )
{
- ui32_ptr = ( Uint32 * )char_ptr;
- pix_value = ( *ui32_ptr ) & bit_mask;
+ switch (bypp)
+ {
+ case 1:
+ pix_value = *( Uint8 * )char_ptr;
+ break;
+ case 2:
+ pix_value = *( Uint16 * )char_ptr;
+ break;
+ case 3:
+ pix_value = 0;
+ memcpy(&pix_value, char_ptr, 3);
+ #if SDL_BYTEORDER == SDL_BIG_ENDIAN
+ pix_value >>= 8;
+ #endif
+ break;
+ case 4:
+ pix_value = *( Uint32 * )char_ptr;
+ break;
+ }
+
if ( pix_value == key )
{

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-src_game_file_formats_id_md2_c,v 1.1 2021/03/08 18:20:14 naddy Exp $
Index: src/game/file_formats/id_md2.c
--- src/game/file_formats/id_md2.c.orig
+++ src/game/file_formats/id_md2.c
@@ -24,7 +24,7 @@
#include "id_md2.h"
#include "egoboo_vfs.h"
-#include <malloc.h>
+#include <stdlib.h>
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-src_game_game_c,v 1.1 2021/03/08 18:20:14 naddy Exp $
Fix movement. Adapted from
https://github.com/egoboo/egoboo/commit/3d4509d2722657c808fd32c93765db2e8597fc9a
Index: src/game/game.c
--- src/game/game.c.orig
+++ src/game/game.c
@@ -2052,8 +2052,10 @@ void set_one_player_latch( const PLA_REF player )
if (( CAM_TURN_GOOD == PCamera->turn_mode && 1 == local_numlpla ) ||
!control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_CAMERA ) )
{
- joy_pos.x = ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_RIGHT ) - control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_LEFT ) );
- joy_pos.y = ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_DOWN ) - control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_UP ) );
+ if ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_RIGHT ) ) joy_pos.x++;
+ if ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_LEFT ) ) joy_pos.x--;
+ if ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_DOWN ) ) joy_pos.y++;
+ if ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_UP ) ) joy_pos.y--;
if ( CAM_TURN_GOOD == PCamera->turn_mode &&
1 == local_numlpla ) joy_pos.x = 0;

View File

@ -0,0 +1,35 @@
$OpenBSD: patch-src_game_platform_file_linux_c,v 1.1 2021/03/08 18:20:14 naddy Exp $
Index: src/game/platform/file_linux.c
--- src/game/platform/file_linux.c.orig
+++ src/game/platform/file_linux.c
@@ -31,6 +31,7 @@
#include <pwd.h>
#include <grp.h>
#include <glob.h>
+#include <limits.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/dir.h>
@@ -66,7 +67,7 @@ void sys_fs_init()
// grab the user's home directory
userhome = getenv( "HOME" );
- snprintf( linux_userdataPath, SDL_arraysize( linux_userdataPath ), "%s/.egoboo-2.x", userhome );
+ snprintf( linux_userdataPath, SDL_arraysize( linux_userdataPath ), "%s/.egoboo", userhome );
#if defined(_NIX_PREFIX) && defined(PREFIX)
// the access to these directories is completely unknown
@@ -74,9 +75,9 @@ void sys_fs_init()
// so that the program will compile and install just like any other
// .rpm or .deb package.
- strncpy( linux_configPath, PREFIX "/etc/egoboo-2.x", SDL_arraysize( linux_configPath ) );
- strncpy( linux_binaryPath, PREFIX "/games/", SDL_arraysize( linux_binaryPath ) );
- strncpy( linux_dataPath, PREFIX "/share/games/egoboo-2.x", SDL_arraysize( linux_dataPath ) );
+ strncpy( linux_configPath, SYSCONFDIR "/egoboo", SDL_arraysize( linux_configPath ) );
+ strncpy( linux_binaryPath, PREFIX "/bin/", SDL_arraysize( linux_binaryPath ) );
+ strncpy( linux_dataPath, PREFIX "/share/egoboo", SDL_arraysize( linux_dataPath ) );
#else
// these are read-only directories
strncpy( linux_configPath, "/etc/egoboo-2.x/", SDL_arraysize( linux_configPath ) );

File diff suppressed because it is too large Load Diff