|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T n
Length: 3546 (0xdda)
Types: TextFile
Names: »nchess.h«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/Sun/Nchess/nchess.h«
/*
* Copyright 1987 Tom Anderson; 20831 Frank Waters Road;
* Stanwood, WA 98282. All rights reserved.
*/
/*
* network chess header
*/
#define BOOL int
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#define SERVERPROGNUM ((u_long) 0x31233216) /* RPC daemon program number */
#define VERSNUM ((u_long) 1) /* RPC version number */
/*
* daemon procedure numbers
*/
#define REQPROCNUM ((u_long) 1) /* game request */
#define ACKPROCNUM ((u_long) 2) /* game acknowledge */
#define CANCELPROCNUM ((u_long) 3) /* cancel a game request */
/*
* peer procedure numbers
*/
#define ACCEPTPROCNUM ((u_long) 1) /* game accepted */
#define MOVEPROCNUM ((u_long) 2) /* chess move */
#define COLORFAILPROCNUM ((u_long) 3) /* color arbitration failure */
#define UNDOPROCNUM ((u_long) 4) /* undo request */
#define RESIGNPROCNUM ((u_long) 5) /* resignation */
#define UNDOACKPROCNUM ((u_long) 6) /* undo request response */
#define MSGPROCNUM ((u_long) 7) /* one-liner antagonism */
#define RESTOREMOVEPROCNUM ((u_long) 8) /* move during game restoration */
#define ENDRESTOREPROCNUM ((u_long) 9) /* restoration/setup complete */
#define SETUPPROCNUM ((u_long) 10) /* board setup change */
#define GOODBYEPROCNUM ((u_long) 11) /* player killed his tool */
/*
* color arbitration values - the values are important, as the
* game can proceed when the sum of the two players' colors is
* WANTSWHITE+WANTSBLACK; also, the values are used as indices
* into arrays.
*/
#define WANTSBLACK 0 /* user wants black */
#define BLACK WANTSBLACK /* user has black */
#define WANTSWHITE 1 /* user wants white */
#define WHITE WANTSWHITE /* user has white */
#define EITHERCOLOR 2 /* user doesn't care */
#define OTHERCOLOR(a) ((a) == WHITE ? BLACK : WHITE)
/*
* rendezvous information
*/
typedef struct {
unsigned long progNum; /* RPC program number of requester */
int color; /* requested color */
int resumeGame; /* boolean: wants to resume a game */
char hostName[256]; /* host name of requester */
char userName[256]; /* name of requesting user */
} GameRequest;
/*
* piece move information
*/
typedef struct {
int x1; /* origin square */
int y1;
int x2; /* destination square */
int y2;
int newPieceType; /* new piece type for 8th rank pawns */
} Move;
/*
* board square dimensions
*/
#define SQUARE_WIDTH 64
#define SQUARE_HEIGHT SQUARE_WIDTH
/*
* board coordinates
*/
typedef struct {
int x;
int y;
} BoardCoordinate;
/*
* piece types
*/
typedef enum {
PAWN = 0,
KNIGHT,
BISHOP,
ROOK,
QUEEN,
KING,
NULLPC,
} PieceType;
/*
* square state
*/
typedef struct {
PieceType type;
int color;
} Square;
/*
* setup change information
*/
typedef struct {
int x;
int y;
PieceType type;
int color;
} SetupChange;
/*
* mouse (in the board subwindow) activity states
*/
typedef enum {
IDLE, /* nada */
MOVING_PIECE, /* animating a piece with the left button down */
PROMOTING_PAWN, /* selecting a piece type for a pawn promotion */
CONFIRMING, /* borrowed for confirmation of something */
LOCKED, /* locked (ignored until unlocked) */
SETUP, /* setting up a board */
} MouseState;
/*
* transcript types
*/
#define TR_MIN_TYPE 0
#define TR_FORMAL_NORMAL 0 /* P/K2-K4, R/KB3xP/KB5, etc. */
#define TR_MIN_NORMAL 1 /* P-K4, RxP, etc. */
#define TR_ALGEBRAIC 2 /* D2D4, etc. */
#define TR_MAX_TYPE 2
#include "decls.h"