Square from = pop_lsb(&pawns);
for (PieceType pt : pos.promotion_piece_types())
{
- if (pos.count(Us, pt))
+ if (pos.promotion_limit(pt) && pos.promotion_limit(pt) <= pos.count(Us, pt))
continue;
Bitboard b = (pos.attacks_from(Us, pt, from) & ~pos.pieces()) | from;
if (Type == EVASIONS)
v->sittuyinRookDrop = true;
v->promotionRank = RANK_1; // no regular promotions
v->sittuyinPromotion = true;
+ v->promotionLimit[FERS] = 1;
v->immobilityIllegal = false;
v->countingRule = ASEAN_COUNTING;
v->nMoveRule = 50;