PawnInfo* PawnInfoTable::get_pawn_info(const Position& pos) const {
- assert(pos.is_ok());
-
Key key = pos.get_pawn_key();
PawnInfo* pi = probe(key);
{
assert(pos.piece_on(s) == make_piece(Us, PAWN));
- f = square_file(s);
- r = square_rank(s);
+ f = file_of(s);
+ r = rank_of(s);
// This file cannot be half open
pi->halfOpenFiles[Us] &= ~(1 << f);
if (relative_rank(Us, ksq) <= RANK_4)
{
- pawns = pos.pieces(PAWN, Us) & this_and_neighboring_files_bb(ksq);
+ pawns = pos.pieces(PAWN, Us) & this_and_neighboring_files_bb(file_of(ksq));
r = ksq & (7 << 3);
for (int i = 0; i < 3; i++)
{
r += Shift;
- shelter += BitCount8Bit[(pawns >> r) & 0xFF] * (64 >> i);
+ shelter += BitCount8Bit[(pawns >> r) & 0xFF] << (6 - i);
}
}
kingSquares[Us] = ksq;