1*86d7f5d3SJohn Marino /*- 2*86d7f5d3SJohn Marino * Copyright (c) 1983-2003, Regents of the University of California. 3*86d7f5d3SJohn Marino * All rights reserved. 4*86d7f5d3SJohn Marino * 5*86d7f5d3SJohn Marino * Redistribution and use in source and binary forms, with or without 6*86d7f5d3SJohn Marino * modification, are permitted provided that the following conditions are 7*86d7f5d3SJohn Marino * met: 8*86d7f5d3SJohn Marino * 9*86d7f5d3SJohn Marino * 1. Redistributions of source code must retain the above copyright 10*86d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer. 11*86d7f5d3SJohn Marino * 2. Redistributions in binary form must reproduce the above copyright 12*86d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer in the 13*86d7f5d3SJohn Marino * documentation and/or other materials provided with the distribution. 14*86d7f5d3SJohn Marino * 3. Neither the name of the University of California, San Francisco nor 15*86d7f5d3SJohn Marino * the names of its contributors may be used to endorse or promote 16*86d7f5d3SJohn Marino * products derived from this software without specific prior written 17*86d7f5d3SJohn Marino * permission. 18*86d7f5d3SJohn Marino * 19*86d7f5d3SJohn Marino * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 20*86d7f5d3SJohn Marino * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21*86d7f5d3SJohn Marino * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 22*86d7f5d3SJohn Marino * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23*86d7f5d3SJohn Marino * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24*86d7f5d3SJohn Marino * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25*86d7f5d3SJohn Marino * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26*86d7f5d3SJohn Marino * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27*86d7f5d3SJohn Marino * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28*86d7f5d3SJohn Marino * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29*86d7f5d3SJohn Marino * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30*86d7f5d3SJohn Marino * 31*86d7f5d3SJohn Marino * $OpenBSD: hunt.h,v 1.5 2003/06/11 08:45:33 pjanzen Exp $ 32*86d7f5d3SJohn Marino * $NetBSD: hunt.h,v 1.5 1998/09/13 15:27:28 hubertf Exp $ 33*86d7f5d3SJohn Marino * $DragonFly: src/games/hunt/huntd/hunt.h,v 1.1 2008/09/02 21:50:21 dillon Exp $ 34*86d7f5d3SJohn Marino */ 35*86d7f5d3SJohn Marino 36*86d7f5d3SJohn Marino /* 37*86d7f5d3SJohn Marino * Preprocessor define dependencies 38*86d7f5d3SJohn Marino */ 39*86d7f5d3SJohn Marino 40*86d7f5d3SJohn Marino /* decrement version number for each change in startup protocol */ 41*86d7f5d3SJohn Marino # define HUNT_VERSION (-1) 42*86d7f5d3SJohn Marino # define HUNT_PORT (('h' << 8) | 't') 43*86d7f5d3SJohn Marino 44*86d7f5d3SJohn Marino # define ADDCH ('a' | 0200) 45*86d7f5d3SJohn Marino # define MOVE ('m' | 0200) 46*86d7f5d3SJohn Marino # define REFRESH ('r' | 0200) 47*86d7f5d3SJohn Marino # define CLRTOEOL ('c' | 0200) 48*86d7f5d3SJohn Marino # define ENDWIN ('e' | 0200) 49*86d7f5d3SJohn Marino # define CLEAR ('C' | 0200) 50*86d7f5d3SJohn Marino # define REDRAW ('R' | 0200) 51*86d7f5d3SJohn Marino # define LAST_PLAYER ('l' | 0200) 52*86d7f5d3SJohn Marino # define BELL ('b' | 0200) 53*86d7f5d3SJohn Marino # define READY ('g' | 0200) 54*86d7f5d3SJohn Marino 55*86d7f5d3SJohn Marino # define SCREEN_HEIGHT 24 56*86d7f5d3SJohn Marino # define SCREEN_WIDTH 80 57*86d7f5d3SJohn Marino # define HEIGHT 23 58*86d7f5d3SJohn Marino # define WIDTH 51 59*86d7f5d3SJohn Marino # define SCREEN_WIDTH2 128 /* Next power of 2 >= SCREEN_WIDTH */ 60*86d7f5d3SJohn Marino # define WIDTH2 64 /* Next power of 2 >= WIDTH (for fast access) */ 61*86d7f5d3SJohn Marino 62*86d7f5d3SJohn Marino # define NAMELEN 20 63*86d7f5d3SJohn Marino 64*86d7f5d3SJohn Marino # define Q_QUIT 0 65*86d7f5d3SJohn Marino # define Q_CLOAK 1 66*86d7f5d3SJohn Marino # define Q_FLY 2 67*86d7f5d3SJohn Marino # define Q_SCAN 3 68*86d7f5d3SJohn Marino # define Q_MESSAGE 4 69*86d7f5d3SJohn Marino 70*86d7f5d3SJohn Marino # define C_PLAYER 0 71*86d7f5d3SJohn Marino # define C_MONITOR 1 72*86d7f5d3SJohn Marino # define C_MESSAGE 2 73*86d7f5d3SJohn Marino # define C_SCORES 3 74*86d7f5d3SJohn Marino # define C_TESTMSG() (Query_driver ? C_MESSAGE :\ 75*86d7f5d3SJohn Marino (Show_scores ? C_SCORES :\ 76*86d7f5d3SJohn Marino (Am_monitor ? C_MONITOR :\ 77*86d7f5d3SJohn Marino C_PLAYER))) 78*86d7f5d3SJohn Marino 79*86d7f5d3SJohn Marino typedef int FLAG; 80*86d7f5d3SJohn Marino 81*86d7f5d3SJohn Marino /* Objects within the maze: */ 82*86d7f5d3SJohn Marino 83*86d7f5d3SJohn Marino # define DOOR '#' 84*86d7f5d3SJohn Marino # define WALL1 '-' 85*86d7f5d3SJohn Marino # define WALL2 '|' 86*86d7f5d3SJohn Marino # define WALL3 '+' 87*86d7f5d3SJohn Marino # define WALL4 '/' 88*86d7f5d3SJohn Marino # define WALL5 '\\' 89*86d7f5d3SJohn Marino # define KNIFE 'K' 90*86d7f5d3SJohn Marino # define SHOT ':' 91*86d7f5d3SJohn Marino # define GRENADE 'o' 92*86d7f5d3SJohn Marino # define SATCHEL 'O' 93*86d7f5d3SJohn Marino # define BOMB '@' 94*86d7f5d3SJohn Marino # define MINE ';' 95*86d7f5d3SJohn Marino # define GMINE 'g' 96*86d7f5d3SJohn Marino # define SLIME '$' 97*86d7f5d3SJohn Marino # define LAVA '~' 98*86d7f5d3SJohn Marino # define DSHOT '?' 99*86d7f5d3SJohn Marino # define FALL 'F' 100*86d7f5d3SJohn Marino # define BOOT 'b' 101*86d7f5d3SJohn Marino # define BOOT_PAIR 'B' 102*86d7f5d3SJohn Marino 103*86d7f5d3SJohn Marino # define SPACE ' ' 104*86d7f5d3SJohn Marino 105*86d7f5d3SJohn Marino # define ABOVE 'i' 106*86d7f5d3SJohn Marino # define BELOW '!' 107*86d7f5d3SJohn Marino # define RIGHT '}' 108*86d7f5d3SJohn Marino # define LEFTS '{' 109*86d7f5d3SJohn Marino # define FLYER '&' 110*86d7f5d3SJohn Marino # define is_player(c) (c == LEFTS || c == RIGHT ||\ 111*86d7f5d3SJohn Marino c == ABOVE || c == BELOW || c == FLYER) 112*86d7f5d3SJohn Marino 113*86d7f5d3SJohn Marino # ifndef TRUE 114*86d7f5d3SJohn Marino # define TRUE 1 115*86d7f5d3SJohn Marino # define FALSE 0 116*86d7f5d3SJohn Marino # endif 117*86d7f5d3SJohn Marino 118