
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_ */