In 2000, Raven Software released the source code to their class based shooter

game Hexen II and its multiplayer extension HexenWorld.

Since then, there has been some source ports of this game, most notably the
now neglected Anvil of Thyrion project. But nothing has been done for Linux
since the beginning of 2002.

The Hammer of Thyrion project continues the development for Linux and BSD
people, with continued support for Windows users as well. Many bugs are fixed
and even new features are added:

New sound modes, improved mouse handling, improved video modes, OpenGL glows
and more.

WWW: http://uhexen2.sourceforge.net/
This commit is contained in:
Alejandro Pulver 2007-02-25 15:58:09 +00:00
parent 38380f371f
commit b807f4d23b
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=185903
14 changed files with 474 additions and 0 deletions

View file

@ -758,6 +758,7 @@
SUBDIR += ufoai SUBDIR += ufoai
SUBDIR += ufoai-data SUBDIR += ufoai-data
SUBDIR += uhexen SUBDIR += uhexen
SUBDIR += uhexen2
SUBDIR += umark SUBDIR += umark
SUBDIR += untahris SUBDIR += untahris
SUBDIR += uox3 SUBDIR += uox3

149
games/uhexen2/Makefile Normal file
View file

@ -0,0 +1,149 @@
# New ports collection makefile for: uhexen2
# Date created: 2006-12-30
# Whom: alepulver
#
# $FreeBSD$
#
PORTNAME= uhexen2
PORTVERSION= 1.4.1
CATEGORIES= games
MASTER_SITES= SF
DISTNAME= hexen2source-${PORTVERSION}
EXTRACT_SUFX= .tgz
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
DIST_SUBDIR= ${PORTNAME}
MAINTAINER= alepulver@FreeBSD.org
COMMENT= Hexen II source port supporting Linux/FreeBSD/Unix/Windows
USE_GMAKE= yes
USE_GL= yes
USE_SDL= sdl mixer
WANT_GNOME= yes
OPTIONS= DEMO "Install demo version of the game data" off \
HEXEN2 "Build Hexen II clients and servers" on \
HW "Build HexenWorld clients and servers" on \
LAUNCHER_GTK1 "Build graphical (GTK1) game launcher" off \
LAUNCHER_GTK2 "Build graphical (GTK2) game launcher" off \
X86_ASM "Enable use of optimized x86 assembly code" on
.include <bsd.port.pre.mk>
.if defined(WITHOUT_HEXEN2) && defined(WITHOUT_HW)
IGNORE= needs at least one group of binaries (HEXEN2 and HW)
.endif
.if defined(WITH_DEMO)
DISTFILES+= hexen2demo-${PORTVERSION}-linux-i586${EXTRACT_SUFX}
MAKE_ENV+= DEMO=yes
PLIST_SUB+= DEMO="" \
FULL="@comment "
UH2_DATA= default.cfg hexen.rc pak0.pak progs.dat
UH2_DATADIR= ${WRKDIR}/hexen2demo-${PORTVERSION}
.else
DISTFILES+= gamedata-all-1.16a${EXTRACT_SUFX}
PLIST_SUB+= DEMO="@comment " \
FULL=""
SUB_FILES+= pkg-message
UH2_DATA= default.cfg hexen.rc progs.dat progs2.dat strings.txt
UH2_DATADIR= ${WRKDIR}
.endif
.if defined(WITH_HEXEN2)
MAKE_ENV+= BUILD_HEXEN2=yes
PLIST_SUB+= HEXEN2=""
UH2_BIN+= hexen2/glhexen2
. if defined(WITH_X86_ASM) && ${ARCH} == "i386"
UH2_BIN+= hexen2/hexen2
. endif
.else
PLIST_SUB+= HEXEN2="@comment "
.endif
.if defined(WITH_HW)
. if !defined(WITH_DEMO)
DISTFILES+= hexenworld-pakfiles-0.15${EXTRACT_SUFX}
. endif
MAKE_ENV+= BUILD_HW=yes
PLIST_SUB+= HW=""
UH2_BIN+= hexenworld/Client/glhwcl hexenworld/Master/hwmaster \
hexenworld/Server/hwsv
. if defined(WITH_X86_ASM) && ${ARCH} == "i386"
UH2_BIN+= hexenworld/Client/hwcl
. endif
.else
PLIST_SUB+= HW="@comment "
.endif
.if defined(WITH_LAUNCHER_GTK1)
USE_GNOME+= gtk12
MAKE_ENV+= BUILD_LAUNCHER_GTK1=yes
PLIST_SUB+= LAUNCHER_GTK1=""
.else
PLIST_SUB+= LAUNCHER_GTK1="@comment "
.endif
.if defined(WITH_LAUNCHER_GTK2)
USE_GNOME+= gtk20
MAKE_ENV+= BUILD_LAUNCHER_GTK2=yes
PLIST_SUB+= LAUNCHER_GTK2=""
.else
PLIST_SUB+= LAUNCHER_GTK2="@comment "
.endif
.if defined(WITH_X86_ASM) && ${ARCH} == "i386"
BUILD_DEPENDS+= nasm:${PORTSDIR}/devel/nasm
MAKE_ENV+= USE_X86_ASM=yes
PLIST_SUB+= X86_ASM=""
.else
PLIST_SUB+= X86_ASM="@comment "
.endif
post-extract:
@${RM} -r ${WRKSRC}/docs/activision
@${CP} ${FILESDIR}/${MAKEFILE} ${WRKSRC}
post-patch:
.for f in hexen2/common.c hexenworld/Client/common.c
@${REINPLACE_CMD} -e 's|host_parms\.basedir|"${DATADIR}"|' \
${WRKSRC}/${f}
.endfor
do-install:
.for f in ${UH2_BIN}
${INSTALL_PROGRAM} ${WRKSRC}/${f} ${PREFIX}/bin
.endfor
${MKDIR} ${DATADIR}/data1
.for f in ${UH2_DATA}
${INSTALL_DATA} ${UH2_DATADIR}/data1/${f} ${DATADIR}/data1
.endfor
.if !defined(WITH_DEMO)
${INSTALL_DATA} ${WRKDIR}/patchdata/data1/* ${DATADIR}/data1
${INSTALL_DATA} ${WRKDIR}/update_* ${DATADIR}
${CP} -R ${WRKDIR}/portals ${DATADIR}
.endif
.if defined(WITH_HW)
${MKDIR} ${DATADIR}/hw
${INSTALL_DATA} ${UH2_DATADIR}/hw/* ${DATADIR}/hw
.endif
.if defined(WITH_LAUNCHER_GTK1)
${INSTALL_PROGRAM} ${WRKSRC}/launcher/h2launcher.gtk1 ${PREFIX}/bin
.endif
.if defined(WITH_LAUNCHER_GTK2)
${INSTALL_PROGRAM} ${WRKSRC}/launcher/h2launcher ${PREFIX}/bin
.endif
.if !defined(NOPORTDOCS)
${MKDIR} ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/docs/* ${DOCSDIR}
.endif
.if !defined(WITH_DEMO)
post-install:
@${ECHO_CMD}
@${CAT} ${PKGMESSAGE}
@${ECHO_CMD}
.endif
.include <bsd.port.post.mk>

12
games/uhexen2/distinfo Normal file
View file

@ -0,0 +1,12 @@
MD5 (uhexen2/hexen2source-1.4.1.tgz) = fe903c85565e785b853c34d04aa9e772
SHA256 (uhexen2/hexen2source-1.4.1.tgz) = 16e87233b9a4f624e736b3924fe33d15bfb49e1653b68a07e946eb212a60c91e
SIZE (uhexen2/hexen2source-1.4.1.tgz) = 1977315
MD5 (uhexen2/gamedata-all-1.16a.tgz) = ddc49a34ca3dc5c7eba7bf1cac7271b1
SHA256 (uhexen2/gamedata-all-1.16a.tgz) = a25748d47fc1239e971096f6f76238c315db6523e6885db5d3032b98df49d27e
SIZE (uhexen2/gamedata-all-1.16a.tgz) = 3703921
MD5 (uhexen2/hexen2demo-1.4.1-linux-i586.tgz) = 6932a1fe02145ee3362b11ddca0b36d4
SHA256 (uhexen2/hexen2demo-1.4.1-linux-i586.tgz) = dde1d8a9c9203a1f9d171a9ed39bbd245ec23f4e049ea584bafb5aa1b0a84652
SIZE (uhexen2/hexen2demo-1.4.1-linux-i586.tgz) = 18788495
MD5 (uhexen2/hexenworld-pakfiles-0.15.tgz) = 91183a784f7f3ee273a04d0c7a828a77
SHA256 (uhexen2/hexenworld-pakfiles-0.15.tgz) = 215e92f58bc7ed6098f076b45a20b94092599bfce6c4cd00f2895b24a6ee72fe
SIZE (uhexen2/hexenworld-pakfiles-0.15.tgz) = 4956848

View file

@ -0,0 +1,24 @@
# GNU Makefile wrapper for games/uhexen2.
# The source tree does not have a main Makefile.
#
# $FreeBSD$
#
all:
ifeq ($(BUILD_HEXEN2),yes)
ifeq ($(USE_X86_ASM),yes)
$(MAKE) -C hexen2 h2 clean
endif
$(MAKE) -C hexen2 glh2 clean
endif
ifeq ($(BUILD_HW),yes)
cd hexenworld && ./build.sh
endif
ifeq ($(BUILD_LAUNCHER_GTK1),yes)
$(MAKE) -C launcher GTK1=yes
$(MAKE) -C launcher clean
endif
ifeq ($(BUILD_LAUNCHER_GTK2),yes)
$(MAKE) -C launcher
$(MAKE) -C launcher clean
endif

View file

@ -0,0 +1,35 @@
--- ./hexen2/Makefile.orig Fri Oct 6 13:43:32 2006
+++ ./hexen2/Makefile Tue Jan 9 16:56:32 2007
@@ -89,11 +89,11 @@
USE_SDLAUDIO=yes
USE_MIDI=yes
USE_CDAUDIO=yes
-USE_SDLCD=no
+USE_SDLCD=yes
WITH_SPLASHES=yes
OPT_EXTRA=yes
LINK_GL_LIBS=no
-USE_X86_ASM=yes
+USE_X86_ASM?=no
# build environment sanity checks
ifeq ($(USE_X86_ASM),yes)
@@ -125,7 +125,7 @@
#ARCHFLAGS:=
ifndef DEBUG
-CFLAGS := $(CPUFLAGS) -O2 -Wall -ffast-math -fexpensive-optimizations
+CFLAGS := $(CFLAGS) $(CPUFLAGS) -O2 -Wall -ffast-math -fexpensive-optimizations
HAVE_GCC_4_0:=$(shell sh $(UHEXEN2_TOP)/scripts/gcc40check.sh $(CC))
DISABLE_UNIT_AT_A_TIME ?=$(HAVE_GCC_4_0)
@@ -141,7 +141,9 @@
ifeq ($(OPT_EXTRA),yes)
# Note: re-check these flags for non-ia32 machines
+ifeq ($(MACH_TYPE),x86)
CFLAGS := $(CFLAGS) $(call check_gcc,-falign-loops=2 -falign-jumps=2 -falign-functions=2,-malign-loops=2 -malign-jumps=2 -malign-functions=2)
+endif
CFLAGS := $(CFLAGS) -fomit-frame-pointer
endif
endif

View file

@ -0,0 +1,35 @@
--- ./hexenworld/Client/Makefile.orig Fri Oct 6 13:43:35 2006
+++ ./hexenworld/Client/Makefile Tue Jan 9 16:56:32 2007
@@ -89,11 +89,11 @@
USE_SDLAUDIO=yes
USE_MIDI=yes
USE_CDAUDIO=yes
-USE_SDLCD=no
+USE_SDLCD=yes
WITH_SPLASHES=yes
OPT_EXTRA=yes
LINK_GL_LIBS=no
-USE_X86_ASM=yes
+USE_X86_ASM?=no
# build environment sanity checks
ifeq ($(USE_X86_ASM),yes)
@@ -125,7 +125,7 @@
#ARCHFLAGS:=
ifndef DEBUG
-CFLAGS := $(CPUFLAGS) -O2 -Wall -ffast-math -fexpensive-optimizations
+CFLAGS := $(CFLAGS) $(CPUFLAGS) -O2 -Wall -ffast-math -fexpensive-optimizations
HAVE_GCC_4_0:=$(shell sh $(UHEXEN2_TOP)/scripts/gcc40check.sh $(CC))
DISABLE_UNIT_AT_A_TIME ?=$(HAVE_GCC_4_0)
@@ -141,7 +141,9 @@
ifeq ($(OPT_EXTRA),yes)
# Note: re-check these flags for non-ia32 machines
+ifeq ($(MACH_TYPE),x86)
CFLAGS := $(CFLAGS) $(call check_gcc,-falign-loops=2 -falign-jumps=2 -falign-functions=2,-malign-loops=2 -malign-jumps=2 -malign-functions=2)
+endif
CFLAGS := $(CFLAGS) -fomit-frame-pointer
endif
endif

View file

@ -0,0 +1,18 @@
--- ./hexenworld/Master/Makefile.orig Fri Oct 6 13:43:35 2006
+++ ./hexenworld/Master/Makefile Tue Jan 9 16:56:32 2007
@@ -24,14 +24,11 @@
# Compiler flags
# Overrides for the default CPUFLAGS
-ifeq ($(MACH_TYPE),x86)
-CPUFLAGS:=-march=i386
-endif
# Overrides for the default ARCHFLAGS
#ARCHFLAGS:=
ifndef DEBUG
-CFLAGS := $(CPUFLAGS) -O2 -Wall
+CFLAGS := $(CFLAGS) $(CPUFLAGS) -O2 -Wall
endif
# Other build flags

View file

@ -0,0 +1,11 @@
--- ./hexenworld/Server/Makefile.orig Fri Oct 6 13:43:35 2006
+++ ./hexenworld/Server/Makefile Tue Jan 9 16:56:32 2007
@@ -30,7 +30,7 @@
#ARCHFLAGS:=
ifndef DEBUG
-CFLAGS := $(CPUFLAGS) -O2 -Wall -ffast-math -fexpensive-optimizations
+CFLAGS := $(CFLAGS) $(CPUFLAGS) -O2 -Wall -ffast-math -fexpensive-optimizations
HAVE_GCC_4_0:=$(shell sh $(UHEXEN2_TOP)/scripts/gcc40check.sh $(CC))
DISABLE_UNIT_AT_A_TIME ?=$(HAVE_GCC_4_0)

View file

@ -0,0 +1,17 @@
--- ./hexenworld/build.sh.orig Sun Sep 24 14:24:48 2006
+++ ./hexenworld/build.sh Tue Jan 9 17:01:16 2007
@@ -45,10 +45,13 @@
echo "" && echo "Building hexenworld master server.."
$MAKE_CMD -C Master || exit 1
+if [ "$USE_X86_ASM" = yes ]; then
echo "" && echo "Building hexenworld client (software renderer)"
$MAKE_CMD -C Client hw || exit 1
+$MAKE_CMD -s -C Client clean
+fi
echo "" && echo "Building hexenworld client (opengl renderer)"
-$MAKE_CMD -s -C Client clean
$MAKE_CMD -C Client glhw || exit 1
+$MAKE_CMD -s -C Client clean

View file

@ -0,0 +1,31 @@
--- ./launcher/Makefile.orig Fri Oct 6 13:43:36 2006
+++ ./launcher/Makefile Tue Jan 9 16:56:32 2007
@@ -11,27 +11,11 @@
HOST_OS:=$(shell uname)
-CC_DEFAULT:=gcc
-ifeq ($(origin CC),environment)
-CC_OVERRIDE:=1
-ifeq ($(CC),)
-CC_OVERRIDE:=
-endif
-endif
-ifeq ($(origin CC),command line)
-CC_OVERRIDE:=1
-endif
-ifeq ($(CC_OVERRIDE),)
-CC := $(CC_DEFAULT)
-endif
+CC ?= gcc
LINKER:= $(CC)
-ifdef DEMO
-TMPNAME:= h2demo
-else
TMPNAME:= h2launcher
-endif
ifdef GTK1
H2LAUNCH:= $(TMPNAME).gtk1

View file

@ -0,0 +1,55 @@
--- ./scripts/makefile.inc.orig Fri Oct 6 13:43:36 2006
+++ ./scripts/makefile.inc Tue Jan 9 16:56:32 2007
@@ -15,7 +15,8 @@
# Common paths:
# X directory
-X11_PATH ?=/usr/X11R6
+X11BASE ?= /usr/X11R6
+X11_PATH ?= $(X11BASE)
# MinGW32 directory:
MINGWDIR ?=/mingw
@@ -61,22 +62,7 @@
endif
# Compiler selection:
-# refuse cc for CC which is the default for make
-# accept environment or command line overrides.
-CC_DEFAULT:=gcc
-ifeq ($(origin CC),environment)
-CC_OVERRIDE:=1
-# watch for stale environment defs
-ifeq ($(CC),)
-CC_OVERRIDE:=
-endif
-endif
-ifeq ($(origin CC),command line)
-CC_OVERRIDE:=1
-endif
-ifeq ($(CC_OVERRIDE),)
-CC := $(CC_DEFAULT)
-endif
+CC ?= gcc
NASM ?= $(NASM_BIN)
WINDRES ?= windres
@@ -104,9 +90,6 @@
# default CPU flags
CPUFLAGS:=
-ifeq ($(MACH_TYPE),x86)
-CPUFLAGS:=-march=i586
-endif
# NASM flags:
# These are required for IA32 assembly for hexen2/hexenworld clients
@@ -121,7 +104,7 @@
# be added to the make command
DFLAGS := -g -Wall
ifdef DEBUG
-CFLAGS := $(DFLAGS)
+CFLAGS := $(CFLAGS) $(DFLAGS)
endif
# the "sdl-config" command

View file

@ -0,0 +1,12 @@
==============================================================================
Hexen II: Hammer of Thyrion has been installed.
To complete the installation of this port you have to copy the original
"data1/pak0.pak" and "data1/pak1.pak" files from your original distribution to
"%%DATADIR%%/data1" in lower-case form.
Then see the documentation about patching the data files in
"%%DOCSDIR%%". The update files are installed.
==============================================================================

15
games/uhexen2/pkg-descr Normal file
View file

@ -0,0 +1,15 @@
In 2000, Raven Software released the source code to their class based shooter
game Hexen II and its multiplayer extension HexenWorld.
Since then, there has been some source ports of this game, most notably the
now neglected Anvil of Thyrion project. But nothing has been done for Linux
since the beginning of 2002.
The Hammer of Thyrion project continues the development for Linux and BSD
people, with continued support for Windows users as well. Many bugs are fixed
and even new features are added:
New sound modes, improved mouse handling, improved video modes, OpenGL glows
and more.
WWW: http://uhexen2.sourceforge.net/

59
games/uhexen2/pkg-plist Normal file
View file

@ -0,0 +1,59 @@
%%HEXEN2%%bin/glhexen2
%%HW%%bin/glhwcl
%%LAUNCHER_GTK2%%bin/h2launcher
%%LAUNCHER_GTK1%%bin/h2launcher.gtk1
%%X86_ASM%%%%HEXEN2%%bin/hexen2
%%X86_ASM%%%%HW%%bin/hwcl
%%HW%%bin/hwmaster
%%HW%%bin/hwsv
%%PORTDOCS%%%%DOCSDIR%%/ABOUT
%%PORTDOCS%%%%DOCSDIR%%/BUGS
%%PORTDOCS%%%%DOCSDIR%%/CHANGES
%%PORTDOCS%%%%DOCSDIR%%/COMPILE
%%PORTDOCS%%%%DOCSDIR%%/COPYING
%%PORTDOCS%%%%DOCSDIR%%/Features
%%PORTDOCS%%%%DOCSDIR%%/LICENSE
%%PORTDOCS%%%%DOCSDIR%%/NOTES.porting
%%PORTDOCS%%%%DOCSDIR%%/NonIntel.log
%%PORTDOCS%%%%DOCSDIR%%/README
%%PORTDOCS%%%%DOCSDIR%%/README.3dfx
%%PORTDOCS%%%%DOCSDIR%%/README.AoT
%%PORTDOCS%%%%DOCSDIR%%/README.demo
%%PORTDOCS%%%%DOCSDIR%%/README.hwcl
%%PORTDOCS%%%%DOCSDIR%%/README.hwmaster
%%PORTDOCS%%%%DOCSDIR%%/README.hwsv
%%PORTDOCS%%%%DOCSDIR%%/README.launcher
%%PORTDOCS%%%%DOCSDIR%%/README.win32
%%PORTDOCS%%%%DOCSDIR%%/ReleaseNotes-1.2.3
%%PORTDOCS%%%%DOCSDIR%%/ReleaseNotes-1.2.4a
%%PORTDOCS%%%%DOCSDIR%%/ReleaseNotes-1.3.0
%%PORTDOCS%%%%DOCSDIR%%/ReleaseNotes-1.4.0
%%PORTDOCS%%%%DOCSDIR%%/ReleaseNotes-1.4.1
%%PORTDOCS%%%%DOCSDIR%%/TODO
%%DATADIR%%/data1/default.cfg
%%DATADIR%%/data1/hexen.rc
%%DEMO%%%%DATADIR%%/data1/pak0.pak
%%FULL%%%%DATADIR%%/data1/data1pak0.xd
%%FULL%%%%DATADIR%%/data1/data1pak1.xd
%%DATADIR%%/data1/progs.dat
%%FULL%%%%DATADIR%%/data1/progs2.dat
%%FULL%%%%DATADIR%%/data1/strings.txt
%%HW%%%%DATADIR%%/hw/default.cfg
%%HW%%%%DATADIR%%/hw/hwprogs.dat
%%HW%%%%DATADIR%%/hw/pak4.pak
%%HW%%%%DATADIR%%/hw/strings.txt
%%FULL%%%%DATADIR%%/portals/default.cfg
%%FULL%%%%DATADIR%%/portals/hexen.rc
%%FULL%%%%DATADIR%%/portals/infolist.txt
%%FULL%%%%DATADIR%%/portals/maplist.txt
%%FULL%%%%DATADIR%%/portals/progs.dat
%%FULL%%%%DATADIR%%/portals/puzzles.txt
%%FULL%%%%DATADIR%%/portals/strings.txt
%%FULL%%%%DATADIR%%/update_loki.dat
%%FULL%%%%DATADIR%%/update_loki.sh
%%FULL%%%%DATADIR%%/update_xdelta.sh
%%PORTDOCS%%@dirrm %%DOCSDIR%%
%%FULL%%@dirrm %%DATADIR%%/portals
%%HW%%@dirrm %%DATADIR%%/hw
@dirrm %%DATADIR%%/data1
@dirrm %%DATADIR%%