home *** CD-ROM | disk | FTP | other *** search
/ vsiftp.vmssoftware.com / VSIPUBLIC@vsiftp.vmssoftware.com.tar / FREEWARE / FREEWARE40.ZIP / xsokoban-31 / globals.h < prev    next >
C/C++ Source or Header  |  1994-03-05  |  2KB  |  95 lines

  1. #include "config.h"
  2. /*****************************************************************************\
  3.  *  Stuff in this file shouldn't ever need to be changed.                    *
  4. \*****************************************************************************/
  5.  
  6. #ifdef VICE
  7. extern int PlayerUID;
  8. #define getuid() PlayerUID
  9. #define geteuid() PlayerUID
  10. #endif
  11.  
  12. #define BUFSIZE 256
  13.  
  14. /* internal object representation */
  15. #define   player    '@'
  16. #define   playerstore    '+'
  17. #define   store        '.'
  18. #define   packet    '$'
  19. #define   save        '*'
  20. #define   ground    ' '
  21. #define   wall        '#'
  22.  
  23. /* maximum possible size of a board */
  24. #define MAXROW        20
  25. #define MAXCOL        20
  26.  
  27. /* player position for movement */
  28. typedef struct {
  29.    short x, y;
  30. } POS;
  31.  
  32. /* list of possible errors */
  33. #define E_FOPENSCREEN    1
  34. #define E_PLAYPOS1    2
  35. #define E_ILLCHAR    3
  36. #define E_PLAYPOS2    4
  37. #define E_TOMUCHROWS    5
  38. #define E_TOMUCHCOLS    6
  39. #define E_ENDGAME    7
  40. #define E_NOUSER    8
  41. #define E_FOPENSAVE    9
  42. #define E_WRITESAVE    10
  43. #define E_STATSAVE    11
  44. #define E_READSAVE    12
  45. #define E_ALTERSAVE    13
  46. #define E_SAVED        14
  47. #define E_TOMUCHSE    15
  48. #define E_FOPENSCORE    16
  49. #define E_READSCORE    17
  50. #define E_WRITESCORE    18
  51. #define E_USAGE        19
  52. #define E_ILLPASSWORD    20
  53. #define E_LEVELTOOHIGH    21
  54. #define E_NOSUPER    22
  55. #define E_NOSAVEFILE    23
  56. #define E_NOBITMAP    24
  57. #define E_NODISPLAY    25
  58. #define E_NOFONT    26
  59. #define E_NOMEM        27
  60. #define E_NOCOLOR    28
  61.  
  62. /* classname for silly X stuff */
  63. #define CLASSNAME "XSokoban"
  64.  
  65. /* macros translating game coords to window coords */
  66. #define cX(x) (bit_width * (((MAXCOL - cols) / 2) + (x)))
  67. #define cY(x) (bit_height * (((MAXROW - rows) / 2) + (x)))
  68.  
  69. /* macros translating window coords to game coords */
  70. #define wX(x) (((x)/bit_width) - ((MAXCOL - cols)/2))
  71. #define wY(x) (((x)/bit_height) - ((MAXROW - rows)/2))
  72.  
  73.  
  74. /*** Global state ***/
  75. typedef char Map[MAXROW+1][MAXCOL+1];
  76.  
  77. extern Map map;
  78.  
  79. extern short rows, cols, level, moves, pushes, savepack, packets;
  80. extern unsigned short scorelevel, scoremoves, scorepushes;
  81. extern POS ppos;
  82. extern Display *dpy;
  83. extern unsigned bit_width, bit_height; /* for macros wX, wY */
  84. extern Atom wm_delete_window, wm_protocols;
  85. extern XrmDatabase rdb;
  86. extern Colormap cmap;
  87. extern char *progname, *bitpath, *username;
  88. extern Boolean display_alloc;
  89.  
  90. extern short scoreentries;
  91. extern struct st_entry {
  92.   char user[MAXUSERNAME];
  93.   unsigned short lv, pad1, mv, pad2, ps, pad3;
  94. } scoretable[MAXSCOREENTRIES];
  95.