diff options
| author | Kevin Lyles <kevinlyles@gmail.com> | 2015-05-25 19:46:24 -0500 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2015-05-26 22:04:16 +0100 |
| commit | 9def49ae9abc6ee7831264827adcd9ef2a5c28e4 (patch) | |
| tree | fe3ba265ed95d9b12b0f41b10447a1e8841444a4 | |
| parent | 486d2c8a76e325d7a145e236a8c8b21d159fa412 (diff) | |
| download | puzzles-9def49ae9abc6ee7831264827adcd9ef2a5c28e4.zip puzzles-9def49ae9abc6ee7831264827adcd9ef2a5c28e4.tar.gz puzzles-9def49ae9abc6ee7831264827adcd9ef2a5c28e4.tar.bz2 puzzles-9def49ae9abc6ee7831264827adcd9ef2a5c28e4.tar.xz | |
Factored out a portion of game_redraw
| -rw-r--r-- | undead.c | 42 |
1 files changed, 17 insertions, 25 deletions
@@ -2429,6 +2429,20 @@ static void draw_pencils(drawing *dr, game_drawstate *ds, #define FLASH_TIME 0.7F +static int is_hint_stale(const game_drawstate *ds, int hflash, + const game_state *state, int index) +{ + if (!ds->started) return TRUE; + if (ds->hflash != hflash) return TRUE; + + if (ds->hint_errors[index] != state->hint_errors[index]) { + ds->hint_errors[index] = state->hint_errors[index]; + return TRUE; + } + + return FALSE; +} + static void game_redraw(drawing *dr, game_drawstate *ds, const game_state *oldstate, const game_state *state, int dir, const game_ui *ui, @@ -2484,37 +2498,15 @@ static void game_redraw(drawing *dr, game_drawstate *ds, /* Draw path count hints */ for (i=0;i<state->common->num_paths;i++) { - int p; - stale = FALSE; - - if (!ds->started) stale = TRUE; - if (ds->hflash != hflash) stale = TRUE; + struct path *path = &state->common->paths[i]; - p = state->common->paths[i].grid_start; - if (ds->hint_errors[p] != state->hint_errors[p]) { - stale = TRUE; - ds->hint_errors[p] = state->hint_errors[p]; - } - - if (stale) { + if (is_hint_stale(ds, hflash, state, path->grid_start)) { draw_path_hint(dr, ds, state, i, hflash, TRUE); } - stale = FALSE; - - if (!ds->started) stale = TRUE; - if (ds->hflash != hflash) stale = TRUE; - - p = state->common->paths[i].grid_end; - if (ds->hint_errors[p] != state->hint_errors[p]) { - stale = TRUE; - ds->hint_errors[p] = state->hint_errors[p]; - } - - if (stale) { + if (is_hint_stale(ds, hflash, state, path->grid_end)) { draw_path_hint(dr, ds, state, i, hflash, FALSE); } - } /* Draw puzzle grid contents */ |