diff options
| -rw-r--r-- | cube.c | 4 | ||||
| -rw-r--r-- | sixteen.c | 6 |
2 files changed, 7 insertions, 3 deletions
@@ -1366,13 +1366,15 @@ void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate, draw_rect(fe, 0, 0, (int)((bb.r-bb.l+2.0F) * GRID_SCALE), (int)((bb.d-bb.u+2.0F) * GRID_SCALE), COL_BACKGROUND); - if (oldstate && oldstate->movecount > state->movecount) { + if (dir < 0) { game_state *t; /* * This is an Undo. So reverse the order of the states, and * run the roll timer backwards. */ + assert(oldstate); + t = oldstate; oldstate = state; state = t; @@ -664,10 +664,12 @@ void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate, float c; int sense; - if (oldstate && state->movecount < oldstate->movecount) + if (dir < 0) { + assert(oldstate); sense = -oldstate->last_movement_sense; - else + } else { sense = state->last_movement_sense; + } t = state->tiles[i]; |