PawnInfo* PawnInfoTable::get_pawn_info(const Position& pos) const {
- assert(pos.is_ok());
-
Key key = pos.get_pawn_key();
PawnInfo* pi = probe(key);
Rank r;
bool passed, isolated, doubled, opposed, chain, backward, candidate;
Score value = SCORE_ZERO;
- const Square* ptr = pos.piece_list_begin(Us, PAWN);
+ const Square* pl = pos.piece_list(Us, PAWN);
// Loop through all pawns of the current color and score each pawn
- while ((s = *ptr++) != SQ_NONE)
+ while ((s = *pl++) != SQ_NONE)
{
assert(pos.piece_on(s) == make_piece(Us, PAWN));
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;