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