Skip to content

Commit e51e3a3

Browse files
committed
Add games/gnukem, a Duke Nukem-inspired game.
1 parent ea432ad commit e51e3a3

File tree

10 files changed

+234
-0
lines changed

10 files changed

+234
-0
lines changed

FINISHED

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,3 +90,4 @@ games/openhexagon sent to ports@ (bcallah)
9090
math/ebc ready to import (bcallah)
9191
lang/voc ready to import (bcallah)
9292
games/freesynd ready to import (bcallah)
93+
games/gnukem ready to import (bcallah)

games/gnukem/Makefile

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# $OpenBSD$
2+
3+
COMMENT = open source retro-style 2D scrolling platform shooter game
4+
DISTNAME = gnukem-1.0
5+
CATEGORIES = games x11
6+
7+
HOMEPAGE = https://djoffe.com/gnukem/
8+
MAINTAINER = Brian Callahan <[email protected]>
9+
10+
# Dual licensed: MIT or GPLv2 only
11+
PERMIT_PACKAGE_CDROM = Yes
12+
13+
WANTLIB += ${COMPILER_LIBCXX} SDL SDL_mixer c m
14+
15+
# Upstream data fetching is ugh...
16+
MASTER_SITES = https://mirrors.nycbug.org/pub/distfiles/
17+
18+
LIB_DEPENDS = devel/sdl-mixer
19+
20+
USE_GMAKE = Yes
21+
ALL_TARGET = default
22+
MAKE_FLAGS = CC="${CC}" CPP="${CXX}" \
23+
CXXFLAGS="${CXXFLAGS}"
24+
25+
NO_TEST = Yes
26+
27+
# No install routine
28+
do-install:
29+
${INSTALL_DATA_DIR} ${PREFIX}/share/gnukem/data
30+
cd ${WRKSRC}/data && find * -type d -exec ${INSTALL_DATA_DIR} \
31+
"${PREFIX}/share/gnukem/data/{}" \;
32+
cd ${WRKSRC}/data && find * -type f -exec ${INSTALL_DATA} \
33+
"{}" "${PREFIX}/share/gnukem/data/{}" \;
34+
echo "#!/bin/sh\ncd ${TRUEPREFIX}/share/gnukem && ./davegnukem \"\$$@\"" >> ${WRKSRC}/gnukem.sh
35+
${INSTALL_PROGRAM} ${WRKSRC}/davegnukem ${PREFIX}/share/gnukem
36+
${INSTALL_SCRIPT} ${WRKSRC}/gnukem.sh ${PREFIX}/bin/davegnukem
37+
38+
.include <bsd.port.mk>

games/gnukem/distinfo

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SHA256 (gnukem-1.0.tar.gz) = KOX8oFvgtUKGmrP9x8J2dNr9VvfPFmzFp+2dFDxMDKs=
2+
SIZE (gnukem-1.0.tar.gz) = 20553539

games/gnukem/patches/patch-Makefile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
$OpenBSD$
2+
3+
Index: Makefile
4+
--- Makefile.orig
5+
+++ Makefile
6+
@@ -8,8 +8,8 @@
7+
# 2017-07-29: Remove obsolete standalone-editor-related stuff, and add new thing_monsters.o
8+
#
9+
10+
-CPP = g++
11+
-CC = gcc
12+
+CPP ?= g++
13+
+CC ?= gcc
14+
15+
16+
# dj2016-10 Add L -I/usr/local/include/SDL in process of getting this working on Mac OS X - not sure if this is 'bad' to just have both /usr/include and /usr/local/include??
17+
@@ -21,11 +21,11 @@ INCLUDEDIRS= -I/usr/include/SDL -I/usr/local/include/S
18+
# If you don't -DDATA_DIR to a valid dir, then data files will be assumed
19+
# to be in current directory
20+
#CCFLAGS = -Wall -I/usr/local/include -DHAVE_SOUND -DDEBUG -O -m486
21+
-CCFLAGS = -Wall -Wno-switch -DDEBUG $(INCLUDEDIRS)
22+
+CCFLAGS = ${CXXFLAGS} -Wall -Wno-switch -I${LOCALBASE}/include/SDL
23+
#Release version:
24+
#CCFLAGS = -O -Wall -I/usr/local/include -DHAVE_SOUND $(INCLUDEDIRS)
25+
26+
-LIBS = -lSDL -lSDLmain -lSDL_mixer -lpthread
27+
+LIBS = -L${LOCALBASE}/lib -lSDL -lSDLmain -lSDL_mixer -lpthread
28+
BIN = davegnukem
29+
30+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
$OpenBSD$
2+
3+
Index: src/datadir.h
4+
--- src/datadir.h.orig
5+
+++ src/datadir.h
6+
@@ -10,6 +10,8 @@ Copyright (C) 1999-2018 David Joffe
7+
#define _DATADIR_H_
8+
9+
//! Data directory [dj2017-08 should this move to config.h?]
10+
+#ifndef DATA_DIR
11+
#define DATA_DIR "data/"
12+
+#endif
13+
14+
#endif
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
$OpenBSD$
2+
3+
Index: src/game.cpp
4+
--- src/game.cpp.orig
5+
+++ src/game.cpp
6+
@@ -2014,7 +2014,7 @@ bool HeroIsHurting()
7+
void DrawHealth()
8+
{
9+
// Build a string representing health bars (which are in the 8x8 font)
10+
- char szHealth[MAX_HEALTH+1]={0};
11+
+ unsigned char szHealth[MAX_HEALTH+1]={0};
12+
for ( unsigned int i=0; i<MAX_HEALTH; ++i )
13+
{
14+
// 170 = health; 169 = not health
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
$OpenBSD$
2+
3+
Index: src/sdl/djsound.cpp
4+
--- src/sdl/djsound.cpp.orig
5+
+++ src/sdl/djsound.cpp
6+
@@ -13,7 +13,7 @@ Copyright (C) 1999-2018 David Joffe and Kent Mein
7+
#include <SDL_mixer.h>
8+
#endif
9+
10+
-#ifdef __APPLE__
11+
+#ifdef __OpenBSD__
12+
#include <stdlib.h>//Fixing malloc.h 'not found' error compiling on Mac [dj2016-10]
13+
#else
14+
#include <malloc.h>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
$OpenBSD$
2+
3+
Index: src/sys_defs.h
4+
--- src/sys_defs.h.orig
5+
+++ src/sys_defs.h
6+
@@ -21,7 +21,7 @@ extern "C"
7+
#include <stdarg.h>
8+
#include <stddef.h>
9+
#include <string.h>
10+
-#ifdef __APPLE__
11+
+#ifdef __OpenBSD__
12+
#include <stdlib.h>//Fixing malloc.h 'not found' error compiling on Mac [dj2016-10]
13+
#else
14+
#include <malloc.h>

games/gnukem/pkg/DESCR

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Dave Gnukem is an open source retro-style 2D scrolling platform shooter,
2+
inspired by and similar to Duke Nukem 1 (a famous original 1991 game
3+
that launched the Duke Nukem series). It features an integrated level
4+
editor. (Please note this is not a 'clone' or a 're-make'; it is
5+
probably most akin to a parody.)

games/gnukem/pkg/PLIST

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
@comment $OpenBSD: PLIST,v$
2+
bin/davegnukem
3+
share/gnukem/
4+
share/gnukem/data/
5+
share/gnukem/data/credits.tga
6+
share/gnukem/data/default.gam
7+
share/gnukem/data/editor/
8+
share/gnukem/data/editor/macros.txt
9+
share/gnukem/data/emh/
10+
share/gnukem/data/emh/nextm1.lev
11+
share/gnukem/data/emh/nextm2.lev
12+
share/gnukem/data/font.tga
13+
share/gnukem/data/fonts/
14+
share/gnukem/data/fonts/simple_6x8.tga
15+
share/gnukem/data/fonts/simple_6x8_shadow.tga
16+
share/gnukem/data/gameskin.tga
17+
share/gnukem/data/hiscores.tga
18+
share/gnukem/data/icon/
19+
share/gnukem/data/icon.bmp
20+
share/gnukem/data/icon/application_icon.ico
21+
share/gnukem/data/levels/
22+
share/gnukem/data/levels/bg1.tga
23+
share/gnukem/data/levels/bg2.tga
24+
share/gnukem/data/levels/citybackdrop.tga
25+
share/gnukem/data/levels/d_lev1.lev
26+
share/gnukem/data/levels/dj0.lev
27+
share/gnukem/data/levels/example.lev
28+
share/gnukem/data/levels/foo.lev
29+
share/gnukem/data/levels/kevin.lev
30+
share/gnukem/data/levels/level1.lev
31+
share/gnukem/data/levels/level2.lev
32+
share/gnukem/data/levels/level3.lev
33+
share/gnukem/data/levels/sjm001.lev
34+
share/gnukem/data/levels/sjm2.lev
35+
share/gnukem/data/levels/template.lev
36+
share/gnukem/data/main.tga
37+
share/gnukem/data/menucharbackground.tga
38+
share/gnukem/data/missions.txt
39+
share/gnukem/data/music/
40+
share/gnukem/data/music/eric_matyas/
41+
share/gnukem/data/music/eric_matyas/8-Bit-Mayhem.ogg
42+
share/gnukem/data/music/eric_matyas/Dystopic-Mayhem.ogg
43+
share/gnukem/data/music/eric_matyas/Escape_Looping.ogg
44+
share/gnukem/data/music/eric_matyas/Funky-Gameplay_Looping.ogg
45+
share/gnukem/data/music/eric_matyas/Insane-Gameplay_Looping.ogg
46+
share/gnukem/data/music/eric_matyas/Mad-Scientist_Looping.ogg
47+
share/gnukem/data/music/eric_matyas/Monkey-Drama.ogg
48+
share/gnukem/data/music/eric_matyas/Monster-Street-Fighters.ogg
49+
share/gnukem/data/music/eric_matyas/Monsters-in-Bell-Bottoms_Looping.ogg
50+
share/gnukem/data/music/eric_matyas/Retro-Frantic_V001_Looping.ogg
51+
share/gnukem/data/music/eric_matyas/Techno-Caper.ogg
52+
share/gnukem/data/music/eric_matyas/Techno-Gameplay_Looping.ogg
53+
share/gnukem/data/music/eric_matyas/The-Darkness-Below_Looping.ogg
54+
share/gnukem/data/sample.gam
55+
share/gnukem/data/shadows.tga
56+
share/gnukem/data/simplefont.tga
57+
share/gnukem/data/sounds/
58+
share/gnukem/data/sounds/cardflip.wav
59+
share/gnukem/data/sounds/exit.ogg
60+
share/gnukem/data/sounds/explode.wav
61+
share/gnukem/data/sounds/jump.wav
62+
share/gnukem/data/sounds/jump_landing.wav
63+
share/gnukem/data/sounds/key_pickup.wav
64+
share/gnukem/data/sounds/laser.wav
65+
share/gnukem/data/sounds/laser2.wav
66+
share/gnukem/data/sounds/lightmag.wav
67+
share/gnukem/data/sounds/pickup.wav
68+
share/gnukem/data/sounds/sfx_weapon_singleshot7.wav
69+
share/gnukem/data/sounds/shoot_cg1_modified.wav
70+
share/gnukem/data/sounds/soft_explode.wav
71+
share/gnukem/data/sounds/wooeep.wav
72+
share/gnukem/data/sprites/
73+
share/gnukem/data/sprites/def0spr.dat
74+
share/gnukem/data/sprites/def1spr.dat
75+
share/gnukem/data/sprites/def2spr.dat
76+
share/gnukem/data/sprites/def3spr.dat
77+
share/gnukem/data/sprites/def4spr.dat
78+
share/gnukem/data/sprites/def5spr.dat
79+
share/gnukem/data/sprites/def6spr.dat
80+
share/gnukem/data/sprites/def7spr.dat
81+
share/gnukem/data/sprites/sprites00.tga
82+
share/gnukem/data/sprites/sprites01.tga
83+
share/gnukem/data/sprites/sprites02.tga
84+
share/gnukem/data/sprites/sprites03.tga
85+
share/gnukem/data/sprites/sprites04.tga
86+
share/gnukem/data/sprites/sprites05.tga
87+
share/gnukem/data/sprites/sprites06.tga
88+
share/gnukem/data/sprites/sprites07.tga
89+
share/gnukem/data/sprites/sprites16.tga
90+
share/gnukem/data/sprites/sprites16_metadata.dat
91+
share/gnukem/data/tog/
92+
share/gnukem/data/tog/tog-bg-black.tga
93+
share/gnukem/data/tog/tog-lev_0.lev
94+
share/gnukem/data/tog/tog-lev_1.lev
95+
share/gnukem/data/tog/tog-lev_2.lev
96+
share/gnukem/data/tog/tog-lev_3.lev
97+
share/gnukem/data/tog/tog-spr_16.bmp
98+
share/gnukem/data/tog/tog-spr_16.dat
99+
share/gnukem/data/tog/tog-spr_16.tga
100+
share/gnukem/data/tog/tog.gam
101+
share/gnukem/data/tog/zz-empty.lev
102+
@bin share/gnukem/davegnukem

0 commit comments

Comments
 (0)