
/* @(#)extern.h 1.5 90/04/05
 *
 *  Contains the external variable definitions used by othello.
 *
 *  Original SunView version by Ed Falk - Sun Microsystems Inc.
 *
 *  Rewritten for independent use by
 *          Rich Burridge, Sun Microsystems, Australia
 *
 *  Copyright (c) Ed Falk & Rich Burridge - Sun Microsystems.
 *                                          All rights reserved.
 *
 *  Permission is given to distribute these sources, as long as the
 *  introductory messages are not removed, and no monies are exchanged.
 *
 *  No responsibility is taken for any errors on inaccuracies inherent
 *  either to the comments or the code of this program, but if reported
 *  to me, then an attempt will be made to fix them.
 */

extern int aspire ;        /* Computer level of aspiration. */
extern int bfont_height ;  /* Height in pixels for bold font. */
extern int but_inverted ;  /* Value of panel item inverted. */
extern int color ;         /* Current color value. */
extern int cretin_flag ;
extern int cur_ch ;        /* Current character pressed. */
extern int curx ;          /* Current mouse X position. */
extern int cury ;          /* Current mouse Y position. */
extern int depth ;         /* Depth of search for computers move. */
extern int down ;          /* Indicates is a mouse button is down. */
extern int expected ;
extern int iconic ;        /* Start as an icon if set. */
extern int inv_video ;     /* Set if displaying in inverse video. */
extern int iscolor ;       /* Set if this is a color screen. */
extern int itemno ;        /* Current panel item being processed. */
extern int item_value ;    /* Value for current panel item. */
extern int ix ;            /* Initial X position of the icon. */
extern int iy ;            /* Initial Y position of the icon. */
extern int last_move ;     /* Last valid computer move. */
extern int last_remark ;
extern int margin ;
extern int max_bad ;
extern int max_good ;
extern int move ;          /* Current move being evaluated. */
extern int move_delta ;    /* Delta for piece animation. */
extern int nextc ;         /* Current event identifier. */
extern int next_player ;   /* Next player (BLACK or WHITE) to move. */
extern int nfont_height ;  /* Height in pixels for normal font. */
extern int piece_x ;       /* Current X position of moving piece. */
extern int piece_y ;       /* Current Y position of moving piece */
extern int posspec ;       /* Set if -Wp or -g option is present (for X11) */
extern int remark ;        /* Indicates if remarks are to be displayed. */
extern int s_flip ;
extern int s_move ;
extern int s_opponent ;
extern int s_player ;
extern int s_row ;
extern int s_col ;
extern int suggestion ;    /* Positive if a suggested move. */
extern int suggest_x ;     /* X position of suggested move. */
extern int suggest_y ;     /* Y position of suggested move. */
extern int validkey ;      /* Set if half way though a valid multiple key. */
extern int wx ;            /* Initial X position of the window. */
extern int wy ;            /* Initial Y position of the window. */ 
extern long ab_count ;     /* Calls of alfabeta. */
extern long bad_remarks[] ;
extern long good_remarks[] ;
extern long se_count ;     /* Calls of static_eval. */

extern char *w_who[] ;
extern char *w_be[] ;
extern char *b_who[] ;
extern char *b_be[] ;
extern char *asp_values[] ;      /* Values for cyclic aspiration button. */
extern char *diff_values[] ;     /* Values for cyclic difficulty button. */
extern char *comp_values[] ;     /* Values for computer plays button. */
extern char *rem_values[] ;      /* Values for cyclic remarks button. */
extern char geometry[] ;         /* X11 geometry information. */
extern char line[] ;
extern char progname[] ;         /* The name of this program. */
extern char rem_file[] ;         /* Location of remarks file. */
extern char revtable[] ;         /* Table for reversing bits in a byte. */
extern char x11_display[] ;      /* X11 display information. */

extern FILE *rem_fp ;
extern struct timeval tp ;        /* Used by the nap_upto routine. */

extern struct iteminfo items[] ;  /* Information records for button items. */

extern BOARD board ;         /* The Othello board. */
extern BOARD old_board ;     /* The previous Othello board. */
extern BOARD *s_pos ;
extern BOARD moves[64] ;     /* Complete array of board moves. */

extern enum cantype cmode ;
extern enum playtype play_mode ;
extern enum set_type direction ;   /* Incremental direction for cycle item. */
