(linenum→info "unix/slp.c:2238")

bsd-games/2.17/hack/def.rm.h

    1: /*      $NetBSD: def.rm.h,v 1.6 2003/04/02 18:36:35 jsm Exp $        */
    2: 
    3: /*
    4:  * Copyright (c) 1985, Stichting Centrum voor Wiskunde en Informatica,
    5:  * Amsterdam
    6:  * All rights reserved.
    7:  *
    8:  * Redistribution and use in source and binary forms, with or without
    9:  * modification, are permitted provided that the following conditions are
   10:  * met:
   11:  *
   12:  * - Redistributions of source code must retain the above copyright notice,
   13:  * this list of conditions and the following disclaimer.
   14:  *
   15:  * - Redistributions in binary form must reproduce the above copyright
   16:  * notice, this list of conditions and the following disclaimer in the
   17:  * documentation and/or other materials provided with the distribution.
   18:  *
   19:  * - Neither the name of the Stichting Centrum voor Wiskunde en
   20:  * Informatica, nor the names of its contributors may be used to endorse or
   21:  * promote products derived from this software without specific prior
   22:  * written permission.
   23:  *
   24:  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
   25:  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   26:  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
   27:  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
   28:  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   29:  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   30:  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   31:  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   32:  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   33:  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   34:  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   35:  */
   36: 
   37: /*
   38:  * Copyright (c) 1982 Jay Fenlason <hack@gnu.org>
   39:  * All rights reserved.
   40:  *
   41:  * Redistribution and use in source and binary forms, with or without
   42:  * modification, are permitted provided that the following conditions
   43:  * are met:
   44:  * 1. Redistributions of source code must retain the above copyright
   45:  *    notice, this list of conditions and the following disclaimer.
   46:  * 2. Redistributions in binary form must reproduce the above copyright
   47:  *    notice, this list of conditions and the following disclaimer in the
   48:  *    documentation and/or other materials provided with the distribution.
   49:  * 3. The name of the author may not be used to endorse or promote products
   50:  *    derived from this software without specific prior written permission.
   51:  *
   52:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
   53:  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
   54:  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
   55:  * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   56:  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   57:  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
   58:  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
   59:  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
   60:  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
   61:  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   62:  */
   63: 
   64: #ifndef _DEF_RM_H_
   65: #define _DEF_RM_H_
   66: /* Level location types */
   67: #define HWALL 1
   68: #define VWALL 2
   69: #define SDOOR 3
   70: #define SCORR 4
   71: #define LDOOR 5
   72: #define POOL    6  /* not yet fully implemented */
   73:                         /* this should in fact be a bit like lit */
   74: #define DOOR 7
   75: #define CORR 8
   76: #define ROOM 9
   77: #define STAIRS 10
   78: 
   79: /*
   80:  * Avoid using the level types in inequalities:
   81:  *  these types are subject to change.
   82:  * Instead, use one of the macros below.
   83:  */
   84: #define IS_WALL(typ)    ((typ) <= VWALL)
   85: #define IS_ROCK(typ)    ((typ) < POOL)             /* absolutely nonaccessible */
   86: #define ACCESSIBLE(typ) ((typ) >= DOOR)                 /* good position */
   87: #define IS_ROOM(typ)            ((typ) >= ROOM)           /* ROOM or STAIRS */
   88: #define ZAP_POS(typ)            ((typ) > DOOR)
   89: 
   90: /*
   91:  * A few of the associated symbols are not hardwired.
   92:  */
   93: #ifdef QUEST
   94: #define CORR_SYM        ':'
   95: #else
   96: #define CORR_SYM        '#'
   97: #endif /* QUEST */
   98: #define POOL_SYM        '}'
   99: 
  100: #define ERRCHAR '{'
  101: 
  102: /*
  103:  * The structure describing a coordinate position.
  104:  * Before adding fields, remember that this will significantly affect
  105:  * the size of temporary files and save files.
  106:  */
  107: struct rm {
  108:         char scrsym;
  109:         unsigned typ:5;
  110:         unsigned new:1;
  111:         unsigned seen:1;
  112:         unsigned lit:1;
  113: };
  114: extern struct rm levl[COLNO][ROWNO];
  115: #endif /* _DEF_RM_H_ */
Syntax (Markdown)