{if(v+I&&x==K&y==L>==GT) /* if move found */\r
{Q=-e-i;O=F;LL=L;prom=gt;\r
if(b[y]-u&15)prom=b[y]-=PromPiece, /* under-promotion, correct */\r
- Z+=PromPiece; /* piece & invalidate hash */\r
+ pl[u&31]--,pl[prom&31]++,Z+=PromPiece;/*piece & invalidate hash */\r
a->D=99;a->V=0; /* lock game in hash as draw*/\r
R-=i/FAC; /*** total captd material ***/\r
Fifty = t|p<3?0:Fifty+1;\r
else { int i=-1;\r
if(b[L] && (b[L]&16) == Side && w[b[L]&15] < 0) // capture own King: castling\r
{ i=K; K = L; L = i>L ? i-1 : i+2; }\r
- if(w[GT&15] < -1) pl[GT&31]++, J+=89729; // promotion to royal piece\r
if((b[K]&15) < 3) GT = 0; // Pawn => true promotion rather than gating\r
if(D(Side,-I,I,Q,O,LL|S,3)!=I) {\r
/* did have move syntax, but illegal move */\r