home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / CHESS.PAK / EXTERNS.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  4.8 KB  |  168 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows - (C) Copyright 1991, 1993 by Borland International
  3. //----------------------------------------------------------------------------
  4. #ifndef EXTERNS_H
  5. #define EXTERNS_H
  6.  
  7. #ifndef WCDEFS_H
  8. # include "wcdefs.h"
  9. #endif
  10. #ifndef WINSYS_COLOR_H
  11. # include <winsys/color.h>
  12. #endif
  13.  
  14. class _WSYSCLASS TPoint;
  15. class _WSYSCLASS TRect;
  16.  
  17. extern COLORTYPE Opponent;
  18. extern PIECETAB  PieceTab[][16];
  19. extern BOARDTYPE Board[0x78];
  20. extern TColor    WhiteSquareColor;
  21. extern TColor    BlackSquareColor;
  22. extern char      buf[];
  23.  
  24. extern class TInfoWindow* TInfo;
  25. extern HBRUSH hBlackBrush;
  26. extern HBRUSH hWhiteBrush;
  27. extern BOOL ShowBestLine;
  28. extern BOOL Turned;
  29. extern HWND hWndMain;
  30. extern HBITMAP PieceBmpArray[][2];
  31. extern HBITMAP MaskArray[];
  32. extern LEVELTYPE Level;
  33. extern double AverageTime;
  34. extern COLORTYPE RunColor;
  35. extern BOOL MaxLevel;
  36. extern COLORTYPE ComputerColor;
  37. extern int BORDERSIZE;
  38. extern short CHARSIZE;
  39. extern short LINESIZE;
  40. extern BOOL Editing;
  41. extern COLORTYPE Player;
  42. extern COLORTYPE ProgramColor;
  43. extern MAXTYPE MainEvalu;
  44. extern int PVTable[2][7][0x78];
  45. extern int DirTab[];
  46. extern int KnightDir[];
  47. extern int PawnDir[];
  48. extern DEPTHTYPE Depth;
  49. extern short INFOXSIZE, INFOYSIZE;
  50. extern int OfficerNo[];
  51. extern int PawnNo[];
  52. extern MOVETYPE *MovTab;
  53. extern MOVETYPE ZeroMove;
  54. extern int PieceValue[];
  55. extern CLOCKTYPE ChessTime[];
  56. extern BOOL MultiMove, AutoPlay, SingleStep;
  57. extern int MoveNo;
  58. extern CLOCKTYPE ChessClock;
  59. extern BOOL Analysis, Opan;
  60. extern NODEVAL Nodes;
  61. extern CASTMOVETYPE CastMove[2][2];
  62. extern MAXTYPE RootValue;
  63. extern MOVETYPE KeyMove;
  64. extern BOARDIDTYPE Display[];
  65. extern LINETYPE HintLine;
  66. extern MAXTYPE HintEvalu;
  67. extern MOVETYPE Next;
  68. extern MOVETYPE PlayerMove;
  69. extern BOOL ComputerThinking;
  70. extern LINETYPE MainLine;
  71. extern int MaxDepth;
  72. extern HCURSOR hWaitCursor;
  73. extern HMENU ThinkMenu;
  74. extern HMENU MainMenu;
  75. extern BOOL Running;
  76. extern BOOL GotValidMove;
  77. extern BOOL GameOver;
  78. extern char EndGameMessage[];
  79. extern BOOL NoComputerMove;
  80. extern BOOL SoundOn;
  81. extern WORD MessageToPost;
  82.  
  83. void   DragStart(SQUARETYPE, TPoint&);
  84. void   DragEnd(BOOL);
  85. void   Drag(TPoint&);
  86. short  Attacks(COLORTYPE acolor, SQUARETYPE square);
  87. TPoint GetSquareXY(SQUARETYPE);
  88. void   ClearSquare(SQUARETYPE square);
  89. void   DrawFrame(HDC, TRect&, BOOL=false);
  90. void   GenCastSquare(SQUARETYPE new1, SQUARETYPE* castsquare,
  91.                     SQUARETYPE* cornersquare);
  92. void   CalcCastling(COLORTYPE incolor,  CASTDIRTYPE *cast);
  93. void   ClearBoard();
  94. void   ResetNewPos();
  95. void   Error(char*);
  96. void   ColorToPlay(COLORTYPE);
  97. void   InitDisplay();
  98. void   ClearDisplay();
  99. void   ClearInfoWindow();
  100. void   NewGame();
  101. void   InsertPiece(PIECETYPE p, COLORTYPE c, SQUARETYPE sq);
  102. void   PrintCurLevel();
  103. void   InitNode(NODEVAL*);
  104. void   InitTime(CLOCKTYPE* clock);
  105. void   StartTime(CLOCKTYPE*);
  106. void   StopTime(CLOCKTYPE*);
  107. void   PrintNodes(NODEVAL*, double);
  108. void   Perform(MOVETYPE*, BOOL);
  109. void   TakeBackMove(MOVETYPE* move);
  110. void   MakeMove(MOVETYPE *);
  111. BOOL   EqMove(MOVETYPE* a, MOVETYPE* b);
  112. void   IncNode(NODEVAL* nodes);
  113. short  PieceAttacks(PIECETYPE, COLORTYPE, SQUARETYPE, SQUARETYPE);
  114. FIFTYTYPE FiftyMoveCnt(void);
  115. REPEATTYPE Repetition(short immediate);
  116. void   PrintBestMove(MOVETYPE* mainline, MAXTYPE mainevalu);
  117. void   DisplayMove(bool* singlestep, DEPTHTYPE maxdepth, MAXTYPE evaluation, bool);
  118. int    StatEvalu(MOVETYPE *move);
  119. short  KillMovGen(MOVETYPE *move);
  120. void   CalcPVTable();
  121. void   EnterKeyMove();
  122. void   StartAnalysis();
  123. void   Warning(char*);
  124. void   PrintMove(int, COLORTYPE, MOVETYPE*, double);
  125. void   UpdateBoard();
  126. void   InitMovGen();
  127. void   MovGen();
  128. void   Message(char*);
  129. void   CalcPieceTab();
  130. void   ClearBestLine();
  131. void   ResetMoves();
  132. void   InitChessTime();
  133. void   ClearHint();
  134. void   ClearPVTable();
  135. void   AdjustMoves();
  136. void   FindMove(int maxlevel);
  137. void   OpeningLibMsg();
  138. char*  MoveStr(MOVETYPE*);
  139. void   ClearMessage();
  140. void   EnterMove(MOVETYPE* move);
  141. void   FlashMove(MOVETYPE* move);
  142. void   StoreMoves();
  143. void   CalcAttackTab();
  144. void   SaveGame(char* savefile);
  145. void   RestoreGame(char*);
  146. BOOL   Undo();
  147. BOOL   Redo();
  148. void   PrintBoard();
  149. void   FindHintMove();
  150. void   ShowHint();
  151. void   Talk();
  152. SQUARETYPE GetValidSquare(TPoint, COLORTYPE, BOOL);
  153. void   DrawInvertedBitmap(SQUARETYPE);
  154. void   DrawNormalBitmap(SQUARETYPE);
  155. void   InitCommStuff();
  156. BOOL   MoveCheck(SQUARETYPE, SQUARETYPE);
  157. void   ProgramMove();
  158. void   QuitProgram();
  159. void   HideAttacks();
  160. void   DisplayTime();
  161.  
  162. void   DoSlideMove(MOVETYPE&);
  163. void   SlidePiece(SQUARETYPE, SQUARETYPE);
  164. void   GenCastSquare(SQUARETYPE, SQUARETYPE*, SQUARETYPE*);
  165. void   SetClassWindowCursor(HWND hWnd, HCURSOR hCursor);
  166.  
  167. #endif  // EXTERNS_H
  168.