aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Harris <bjh21@bjh21.me.uk>2023-08-09 11:42:51 +0100
committerBen Harris <bjh21@bjh21.me.uk>2023-08-09 11:47:41 +0100
commit785de41a92dcd45a71c322bafa8af737bb1eb7aa (patch)
tree9f18c9c8492621d1c080d75a10ecd376d222dc11
parent8c768e7444707b1985788d610e8f14148bc36ab6 (diff)
downloadpuzzles-785de41a92dcd45a71c322bafa8af737bb1eb7aa.zip
puzzles-785de41a92dcd45a71c322bafa8af737bb1eb7aa.tar.gz
puzzles-785de41a92dcd45a71c322bafa8af737bb1eb7aa.tar.bz2
puzzles-785de41a92dcd45a71c322bafa8af737bb1eb7aa.tar.xz
Appropriately generate MOVE_NO_EFFECT from '\b' in Guess
This is the case that I care about for KaiOS.
-rw-r--r--guess.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/guess.c b/guess.c
index 2796bca..5c5f941 100644
--- a/guess.c
+++ b/guess.c
@@ -943,9 +943,12 @@ static char *interpret_move(const game_state *from, game_ui *ui,
ui->peg_cur++;
ret = MOVE_UI_UPDATE;
} else if (button == 'D' || button == 'd' || button == '\b') {
- ui->display_cur = true;
- set_peg(&from->params, ui, ui->peg_cur, 0);
- ret = MOVE_UI_UPDATE;
+ if (!ui->display_cur || ui->curr_pegs->pegs[ui->peg_cur] != 0) {
+ ui->display_cur = true;
+ set_peg(&from->params, ui, ui->peg_cur, 0);
+ ret = MOVE_UI_UPDATE;
+ } else
+ ret = MOVE_NO_EFFECT;
} else if (button == CURSOR_SELECT2) {
if (ui->peg_cur == from->params.npegs)
return NULL;