From d6724a84e4ba41305086422afc071d9c8b92c09b Mon Sep 17 00:00:00 2001 From: dholland Date: Sat, 29 Mar 2014 21:24:26 +0000 Subject: Split hunt and huntd's includes, instead of incestuously sharing a pile of external data and function declarations between the two programs. Common constants and defines now go in hunt_common.h. Stuff that belongs only to hunt is in hunt/hunt_private.h. Stuff that belongs only to huntd is in huntd/hunt.h. Copy some declarations that are used in both programs under the same names (but are not actually the same objects) from huntd/hunt.h to hunt/hunt_private.h. Move others that are only used in hunt. Remove some entirely unused material, and tidy up standard includes. --- hunt/hunt/Makefile | 8 +- hunt/hunt/connect.c | 9 +- hunt/hunt/hunt.c | 17 +++- hunt/hunt/hunt_private.h | 97 ++++++++++++++++++ hunt/hunt/otto.c | 9 +- hunt/hunt/playit.c | 9 +- hunt/huntd/Makefile | 4 +- hunt/huntd/hunt.h | 235 +------------------------------------------- hunt/huntd/pathname.c | 12 +-- hunt/include/hunt_common.h | 238 +++++++++++++++++++++++++++++++++++++++++++++ 10 files changed, 381 insertions(+), 257 deletions(-) create mode 100644 hunt/hunt/hunt_private.h create mode 100644 hunt/include/hunt_common.h (limited to 'hunt') diff --git a/hunt/hunt/Makefile b/hunt/hunt/Makefile index 72c34768..2279cc19 100644 --- a/hunt/hunt/Makefile +++ b/hunt/hunt/Makefile @@ -1,14 +1,12 @@ -# $NetBSD: Makefile,v 1.7 2010/02/06 23:45:25 he Exp $ +# $NetBSD: Makefile,v 1.8 2014/03/29 21:24:26 dholland Exp $ PROG= hunt -SRCS= connect.c hunt.c otto.c playit.c pathname.c +SRCS= connect.c hunt.c otto.c playit.c MAN= hunt.6 LDADD= -lcurses -lterminfo DPADD= ${LIBCURSES} ${LIBTERMINFO} HIDEGAME=hidegame -CPPFLAGS+=-I${.CURDIR}/../huntd - -.PATH: ${.CURDIR}/../huntd +CPPFLAGS+=-I${.CURDIR}/../include .include diff --git a/hunt/hunt/connect.c b/hunt/hunt/connect.c index 8f86bcd8..f1d35334 100644 --- a/hunt/hunt/connect.c +++ b/hunt/hunt/connect.c @@ -1,4 +1,4 @@ -/* $NetBSD: connect.c,v 1.8 2009/07/04 05:01:16 dholland Exp $ */ +/* $NetBSD: connect.c,v 1.9 2014/03/29 21:24:26 dholland Exp $ */ /* * Copyright (c) 1983-2003, Regents of the University of California. * All rights reserved. @@ -32,13 +32,16 @@ #include #ifndef lint -__RCSID("$NetBSD: connect.c,v 1.8 2009/07/04 05:01:16 dholland Exp $"); +__RCSID("$NetBSD: connect.c,v 1.9 2014/03/29 21:24:26 dholland Exp $"); #endif /* not lint */ -#include "hunt.h" +#include #include #include +#include "hunt_common.h" +#include "hunt_private.h" + void do_connect(char *name, char team, long enter_status) { diff --git a/hunt/hunt/hunt.c b/hunt/hunt/hunt.c index 6f1cab08..61838fdf 100644 --- a/hunt/hunt/hunt.c +++ b/hunt/hunt/hunt.c @@ -1,4 +1,4 @@ -/* $NetBSD: hunt.c,v 1.43 2014/03/29 20:53:55 dholland Exp $ */ +/* $NetBSD: hunt.c,v 1.44 2014/03/29 21:24:26 dholland Exp $ */ /* * Copyright (c) 1983-2003, Regents of the University of California. * All rights reserved. @@ -32,7 +32,7 @@ #include #ifndef lint -__RCSID("$NetBSD: hunt.c,v 1.43 2014/03/29 20:53:55 dholland Exp $"); +__RCSID("$NetBSD: hunt.c,v 1.44 2014/03/29 21:24:26 dholland Exp $"); #endif /* not lint */ #include @@ -49,12 +49,23 @@ __RCSID("$NetBSD: hunt.c,v 1.43 2014/03/29 20:53:55 dholland Exp $"); #include #include -#include "hunt.h" +#include "hunt_common.h" +#include "hunt_private.h" #define clear_eol() clrtoeol() #define put_ch addch #define put_str addstr +#ifdef DEBUG +char *Driver = "/home/socr/a/conrad/games/src/hunt/huntd.dbg"; +#else +const char *Driver = HUNTD; +#endif + +#ifdef INTERNET +u_short Test_port = TEST_PORT; +#endif + bool Last_player = false; #ifdef MONITOR bool Am_monitor = false; diff --git a/hunt/hunt/hunt_private.h b/hunt/hunt/hunt_private.h new file mode 100644 index 00000000..58a299c1 --- /dev/null +++ b/hunt/hunt/hunt_private.h @@ -0,0 +1,97 @@ +/* $NetBSD: hunt_private.h,v 1.1 2014/03/29 21:24:26 dholland Exp $ */ + +/* + * Copyright (c) 1983-2003, Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * + Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + 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. + * + Neither the name of the University of California, San Francisco nor + * the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include /* for BUFSIZ */ + +#ifdef INTERNET +#include +#include +#include +#include +#else +#include +#endif + +#ifdef MONITOR +#define C_TESTMSG() (Query_driver ? C_MESSAGE :\ + (Show_scores ? C_SCORES :\ + (Am_monitor ? C_MONITOR :\ + C_PLAYER))) +#else +#define C_TESTMSG() (Show_scores ? C_SCORES :\ + (Query_driver ? C_MESSAGE :\ + C_PLAYER)) +#endif + +/* + * external variables + */ + +extern bool Last_player; + +extern const char *Driver; + +extern char Buf[BUFSIZ]; +extern int Socket; + +#ifdef INTERNET +extern u_short Test_port; +#else +extern char *Sock_name; +#endif + +#ifdef INTERNET +extern char *Send_message; +#endif + +#ifdef MONITOR +extern bool Am_monitor; +#endif + +extern char map_key[256]; +extern bool no_beep; + +/* + * function types + */ + +void bad_con(void) __dead; +void bad_ver(void) __dead; +void clear_the_screen(void); +void do_connect(char *, char, long); +void do_message(void); +void otto(int, int, char); +void playit(void); +int quit(int); +void intr(int); diff --git a/hunt/hunt/otto.c b/hunt/hunt/otto.c index 09032346..de5ef41b 100644 --- a/hunt/hunt/otto.c +++ b/hunt/hunt/otto.c @@ -1,4 +1,4 @@ -/* $NetBSD: otto.c,v 1.16 2014/03/29 20:52:13 dholland Exp $ */ +/* $NetBSD: otto.c,v 1.17 2014/03/29 21:24:26 dholland Exp $ */ #ifdef OTTO /* * Copyright (c) 1983-2003, Regents of the University of California. @@ -45,7 +45,7 @@ #include #ifndef lint -__RCSID("$NetBSD: otto.c,v 1.16 2014/03/29 20:52:13 dholland Exp $"); +__RCSID("$NetBSD: otto.c,v 1.17 2014/03/29 21:24:26 dholland Exp $"); #endif /* not lint */ #include @@ -53,8 +53,11 @@ __RCSID("$NetBSD: otto.c,v 1.16 2014/03/29 20:52:13 dholland Exp $"); #include #include #include +#include #include -#include "hunt.h" + +#include "hunt_common.h" +#include "hunt_private.h" #undef WALL #undef NORTH diff --git a/hunt/hunt/playit.c b/hunt/hunt/playit.c index 80c46324..4f52131c 100644 --- a/hunt/hunt/playit.c +++ b/hunt/hunt/playit.c @@ -1,4 +1,4 @@ -/* $NetBSD: playit.c,v 1.17 2014/03/29 20:52:13 dholland Exp $ */ +/* $NetBSD: playit.c,v 1.18 2014/03/29 21:24:26 dholland Exp $ */ /* * Copyright (c) 1983-2003, Regents of the University of California. * All rights reserved. @@ -32,7 +32,7 @@ #include #ifndef lint -__RCSID("$NetBSD: playit.c,v 1.17 2014/03/29 20:52:13 dholland Exp $"); +__RCSID("$NetBSD: playit.c,v 1.18 2014/03/29 21:24:26 dholland Exp $"); #endif /* not lint */ #include @@ -42,9 +42,12 @@ __RCSID("$NetBSD: playit.c,v 1.17 2014/03/29 20:52:13 dholland Exp $"); #include #include #include +#include #include #include -#include "hunt.h" + +#include "hunt_common.h" +#include "hunt_private.h" #ifndef FREAD #define FREAD 1 diff --git a/hunt/huntd/Makefile b/hunt/huntd/Makefile index 76e76058..ab12f185 100644 --- a/hunt/huntd/Makefile +++ b/hunt/huntd/Makefile @@ -1,8 +1,10 @@ -# $NetBSD: Makefile,v 1.3 2014/03/29 20:35:30 dholland Exp $ +# $NetBSD: Makefile,v 1.4 2014/03/29 21:24:26 dholland Exp $ PROG= huntd SRCS= answer.c draw.c driver.c execute.c expl.c \ extern.c makemaze.c pathname.c shots.c terminal.c MAN= huntd.6 +CPPFLAGS+=-I${.CURDIR}/../include + .include diff --git a/hunt/huntd/hunt.h b/hunt/huntd/hunt.h index a2a824e0..78d1891c 100644 --- a/hunt/huntd/hunt.h +++ b/hunt/huntd/hunt.h @@ -1,4 +1,4 @@ -/* $NetBSD: hunt.h,v 1.22 2014/03/29 20:16:09 dholland Exp $ */ +/* $NetBSD: hunt.h,v 1.23 2014/03/29 21:24:26 dholland Exp $ */ /* * Copyright (c) 1983-2003, Regents of the University of California. @@ -53,225 +53,16 @@ #include #endif -#ifdef INTERNET -#define SOCK_FAMILY AF_INET -#else -#define SOCK_FAMILY AF_UNIX -#define AF_UNIX_HACK /* 4.2 hack; leaves files around */ -#endif - -/* - * Preprocessor define dependencies - */ -#if defined(VOLCANO) && !defined(OOZE) -#define OOZE -#endif -#if defined(BOOTS) && !defined(FLY) -#define FLY -#endif -#if !defined(REFLECT) && !defined(RANDOM) -#define RANDOM -#endif - -/* decrement version number for each change in startup protocol */ -#define HUNT_VERSION -1 - -#define ADDCH ('a' | 0200) -#define MOVE ('m' | 0200) -#define REFRESH ('r' | 0200) -#define CLRTOEOL ('c' | 0200) -#define ENDWIN ('e' | 0200) -#define CLEAR ('C' | 0200) -#define REDRAW ('R' | 0200) -#define LAST_PLAYER ('l' | 0200) -#define BELL ('b' | 0200) -#define READY ('g' | 0200) - -/* - * Choose MAXPL and MAXMON carefully. The screen is assumed to be - * 23 lines high and will only tolerate (MAXPL == 17 && MAXMON == 0) - * or (MAXPL + MAXMON <= 16). - */ -#ifdef MONITOR -#define MAXPL 15 -#define MAXMON 1 -#else -#define MAXPL 17 -#define MAXMON 0 -#endif -#define SHORTLEN 2 /* sizeof (network short) */ -#define LONGLEN 4 /* sizeof (network long) */ -#define NAMELEN 20 -#define MSGLEN SCREEN_WIDTH -#define DECAY 50.0 - -#define NASCII 128 - -#define WIDTH 51 -#define WIDTH2 64 /* Next power of 2 >= WIDTH (for fast access) */ -#define HEIGHT 23 -#define UBOUND 1 -#define DBOUND (HEIGHT - 1) -#define LBOUND 1 -#define RBOUND (WIDTH - 1) - -#define SCREEN_HEIGHT 24 -#define SCREEN_WIDTH 80 -#define SCREEN_WIDTH2 128 /* Next power of 2 >= SCREEN_WIDTH */ - -#define STAT_LABEL_COL 60 -#define STAT_VALUE_COL 74 -#define STAT_NAME_COL 61 -#define STAT_SCAN_COL (STAT_NAME_COL + 5) -#define STAT_AMMO_ROW 0 -#define STAT_GUN_ROW 1 -#define STAT_DAM_ROW 2 -#define STAT_KILL_ROW 3 -#define STAT_PLAY_ROW 5 -#ifdef MONITOR -#define STAT_MON_ROW (STAT_PLAY_ROW + MAXPL + 1) -#endif -#define STAT_NAME_LEN 18 - -#define DOOR '#' -#define WALL1 '-' -#define WALL2 '|' -#define WALL3 '+' -#ifdef REFLECT -#define WALL4 '/' -#define WALL5 '\\' -#endif -#define KNIFE 'K' -#define SHOT ':' -#define GRENADE 'o' -#define SATCHEL 'O' -#define BOMB '@' -#define MINE ';' -#define GMINE 'g' -#ifdef OOZE -#define SLIME '$' -#endif -#ifdef VOLCANO -#define LAVA '~' -#endif -#ifdef DRONE -#define DSHOT '?' -#endif -#ifdef FLY -#define FALL 'F' -#endif -#ifdef BOOTS -#define NBOOTS 2 -#define BOOT 'b' -#define BOOT_PAIR 'B' -#endif -#define SPACE ' ' - -#define ABOVE 'i' -#define BELOW '!' -#define RIGHT '}' -#define LEFTS '{' -#ifdef FLY -#define FLYER '&' -#define isplayer(c) (c == LEFTS || c == RIGHT ||\ - c == ABOVE || c == BELOW || c == FLYER) -#else -#define isplayer(c) (c == LEFTS || c == RIGHT ||\ - c == ABOVE || c == BELOW) -#endif - -#define NORTH 01 -#define SOUTH 02 -#define EAST 010 -#define WEST 020 - -#undef CTRL -#define CTRL(x) ((x) & 037) - -#define BULSPD 5 /* bullets movement speed */ -#define ISHOTS 15 -#define NSHOTS 5 -#define MAXNCSHOT 2 -#define MAXDAM 10 -#define MINDAM 5 -#define STABDAM 2 +#include "hunt_common.h" -#define BULREQ 1 -#define GRENREQ 9 -#define SATREQ 25 -#define BOMB7REQ 49 -#define BOMB9REQ 81 -#define BOMB11REQ 121 -#define BOMB13REQ 169 -#define BOMB15REQ 225 -#define BOMB17REQ 289 -#define BOMB19REQ 361 -#define BOMB21REQ 441 -#define MAXBOMB 11 -#ifdef DRONE -#define MINDSHOT 2 /* At least a satchel bomb */ -#endif extern int shot_req[]; extern int shot_type[]; -#ifdef OOZE -#define SLIME_FACTOR 3 -#define SLIMEREQ 5 -#define SSLIMEREQ 10 -#define SLIME2REQ 15 -#define SLIME3REQ 20 -#define MAXSLIME 4 -#define SLIMESPEED 5 -extern int slime_req[]; -#endif -#ifdef VOLCANO -#define LAVASPEED 1 -#endif - -#define CLOAKLEN 20 -#define SCANLEN (Nplayer * 20) -#define EXPLEN 4 - -#define Q_QUIT 0 -#define Q_CLOAK 1 -#define Q_FLY 2 -#define Q_SCAN 3 -#define Q_MESSAGE 4 - -#define C_PLAYER 0 -#define C_MONITOR 1 -#define C_MESSAGE 2 -#define C_SCORES 3 - -#ifdef MONITOR -#define C_TESTMSG() (Query_driver ? C_MESSAGE :\ - (Show_scores ? C_SCORES :\ - (Am_monitor ? C_MONITOR :\ - C_PLAYER))) -#else -#define C_TESTMSG() (Show_scores ? C_SCORES :\ - (Query_driver ? C_MESSAGE :\ - C_PLAYER)) -#endif - -#ifdef FLY -#define _scan_char(pp) (((pp)->p_scan < 0) ? ' ' : '*') -#define _cloak_char(pp) (((pp)->p_cloak < 0) ? _scan_char(pp) : '+') -#define stat_char(pp) (((pp)->p_flying < 0) ? _cloak_char(pp) : FLYER) -#else -#define _scan_char(pp) (((pp)->p_scan < 0) ? ' ' : '*') -#define stat_char(pp) (((pp)->p_cloak < 0) ? _scan_char(pp) : '+') -#endif typedef struct bullet_def BULLET; typedef struct expl_def EXPL; typedef struct player_def PLAYER; typedef struct ident_def IDENT; typedef struct regen_def REGEN; -#ifdef INTERNET -typedef struct sockaddr_in SOCKET; -#else -typedef struct sockaddr_un SOCKET; -#endif struct ident_def { char i_name[NAMELEN]; @@ -352,12 +143,8 @@ struct regen_def { * external variables */ -extern bool Last_player; - extern char Buf[BUFSIZ], Maze[HEIGHT][WIDTH2], Orig_maze[HEIGHT][WIDTH2]; -extern const char *Driver; - extern int Nplayer, Socket, Status; extern struct pollfd fdset[]; @@ -386,37 +173,24 @@ extern PLAYER Boot[NBOOTS]; #endif #ifdef MONITOR -extern bool Am_monitor; extern PLAYER Monitor[MAXMON], *End_monitor; #endif -#ifdef INTERNET -extern char *Send_message; -#endif - -extern char map_key[256]; -extern bool no_beep; - /* * function types */ void add_shot(int, int, int, char, int, PLAYER *, int, char); int answer(void); -void bad_con(void) __dead; -void bad_ver(void) __dead; void ce(PLAYER *); void cgoto(PLAYER *, int, int); void check(PLAYER *, int, int); void checkdam(PLAYER *, PLAYER *, IDENT *, int, char); void clearwalls(void); void clear_eol(void); -void clear_the_screen(void); void clrscr(PLAYER *); BULLET *create_shot(int, int, int, char, int, int, PLAYER *, IDENT *, int, char); -void do_connect(char *, char, long); -void do_message(void); void drawmaze(PLAYER *); void drawplayer(PLAYER *, bool); void execute(PLAYER *); @@ -432,14 +206,11 @@ void mon_execute(PLAYER *); void moveshots(void); void open_ctl(void); bool opposite(int, char); -void otto(int, int, char); void outch(PLAYER *, int); void outstr(PLAYER *, const char *, int); PLAYER *play_at(int, int); -void playit(void); void put_ch(char); void put_str(char *); -int quit(int); int rand_dir(void); int rand_num(int); void rollexpl(void); @@ -447,5 +218,3 @@ void sendcom(PLAYER *, int, ...); void showexpl(int, int, char); void showstat(PLAYER *); void cleanup(int) __dead; -void intr(int); -void tstp(int); diff --git a/hunt/huntd/pathname.c b/hunt/huntd/pathname.c index e0016c55..4bb94034 100644 --- a/hunt/huntd/pathname.c +++ b/hunt/huntd/pathname.c @@ -1,4 +1,4 @@ -/* $NetBSD: pathname.c,v 1.5 2009/07/04 04:29:55 dholland Exp $ */ +/* $NetBSD: pathname.c,v 1.6 2014/03/29 21:24:26 dholland Exp $ */ /* * Copyright (c) 1983-2003, Regents of the University of California. * All rights reserved. @@ -32,7 +32,7 @@ #include #ifndef lint -__RCSID("$NetBSD: pathname.c,v 1.5 2009/07/04 04:29:55 dholland Exp $"); +__RCSID("$NetBSD: pathname.c,v 1.6 2014/03/29 21:24:26 dholland Exp $"); #endif /* not lint */ /* @@ -43,11 +43,12 @@ __RCSID("$NetBSD: pathname.c,v 1.5 2009/07/04 04:29:55 dholland Exp $"); #include +#include "hunt_common.h" + #ifdef DEBUG -char *Driver = "/home/socr/a/conrad/games/src/hunt/huntd.dbg"; #ifdef INTERNET -u_short Test_port = ('h' << 8) | 't'; +u_short Test_port = TEST_PORT; #else char *Sock_name = "/tmp/hunt"; char *Stat_name = "/tmp/hunt.stats"; @@ -55,9 +56,8 @@ char *Stat_name = "/tmp/hunt.stats"; #else -const char *Driver = HUNTD; #ifdef INTERNET -u_short Test_port = ('h' << 8) | 't'; +u_short Test_port = TEST_PORT; #else char *Sock_name = "/tmp/hunt"; char *Stat_name = "/tmp/hunt.stats"; diff --git a/hunt/include/hunt_common.h b/hunt/include/hunt_common.h new file mode 100644 index 00000000..186528df --- /dev/null +++ b/hunt/include/hunt_common.h @@ -0,0 +1,238 @@ +/* $NetBSD: hunt_common.h,v 1.1 2014/03/29 21:24:27 dholland Exp $ */ + +/* + * Copyright (c) 1983-2003, Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * + Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + 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. + * + Neither the name of the University of California, San Francisco nor + * the names of its contributors may be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#ifdef INTERNET +#define SOCK_FAMILY AF_INET +#define TEST_PORT (('h' << 8) | 't') +#else +#define SOCK_FAMILY AF_UNIX +#define AF_UNIX_HACK /* 4.2 hack; leaves files around */ +#endif + +/* + * Preprocessor define dependencies + */ +#if defined(VOLCANO) && !defined(OOZE) +#define OOZE +#endif +#if defined(BOOTS) && !defined(FLY) +#define FLY +#endif +#if !defined(REFLECT) && !defined(RANDOM) +#define RANDOM +#endif + +/* decrement version number for each change in startup protocol */ +#define HUNT_VERSION -1 + +#define ADDCH ('a' | 0200) +#define MOVE ('m' | 0200) +#define REFRESH ('r' | 0200) +#define CLRTOEOL ('c' | 0200) +#define ENDWIN ('e' | 0200) +#define CLEAR ('C' | 0200) +#define REDRAW ('R' | 0200) +#define LAST_PLAYER ('l' | 0200) +#define BELL ('b' | 0200) +#define READY ('g' | 0200) + +/* + * Choose MAXPL and MAXMON carefully. The screen is assumed to be + * 23 lines high and will only tolerate (MAXPL == 17 && MAXMON == 0) + * or (MAXPL + MAXMON <= 16). + */ +#ifdef MONITOR +#define MAXPL 15 +#define MAXMON 1 +#else +#define MAXPL 17 +#define MAXMON 0 +#endif +#define SHORTLEN 2 /* sizeof (network short) */ +#define LONGLEN 4 /* sizeof (network long) */ +#define NAMELEN 20 +#define MSGLEN SCREEN_WIDTH +#define DECAY 50.0 + +#define NASCII 128 + +#define WIDTH 51 +#define WIDTH2 64 /* Next power of 2 >= WIDTH (for fast access) */ +#define HEIGHT 23 +#define UBOUND 1 +#define DBOUND (HEIGHT - 1) +#define LBOUND 1 +#define RBOUND (WIDTH - 1) + +#define SCREEN_HEIGHT 24 +#define SCREEN_WIDTH 80 +#define SCREEN_WIDTH2 128 /* Next power of 2 >= SCREEN_WIDTH */ + +#define STAT_LABEL_COL 60 +#define STAT_VALUE_COL 74 +#define STAT_NAME_COL 61 +#define STAT_SCAN_COL (STAT_NAME_COL + 5) +#define STAT_AMMO_ROW 0 +#define STAT_GUN_ROW 1 +#define STAT_DAM_ROW 2 +#define STAT_KILL_ROW 3 +#define STAT_PLAY_ROW 5 +#ifdef MONITOR +#define STAT_MON_ROW (STAT_PLAY_ROW + MAXPL + 1) +#endif +#define STAT_NAME_LEN 18 + +#define DOOR '#' +#define WALL1 '-' +#define WALL2 '|' +#define WALL3 '+' +#ifdef REFLECT +#define WALL4 '/' +#define WALL5 '\\' +#endif +#define KNIFE 'K' +#define SHOT ':' +#define GRENADE 'o' +#define SATCHEL 'O' +#define BOMB '@' +#define MINE ';' +#define GMINE 'g' +#ifdef OOZE +#define SLIME '$' +#endif +#ifdef VOLCANO +#define LAVA '~' +#endif +#ifdef DRONE +#define DSHOT '?' +#endif +#ifdef FLY +#define FALL 'F' +#endif +#ifdef BOOTS +#define NBOOTS 2 +#define BOOT 'b' +#define BOOT_PAIR 'B' +#endif +#define SPACE ' ' + +#define ABOVE 'i' +#define BELOW '!' +#define RIGHT '}' +#define LEFTS '{' +#ifdef FLY +#define FLYER '&' +#define isplayer(c) (c == LEFTS || c == RIGHT ||\ + c == ABOVE || c == BELOW || c == FLYER) +#else +#define isplayer(c) (c == LEFTS || c == RIGHT ||\ + c == ABOVE || c == BELOW) +#endif + +#define NORTH 01 +#define SOUTH 02 +#define EAST 010 +#define WEST 020 + +#undef CTRL +#define CTRL(x) ((x) & 037) + +#define BULSPD 5 /* bullets movement speed */ +#define ISHOTS 15 +#define NSHOTS 5 +#define MAXNCSHOT 2 +#define MAXDAM 10 +#define MINDAM 5 +#define STABDAM 2 + +#define BULREQ 1 +#define GRENREQ 9 +#define SATREQ 25 +#define BOMB7REQ 49 +#define BOMB9REQ 81 +#define BOMB11REQ 121 +#define BOMB13REQ 169 +#define BOMB15REQ 225 +#define BOMB17REQ 289 +#define BOMB19REQ 361 +#define BOMB21REQ 441 +#define MAXBOMB 11 +#ifdef DRONE +#define MINDSHOT 2 /* At least a satchel bomb */ +#endif + +#ifdef OOZE +#define SLIME_FACTOR 3 +#define SLIMEREQ 5 +#define SSLIMEREQ 10 +#define SLIME2REQ 15 +#define SLIME3REQ 20 +#define MAXSLIME 4 +#define SLIMESPEED 5 +extern int slime_req[]; +#endif +#ifdef VOLCANO +#define LAVASPEED 1 +#endif + +#define CLOAKLEN 20 +#define SCANLEN (Nplayer * 20) +#define EXPLEN 4 + +#define Q_QUIT 0 +#define Q_CLOAK 1 +#define Q_FLY 2 +#define Q_SCAN 3 +#define Q_MESSAGE 4 + +#define C_PLAYER 0 +#define C_MONITOR 1 +#define C_MESSAGE 2 +#define C_SCORES 3 + +#ifdef FLY +#define _scan_char(pp) (((pp)->p_scan < 0) ? ' ' : '*') +#define _cloak_char(pp) (((pp)->p_cloak < 0) ? _scan_char(pp) : '+') +#define stat_char(pp) (((pp)->p_flying < 0) ? _cloak_char(pp) : FLYER) +#else +#define _scan_char(pp) (((pp)->p_scan < 0) ? ' ' : '*') +#define stat_char(pp) (((pp)->p_cloak < 0) ? _scan_char(pp) : '+') +#endif + +#ifdef INTERNET +typedef struct sockaddr_in SOCKET; +#else +typedef struct sockaddr_un SOCKET; +#endif + -- cgit v1.2.3-56-ge451