X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/b2ca333c4ad541145141d538923e93ec3464e29d..d7d701a18a4d3b676665449d0a985febca5d9563:/trek/dumpgame.c diff --git a/trek/dumpgame.c b/trek/dumpgame.c index b512d8e9..d3926813 100644 --- a/trek/dumpgame.c +++ b/trek/dumpgame.c @@ -1,4 +1,4 @@ -/* $NetBSD: dumpgame.c,v 1.3 1995/04/22 10:58:46 cgd Exp $ */ +/* $NetBSD: dumpgame.c,v 1.15 2009/08/12 08:54:54 dholland Exp $ */ /* * Copyright (c) 1980, 1993 @@ -12,11 +12,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -33,38 +29,43 @@ * SUCH DAMAGE. */ +#include #ifndef lint #if 0 static char sccsid[] = "@(#)dumpgame.c 8.1 (Berkeley) 5/31/93"; #else -static char rcsid[] = "$NetBSD: dumpgame.c,v 1.3 1995/04/22 10:58:46 cgd Exp $"; +__RCSID("$NetBSD: dumpgame.c,v 1.15 2009/08/12 08:54:54 dholland Exp $"); #endif #endif /* not lint */ -# include "trek.h" +#include +#include +#include +#include +#include "trek.h" /*** THIS CONSTANT MUST CHANGE AS THE DATA SPACES CHANGE ***/ -# define VERSION 2 +#define VERSION 2 -struct dump -{ +struct dump { char *area; int count; }; +static int readdump(int); -struct dump Dump_template[] = -{ - (char *)&Ship, sizeof (Ship), - (char *)&Now, sizeof (Now), - (char *)&Param, sizeof (Param), - (char *)&Etc, sizeof (Etc), - (char *)&Game, sizeof (Game), - (char *)Sect, sizeof (Sect), - (char *)Quad, sizeof (Quad), - (char *)&Move, sizeof (Move), - (char *)Event, sizeof (Event), - 0 + +static struct dump Dump_template[] = { + { (char *)&Ship, sizeof (Ship) }, + { (char *)&Now, sizeof (Now) }, + { (char *)&Param, sizeof (Param) }, + { (char *)&Etc, sizeof (Etc) }, + { (char *)&Game, sizeof (Game) }, + { (char *)Sect, sizeof (Sect) }, + { (char *)Quad, sizeof (Quad) }, + { (char *)&Move, sizeof (Move) }, + { (char *)Event, sizeof (Event) }, + { NULL, 0 } }; /* @@ -77,21 +78,24 @@ struct dump Dump_template[] = ** output change. */ -dumpgame() +/*ARGSUSED*/ +void +dumpgame(int v __unused) { - int version; - register int fd; - register struct dump *d; - register int i; + int version; + int fd; + struct dump *d; + int i; - if ((fd = creat("trek.dump", 0644)) < 0) - return (printf("cannot dump\n")); + if ((fd = creat("trek.dump", 0644)) < 0) { + warn("cannot open `trek.dump'"); + return; + } version = VERSION; write(fd, &version, sizeof version); /* output the main data areas */ - for (d = Dump_template; d->area; d++) - { + for (d = Dump_template; d->area; d++) { write(fd, &d->area, sizeof d->area); i = d->count; write(fd, d->area, i); @@ -112,18 +116,19 @@ dumpgame() ** Return value is zero for success, one for failure. */ -restartgame() +int +restartgame(void) { - register int fd; + int fd; int version; - if ((fd = open("trek.dump", 0)) < 0 || + if ((fd = open("trek.dump", O_RDONLY)) < 0 || read(fd, &version, sizeof version) != sizeof version || version != VERSION || - readdump(fd)) - { + readdump(fd)) { printf("cannot restart\n"); - close(fd); + if (fd >= 0) + close(fd); return (1); } @@ -141,18 +146,17 @@ restartgame() ** Returns zero for success, one for failure. */ -readdump(fd1) -int fd1; +static int +readdump(int fd1) { - register int fd; - register struct dump *d; - register int i; - int junk; + int fd; + struct dump *d; + int i; + long junk; fd = fd1; - for (d = Dump_template; d->area; d++) - { + for (d = Dump_template; d->area; d++) { if (read(fd, &junk, sizeof junk) != (sizeof junk)) return (1); if ((char *)junk != d->area)