Infrastructure change: game_anim_length and game_flash_length now
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 30 May 2005 07:55:27 +0000 (07:55 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 30 May 2005 07:55:27 +0000 (07:55 +0000)
both get passed a pointer to the game_ui. This means that if they
need to note down information for the redraw function about what
_type_ of flash or animation is required, they now have somewhere to
do so.

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@5858 cda61777-01e9-0310-a592-d414129be87e

12 files changed:
cube.c
fifteen.c
midend.c
net.c
netslide.c
nullgame.c
pattern.c
puzzles.h
rect.c
sixteen.c
solo.c
twiddle.c

diff --git a/cube.c b/cube.c
index ddf5527..78d35c1 100644 (file)
--- a/cube.c
+++ b/cube.c
@@ -1526,13 +1526,13 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
 }
 
 static float game_anim_length(game_state *oldstate,
-                             game_state *newstate, int dir)
+                             game_state *newstate, int dir, game_ui *ui)
 {
     return ROLLTIME;
 }
 
 static float game_flash_length(game_state *oldstate,
-                              game_state *newstate, int dir)
+                              game_state *newstate, int dir, game_ui *ui)
 {
     return 0.0F;
 }
index 700c26c..5bcc87a 100644 (file)
--- a/fifteen.c
+++ b/fifteen.c
@@ -778,7 +778,7 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
 }
 
 static float game_anim_length(game_state *oldstate,
-                             game_state *newstate, int dir)
+                             game_state *newstate, int dir, game_ui *ui)
 {
     if ((dir > 0 && newstate->just_used_solve) ||
        (dir < 0 && oldstate->just_used_solve))
@@ -788,7 +788,7 @@ static float game_anim_length(game_state *oldstate,
 }
 
 static float game_flash_length(game_state *oldstate,
-                              game_state *newstate, int dir)
+                              game_state *newstate, int dir, game_ui *ui)
 {
     if (!oldstate->completed && newstate->completed &&
        !oldstate->used_solve && !newstate->used_solve)
index 070f4f3..6ae10f9 100644 (file)
--- a/midend.c
+++ b/midend.c
@@ -212,7 +212,8 @@ static void midend_finish_move(midend_data *me)
        flashtime = me->ourgame->flash_length(me->oldstate ? me->oldstate :
                                              me->states[me->statepos-2].state,
                                              me->states[me->statepos-1].state,
-                                             me->oldstate ? me->dir : +1);
+                                             me->oldstate ? me->dir : +1,
+                                             me->ui);
        if (flashtime > 0) {
            me->flash_pos = 0.0F;
            me->flash_time = flashtime;
@@ -333,7 +334,7 @@ static int midend_really_process_key(midend_data *me, int x, int y, int button)
     } else {
         anim_time = me->ourgame->anim_length(oldstate,
                                              me->states[me->statepos-1].state,
-                                             me->dir);
+                                             me->dir, me->ui);
     }
 
     me->oldstate = oldstate;
diff --git a/net.c b/net.c
index e4733f6..0df502f 100644 (file)
--- a/net.c
+++ b/net.c
@@ -2521,7 +2521,7 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
 }
 
 static float game_anim_length(game_state *oldstate,
-                             game_state *newstate, int dir)
+                             game_state *newstate, int dir, game_ui *ui)
 {
     int last_rotate_dir;
 
@@ -2544,7 +2544,7 @@ static float game_anim_length(game_state *oldstate,
 }
 
 static float game_flash_length(game_state *oldstate,
-                              game_state *newstate, int dir)
+                              game_state *newstate, int dir, game_ui *ui)
 {
     /*
      * If the game has just been completed, we display a completion
index a97ee07..5e98222 100644 (file)
@@ -1683,7 +1683,7 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
 }
 
 static float game_anim_length(game_state *oldstate,
-                             game_state *newstate, int dir)
+                             game_state *newstate, int dir, game_ui *ui)
 {
     /*
      * Don't animate an auto-solve move.
@@ -1696,7 +1696,7 @@ static float game_anim_length(game_state *oldstate,
 }
 
 static float game_flash_length(game_state *oldstate,
-                              game_state *newstate, int dir)
+                              game_state *newstate, int dir, game_ui *ui)
 {
     /*
      * If the game has just been completed, we display a completion
index da57bac..8d08530 100644 (file)
@@ -199,13 +199,13 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
 }
 
 static float game_anim_length(game_state *oldstate, game_state *newstate,
-                             int dir)
+                             int dir, game_ui *ui)
 {
     return 0.0F;
 }
 
 static float game_flash_length(game_state *oldstate, game_state *newstate,
-                              int dir)
+                              int dir, game_ui *ui)
 {
     return 0.0F;
 }
index e09ed3d..0d5f8a8 100644 (file)
--- a/pattern.c
+++ b/pattern.c
@@ -1086,13 +1086,13 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
 }
 
 static float game_anim_length(game_state *oldstate,
-                             game_state *newstate, int dir)
+                             game_state *newstate, int dir, game_ui *ui)
 {
     return 0.0F;
 }
 
 static float game_flash_length(game_state *oldstate,
-                              game_state *newstate, int dir)
+                              game_state *newstate, int dir, game_ui *ui)
 {
     if (!oldstate->completed && newstate->completed &&
        !oldstate->cheated && !newstate->cheated)
index ec818d5..1dbe130 100644 (file)
--- a/puzzles.h
+++ b/puzzles.h
@@ -219,8 +219,10 @@ struct game {
     void (*redraw)(frontend *fe, game_drawstate *ds, game_state *oldstate,
                   game_state *newstate, int dir, game_ui *ui, float anim_time,
                   float flash_time);
-    float (*anim_length)(game_state *oldstate, game_state *newstate, int dir);
-    float (*flash_length)(game_state *oldstate, game_state *newstate, int dir);
+    float (*anim_length)(game_state *oldstate, game_state *newstate, int dir,
+                        game_ui *ui);
+    float (*flash_length)(game_state *oldstate, game_state *newstate, int dir,
+                         game_ui *ui);
     int (*wants_statusbar)(void);
 };
 
diff --git a/rect.c b/rect.c
index 12d14b9..4a88d3b 100644 (file)
--- a/rect.c
+++ b/rect.c
@@ -2496,13 +2496,13 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
 }
 
 static float game_anim_length(game_state *oldstate,
-                             game_state *newstate, int dir)
+                             game_state *newstate, int dir, game_ui *ui)
 {
     return 0.0F;
 }
 
 static float game_flash_length(game_state *oldstate,
-                              game_state *newstate, int dir)
+                              game_state *newstate, int dir, game_ui *ui)
 {
     if (!oldstate->completed && newstate->completed &&
        !oldstate->cheated && !newstate->cheated)
index 2bfaadd..e7eb7bd 100644 (file)
--- a/sixteen.c
+++ b/sixteen.c
@@ -937,7 +937,7 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
 }
 
 static float game_anim_length(game_state *oldstate,
-                             game_state *newstate, int dir)
+                             game_state *newstate, int dir, game_ui *ui)
 {
     if ((dir > 0 && newstate->just_used_solve) ||
        (dir < 0 && oldstate->just_used_solve))
@@ -947,7 +947,7 @@ static float game_anim_length(game_state *oldstate,
 }
 
 static float game_flash_length(game_state *oldstate,
-                              game_state *newstate, int dir)
+                              game_state *newstate, int dir, game_ui *ui)
 {
     if (!oldstate->completed && newstate->completed &&
        !oldstate->used_solve && !newstate->used_solve)
diff --git a/solo.c b/solo.c
index 6a964ea..3272a56 100644 (file)
--- a/solo.c
+++ b/solo.c
@@ -2121,13 +2121,13 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
 }
 
 static float game_anim_length(game_state *oldstate, game_state *newstate,
-                             int dir)
+                             int dir, game_ui *ui)
 {
     return 0.0F;
 }
 
 static float game_flash_length(game_state *oldstate, game_state *newstate,
-                              int dir)
+                              int dir, game_ui *ui)
 {
     if (!oldstate->completed && newstate->completed &&
        !oldstate->cheated && !newstate->cheated)
index a681059..02b7982 100644 (file)
--- a/twiddle.c
+++ b/twiddle.c
@@ -942,7 +942,7 @@ static int highlight_colour(float angle)
 }
 
 static float game_anim_length(game_state *oldstate, game_state *newstate,
-                             int dir)
+                             int dir, game_ui *ui)
 {
     if ((dir > 0 && newstate->just_used_solve) ||
        (dir < 0 && oldstate->just_used_solve))
@@ -952,7 +952,7 @@ static float game_anim_length(game_state *oldstate, game_state *newstate,
 }
 
 static float game_flash_length(game_state *oldstate, game_state *newstate,
-                              int dir)
+                              int dir, game_ui *ui)
 {
     if (!oldstate->completed && newstate->completed &&
        !oldstate->used_solve && !newstate->used_solve)
@@ -1012,7 +1012,7 @@ static void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
      */
     if (oldstate) {
        float angle;
-       float anim_max = game_anim_length(oldstate, state, dir);
+       float anim_max = game_anim_length(oldstate, state, dir, ui);
 
        if (dir > 0) {
            lastx = state->lastx;