aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Lyles <kevinlyles@gmail.com>2015-05-25 19:46:24 -0500
committerSimon Tatham <anakin@pobox.com>2015-05-26 22:04:16 +0100
commit9def49ae9abc6ee7831264827adcd9ef2a5c28e4 (patch)
treefe3ba265ed95d9b12b0f41b10447a1e8841444a4
parent486d2c8a76e325d7a145e236a8c8b21d159fa412 (diff)
downloadpuzzles-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.c42
1 files changed, 17 insertions, 25 deletions
diff --git a/undead.c b/undead.c
index 7d68b81..ddc8aaf 100644
--- a/undead.c
+++ b/undead.c
@@ -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 */