hunt_common.h revision 1.4.8.2 1 1.4.8.2 tls /* $NetBSD: hunt_common.h,v 1.4.8.2 2014/08/20 00:00:23 tls Exp $ */
2 1.4.8.2 tls
3 1.4.8.2 tls /*
4 1.4.8.2 tls * Copyright (c) 1983-2003, Regents of the University of California.
5 1.4.8.2 tls * All rights reserved.
6 1.4.8.2 tls *
7 1.4.8.2 tls * Redistribution and use in source and binary forms, with or without
8 1.4.8.2 tls * modification, are permitted provided that the following conditions are
9 1.4.8.2 tls * met:
10 1.4.8.2 tls *
11 1.4.8.2 tls * + Redistributions of source code must retain the above copyright
12 1.4.8.2 tls * notice, this list of conditions and the following disclaimer.
13 1.4.8.2 tls * + Redistributions in binary form must reproduce the above copyright
14 1.4.8.2 tls * notice, this list of conditions and the following disclaimer in the
15 1.4.8.2 tls * documentation and/or other materials provided with the distribution.
16 1.4.8.2 tls * + Neither the name of the University of California, San Francisco nor
17 1.4.8.2 tls * the names of its contributors may be used to endorse or promote
18 1.4.8.2 tls * products derived from this software without specific prior written
19 1.4.8.2 tls * permission.
20 1.4.8.2 tls *
21 1.4.8.2 tls * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
22 1.4.8.2 tls * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
23 1.4.8.2 tls * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
24 1.4.8.2 tls * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 1.4.8.2 tls * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 1.4.8.2 tls * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 1.4.8.2 tls * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 1.4.8.2 tls * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 1.4.8.2 tls * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 1.4.8.2 tls * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 1.4.8.2 tls * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 1.4.8.2 tls */
33 1.4.8.2 tls
34 1.4.8.2 tls
35 1.4.8.2 tls /*
36 1.4.8.2 tls * There is no particular significance to the numbers assigned
37 1.4.8.2 tls * to Test_port. They're just random numbers greater than the
38 1.4.8.2 tls * range reserved for privileged sockets.
39 1.4.8.2 tls */
40 1.4.8.2 tls
41 1.4.8.2 tls #ifdef INTERNET
42 1.4.8.2 tls #define SOCK_FAMILY AF_INET
43 1.4.8.2 tls #define TEST_PORT (('h' << 8) | 't')
44 1.4.8.2 tls #else
45 1.4.8.2 tls #define SOCK_FAMILY AF_UNIX
46 1.4.8.2 tls #define AF_UNIX_HACK /* 4.2 hack; leaves files around */
47 1.4.8.2 tls #endif
48 1.4.8.2 tls
49 1.4.8.2 tls /*
50 1.4.8.2 tls * Preprocessor define dependencies
51 1.4.8.2 tls */
52 1.4.8.2 tls #if defined(VOLCANO) && !defined(OOZE)
53 1.4.8.2 tls #define OOZE
54 1.4.8.2 tls #endif
55 1.4.8.2 tls #if defined(BOOTS) && !defined(FLY)
56 1.4.8.2 tls #define FLY
57 1.4.8.2 tls #endif
58 1.4.8.2 tls #if !defined(REFLECT) && !defined(RANDOM)
59 1.4.8.2 tls #define RANDOM
60 1.4.8.2 tls #endif
61 1.4.8.2 tls
62 1.4.8.2 tls /* decrement version number for each change in startup protocol */
63 1.4.8.2 tls #define HUNT_VERSION -1
64 1.4.8.2 tls
65 1.4.8.2 tls #define ADDCH ('a' | 0200)
66 1.4.8.2 tls #define MOVE ('m' | 0200)
67 1.4.8.2 tls #define REFRESH ('r' | 0200)
68 1.4.8.2 tls #define CLRTOEOL ('c' | 0200)
69 1.4.8.2 tls #define ENDWIN ('e' | 0200)
70 1.4.8.2 tls #define CLEAR ('C' | 0200)
71 1.4.8.2 tls #define REDRAW ('R' | 0200)
72 1.4.8.2 tls #define LAST_PLAYER ('l' | 0200)
73 1.4.8.2 tls #define BELL ('b' | 0200)
74 1.4.8.2 tls #define READY ('g' | 0200)
75 1.4.8.2 tls
76 1.4.8.2 tls /*
77 1.4.8.2 tls * Choose MAXPL and MAXMON carefully. The screen is assumed to be
78 1.4.8.2 tls * 23 lines high and will only tolerate (MAXPL == 17 && MAXMON == 0)
79 1.4.8.2 tls * or (MAXPL + MAXMON <= 16).
80 1.4.8.2 tls */
81 1.4.8.2 tls #ifdef MONITOR
82 1.4.8.2 tls #define MAXPL 15
83 1.4.8.2 tls #define MAXMON 1
84 1.4.8.2 tls #else
85 1.4.8.2 tls #define MAXPL 17
86 1.4.8.2 tls #define MAXMON 0
87 1.4.8.2 tls #endif
88 1.4.8.2 tls #define WIRE_NAMELEN 20
89 1.4.8.2 tls #define MSGLEN SCREEN_WIDTH
90 1.4.8.2 tls #define DECAY 50.0
91 1.4.8.2 tls
92 1.4.8.2 tls #define NASCII 128
93 1.4.8.2 tls
94 1.4.8.2 tls #define WIDTH 51
95 1.4.8.2 tls #define WIDTH2 64 /* Next power of 2 >= WIDTH (for fast access) */
96 1.4.8.2 tls #define HEIGHT 23
97 1.4.8.2 tls #define UBOUND 1
98 1.4.8.2 tls #define DBOUND (HEIGHT - 1)
99 1.4.8.2 tls #define LBOUND 1
100 1.4.8.2 tls #define RBOUND (WIDTH - 1)
101 1.4.8.2 tls
102 1.4.8.2 tls #define SCREEN_HEIGHT 24
103 1.4.8.2 tls #define SCREEN_WIDTH 80
104 1.4.8.2 tls #define SCREEN_WIDTH2 128 /* Next power of 2 >= SCREEN_WIDTH */
105 1.4.8.2 tls
106 1.4.8.2 tls #define STAT_LABEL_COL 60
107 1.4.8.2 tls #define STAT_VALUE_COL 74
108 1.4.8.2 tls #define STAT_NAME_COL 61
109 1.4.8.2 tls #define STAT_SCAN_COL (STAT_NAME_COL + 5)
110 1.4.8.2 tls #define STAT_AMMO_ROW 0
111 1.4.8.2 tls #define STAT_GUN_ROW 1
112 1.4.8.2 tls #define STAT_DAM_ROW 2
113 1.4.8.2 tls #define STAT_KILL_ROW 3
114 1.4.8.2 tls #define STAT_PLAY_ROW 5
115 1.4.8.2 tls #ifdef MONITOR
116 1.4.8.2 tls #define STAT_MON_ROW (STAT_PLAY_ROW + MAXPL + 1)
117 1.4.8.2 tls #endif
118 1.4.8.2 tls #define STAT_NAME_LEN 18
119 1.4.8.2 tls
120 1.4.8.2 tls #define DOOR '#'
121 1.4.8.2 tls #define WALL1 '-'
122 1.4.8.2 tls #define WALL2 '|'
123 1.4.8.2 tls #define WALL3 '+'
124 1.4.8.2 tls #ifdef REFLECT
125 1.4.8.2 tls #define WALL4 '/'
126 1.4.8.2 tls #define WALL5 '\\'
127 1.4.8.2 tls #endif
128 1.4.8.2 tls #define KNIFE 'K'
129 1.4.8.2 tls #define SHOT ':'
130 1.4.8.2 tls #define GRENADE 'o'
131 1.4.8.2 tls #define SATCHEL 'O'
132 1.4.8.2 tls #define BOMB '@'
133 1.4.8.2 tls #define MINE ';'
134 1.4.8.2 tls #define GMINE 'g'
135 1.4.8.2 tls #ifdef OOZE
136 1.4.8.2 tls #define SLIME '$'
137 1.4.8.2 tls #endif
138 1.4.8.2 tls #ifdef VOLCANO
139 1.4.8.2 tls #define LAVA '~'
140 1.4.8.2 tls #endif
141 1.4.8.2 tls #ifdef DRONE
142 1.4.8.2 tls #define DSHOT '?'
143 1.4.8.2 tls #endif
144 1.4.8.2 tls #ifdef FLY
145 1.4.8.2 tls #define FALL 'F'
146 1.4.8.2 tls #endif
147 1.4.8.2 tls #ifdef BOOTS
148 1.4.8.2 tls #define NBOOTS 2
149 1.4.8.2 tls #define BOOT 'b'
150 1.4.8.2 tls #define BOOT_PAIR 'B'
151 1.4.8.2 tls #endif
152 1.4.8.2 tls #define SPACE ' '
153 1.4.8.2 tls
154 1.4.8.2 tls #define ABOVE 'i'
155 1.4.8.2 tls #define BELOW '!'
156 1.4.8.2 tls #define RIGHT '}'
157 1.4.8.2 tls #define LEFTS '{'
158 1.4.8.2 tls #ifdef FLY
159 1.4.8.2 tls #define FLYER '&'
160 1.4.8.2 tls #define isplayer(c) (c == LEFTS || c == RIGHT ||\
161 1.4.8.2 tls c == ABOVE || c == BELOW || c == FLYER)
162 1.4.8.2 tls #else
163 1.4.8.2 tls #define isplayer(c) (c == LEFTS || c == RIGHT ||\
164 1.4.8.2 tls c == ABOVE || c == BELOW)
165 1.4.8.2 tls #endif
166 1.4.8.2 tls
167 1.4.8.2 tls #define NORTH 01
168 1.4.8.2 tls #define SOUTH 02
169 1.4.8.2 tls #define EAST 010
170 1.4.8.2 tls #define WEST 020
171 1.4.8.2 tls
172 1.4.8.2 tls #undef CTRL
173 1.4.8.2 tls #define CTRL(x) ((x) & 037)
174 1.4.8.2 tls
175 1.4.8.2 tls #define BULSPD 5 /* bullets movement speed */
176 1.4.8.2 tls #define ISHOTS 15
177 1.4.8.2 tls #define NSHOTS 5
178 1.4.8.2 tls #define MAXNCSHOT 2
179 1.4.8.2 tls #define MAXDAM 10
180 1.4.8.2 tls #define MINDAM 5
181 1.4.8.2 tls #define STABDAM 2
182 1.4.8.2 tls
183 1.4.8.2 tls #define BULREQ 1
184 1.4.8.2 tls #define GRENREQ 9
185 1.4.8.2 tls #define SATREQ 25
186 1.4.8.2 tls #define BOMB7REQ 49
187 1.4.8.2 tls #define BOMB9REQ 81
188 1.4.8.2 tls #define BOMB11REQ 121
189 1.4.8.2 tls #define BOMB13REQ 169
190 1.4.8.2 tls #define BOMB15REQ 225
191 1.4.8.2 tls #define BOMB17REQ 289
192 1.4.8.2 tls #define BOMB19REQ 361
193 1.4.8.2 tls #define BOMB21REQ 441
194 1.4.8.2 tls #define MAXBOMB 11
195 1.4.8.2 tls #ifdef DRONE
196 1.4.8.2 tls #define MINDSHOT 2 /* At least a satchel bomb */
197 1.4.8.2 tls #endif
198 1.4.8.2 tls
199 1.4.8.2 tls #ifdef OOZE
200 1.4.8.2 tls #define SLIME_FACTOR 3
201 1.4.8.2 tls #define SLIMEREQ 5
202 1.4.8.2 tls #define SSLIMEREQ 10
203 1.4.8.2 tls #define SLIME2REQ 15
204 1.4.8.2 tls #define SLIME3REQ 20
205 1.4.8.2 tls #define MAXSLIME 4
206 1.4.8.2 tls #define SLIMESPEED 5
207 1.4.8.2 tls #endif
208 1.4.8.2 tls #ifdef VOLCANO
209 1.4.8.2 tls #define LAVASPEED 1
210 1.4.8.2 tls #endif
211 1.4.8.2 tls
212 1.4.8.2 tls #define CLOAKLEN 20
213 1.4.8.2 tls #define SCANLEN (Nplayer * 20)
214 1.4.8.2 tls #define EXPLEN 4
215 1.4.8.2 tls
216 1.4.8.2 tls #define Q_QUIT 0
217 1.4.8.2 tls #define Q_CLOAK 1
218 1.4.8.2 tls #define Q_FLY 2
219 1.4.8.2 tls #define Q_SCAN 3
220 1.4.8.2 tls #define Q_MESSAGE 4
221 1.4.8.2 tls
222 1.4.8.2 tls #define C_PLAYER 0
223 1.4.8.2 tls #define C_MONITOR 1
224 1.4.8.2 tls #define C_MESSAGE 2
225 1.4.8.2 tls #define C_SCORES 3
226 1.4.8.2 tls
227 1.4.8.2 tls #ifdef FLY
228 1.4.8.2 tls #define _scan_char(pp) (((pp)->p_scan < 0) ? ' ' : '*')
229 1.4.8.2 tls #define _cloak_char(pp) (((pp)->p_cloak < 0) ? _scan_char(pp) : '+')
230 1.4.8.2 tls #define stat_char(pp) (((pp)->p_flying < 0) ? _cloak_char(pp) : FLYER)
231 1.4.8.2 tls #else
232 1.4.8.2 tls #define _scan_char(pp) (((pp)->p_scan < 0) ? ' ' : '*')
233 1.4.8.2 tls #define stat_char(pp) (((pp)->p_cloak < 0) ? _scan_char(pp) : '+')
234 1.4.8.2 tls #endif
235 1.4.8.2 tls
236 1.4.8.2 tls #ifdef INTERNET
237 1.4.8.2 tls typedef struct sockaddr_in SOCKET;
238 1.4.8.2 tls #else
239 1.4.8.2 tls typedef struct sockaddr_un SOCKET;
240 1.4.8.2 tls #endif
241 1.4.8.2 tls
242