src/chess/pgn.c

changeset 127
7258a46bf5ae
parent 126
d58b2abdd330
equal deleted inserted replaced
126:d58b2abdd330 127:7258a46bf5ae
248 year, month, day); 248 year, month, day);
249 } 249 }
250 return date; 250 return date;
251 } 251 }
252 252
253 const char *pgn_player_name(GameState *gamestate, uint8_t color) {
254 const char *name = color == WHITE ? gamestate->wname : gamestate->bname;
255 return name[0] != '\0' ? name : "Anonymous";
256 }
257
253 void write_pgn(FILE* stream, GameState *gamestate, GameInfo *gameinfo, 258 void write_pgn(FILE* stream, GameState *gamestate, GameInfo *gameinfo,
254 bool export_comments) { 259 bool export_comments) {
255 /* STR tag pairs */ 260 /* STR tag pairs */
256 fprintf(stream, "[Event \"%s\"]\n", "terminal-chess game"); 261 fprintf(stream, "[Event \"%s\"]\n", "terminal-chess game");
257 fprintf(stream, "[Site \"%s\"]\n", "Somewhere on Earth"); 262 fprintf(stream, "[Site \"%s\"]\n", "Somewhere on Earth");
258 fprintf(stream, "[Date \"%s\"]\n", pgn_date(gamestate)); 263 fprintf(stream, "[Date \"%s\"]\n", pgn_date(gamestate));
259 fprintf(stream, "[Round \"%s\"]\n", "-"); 264 fprintf(stream, "[Round \"%s\"]\n", "-");
260 // TODO: maybe allow players to enter their names before game starts 265 fprintf(stream, "[White \"%s\"]\n", pgn_player_name(gamestate, WHITE));
261 fprintf(stream, "[White \"%s\"]\n", "Anonymous"); 266 fprintf(stream, "[Black \"%s\"]\n", pgn_player_name(gamestate, BLACK));
262 fprintf(stream, "[Black \"%s\"]\n", "Anonymous");
263 267
264 char *result; 268 char *result;
265 if (gamestate->stalemate || gamestate->remis) { 269 if (gamestate->stalemate || gamestate->remis) {
266 result = "1/2-1/2"; 270 result = "1/2-1/2";
267 } else if (gamestate->wresign) { 271 } else if (gamestate->wresign) {

mercurial