Stop using CLUE2CHAR to translate clues into text; just do the obvious

sprintf in both locations (screen and print) that need it. Fixes a bug
in which clues greater than 9 came out as hex digits in printed
puzzles.

[originally from svn r9765]
This commit is contained in:
Simon Tatham
2013-02-24 12:52:17 +00:00
parent e0f5e49265
commit 4a1669b9ad

14
loopy.c
View File

@ -2997,14 +2997,9 @@ static void game_redraw_clue(drawing *dr, game_drawstate *ds,
grid *g = state->game_grid; grid *g = state->game_grid;
grid_face *f = g->faces + i; grid_face *f = g->faces + i;
int x, y; int x, y;
char c[3]; char c[20];
if (state->clues[i] < 10) { sprintf(c, "%d", state->clues[i]);
c[0] = CLUE2CHAR(state->clues[i]);
c[1] = '\0';
} else {
sprintf(c, "%d", state->clues[i]);
}
face_text_pos(ds, g, f, &x, &y); face_text_pos(ds, g, f, &x, &y);
draw_text(dr, x, y, draw_text(dr, x, y,
@ -3339,10 +3334,9 @@ static void game_print(drawing *dr, game_state *state, int tilesize)
grid_face *f = g->faces + i; grid_face *f = g->faces + i;
int clue = state->clues[i]; int clue = state->clues[i];
if (clue >= 0) { if (clue >= 0) {
char c[2]; char c[20];
int x, y; int x, y;
c[0] = CLUE2CHAR(clue); sprintf(c, "%d", state->clues[i]);
c[1] = '\0';
face_text_pos(ds, g, f, &x, &y); face_text_pos(ds, g, f, &x, &y);
draw_text(dr, x, y, draw_text(dr, x, y,
FONT_VARIABLE, ds->tilesize / 2, FONT_VARIABLE, ds->tilesize / 2,