Add MOVE_NO_EFFECT and MOVE_UNUSED return values from interpret_move()

These allow for distinguishing the case where a puzzle doesn't have a
use for a key from the case where it just happens to have no effect in
the current state of the puzzle.  These were both represented by NULL,
but that now represents the case where a puzzle hasn't been updated to
make the distinction yet.
This commit is contained in:
Ben Harris
2023-06-04 19:02:21 +01:00
parent a9af3fda1d
commit a943f3177f
4 changed files with 29 additions and 11 deletions

View File

@ -990,7 +990,7 @@ static bool midend_really_process_key(midend *me, int x, int y, int button,
me->ui, me->drawstate, x, y, button);
}
if (!movestr) {
if (movestr == NULL || movestr == MOVE_UNUSED) {
if ((me->one_key_shortcuts && (button == 'n' || button == 'N')) ||
button == '\x0E' || button == UI_NEWGAME) {
midend_new_game(me);
@ -1025,6 +1025,8 @@ static bool midend_really_process_key(midend *me, int x, int y, int button,
goto done;
} else
goto done;
} else if (movestr == MOVE_NO_EFFECT) {
goto done;
} else {
*handled = true;
if (movestr == MOVE_UI_UPDATE)