mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Towers: allow marking of clues as done with the keyboard
This commit is contained in:

committed by
Simon Tatham

parent
6179e8df56
commit
79fe68dc57
@ -2652,7 +2652,8 @@ Pressing M will fill in a full set of pencil marks in every square
|
|||||||
that does not have a main digit in it.
|
that does not have a main digit in it.
|
||||||
|
|
||||||
Left-clicking a clue will mark it as done (grey it out), or unmark it
|
Left-clicking a clue will mark it as done (grey it out), or unmark it
|
||||||
if it is already marked.
|
if it is already marked. Holding Control or Shift and pressing an
|
||||||
|
arrow key likewise marks any clue in the given direction.
|
||||||
|
|
||||||
(All the actions described in \k{common-actions} are also available.)
|
(All the actions described in \k{common-actions} are also available.)
|
||||||
|
|
||||||
|
15
towers.c
15
towers.c
@ -1292,6 +1292,7 @@ static char *interpret_move(const game_state *state, game_ui *ui,
|
|||||||
int x, int y, int button)
|
int x, int y, int button)
|
||||||
{
|
{
|
||||||
int w = state->par.w;
|
int w = state->par.w;
|
||||||
|
int shift_or_control = button & (MOD_SHFT | MOD_CTRL);
|
||||||
int tx, ty;
|
int tx, ty;
|
||||||
char buf[80];
|
char buf[80];
|
||||||
|
|
||||||
@ -1376,6 +1377,20 @@ static char *interpret_move(const game_state *state, game_ui *ui,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (IS_CURSOR_MOVE(button)) {
|
if (IS_CURSOR_MOVE(button)) {
|
||||||
|
if (shift_or_control) {
|
||||||
|
int x = ui->hx, y = ui->hy;
|
||||||
|
switch (button) {
|
||||||
|
case CURSOR_LEFT: x = -1; break;
|
||||||
|
case CURSOR_RIGHT: x = w; break;
|
||||||
|
case CURSOR_UP: y = -1; break;
|
||||||
|
case CURSOR_DOWN: y = w; break;
|
||||||
|
}
|
||||||
|
if (is_clue(state, x, y)) {
|
||||||
|
sprintf(buf, "%c%d,%d", 'D', x, y);
|
||||||
|
return dupstr(buf);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
move_cursor(button, &ui->hx, &ui->hy, w, w, 0);
|
move_cursor(button, &ui->hx, &ui->hy, w, w, 0);
|
||||||
ui->hshow = ui->hcursor = 1;
|
ui->hshow = ui->hcursor = 1;
|
||||||
return "";
|
return "";
|
||||||
|
Reference in New Issue
Block a user