Initial import from Public Scripts as template.
Bump to C++11 (gnu++0x). Adjustments to enable build with Linux MinGW.
First pass of generalizing Public Scripts: delete Public Scripts-specific material, remove support for non-GCC compilers, rename key files.
Second pass: update readme and copyright, rewrite makefile, gut custom.{h,cpp}, introduce CHANGEME constants.
Add GetObjectName to utils.
Streamline script.rc/version.rc and fix various build issues.
Inherit cBaseScript virtually to support multiple inheritance of abstract script classes. Misc. makefile improvements.
cBaseScript: add printf-based debug method and macros to limit debug messages to -DDEBUG.
Import additions and fixes from pictura, including: remove T1/SS2 support; replace GetObjectName with ObjectToStr and FormatObjectName; add ObjectExists, CreateLink, DestroyLink, and GetObjectParamColor to utils.
Initial setup for latrunculi.
Import engine from GNU Chess 6.0.2.
Prepare to rewrite gnuchess engine's Makefile.
Makefile: add gnuchess library. README: remove. gnuchess/Makefile: convert to non-automake; update for mingw compilation. gnuchess/book: remove PKGDATADIR support. gnuchess/main: modify main_engine to interface properly with ChessEngine class. gnuchess/posix: fix namespace error. gnuchess/protocol, gnuchess/util: return from main loop instead of exit()ing.
ChessEngine, ChessGame: misc. fixes from accidentally committed incomplete draft. gnuchess/main: handle setvbuf in ChessEngine class instead to avoid race condition.
ChessBoard: new class. ChessGame: add piece and move selection; move persistence to ChessBoard. ChessSquare: new script. ChessPiece: new script. LinkIter, ScriptParamsIter: import from pictura.
ChessEngine: add RecordMove; ChessBoard: add PerformMove, SetAt; replace [] with GetAt; add object-based ctor to Square; add operator bool to Piece; add types to Move; make Camp values characters; fixes to EvaluateMoves, TryMovePath, and TryMovePoint. ChessGame: add state tracking; replace MakeMove with selectMove and DeselectPieces with ClearSelection; add BeginComputerMove, FinishComputerMove, and PerformMove. ChessSquare: remove dynamic light; add selection sound. ChessPiece: add slain reaction and RestInPeace after timer.
ChessEngine: add BeginCalculation, EndCalculation, EnumeratePieceMoves; store difficulty and best_move; remove pondering; expand PerformMove and EnumeratePieceMoves. ChessBoard: add Enemy, FindPiece, IsUnderAttack, IsInCheck, BOARD_SIZE; make several functions const; add string-based ctor for Square; replace Piece's operator char with Code; add MOVE_PROMOTION to MoveType. ChessGame: add OnTimer, UpdatePieceSelection; have pieces run instead of walk. ChessPiece: respond to EnableMove and DisableMove.
chess.h/cpp: new file and namespace replacing ChessBoard and its children; extensive changes; some porting incomplete. custom.h/cpp: remove replaced code. ChessGame: update accordingly, making board a pointer to a chess::Board; manage persistence variables locally; add reverse GetSquare variant. Makefile: update accordingly.
File, Rank, Side: add count member.
Square, Piece: replace operator bool with Valid; add comparison operator.
Piece: add NONE_CODE and CODES members.
Side: add SideValid and SideCode functions.
MoveType: reorder and add MOVE_TWO_SQUARE.
Move: split piece, from, and to into MoveBase; store type as uint; replace captured_at with passed_square; store comoving_rook as MoveBase; expand default constructor and delete copy constructor; define MovePtr and use it for Moves.
Board: add copy constructor, index accessors, and several support methods for EnumerateMoves; take a MovePtr in MakeMove; store castling_options as uint.
Switch to use of C++ strings and streams throughout.
Square: add GetColor and new SquareColor enum.
Move: add GetUCICode and GetCapturedSquare.
Board: add IsDeadPosition and draw if detected; enumerate castling moves; expand FEN reader and writer; throw exceptions from player action methods instead of returning bool.
ChessEngine: add ClearOpeningsBook and SetupPipe; take Board/Move references in StartGame/RecordMove.
ChessGame: take Move reference in PerformMove.
gnuchess: rename streams to interface_input and interface_output; input_available: simplify (currently broken?).