home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / HACKSRC.ZIP / RM.H < prev    next >
C/C++ Source or Header  |  1985-10-16  |  2KB  |  65 lines

  1. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  2. /* 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. #ifdef MSDOS
  46. /* Save disk space by using unsigned char's instead of unsigned ints
  47.  */
  48. struct rm {
  49.     char scrsym;
  50.     uchar typ:5;
  51.     uchar new:1;
  52.     uchar seen:1;
  53.     uchar lit:1;
  54. };
  55. #else
  56. struct rm {
  57.     char scrsym;
  58.     unsigned typ:5;
  59.     unsigned new:1;
  60.     unsigned seen:1;
  61.     unsigned lit:1;
  62. };
  63. #endif MSDOS
  64. extern struct rm levl[COLNO][ROWNO];
  65.