- while(strchr("KQkqabcdefghABCDEFGH-", fen[i])) {
- if (fen[i] == '-')
- {
- i++;
- break;
- }
- else if(fen[i] == 'K') allow_oo(WHITE);
- else if(fen[i] == 'Q') allow_ooo(WHITE);
- else if(fen[i] == 'k') allow_oo(BLACK);
- else if(fen[i] == 'q') allow_ooo(BLACK);
- else if(fen[i] >= 'A' && fen[i] <= 'H') {
- File rookFile, kingFile = FILE_NONE;
- for(Square square = SQ_B1; square <= SQ_G1; square++)
- if(piece_on(square) == WK)
- kingFile = square_file(square);
- if(kingFile == FILE_NONE) {
- std::cout << "Error in FEN at character " << i << std::endl;
- return;
- }
- initialKFile = kingFile;
- rookFile = File(fen[i] - 'A') + FILE_A;
- if(rookFile < initialKFile) {
- allow_ooo(WHITE);
- initialQRFile = rookFile;
- }
- else {
- allow_oo(WHITE);
- initialKRFile = rookFile;