On 2015-08-26, Joerg Jung <[email protected]> wrote:
>> This moves games/xinvaders to a slightly newer release (1993 -> 2000)
>> and fixes the LP64 issue in the application resource handling. The
>> fix is, uh, inspired by xcdplayer but uses a #define hack to keep
>> the patching down.
>>
>> I've dropped pjanzen@ as maintainer since his e-mail address is gone.
>>
>> We could enable scorefile support (say, /var/games/xinvaders.score)
>> and install xinvaders as setgid games. Do we want that?
>
> Yes, please.
Now with scorefile.
Index: Makefile
===================================================================
RCS file: /cvs/ports/games/xinvaders/Makefile,v
retrieving revision 1.30
diff -u -p -r1.30 Makefile
--- Makefile 8 Dec 2014 21:35:32 -0000 1.30
+++ Makefile 26 Aug 2015 18:11:15 -0000
@@ -1,35 +1,24 @@
# $OpenBSD: Makefile,v 1.30 2014/12/08 21:35:32 naddy Exp $
-NOT_FOR_ARCHS= ${LP64_ARCHS}
-
COMMENT= shoot them nasty little bugs
-DISTNAME= xinvaders
-DIST_SUBDIR= xinvaders
-PKGNAME= xinvaders-2.0
-REVISION = 2
+DISTNAME= xinvaders-2.1.1
CATEGORIES= games
-MAINTAINER= Paul Janzen <[email protected]>
-
PERMIT_PACKAGE_CDROM= no fee
PERMIT_PACKAGE_FTP= Yes
-WANTLIB= ICE SM X11 Xau Xdmcp Xaw Xext Xmu Xt c pthread-stubs xcb
-
-MASTER_SITES= ftp://ftp.uu.net/usenet/comp.sources.x/volume19/xinvaders/ \
-
ftp://unix.hensa.ac.uk/archive/usenet/comp.sources.x/volume19/xinvaders/
-DISTFILES= part01.Z part02.Z part03.Z
-
-EXTRACT_CASES= *.Z) ${GZIP_CMD} -dc ${FULLDISTDIR}/$$archive |
${_PERL_FIX_SHAR} | /bin/sh;;
+WANTLIB= X11 Xaw Xmu Xt c
-CONFIGURE_STYLE= imake
+MASTER_SITES= ${MASTER_SITE_SUNSITE:=games/arcade/invaders/}
-WRKDIST= ${WRKDIR}
+MODULES= devel/gettext
-pre-patch:
- @cd $(WRKSRC) ; mv xinvaders.ma xinvaders.man
+CONFIGURE_STYLE=gnu
+CONFIGURE_ARGS= --enable-scorefile=/var/games/xinvaders.scores
+CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \
+ LDFLAGS="-L${LOCALBASE}/lib -lintl -liconv"
-NO_TEST= Yes
+FAKE_FLAGS= SCOREFILE=${PREFIX}/share/examples/xinvaders/xinvaders.scores
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/games/xinvaders/distinfo,v
retrieving revision 1.4
diff -u -p -r1.4 distinfo
--- distinfo 18 Jan 2015 03:14:04 -0000 1.4
+++ distinfo 26 Aug 2015 18:11:15 -0000
@@ -1,6 +1,2 @@
-SHA256 (xinvaders/part01.Z) = wtlmG+Dk3nMGLOITk0t/96J2YVVbN4yNyRvyAKiK2do=
-SHA256 (xinvaders/part02.Z) = QeTLQNorOQyz7ekvAkJBgvnaRXjMpAMJdQCEgfxQIIo=
-SHA256 (xinvaders/part03.Z) = jt+pRAwpo67H29Glk4oo3SEo8SLT1AOELHPXEp4jnro=
-SIZE (xinvaders/part01.Z) = 15161
-SIZE (xinvaders/part02.Z) = 24538
-SIZE (xinvaders/part03.Z) = 17263
+SHA256 (xinvaders-2.1.1.tar.gz) = 2yCBidZmgFjwTF25tJ/no0J4J7xQUQzAm1PmxF7EFI0=
+SIZE (xinvaders-2.1.1.tar.gz) = 120631
Index: patches/patch-Imakefile
===================================================================
RCS file: patches/patch-Imakefile
diff -N patches/patch-Imakefile
--- patches/patch-Imakefile 26 Oct 2007 21:19:16 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-Imakefile,v 1.1 2007/10/26 21:19:16 ajacoutot Exp $
---- Imakefile.orig Fri Oct 26 23:05:34 2007
-+++ Imakefile Fri Oct 26 23:05:39 2007
-@@ -4,6 +4,7 @@ OBJS = spacers.o base.o widget.o main.o vaders.o shot.
-
- SRCS = spacers.c base.c widget.c main.c vaders.c shot.c score.c
-
--INCLUDES = -I$(TOP) -I$(TOP)/X11
-+INCLUDES = -I$(TOP)
-
- ComplexProgramTarget(xinvaders)
-+MANSUFFIX=6
Index: patches/patch-Makefile_in
===================================================================
RCS file: patches/patch-Makefile_in
diff -N patches/patch-Makefile_in
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-Makefile_in 26 Aug 2015 18:11:15 -0000
@@ -0,0 +1,21 @@
+$OpenBSD$
+--- Makefile.in.orig Mon Sep 18 07:53:30 2000
++++ Makefile.in Wed Aug 26 17:23:14 2015
+@@ -91,7 +91,7 @@ AUTOMAKE_OPTIONS = foreign
+ SUBDIRS = intl po
+ EXTRA_DIST = debian Vaders xinvaders.6 icon.xpm xinvaders.lsm
+
+-execgamesdir = $(prefix)/games
++execgamesdir = $(bindir)
+ execgames_PROGRAMS = xinvaders
+
+ xinvaders_SOURCES = base.c main.c score.c shot.c spacers.c vaders.c widget.c
me.h patchlevel.h vaders.h base1.bit base2.bit explode1.bit explode2.bit
spacer1.bit spacer2.bit sperma1.bit sperma2.bit spermb1.bit spermb2.bit
vader1a1.bit vader1a2.bit vader1b1.bit vader1b2.bit vader2a1.bit vader2a2.bit
vader2b1.bit vader2b2.bit vader3a1.bit vader3a2.bit vader3b1.bit vader3b2.bit
vexplod1.bit vexplod2.bit
+@@ -521,7 +521,7 @@ mostlyclean distclean maintainer-clean
+
+
+ install-data-local:
+- mkdir -p $(shell dirname $(DESTDIR)$(SCOREFILE) )
++ mkdir -p `dirname $(DESTDIR)$(SCOREFILE)`
+ echo 0 > $(DESTDIR)$(SCOREFILE)
+ chgrp games $(DESTDIR)$(SCOREFILE)
+ chmod 0660 $(DESTDIR)$(SCOREFILE)
Index: patches/patch-base_c
===================================================================
RCS file: patches/patch-base_c
diff -N patches/patch-base_c
--- patches/patch-base_c 26 Oct 2007 21:19:16 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,51 +0,0 @@
-$OpenBSD: patch-base_c,v 1.1 2007/10/26 21:19:16 ajacoutot Exp $
---- base.c.orig Fri Oct 26 23:05:33 2007
-+++ base.c Fri Oct 26 23:05:40 2007
-@@ -48,11 +48,6 @@ XImage *explosion;
-
- int ReadBaseImage()
- {
-- unsigned int width, height;
-- int x_hot, y_hot;
-- char *data, filename[255];
-- int status;
--
- base->width = (scale == 1) ? base1_width : base2_width;
- base->height = (scale == 1) ? base1_height : base2_height;
-
-@@ -105,7 +100,7 @@ GC gc;
- }
-
-
--ShowBase(i, gc)
-+void ShowBase(i, gc)
- int i;
- GC gc;
- {
-@@ -114,7 +109,7 @@ GC gc;
- base->width, base->height);
- }
-
--PaintBasesLeft()
-+void PaintBasesLeft()
- {
- int i;
- XDrawString(dpy, labelwindow, scoregc,
-@@ -156,7 +151,7 @@ int x,y;
- return FALSE;
- }
-
--ResetGame()
-+void ResetGame()
- {
- static Arg args[1];
-
-@@ -314,7 +309,7 @@ int x,y;
- return FALSE;
- }
-
--InitBuildings()
-+void InitBuildings()
- {
- int i, j, k;
-
Index: patches/patch-main_c
===================================================================
RCS file: /cvs/ports/games/xinvaders/patches/patch-main_c,v
retrieving revision 1.1
diff -u -p -r1.1 patch-main_c
--- patches/patch-main_c 26 Oct 2007 21:19:16 -0000 1.1
+++ patches/patch-main_c 26 Aug 2015 18:11:15 -0000
@@ -1,32 +1,196 @@
$OpenBSD: patch-main_c,v 1.1 2007/10/26 21:19:16 ajacoutot Exp $
---- main.c.orig Fri Oct 26 23:05:33 2007
-+++ main.c Fri Oct 26 23:05:40 2007
-@@ -135,14 +135,13 @@ caddr_t data;
+--- main.c.orig Mon Sep 11 00:32:16 2000
++++ main.c Tue Aug 25 21:10:26 2015
+@@ -26,7 +26,6 @@ Wed May 8 1991
+ #include <X11/IntrinsicP.h>
+ #include <X11/Label.h>
+ #endif
+-static int width, height; /* Size of window. */
+
+ #ifdef XFILESEARCHPATH
+ static void AddPathToSearchPath();
+@@ -40,51 +39,51 @@ static XrmOptionDescRec table[] = {
+
+ static XtResource resources[] = {
+ {XtNwidth, XtCWidth, XtRInt, sizeof(int),
+- (Cardinal)&width, XtRImmediate, (caddr_t) VWIDTH},
++ XtOffsetOf(AppData, width), XtRImmediate, (caddr_t) VWIDTH},
+ {XtNheight, XtCHeight, XtRInt, sizeof(int),
+- (Cardinal)&height, XtRImmediate, (caddr_t) VHEIGHT},
++ XtOffsetOf(AppData, height), XtRImmediate, (caddr_t) VHEIGHT},
+ {"debug", "Debug", XtRBoolean, sizeof(Boolean),
+- (Cardinal)&debug, XtRString, "off"},
++ XtOffsetOf(AppData, debug), XtRString, "off"},
+ {"font", "Font", XtRString, sizeof(String),
+- (Cardinal)&vaderfont, XtRString, (String)"9x15"},
++ XtOffsetOf(AppData, vaderfont), XtRString, (String)"9x15"},
+ {"scale", "Scale", XtRInt, sizeof(int),
+- (Cardinal)&scale, XtRImmediate, (caddr_t) 2},
++ XtOffsetOf(AppData, scale), XtRImmediate, (caddr_t) 2},
+ {"basewait", "BaseWait", XtRInt, sizeof(int),
+- (Cardinal)&basewait, XtRImmediate, (caddr_t) 10},
++ XtOffsetOf(AppData, basewait), XtRImmediate, (caddr_t) 10},
+ {"vaderwait", "VaderWait", XtRInt, sizeof(int),
+- (Cardinal)&vaderwait, XtRImmediate, (caddr_t) 300},
++ XtOffsetOf(AppData, vaderwait), XtRImmediate, (caddr_t) 300},
+ {"spacerwait", "SpacerWait", XtRInt, sizeof(int),
+- (Cardinal)&spacerwait, XtRImmediate, (caddr_t) 50},
++ XtOffsetOf(AppData, spacerwait), XtRImmediate, (caddr_t) 50},
+ {"shotwait", "ShotWait", XtRInt, sizeof(int),
+- (Cardinal)&shotwait, XtRImmediate, (caddr_t) 10},
++ XtOffsetOf(AppData, shotwait), XtRImmediate, (caddr_t) 10},
+ {"vshotwait", "VshotWait", XtRInt, sizeof(int),
+- (Cardinal)&vshotwait, XtRImmediate, (caddr_t) 30},
++ XtOffsetOf(AppData, vshotwait), XtRImmediate, (caddr_t) 30},
+ {"basecolor", "BaseColor", XtRPixel, sizeof(Pixel),
+- (Cardinal)&basepixel, XtRString, "cyan"},
++ XtOffsetOf(AppData, basepixel), XtRString, "cyan"},
+ {"spacercolor", "SpacerColor", XtRPixel, sizeof(Pixel),
+- (Cardinal)&spacerpixel, XtRString, "gray"},
++ XtOffsetOf(AppData, spacerpixel), XtRString, "gray"},
+ {"buildingcolor", "BuildingColor", XtRPixel, sizeof(Pixel),
+- (Cardinal)&buildingpixel, XtRString, "yellow"},
++ XtOffsetOf(AppData, buildingpixel), XtRString, "yellow"},
+ {"vader1color", "Vader1Color", XtRPixel, sizeof(Pixel),
+- (Cardinal)&vader1pixel, XtRString, "blue"},
++ XtOffsetOf(AppData, vader1pixel), XtRString, "blue"},
+ {"vader2color", "Vader2Color", XtRPixel, sizeof(Pixel),
+- (Cardinal)&vader2pixel, XtRString, "green"},
++ XtOffsetOf(AppData, vader2pixel), XtRString, "green"},
+ {"vader3color", "Vader3Color", XtRPixel, sizeof(Pixel),
+- (Cardinal)&vader3pixel, XtRString, "red"},
++ XtOffsetOf(AppData, vader3pixel), XtRString, "red"},
+ {"shotcolor", "ShotColor", XtRPixel, sizeof(Pixel),
+- (Cardinal)&shotpixel, XtRString, "lavender"},
++ XtOffsetOf(AppData, shotpixel), XtRString, "lavender"},
+ {"vshotcolor", "VshotColor", XtRPixel, sizeof(Pixel),
+- (Cardinal)&vshotpixel, XtRString, "orange"},
++ XtOffsetOf(AppData, vshotpixel), XtRString, "orange"},
+ {"scorecolor", "ScoreColor", XtRPixel, sizeof(Pixel),
+- (Cardinal)&scorepixel, XtRString, "white"},
++ XtOffsetOf(AppData, scorepixel), XtRString, "white"},
+ {"maxshots", "MaxShots", XtRInt, sizeof(int),
+- (Cardinal) &maxshots, XtRImmediate, (caddr_t) 1},
++ XtOffsetOf(AppData, maxshots), XtRImmediate, (caddr_t) 1},
+ {"maxvshots", "MaxVshots", XtRInt, sizeof(int),
+- (Cardinal) &maxvshots, XtRImmediate, (caddr_t) 6},
++ XtOffsetOf(AppData, maxvshots), XtRImmediate, (caddr_t) 6},
+ {"defaultfore", "DefaultFore", XtRPixel, sizeof(Pixel),
+- (Cardinal) &defaultfore, XtRString, "white"},
++ XtOffsetOf(AppData, defaultfore), XtRString, "white"},
+ {"defaultback", "DefaultBack", XtRPixel, sizeof(Pixel),
+- (Cardinal) &defaultback, XtRString, "black"},
++ XtOffsetOf(AppData, defaultback), XtRString, "black"},
+ };
+
+
+@@ -141,7 +140,7 @@ caddr_t data;
return w;
}
--main(argc, argv)
-+int main(argc, argv)
- Cardinal argc;
- char **argv;
+-int main(Cardinal argc, char **argv)
++int main(int argc, char **argv)
{
static Arg args[10];
int n;
- Widget form, button;
-- extern WidgetClass labelwidgetclass;
+@@ -161,25 +160,25 @@ int main(Cardinal argc, char **argv)
+ &argc, argv);
+ dpy = XtDisplay(toplevel);
+ XtAddConverter(XtRString, XtRFloat, CvtStringToFloat, NULL, 0);
+- XtGetApplicationResources(toplevel, (caddr_t) NULL,
++ XtGetApplicationResources(toplevel, (caddr_t) &app_data,
+ resources, XtNumber(resources),
+ NULL, (Cardinal) 0);
+- AddResource("*background", &defaultback);
++ AddResource("*background", &app_data.defaultback);
+ if (DisplayCells(dpy, DefaultScreen(dpy)) <= 2)
+ {
+- basepixel = defaultfore;
+- buildingpixel = defaultfore;
+- vader1pixel = defaultfore;
+- vader2pixel = defaultfore;
+- vader3pixel = defaultfore;
+- shotpixel = defaultfore;
+- vshotpixel = defaultfore;
+- scorepixel = defaultfore;
++ app_data.basepixel = app_data.defaultfore;
++ app_data.buildingpixel = app_data.defaultfore;
++ app_data.vader1pixel = app_data.defaultfore;
++ app_data.vader2pixel = app_data.defaultfore;
++ app_data.vader3pixel = app_data.defaultfore;
++ app_data.shotpixel = app_data.defaultfore;
++ app_data.vshotpixel = app_data.defaultfore;
++ app_data.scorepixel = app_data.defaultfore;
+ }
+- if (scale<1) scale = 1;
+- if (scale>2) scale = 2;
+- width = scale*VWIDTH;
+- height = scale*VHEIGHT;
++ if (app_data.scale<1) app_data.scale = 1;
++ if (app_data.scale>2) app_data.scale = 2;
++ app_data.width = app_data.scale*VWIDTH;
++ app_data.height = app_data.scale*VHEIGHT;
- me_image = NULL;
+ form = XtCreateManagedWidget ("form", formWidgetClass,
+ toplevel, NULL, 0);
+@@ -189,8 +188,8 @@ int main(Cardinal argc, char **argv)
+ XtSetArg (args[n], XtNright, XtChainLeft); n++;
+ XtSetArg (args[n], XtNtop, XtChainTop); n++;
+ XtSetArg (args[n], XtNbottom, XtChainTop); n++;
+- XtSetArg (args[n], XtNwidth, width); n++;
+- XtSetArg (args[n], XtNheight, height); n++;
++ XtSetArg (args[n], XtNwidth, app_data.width); n++;
++ XtSetArg (args[n], XtNheight, app_data.height); n++;
+
+ gamewidget = (VadersWidget)
+ XtCreateManagedWidget("field", vadersWidgetClass, form, args, n);
+@@ -204,29 +203,29 @@ int main(Cardinal argc, char **argv)
+ XtSetArg (args[n], XtNbottom, XtChainTop); n++;
+ XtSetArg (args[n], XtNfromHoriz, gamewidget); n++;
+ XtSetArg (args[n], XtNhorizDistance, 5); n++;
+- XtSetArg (args[n], XtNwidth, scale*IWIDTH); n++;
+- XtSetArg (args[n], XtNheight, height/2); n++;
++ XtSetArg (args[n], XtNwidth, app_data.scale*IWIDTH); n++;
++ XtSetArg (args[n], XtNheight, app_data.height/2); n++;
+
+ labelwidget = (VadersWidget)
+ XtCreateManagedWidget("label", vadersWidgetClass, form, args, n);
-@@ -268,12 +267,4 @@ char *path;
- #endif
- }
+ pausebutton = MakeCommandButton(form, "pause", Pause, labelwidget,
gamewidget, NULL);
+ XtSetArg(args[0], XtNlabel,_(" Start"));
+- XtSetArg(args[1], XtNforeground, defaultfore);
+- XtSetArg(args[2], XtNbackground, defaultback);
+- XtSetArg(args[3], XtNborderColor, defaultfore);
++ XtSetArg(args[1], XtNforeground, app_data.defaultfore);
++ XtSetArg(args[2], XtNbackground, app_data.defaultback);
++ XtSetArg(args[3], XtNborderColor, app_data.defaultfore);
+ XtSetValues(pausebutton, args, 4);
+ button = MakeCommandButton(form, "quit", Quit, pausebutton, gamewidget,
NULL);
+ XtSetArg(args[0], XtNlabel,_(" Quit "));
+- XtSetArg(args[1], XtNforeground, defaultfore);
+- XtSetArg(args[2], XtNbackground, defaultback);
+- XtSetArg(args[3], XtNborderColor, defaultfore);
++ XtSetArg(args[1], XtNforeground, app_data.defaultfore);
++ XtSetArg(args[2], XtNbackground, app_data.defaultback);
++ XtSetArg(args[3], XtNborderColor, app_data.defaultfore);
+ XtSetValues(button, args, 4);
+ infobutton = MakeCommandButton(form, "info", ShowInfo, button, gamewidget,
NULL);
+ XtSetArg(args[0], XtNlabel,_(" Info "));
+- XtSetArg(args[1], XtNforeground, defaultfore);
+- XtSetArg(args[2], XtNbackground, defaultback);
+- XtSetArg(args[3], XtNborderColor, defaultfore);
++ XtSetArg(args[1], XtNforeground, app_data.defaultfore);
++ XtSetArg(args[2], XtNbackground, app_data.defaultback);
++ XtSetArg(args[3], XtNborderColor, app_data.defaultfore);
+ XtSetValues(infobutton, args, 4);
+
+ XtRealizeWidget(toplevel);
+@@ -280,7 +279,7 @@ char *path;
}
--#endif
--
--#ifdef sparc
--XShapeCombineMask()
--{}
--
--XShapeQueryExtension()
--{}
#endif
+
+-#ifdef sparc
++#ifdef sun
+ XShapeCombineMask()
+ {}
+
Index: patches/patch-score_c
===================================================================
RCS file: patches/patch-score_c
diff -N patches/patch-score_c
--- patches/patch-score_c 26 Oct 2007 21:19:16 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-$OpenBSD: patch-score_c,v 1.1 2007/10/26 21:19:16 ajacoutot Exp $
---- score.c.orig Fri Oct 26 23:05:34 2007
-+++ score.c Fri Oct 26 23:05:40 2007
-@@ -20,7 +20,7 @@ Wed May 8 1991
- #define HILABEL (SCOREPOS+20)
- #define HIPOS (HILABEL+15)
-
--PaintScore()
-+void PaintScore()
- {
- char scorestring[8];
- XDrawImageString(dpy, labelwindow, scoregc, 0, SCORELABEL, "Score", 5);
-@@ -39,7 +39,7 @@ PaintScore()
- XDrawImageString(dpy, labelwindow, scoregc, 0, HIPOS, scorestring, 7);
- }
-
--InitScore()
-+void InitScore()
- {
- score = 0;
- if (hiscore == 0) hiscore = -1;
Index: patches/patch-shot_c
===================================================================
RCS file: patches/patch-shot_c
diff -N patches/patch-shot_c
--- patches/patch-shot_c 26 Oct 2007 21:19:16 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-shot_c,v 1.1 2007/10/26 21:19:16 ajacoutot Exp $
---- shot.c.orig Fri Oct 26 23:05:34 2007
-+++ shot.c Fri Oct 26 23:05:41 2007
-@@ -230,7 +230,7 @@ int ReadVshotImages()
- return BitmapSuccess;
- }
-
--InitShot()
-+void InitShot()
- {
- shottimerid = NULL;
- numshots = 0;
Index: patches/patch-vaders_h
===================================================================
RCS file: /cvs/ports/games/xinvaders/patches/patch-vaders_h,v
retrieving revision 1.1
diff -u -p -r1.1 patch-vaders_h
--- patches/patch-vaders_h 26 Oct 2007 21:19:16 -0000 1.1
+++ patches/patch-vaders_h 26 Aug 2015 18:11:15 -0000
@@ -1,56 +1,150 @@
-$OpenBSD: patch-vaders_h,v 1.1 2007/10/26 21:19:16 ajacoutot Exp $
---- vaders.h.orig Fri Oct 26 23:05:36 2007
-+++ vaders.h Fri Oct 26 23:05:41 2007
-@@ -130,11 +130,11 @@ ext int vaderwait; /* Number of
milleseconds to wait
+$OpenBSD$
+--- vaders.h.orig Mon Sep 11 00:32:40 2000
++++ vaders.h Tue Aug 25 21:28:01 2015
+@@ -90,15 +90,82 @@ typedef struct _VadersRec {
- ext Pixel spacerpixel;
- ext XtIntervalId spacertimerid;
--ext int spacerwait; /* Number of milliseconds to wait between
-- /* moving spacers. /*
-+ext int spacerwait; /* Number of milliseconds to wait between */
+
+
++/*
++ * Application resources
++ */
++typedef struct {
++ int width, height; /* Size of window. */
++ int scale;
++ Boolean debug;
+
++ /* Base info: */
++ int basewait; /* Number of milliseconds to wait between */
++ /* moving base. */
++ Pixel basepixel;
++ Pixel buildingpixel;
++
++ /* Vader info */
++ Pixel vader1pixel;
++ Pixel vader2pixel;
++ Pixel vader3pixel;
++ int vaderwait; /* Number of milliseconds to wait between */
++ /* moving vaders. */
++
++ /* Spacer info */
++ Pixel spacerpixel;
++ int spacerwait; /* Number of milliseconds to wait between */
+ /* moving spacers. */
++
++ /* Shot info */
++ Pixel shotpixel;
++ Pixel vshotpixel;
++ int shotwait;
++ int vshotwait;
++ int maxshots; /* How many shots are allowed to exist at */
++ /* once. */
++ int maxvshots; /* How many shots are allowed to exist at */
++ /* once. */
++
++ /* Score info */
++ Pixel scorepixel;
++
++ Pixel defaultfore, defaultback;
++
++ char *vaderfont;
++} AppData;
++
++ext AppData app_data;
++
++#ifndef MAIN
++#define scale app_data.scale
++#define debug app_data.debug
++#define basewait app_data.basewait
++#define basepixel app_data.basepixel
++#define buildingpixel app_data.buildingpixel
++#define vader1pixel app_data.vader1pixel
++#define vader2pixel app_data.vader2pixel
++#define vader3pixel app_data.vader3pixel
++#define vaderwait app_data.vaderwait
++#define spacerpixel app_data.spacerpixel
++#define spacerwait app_data.spacerwait
++#define shotpixel app_data.shotpixel
++#define vshotpixel app_data.vshotpixel
++#define shotwait app_data.shotwait
++#define vshotwait app_data.vshotwait
++#define maxshots app_data.maxshots
++#define maxvshots app_data.maxvshots
++#define scorepixel app_data.scorepixel
++#define defaultfore app_data.defaultfore
++#define defaultback app_data.defaultback
++#define vaderfont app_data.vaderfont
++#endif
++
+ /*
+ * Actual vaders definitions.
+ */
+
+ ext Widget pausebutton, infobutton;
+-ext int scale;
+
+-ext Boolean debug;
+ ext int level;
+
+ ext Display *dpy;
+@@ -111,30 +178,17 @@ ext int basesleft;
+
+ /* Base info: */
+
+-ext int basewait; /* Number of milleseconds to wait between */
+- /* moving base. */
+-
+ ext XtIntervalId basetimerid;
+
+-ext Pixel basepixel;
+-ext Pixel buildingpixel;
+ ext Boolean basedestroyed; /* TRUE if the base is non-existant */
+
+ /* Vader info: */
+
+ ext XtIntervalId vadertimerid;
+-ext Pixel vader1pixel;
+-ext Pixel vader2pixel;
+-ext Pixel vader3pixel;
+-ext int vaderwait; /* Number of milleseconds to wait between */
+- /* moving vaders. */
+
+ /* Spacer info */
+
+-ext Pixel spacerpixel;
+ ext XtIntervalId spacertimerid;
+-ext int spacerwait; /* Number of milliseconds to wait between */
+- /* moving spacers. */
ext int spacerappear; /* same, but for the interval between
appearances */
--ext Boolean spacer_shown; /* Currnet_Spacer is something */
-+ext Boolean spacer_shown; /* Current_Spacer is something */
- ext int spacer_counter; /* number of cycles to create a spacer
*/
-
- /* Shot info. */
-@@ -168,7 +168,6 @@ ext XImage *me_image;
-
- /* From widget.c */
-
--extern Boolean TakeFocus();
- extern void Quit();
- extern void Pause();
- extern int paused;
-@@ -188,6 +187,10 @@ extern Boolean ShotHitsBuilding();
- extern void InitBase();
- extern void PaintBase();
- extern void DrawBuildings();
-+extern void InitBuildings();
-+extern void PaintBasesLeft();
-+extern void ShowBase();
-+extern void ResetGame();
-
- /* From vaders.c */
-
-@@ -207,6 +210,10 @@ extern void MakeSpacer();
- extern void InitSpacers();
- extern void PaintSpacer();
-
-+/* from score.c */
-+extern void PaintScore();
-+extern void InitScore();
-+
- /* From shot.c */
-
- extern void AddLine();
-@@ -216,6 +223,7 @@ extern void MoveShots();
- extern void MoveVshots();
- extern void PaintAllShots();
- ext Pixel defaultfore, defaultback;
-+extern void InitShot();
+ ext Boolean spacer_shown; /* Currnet_Spacer is something */
+@@ -144,21 +198,11 @@ ext int spacer_counter; /* number of cycles to
create
- ext char *vaderfont;
+ ext XtIntervalId shottimerid;
+ ext XtIntervalId vshottimerid;
+-ext Pixel shotpixel;
+-ext Pixel vshotpixel;
+-ext int shotwait;
+-ext int vshotwait;
+-ext int maxshots; /* How many shots are allowed to exist at */
+- /* once. */
+-ext int maxvshots; /* How many shots are allowed to exist at */
+- /* once. */
+ ext int numshots; /* how many shots (from the base) there are
right now. */
+ ext int numvshots; /* how many shots (from vaders) there are right
now. */
+
+ /* Score info */
+
+-ext Pixel scorepixel;
+-
+ ext int bases, nextbonus, lastscore;
+ extern int hiscore;
+
+@@ -227,8 +271,5 @@ void InitShot();
+ void MoveShots();
+ void MoveVshots();
+ void PaintAllShots();
+-ext Pixel defaultfore, defaultback;
+-
+-ext char *vaderfont;
+ #endif _vaders_h
Index: patches/patch-widget_c
===================================================================
RCS file: patches/patch-widget_c
diff -N patches/patch-widget_c
--- patches/patch-widget_c 26 Oct 2007 21:19:16 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
-$OpenBSD: patch-widget_c,v 1.1 2007/10/26 21:19:16 ajacoutot Exp $
---- widget.c.orig Fri Oct 26 23:05:34 2007
-+++ widget.c Fri Oct 26 23:05:41 2007
-@@ -25,8 +25,9 @@ typedef struct _BaseRec {
-
- extern Base base;
-
--void HandleFocus();
--void HandleStruct();
-+static void HandleFocus();
-+static void HandleStruct();
-+static Boolean TakeFocus();
- void Pause();
-
- static XtActionsRec actions[] = {
Index: pkg/DESCR
===================================================================
RCS file: /cvs/ports/games/xinvaders/pkg/DESCR,v
retrieving revision 1.2
diff -u -p -r1.2 DESCR
--- pkg/DESCR 25 Sep 1998 22:49:21 -0000 1.2
+++ pkg/DESCR 26 Aug 2015 18:11:15 -0000
@@ -1,2 +1,2 @@
-Xinvaders is an implementation of the old Atari Space Invaders game
+Xinvaders is an implementation of the classic Space Invaders game
on top of the X11 window system.
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/games/xinvaders/pkg/PLIST,v
retrieving revision 1.6
diff -u -p -r1.6 PLIST
--- pkg/PLIST 11 Oct 2013 20:39:25 -0000 1.6
+++ pkg/PLIST 26 Aug 2015 18:11:15 -0000
@@ -1,3 +1,14 @@
@comment $OpenBSD: PLIST,v 1.6 2013/10/11 20:39:25 naddy Exp $
+@mode g+s
+@group games
@bin bin/xinvaders
+@mode
+@group
@man man/man6/xinvaders.6
+share/examples/xinvaders/
+@mode 660
+@group games
+share/examples/xinvaders/xinvaders.scores
+@sample /var/games/xinvaders.scores
+@mode
+@group
--
Christian "naddy" Weisgerber [email protected]