1.1 --- a/src/game.c Tue Apr 01 10:28:08 2014 +0200 1.2 +++ b/src/game.c Tue Apr 01 12:30:25 2014 +0200 1.3 @@ -86,21 +86,26 @@ 1.4 1.5 if (logelem) { 1.6 Move move = logelem->move; 1.7 - char logstr[] = { 1.8 - getpiecechr(move.piece), 1.9 - filechr(move.fromfile), rowchr(move.fromrow), 1.10 - move.capture ? 'x':'\0', 1.11 - filechr(move.tofile), rowchr(move.torow), 1.12 - move.check ? '+' : (move.checkmate ? '#' : 1.13 - (move.promotion ? '=' : '\0')), 1.14 - move.promotion ? getpiecechr(move.promotion) : '\0', 1.15 - ' ' 1.16 - }; 1.17 - for (int stri = 0 ; stri < sizeof(logstr) ; stri++) { 1.18 - if (logstr[stri]) { 1.19 - addch(logstr[stri]); 1.20 + if ((move.piece&PIECE_MASK) == KING && 1.21 + abs(move.tofile-move.fromfile) == 2) { 1.22 + addstr(move.tofile==fileidx('c')?"O-O-O":"O-O"); 1.23 + } else { 1.24 + char logstr[] = { 1.25 + getpiecechr(move.piece), 1.26 + filechr(move.fromfile), rowchr(move.fromrow), 1.27 + move.capture ? 'x':'\0', 1.28 + filechr(move.tofile), rowchr(move.torow), 1.29 + move.check ? '+' : (move.checkmate ? '#' : 1.30 + (move.promotion ? '=' : '\0')), 1.31 + move.promotion ? getpiecechr(move.promotion) : '\0' 1.32 + }; 1.33 + for (int stri = 0 ; stri < sizeof(logstr) ; stri++) { 1.34 + if (logstr[stri]) { 1.35 + addch(logstr[stri]); 1.36 + } 1.37 } 1.38 } 1.39 + addch(' '); 1.40 1.41 logelem = logelem->next; 1.42 }