aboutsummaryrefslogtreecommitdiffstats
path: root/FICS/gamedb.h
diff options
context:
space:
mode:
authorMarkus Uhlin <markus@nifty-networks.net>2023-12-07 21:31:49 +0100
committerMarkus Uhlin <markus@nifty-networks.net>2023-12-07 21:31:49 +0100
commit79b59f9b30fb6a1fdf8c3efb446271f7cb00d434 (patch)
treef6ade4ccbc3af20d825edacfd12b5da8ded8d240 /FICS/gamedb.h
FICS 1.6.2
Diffstat (limited to 'FICS/gamedb.h')
-rw-r--r--FICS/gamedb.h209
1 files changed, 209 insertions, 0 deletions
diff --git a/FICS/gamedb.h b/FICS/gamedb.h
new file mode 100644
index 0000000..a7f027c
--- /dev/null
+++ b/FICS/gamedb.h
@@ -0,0 +1,209 @@
+/* gamedb.h
+ *
+ */
+
+/*
+ fics - An internet chess server.
+ Copyright (C) 1993 Richard V. Nash
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+*/
+
+/* Revision history:
+ name email yy/mm/dd Change
+ Richard Nash 93/10/22 Created
+*/
+
+#ifndef _GAMEDB_H
+#define _GAMEDB_H
+
+#include <time.h>
+#include "board.h"
+
+extern char *bstr[];
+extern char *rstr[];
+
+#define GAMEFILE_VERSION 3
+#define MAX_GLINE_SIZE 1024
+
+#define REL_GAME 0
+#define REL_SPOS 1
+#define REL_REFRESH 2
+#define REL_EXAMINE 3
+
+#define GAME_EMPTY 0
+#define GAME_NEW 1
+#define GAME_ACTIVE 2
+#define GAME_EXAMINE 3 /* examine is now 3 */
+
+/*
+#define GAME_STORED 3
+#define GAME_EXAMINE 4
+*/
+
+#define TYPE_UNTIMED 0
+#define TYPE_BLITZ 1
+#define TYPE_STAND 2
+#define TYPE_NONSTANDARD 3
+#define TYPE_WILD 4
+#define TYPE_LIGHT 5
+#define TYPE_BUGHOUSE 6
+
+#ifdef TIMESEAL
+#define FLAG_CHECKING -1
+#define FLAG_NONE 0
+#define FLAG_CALLED 1
+#define FLAG_ABORT 2
+#endif
+
+#define END_CHECKMATE 0
+#define END_RESIGN 1
+#define END_FLAG 2
+#define END_AGREEDDRAW 3
+#define END_REPETITION 4
+#define END_50MOVERULE 5
+#define END_ADJOURN 6
+#define END_LOSTCONNECTION 7
+#define END_ABORT 8
+#define END_STALEMATE 9
+#define END_NOTENDED 10
+#define END_COURTESY 11
+#define END_BOTHFLAG 12
+#define END_NOMATERIAL 13
+#define END_FLAGNOMATERIAL 14
+#define END_ADJDRAW 15
+#define END_ADJWIN 16
+#define END_ADJABORT 17
+#define END_COURTESYADJOURN 18
+
+#if 0
+typedef unsigned char boardList_t[74];
+#endif
+
+typedef struct _game {
+ /* Saved in the game file */
+ int wInitTime, wIncrement;
+ int bInitTime, bIncrement;
+ time_t timeOfStart;
+#ifdef TIMESEAL
+ int wLastRealTime;
+ int wRealTime;
+ int wTimeWhenReceivedMove;
+ int wTimeWhenMoved;
+ int bLastRealTime;
+ int bRealTime;
+ int bTimeWhenReceivedMove;
+ int bTimeWhenMoved;
+ int flag_pending;
+ unsigned long flag_check_time;
+#endif
+ int wTime;
+ int bTime;
+ int clockStopped;
+ int rated;
+ int private;
+ int type;
+ int passes; /* For simul's */
+ int numHalfMoves;
+ move_t *moveList; /* primary movelist */
+ unsigned char FENstartPos[74]; /* Save the starting position. */
+ game_state_t game_state;
+/* This is now in moveList, and FENstartPos. -- hersco */
+/*
+ int boardListSize;
+ boardList_t *boardList;
+ boardList_t boardList[500];
+*/
+ char white_name[18]; /* to hold the playername even after he disconnects */
+ char black_name[18];
+ int white_rating;
+ int black_rating;
+
+ /* Not saved in game file */
+ int revertHalfMove;
+ int totalHalfMoves;
+ int white;
+ int black;
+ /* int old_white; */ /* Contains the old game player number */
+ /* int old_black; */ /* Contains the old game player number */
+ int link;
+ int status;
+ int moveListSize; /* Total allocated in *moveList */
+ int examHalfMoves;
+ move_t *examMoveList; /* extra movelist for examine */
+ int examMoveListSize;
+
+ unsigned startTime; /* The relative time the game started */
+ unsigned lastMoveTime; /* Last time a move was made */
+ unsigned lastDecTime; /* Last time a players clock was decremented */
+
+ int result;
+ int winner;
+
+} game;
+
+extern game *garray;
+extern int g_num;
+
+extern int game_new(void);
+extern int game_zero(int);
+extern int game_free(int);
+extern int game_clear(int);
+extern int game_remove(int);
+extern int game_finish(int);
+extern void MakeFENpos (int, char *);
+
+extern char *game_time_str(int, int, int, int);
+extern char *game_str(int, int, int, int, int, char *, char *);
+extern int game_isblitz(int, int, int, int, char *, char *);
+
+extern void send_board_to(int, int);
+extern void send_boards(int);
+extern void game_update_time(int);
+extern void game_update_times(void);
+
+/* #define MAXOLDGAMES 50
+
+extern int FindOldGameFor(int);
+extern int RemoveOldGamesForPlayer(int);
+extern int ReallyRemoveOldGamesForPlayer(int);
+extern int NewOldGame(int);
+Kill this oldgame rubbish - wastes memory - DAV */
+
+extern char *movesToString(int, int);
+extern char *EndSym(int);
+extern char *EndString(int, int);
+
+extern void game_disconnect(int, int);
+
+extern int CharToPiece(char);
+extern int PieceToChar(int);
+extern int got_attr_value();
+extern int ReadGameAttrs();
+extern int game_read(int, int, int);
+extern int game_delete(int, int);
+extern int game_save(int);
+extern void RemHist (char *);
+
+extern int journal_get_info(int,char,char*,int*,
+ char*,int*,char*,int*,int*,char*,
+ char*,char*,char*);
+extern void addjournalitem(int,char,char*,int,char*,int,char*,int,int,
+ char*, char*, char* ,char*);
+extern int pgames(int, int, char *);
+extern int pjournal(int, int, char *);
+extern void game_write_complete(int, int, char *);
+extern int game_count(void);
+
+/* extern time_t time(); */
+
+#endif
+