summaryrefslogtreecommitdiffstats
path: root/hunt/include/hunt_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'hunt/include/hunt_common.h')
-rw-r--r--hunt/include/hunt_common.h238
1 files changed, 238 insertions, 0 deletions
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
+