protected void addCastles(BoardSide friend, CastleRuleParameter friendRule, BoardSide foe) { Debug.Assert(!InCheck(), "addCastles() called while InCheck"); if (canOO(friend, foe, friendRule)) { #if DebugMoveColor PseudoCastles.Add(Move.WTM | friendRule.OO); #else PseudoCastles.Add(friendRule.OO); #endif } if (canOOO(friend, foe, friendRule)) { #if DebugMoveColor PseudoCastles.Add(Move.WTM | friendRule.OOO); #else PseudoCastles.Add(friendRule.OOO); #endif } }
// //[Warning]Duplicate Moves can result in a number of strange, difficult to debug side-effects. // protected void clearPseudoMoveLists(List <Move> moves, Boolean bSwap) // ~32 MHz { moves.Clear(); clearPseudoCaptures(); clearPseudoMoves(); PseudoCastles.Clear(); PseudoEPCapture.Clear(); PseudoQueenPromotion.Clear(); PseudoUnderPromotion.Clear(); PseudoQueenPromotionCapture.Clear(); PseudoUnderPromotionCapture.Clear(); PseudoCaptures.Clear(); if (bSwap) { PseudoBadCaptures.Clear(); PseudoGoodCaptures.Clear(); } #if !UseMoveSort SiftedMoves.Clear(); // See sortMoves() #endif }