private static void PopulateKingCastlingMoves( ICollection <GameMoveData> resultMoves, Square sourceSquare, CastlingOptions allowedCastlingOptions, Bitboard nonEmptySquares, CastlingType castlingType) { var option = castlingType.ToOption(); if ((allowedCastlingOptions & option) == 0) { return; } var info = KingCastlingInfos[GetCastlingTypeArrayIndexInternal(castlingType)]; if (info.KingMove.From != sourceSquare || (nonEmptySquares & info.ExpectedEmptySquares).IsAny) { return; } var moveData = new GameMoveData(info.KingMove, GameMoveFlags.IsKingCastling); resultMoves.Add(moveData); }
public ChessMoveData(ObjectGuid playerGuid, ObjectGuid pieceGuid, GameMoveData data) { Type = data.MoveType; PlayerGuid = playerGuid; Color = data.Color; PieceGuid = pieceGuid; From = data.From; To = data.To; }