84 printw("%d. ", logi / 2); |
84 printw("%d. ", logi / 2); |
85 } |
85 } |
86 |
86 |
87 if (logelem) { |
87 if (logelem) { |
88 Move move = logelem->move; |
88 Move move = logelem->move; |
89 char logstr[] = { |
89 if ((move.piece&PIECE_MASK) == KING && |
90 getpiecechr(move.piece), |
90 abs(move.tofile-move.fromfile) == 2) { |
91 filechr(move.fromfile), rowchr(move.fromrow), |
91 addstr(move.tofile==fileidx('c')?"O-O-O":"O-O"); |
92 move.capture ? 'x':'\0', |
92 } else { |
93 filechr(move.tofile), rowchr(move.torow), |
93 char logstr[] = { |
94 move.check ? '+' : (move.checkmate ? '#' : |
94 getpiecechr(move.piece), |
95 (move.promotion ? '=' : '\0')), |
95 filechr(move.fromfile), rowchr(move.fromrow), |
96 move.promotion ? getpiecechr(move.promotion) : '\0', |
96 move.capture ? 'x':'\0', |
97 ' ' |
97 filechr(move.tofile), rowchr(move.torow), |
98 }; |
98 move.check ? '+' : (move.checkmate ? '#' : |
99 for (int stri = 0 ; stri < sizeof(logstr) ; stri++) { |
99 (move.promotion ? '=' : '\0')), |
100 if (logstr[stri]) { |
100 move.promotion ? getpiecechr(move.promotion) : '\0' |
101 addch(logstr[stri]); |
101 }; |
102 } |
102 for (int stri = 0 ; stri < sizeof(logstr) ; stri++) { |
103 } |
103 if (logstr[stri]) { |
|
104 addch(logstr[stri]); |
|
105 } |
|
106 } |
|
107 } |
|
108 addch(' '); |
104 |
109 |
105 logelem = logelem->next; |
110 logelem = logelem->next; |
106 } |
111 } |
107 } |
112 } |
108 } |
113 } |