1 /* vim:tw=78:ts=8:sw=4:set ft=c: */
3 Copyright (C) 2002-2015 Ben Kibbey <bjk@luxsci.net>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 #if defined(HAVE_NCURSESW_CURSES_H)
29 #include <ncursesw/curses.h>
30 #elif defined(HAVE_NCURSESW_H)
32 #elif defined(HAVE_NCURSES_CURSES_H)
33 #include <ncurses/curses.h>
34 #elif defined(HAVE_NCURSES_H)
36 #elif defined(HAVE_CURSES_H)
39 #error "SysV or X/Open-compatible Curses header file required"
42 #if defined(HAVE_NCURSESW_PANEL_H)
43 #include <ncursesw/panel.h>
44 #elif defined(HAVE_NCURSES_PANEL_H)
45 #include <ncurses/panel.h>
46 #elif defined(HAVE_PANEL_H)
49 #error "SysV-compatible Curses Panel header file required"
52 #if defined(HAVE_NCURSESW_MENU_H)
53 #include <ncursesw/menu.h>
54 #elif defined(HAVE_NCURSES_MENU_H)
55 #include <ncurses/menu.h>
56 #elif defined(HAVE_MENU_H)
59 #error "SysV-compatible Curses Menu header file required"
62 #if defined(HAVE_NCURSESW_FORM_H)
63 #include <ncursesw/form.h>
64 #elif defined(HAVE_NCURSES_FORM_H)
65 #include <ncurses/form.h>
66 #elif defined(HAVE_FORM_H)
69 #error "SysV-compatible Curses Form header file required"
74 #define _(msgid) gettext(msgid)
79 #define CF_ENGINE_LOOP 0x01
83 #define CF_MODIFIED 0x10
84 #define CF_DELETE 0x20
90 #define MAX_TC 8 /* Time controls. */
92 #define ANY_KEY_STR _("[ press any key to continue ]")
93 #define ANY_KEY_SCROLL_STR _("[ press any key to continue (UP/DN to scroll) ]")
94 #define ERROR_STR _("[ ERROR ]")
97 struct timeval elapsed
;
98 unsigned short move
; /* move count */
99 int tc
[MAX_TC
][2]; /* 0 = move count, 1 = time (in seconds) */
105 * Attached to game[n].data.
109 struct engine_s
*engine
;
110 unsigned short flags
;
113 char pm_frfr
[6]; // Previous move
122 char rotate
; // Rotation control board
123 int go_move
; // Movement function result 'do_play_go'
125 struct clock_s wclock
;
126 struct clock_s bclock
;
127 struct timeval elapsed
;
129 // The selected piece.
138 void *data
; // For the history menu
143 unsigned short perlflags
;
147 /* A pointer to the game in focus. */
151 void update_cursor(GAME
, int);
152 void invalid_move(int n
, int e
, const char *m
);
153 void update_status_window(GAME g
);
154 void update_all(GAME g
);
155 void update_status_notify(GAME g
, char *fmt
, ...);
156 void update_tag_window(TAG
**tags
);
157 void update_all(GAME g
);
158 void edit_tags(GAME g
, BOARD b
, int edit
);
159 void add_custom_tags(TAG
***t
);
160 wchar_t *translate_tag_name(const char *);