summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
1a739e2)
commit: arrange that midend_set_timer(), hence game_timing_state(),
is called when the game_ui is changed. This allows timed games to
work by obscuring the initial layout until an initial click causes
it to be revealed, without requiring that they store that reveal
operation as a move in the undo chain. Not that any games actually
do this, but it's clearly a sensible thing to want to do: since
game_timing_state() _receives_ a game_ui as a parameter, obviously
it should be consulted when the game_ui changes.
git-svn-id: svn://svn.tartarus.org/sgt/puzzles@6914
cda61777-01e9-0310-a592-
d414129be87e
* state has been updated and a redraw is called for.
*/
midend_redraw(me);
* state has been updated and a redraw is called for.
*/
midend_redraw(me);
goto done;
} else if (s) {
midend_stop_anim(me);
goto done;
} else if (s) {
midend_stop_anim(me);
void midend_timer(midend *me, float tplus)
{
void midend_timer(midend *me, float tplus)
{
+ int need_redraw = (me->anim_time > 0 || me->flash_time > 0);
+
me->anim_pos += tplus;
if (me->anim_pos >= me->anim_time ||
me->anim_time == 0 || !me->oldstate) {
me->anim_pos += tplus;
if (me->anim_pos >= me->anim_time ||
me->anim_time == 0 || !me->oldstate) {
me->flash_pos = me->flash_time = 0;
}
me->flash_pos = me->flash_time = 0;
}
+ if (need_redraw)
+ midend_redraw(me);
if (me->timing) {
float oldelapsed = me->elapsed;
if (me->timing) {
float oldelapsed = me->elapsed;