Fix legality of promotion to King
[fairymax.git] / fairymax.c
index 70eac81..30396a2 100644 (file)
@@ -866,6 +866,7 @@ int main(int argc, char **argv)
                 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]&32) GT = 0; // non-virgin mover => 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