void copyMoveData(Move move1, Move move2) { if (move2->isPieceCreated != NULL) { move1->isPieceCreated = pieceCopy(move2->isPieceCreated); } else { move1->isPieceCreated = NULL; } move1->isPieceRemoved = move2->isPieceRemoved; move1->movedPiece = move2->movedPiece; move1->command = move2->command; move1->xFrom = move2->xFrom; move1->xTo = move2->xTo; move1->yFrom = move2->yFrom; move1->yTo = move2->yTo; move1->currentPieceTurnAfter = move2->currentPieceTurnAfter; move1->currentPieceTurnBefore = move2->currentPieceTurnBefore; }
bool ChessMove::PutsInCheck(const ChessBoard& board) const{ ChessBoard boardCopy(board); ChessPiece* pieceCopy(board.GetPiece(startX,startY)); return (boardCopy.DoMove(*this))->InCheck(pieceCopy->GetColor()); }