+ if (cur_x == -1 && cur_y == -1)
+ return; /* 'no cursur here */
+ else if (cur_x == -1) /* LH column. */
+ draw_arrow(dr, ds, 0, cur_y+1, 0, -1, cur);
+ else if (cur_x == ds->width) /* RH column */
+ draw_arrow(dr, ds, ds->width, cur_y, 0, +1, cur);
+ else if (cur_y == -1) /* Top row */
+ draw_arrow(dr, ds, cur_x, 0, +1, 0, cur);
+ else if (cur_y == ds->height) /* Bottom row */
+ draw_arrow(dr, ds, cur_x+1, ds->height, -1, 0, cur);
+ else
+ assert(!"Invalid cursor position");
+
+ draw_update(dr,
+ cur_x * TILE_SIZE + BORDER + WINDOW_OFFSET,
+ cur_y * TILE_SIZE + BORDER + WINDOW_OFFSET,
+ TILE_SIZE, TILE_SIZE);
+}
+
+static void game_redraw(drawing *dr, game_drawstate *ds,
+ const game_state *oldstate, const game_state *state,
+ int dir, const game_ui *ui,
+ float t, float ft)
+{
+ int x, y, frame;