The non-compliant notation of castling with lower-case 'o' should be
preferred over the non-compliant interpretation of moving a Pawn along
the o-file. Not doing so breaks ICS play, as ICS use o-o and o-o-o for
castling! So an exception is now made for the o-file in the 'fxg'
case.
return ImpossibleMove; // for now treat as invalid\r
}\r
// fxg stuff, but also things like 0-0, 0-1 and 1-0\r
- if(!piece && type[1] == NOTHING && type[0] == ALPHABETIC && type[2] == ALPHABETIC) {\r
+ if(!piece && type[1] == NOTHING && type[0] == ALPHABETIC && type[2] == ALPHABETIC
+ && (coord[0] != 14 || coord[2] != 14) /* reserve oo for castling! */ ) {
piece = 'P'; n = 4; // kludge alert: fake full to-square\r
}\r
}\r