home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
sources
/
games
/
volume15
/
xstratego
/
part02
/
stratego.h
< prev
Wrap
C/C++ Source or Header
|
1993-01-27
|
3KB
|
124 lines
/*
* Stratego.h
*/
#include <stdio.h>
#include <string.h>
#include <sys/param.h>
#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
#include <X11/Shell.h>
#include <X11/Xaw/AsciiText.h>
#include <X11/Xaw/Cardinals.h>
#include <X11/Xaw/Label.h>
#include <X11/Xaw/Command.h>
#include <X11/Xaw/Box.h>
#include <X11/Xaw/Form.h>
#include <X11/Xaw/Dialog.h>
#include "tiles.h"
#define XDISPLAY XtDisplay (Toplevel)
#define XSCREEN DefaultScreen (XDISPLAY)
#define XROOTWINDOW RootWindowOfScreen (XtScreen (Toplevel))
#define XWINDOW XtWindow (Toplevel)
extern XtAppContext app_con;
extern XtInputId EnemyID;
extern Widget Toplevel, Stratego, Board, Tiles, Message;
/*
* Dialog widget interface
*/
#define ADD_CANCEL 0
#define NO_CANCEL 1
extern Bool DialogBoxResult();
typedef struct s_button {
char *label;
XtCallbackProc (*callback) ();
Boolean sensitive;
Widget widget;
} BUTTON;
typedef struct s_board_pos {
Widget widget;
int owner;
int value;
int y, x;
} BOARD_POS;
#define MAX_ROWS 10
#define MAX_COLS 10
#define O_NOBODY 0
#define O_PLAYER 1
#define O_ENEMY 2
extern BOARD_POS board[MAX_ROWS][MAX_COLS];
#define DO_MOVE 0 /* Move results */
#define UNDO_MOVE 1
#define WIN_MOVE 2
#define REMISE_MOVE 3
/*
* Player status.
*/
#define PL_SETUP 0
#define PL_SETUP_READY 1 /* Setting up board below this value */
#define PL_READY 2
#define PL_ENDGAME 3
#define PL_PLAYING 4 /* Playing mode activated after this value */
#define PL_PICKED_UP 5
#define REMISE_ACCEPTED 1
#define REMISE_DECLINED 2
#define NAME_LENGTH 80
#define LOGIN_LENGTH 10
typedef struct s_player {
char name[NAME_LENGTH];
char login[LOGIN_LENGTH];
char machine[MAXHOSTNAMELEN];
char domain[NAME_LENGTH];
int fd; /* For player to player comm. */
Boolean setup_only; /* If not playing but making board */
char has_first_move; /* Only for player 0 */
int status;
int tile_select;
BOARD_POS *from_pos, *to_pos; /* Move record holders */
TILE *to_tile;
int to_owner;
Boolean confirm;
} PLAYER;
extern PLAYER players[2];
/*
* Funny messages (buzz module) on illegal moves.
*/
#include "buzz.h"
#define display_error(table) message (buzz (table))
#define abs(x) ((x < 0) ? -(x) : (x))
/*
* Callbacks.
*/
extern XtCallbackProc WipeCursor (), Clear (), Load (), Store (), Ready (),
Quit (), Mail ();
#ifdef DEBUG
extern XtCallbackProc Debug ();
#endif
extern XtCallbackProc SelectSetupBoardCursor (), ActivateBoardPosition ();
extern XtInputCallbackProc EnemyInterrupt ();
extern XtActionHookProc ButtonPressHook ();
extern void place_button_box (), message (), end_game ();