|
|
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.