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