COL_GRID, COL_CLUE, COL_CURSOR,
COL_TRACK, COL_TRACK_CLUE, COL_SLEEPER,
COL_DRAGON, COL_DRAGOFF,
- COL_ERROR, COL_FLASH,
+ COL_ERROR, COL_FLASH, COL_ERROR_BACKGROUND,
NCOLOURS
};
game_mkhighlight(fe, ret, COL_BACKGROUND, COL_HIGHLIGHT, COL_LOWLIGHT);
for (i = 0; i < 3; i++) {
- ret[COL_TRACK_CLUE * 3 + i] = 0.0F;
- ret[COL_TRACK * 3 + i] = 0.5F;
- ret[COL_CLUE * 3 + i] = 0.0F;
- ret[COL_GRID * 3 + i] = 0.75F;
- ret[COL_CURSOR * 3 + i] = 0.6F;
+ ret[COL_TRACK_CLUE * 3 + i] = 0.0F;
+ ret[COL_TRACK * 3 + i] = 0.5F;
+ ret[COL_CLUE * 3 + i] = 0.0F;
+ ret[COL_GRID * 3 + i] = 0.75F;
+ ret[COL_CURSOR * 3 + i] = 0.6F;
+ ret[COL_ERROR_BACKGROUND * 3 + i] = 1.0F;
}
ret[COL_SLEEPER * 3 + 0] = 0.5F;
draw_update(dr, ox, oy, TILE_SIZE, TILE_SIZE);
}
-static void draw_clue(drawing *dr, game_drawstate *ds, int w, int clue, int i, int col)
+static void draw_clue(drawing *dr, game_drawstate *ds, int w, int clue, int i, int col, int bg)
{
int cx, cy, tsz = TILE_SIZE/2;
char buf[20];
draw_rect(dr, cx - tsz + GRID_LINE_TL, cy - tsz + GRID_LINE_TL,
TILE_SIZE - GRID_LINE_ALL, TILE_SIZE - GRID_LINE_ALL,
- COL_BACKGROUND);
+ bg);
sprintf(buf, "%d", clue);
draw_text(dr, cx, cy, FONT_VARIABLE, tsz, ALIGN_VCENTRE|ALIGN_HCENTRE,
col, buf);
if (force || (state->num_errors[i] != ds->num_errors[i])) {
ds->num_errors[i] = state->num_errors[i];
draw_clue(dr, ds, w, state->numbers->numbers[i], i,
- ds->num_errors[i] ? COL_ERROR : COL_CLUE);
+ ds->num_errors[i] ? COL_ERROR : COL_CLUE,
+ ds->num_errors[i] ? COL_ERROR_BACKGROUND : COL_BACKGROUND);
}
}
/* clue numbers, and loop ends */
for (i = 0; i < w+h; i++)
- draw_clue(dr, ds, w, state->numbers->numbers[i], i, black);
+ draw_clue(dr, ds, w, state->numbers->numbers[i], i,
+ black, COL_BACKGROUND);
draw_loop_ends(dr, ds, state, black);
/* clue tracks / solution */