1 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 2 /* def.rm.h - version 1.0.2 */ 3 /* $DragonFly: src/games/hack/def.rm.h,v 1.2 2004/11/06 12:29:17 eirikn Exp $ */ 4 5 /* Level location types */ 6 #define HWALL 1 7 #define VWALL 2 8 #define SDOOR 3 9 #define SCORR 4 10 #define LDOOR 5 11 #define POOL 6 /* not yet fully implemented */ 12 /* this should in fact be a bit like lit */ 13 #define DOOR 7 14 #define CORR 8 15 #define ROOM 9 16 #define STAIRS 10 17 18 /* 19 * Avoid using the level types in inequalities: 20 * these types are subject to change. 21 * Instead, use one of the macros below. 22 */ 23 #define IS_WALL(typ) ((typ) <= VWALL) 24 #define IS_ROCK(typ) ((typ) < POOL) /* absolutely nonaccessible */ 25 #define ACCESSIBLE(typ) ((typ) >= DOOR) /* good position */ 26 #define IS_ROOM(typ) ((typ) >= ROOM) /* ROOM or STAIRS */ 27 #define ZAP_POS(typ) ((typ) > DOOR) 28 29 /* 30 * A few of the associated symbols are not hardwired. 31 */ 32 #ifdef QUEST 33 #define CORR_SYM ':' 34 #else 35 #define CORR_SYM '#' 36 #endif /* QUEST */ 37 #define POOL_SYM '}' 38 39 #define ERRCHAR '{' 40 41 /* 42 * The structure describing a coordinate position. 43 * Before adding fields, remember that this will significantly affect 44 * the size of temporary files and save files. 45 */ 46 struct rm { 47 char scrsym; 48 unsigned typ:5; 49 unsigned new:1; 50 unsigned seen:1; 51 unsigned lit:1; 52 }; 53 extern struct rm levl[COLNO][ROWNO]; 54