home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / games / volume15 / xstratego / part02 / stratego.h < prev   
C/C++ Source or Header  |  1993-01-27  |  3KB  |  124 lines

  1. /*
  2.  * Stratego.h
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include <string.h>
  7. #include <sys/param.h>
  8.  
  9. #include <X11/Intrinsic.h>
  10. #include <X11/StringDefs.h>
  11. #include <X11/Shell.h>
  12.  
  13. #include <X11/Xaw/AsciiText.h>
  14. #include <X11/Xaw/Cardinals.h>
  15. #include <X11/Xaw/Label.h>
  16. #include <X11/Xaw/Command.h>
  17. #include <X11/Xaw/Box.h>
  18. #include <X11/Xaw/Form.h>
  19. #include <X11/Xaw/Dialog.h>
  20.  
  21. #include "tiles.h"
  22.  
  23. #define XDISPLAY    XtDisplay (Toplevel)
  24. #define XSCREEN        DefaultScreen (XDISPLAY)
  25. #define XROOTWINDOW    RootWindowOfScreen (XtScreen (Toplevel))
  26. #define XWINDOW        XtWindow (Toplevel)
  27. extern XtAppContext app_con;
  28. extern XtInputId EnemyID;
  29. extern Widget Toplevel, Stratego, Board, Tiles, Message;
  30.  
  31. /*
  32.  * Dialog widget interface
  33.  */
  34. #define ADD_CANCEL    0
  35. #define NO_CANCEL    1
  36. extern Bool DialogBoxResult();
  37.  
  38. typedef struct s_button {
  39.     char *label;
  40.     XtCallbackProc (*callback) ();
  41.     Boolean sensitive;
  42.     Widget widget;
  43. } BUTTON;
  44.  
  45. typedef struct s_board_pos {
  46.     Widget widget;
  47.     int owner;
  48.     int value;
  49.     int y, x;
  50. } BOARD_POS;
  51.  
  52. #define MAX_ROWS    10
  53. #define MAX_COLS    10
  54.  
  55. #define O_NOBODY    0
  56. #define O_PLAYER    1
  57. #define O_ENEMY        2
  58.  
  59. extern BOARD_POS board[MAX_ROWS][MAX_COLS];
  60.  
  61. #define DO_MOVE        0    /* Move results */
  62. #define UNDO_MOVE    1
  63. #define WIN_MOVE    2
  64. #define REMISE_MOVE    3
  65.  
  66. /*
  67.  * Player status.
  68.  */
  69. #define PL_SETUP    0
  70. #define PL_SETUP_READY    1    /* Setting up board below this value */
  71. #define PL_READY    2
  72. #define PL_ENDGAME    3
  73. #define PL_PLAYING    4    /* Playing mode activated after this value */
  74. #define PL_PICKED_UP    5
  75.  
  76. #define REMISE_ACCEPTED        1
  77. #define REMISE_DECLINED        2
  78.  
  79. #define NAME_LENGTH    80
  80. #define LOGIN_LENGTH    10
  81.  
  82. typedef struct s_player {
  83.     char name[NAME_LENGTH];
  84.       char login[LOGIN_LENGTH];
  85.       char machine[MAXHOSTNAMELEN];
  86.       char domain[NAME_LENGTH];
  87.       int fd;                /* For player to player comm. */
  88.     Boolean    setup_only;        /* If not playing but making board */
  89.     char has_first_move;        /* Only for player 0 */
  90.     int status;
  91.     int tile_select;
  92.     BOARD_POS *from_pos, *to_pos;    /* Move record holders */
  93.     TILE *to_tile;    
  94.     int to_owner;
  95.     Boolean confirm;
  96. } PLAYER;
  97.  
  98. extern PLAYER players[2];
  99.  
  100. /*
  101.  * Funny messages (buzz module) on illegal moves.
  102.  */
  103. #include "buzz.h"
  104. #define display_error(table)    message (buzz (table))
  105.  
  106. #define abs(x)    ((x < 0) ? -(x) : (x))
  107.  
  108. /*
  109.  * Callbacks.
  110.  */
  111. extern XtCallbackProc WipeCursor (), Clear (), Load (), Store (), Ready (),
  112.               Quit (), Mail ();
  113. #ifdef DEBUG
  114. extern XtCallbackProc Debug ();
  115. #endif
  116. extern XtCallbackProc SelectSetupBoardCursor (), ActivateBoardPosition ();
  117.  
  118. extern XtInputCallbackProc EnemyInterrupt ();
  119. extern XtActionHookProc ButtonPressHook ();
  120.  
  121.  
  122. extern void place_button_box (), message (), end_game ();
  123.  
  124.