diff options
| author | Ben Harris <bjh21@bjh21.me.uk> | 2023-01-28 18:49:47 +0000 |
|---|---|---|
| committer | Ben Harris <bjh21@bjh21.me.uk> | 2023-01-28 18:49:47 +0000 |
| commit | eb1ae3f3d041f9ff0c11b04613a695be11bda706 (patch) | |
| tree | 51d8bed49ff7aed79902053cf014681d29af8999 | |
| parent | a98ac4bb428ab5c1ff665aa1def6cc14d02a4e19 (diff) | |
| download | puzzles-eb1ae3f3d041f9ff0c11b04613a695be11bda706.zip puzzles-eb1ae3f3d041f9ff0c11b04613a695be11bda706.tar.gz puzzles-eb1ae3f3d041f9ff0c11b04613a695be11bda706.tar.bz2 puzzles-eb1ae3f3d041f9ff0c11b04613a695be11bda706.tar.xz | |
Forbid moves that fill with the current colour in Flood
This avoids an assertion failure, "oldcolour != newcolour" in fill(),
by catching it it execute_move(). As far as I know this couldn't be
triggered from the UI, but it could be demonstrated with this save
file:
SAVEFILE:41:Simon Tatham's Portable Puzzle Collection
VERSION :1:1
GAME :5:Flood
PARAMS :1:3
CPARAMS :1:3
DESC :12:231353400,11
NSTATES :1:3
STATEPOS:1:3
MOVE :2:M3
MOVE :2:M3
| -rw-r--r-- | flood.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -887,6 +887,7 @@ static game_state *execute_move(const game_state *state, const char *move) if (move[0] == 'M' && sscanf(move+1, "%d", &c) == 1 && c >= 0 && + c != state->grid[FILLY * state->w + FILLX] && !state->complete) { int *queue = snewn(state->w * state->h, int); ret = dup_game(state); |