X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=inline;f=src%2Fposition.cpp;h=ed5cc43f557a940c949d379be16e1e659012f86f;hb=784e7d91455246361871f2f950dfb05e428c2c58;hp=812eabcaa5f625a786792be4d5cf0c09f7214087;hpb=242c566c1a80c7f3d95774eac513935fcee0cf0d;p=stockfish
diff --git a/src/position.cpp b/src/position.cpp
index 812eabca..ed5cc43f 100644
--- a/src/position.cpp
+++ b/src/position.cpp
@@ -18,7 +18,6 @@
along with this program. If not, see .
*/
-#include
#include
#include // For offsetof()
#include // For std::memset, std::memcmp
@@ -318,8 +317,6 @@ Position& Position::set(const string& fenStr, bool isChess960, StateInfo* si, Th
thisThread = th;
set_state(st);
- assert(pos_is_ok());
-
return *this;
}
@@ -341,13 +338,8 @@ void Position::set_castling_right(Color c, Square rfrom) {
Square kto = relative_square(c, cs == KING_SIDE ? SQ_G1 : SQ_C1);
Square rto = relative_square(c, cs == KING_SIDE ? SQ_F1 : SQ_D1);
- for (Square s = std::min(rfrom, rto); s <= std::max(rfrom, rto); ++s)
- if (s != kfrom && s != rfrom)
- castlingPath[cr] |= s;
-
- for (Square s = std::min(kfrom, kto); s <= std::max(kfrom, kto); ++s)
- if (s != kfrom && s != rfrom)
- castlingPath[cr] |= s;
+ castlingPath[cr] = (between_bb(rfrom, rto) | between_bb(kfrom, kto) | rto | kto)
+ & ~(square_bb(kfrom) | rfrom);
}
@@ -629,7 +621,7 @@ bool Position::pseudo_legal(const Move m) const {
{
// We have already handled promotion moves, so destination
// cannot be on the 8th/1st rank.
- if (rank_of(to) == relative_rank(us, RANK_8))
+ if ((Rank8BB | Rank1BB) & to)
return false;
if ( !(attacks_from(from, us) & pieces(~us) & to) // Not a capture