aboutsummaryrefslogtreecommitdiff
path: root/solo.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2015-07-13 19:06:53 +0100
committerSimon Tatham <anakin@pobox.com>2015-07-13 19:06:53 +0100
commit5e1c335eea905ee031e440399f7a575c5c7a1ad3 (patch)
tree38cd7b1596204e24d5f56fd074322189fade4954 /solo.c
parentaa1a9375be96cd8e0f89a670359c3c80ad7cf937 (diff)
downloadpuzzles-5e1c335eea905ee031e440399f7a575c5c7a1ad3.zip
puzzles-5e1c335eea905ee031e440399f7a575c5c7a1ad3.tar.gz
puzzles-5e1c335eea905ee031e440399f7a575c5c7a1ad3.tar.bz2
puzzles-5e1c335eea905ee031e440399f7a575c5c7a1ad3.tar.xz
Solo, Undead: support 'm' to fill in all pencils.
Keen, Towers and Unequal (and Group) already have this feature in common: pressing m while no square is selected, causes a full set of pencil marks to be filled in for every square without a real number/ letter/whatever in it. Solo and Undead share the basic UI principles (left-click to select a square then type a thing to go in it, vs right-click to select a square then type things to pencil-mark in it), but did not have that same feature. Now they do.
Diffstat (limited to 'solo.c')
-rw-r--r--solo.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/solo.c b/solo.c
index 789d68f..631d335 100644
--- a/solo.c
+++ b/solo.c
@@ -4614,6 +4614,9 @@ static char *interpret_move(const game_state *state, game_ui *ui,
return dupstr(buf);
}
+ if (button == 'M' || button == 'm')
+ return dupstr("M");
+
return NULL;
}
@@ -4665,6 +4668,21 @@ static game_state *execute_move(const game_state *from, const char *move)
}
}
return ret;
+ } else if (move[0] == 'M') {
+ /*
+ * Fill in absolutely all pencil marks in unfilled squares,
+ * for those who like to play by the rigorous approach of
+ * starting off in that state and eliminating things.
+ */
+ ret = dup_game(from);
+ for (y = 0; y < cr; y++) {
+ for (x = 0; x < cr; x++) {
+ if (!ret->grid[y*cr+x]) {
+ memset(ret->pencil + (y*cr+x)*cr, 1, cr);
+ }
+ }
+ }
+ return ret;
} else
return NULL; /* couldn't parse move string */
}