#define IS_VERTICAL_EDGE(x) ((x % 2) == 0)
+static int game_can_format_as_text_now(game_params *params)
+{
+ return TRUE;
+}
+
static char *game_text_format(game_state *state)
{
int maxlen = (state->sx+1)*state->sy, x, y;
*/
for (i = 0; i < w*h; i++)
if (sqdata[i].valid) {
- sqdata[i].cx = sqdata[i].minx + sqdata[i].maxx + 1;
- sqdata[i].cy = sqdata[i].miny + sqdata[i].maxy + 1;
+ int cx, cy;
+ cx = sqdata[i].cx = sqdata[i].minx + sqdata[i].maxx + 1;
+ cy = sqdata[i].cy = sqdata[i].miny + sqdata[i].maxy + 1;
if (!(SPACE(state, sqdata[i].cx, sqdata[i].cy).flags & F_DOT))
sqdata[i].valid = FALSE; /* no dot at centre of symmetry */
+ if (dsf_canonify(dsf, (cy-1)/2*w+(cx-1)/2) != i ||
+ dsf_canonify(dsf, (cy)/2*w+(cx-1)/2) != i ||
+ dsf_canonify(dsf, (cy-1)/2*w+(cx)/2) != i ||
+ dsf_canonify(dsf, (cy)/2*w+(cx)/2) != i)
+ sqdata[i].valid = FALSE; /* dot at cx,cy isn't ours */
if (SPACE(state, sqdata[i].cx, sqdata[i].cy).flags & F_DOT_BLACK)
sqdata[i].colour = 2;
else
game_drawstate ads, *ds = &ads;
ds->tilesize = sz;
- white = print_grey_colour(dr, HATCH_CLEAR, 1.0F);
- black = print_grey_colour(dr, HATCH_SOLID, 0.0F);
- blackish = print_grey_colour(dr, HATCH_X, 0.5F);
+ white = print_mono_colour(dr, 1);
+ black = print_mono_colour(dr, 0);
+ blackish = print_hatched_colour(dr, HATCH_X);
/*
* Get the completion information.
#else
TRUE, solve_game,
#endif
- TRUE, game_text_format,
+ TRUE, game_can_format_as_text_now, game_text_format,
new_ui,
free_ui,
encode_ui,