void ThinkOfMove ( int nFlags );
int PlayerMove (int sx, int sy, int dx, int dy, int piece );
int GetPonderMove (int &nMove );
void StopThinking ( );
void NewGame ( );

// GUI Global Data
extern int g_nBlackTime, g_nWhiteTime;
extern char OppReady, Ready;
extern int g_GameResult, g_bNetGame;
extern char g_cNetColor;
extern int Minutes, Seconds, ELO;
extern char sUserName [66];
extern char sOppName  [66];
extern char *g_sSlow;

extern int bUseNull,  bExperiment, g_ponder, bPonder, bEvalWhite;
extern int g_ponderSrc, g_ponderDst;
extern int bDisplayInfo, bHashing, g_bGameStarted;
extern SBoard g_StartBoard, g_PonderBoard;
extern int MaxAhead, g_nFlags, g_bAlwaysWait, g_bWinBoard, nSecsPerMove;
extern unsigned int  g_nMaxNodes;
extern int g_bWinBoard, g_bUCI;
extern HANDLE hEngineReady, hEngineIdle;

struct SwbSettings
	{
	SwbSettings ( );
	void Save (struct _iobuf *FP);
	void Load (struct _iobuf *FP);


	int bResign;
	int bDraw;
	int bLog;
	int bLogEvals;
	int bLearn;
	char sBook[2048];
	char sPer[2048];
	};

extern SwbSettings SCsettings;