aboutsummaryrefslogtreecommitdiff
path: root/cube.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2004-04-29 19:23:08 +0000
committerSimon Tatham <anakin@pobox.com>2004-04-29 19:23:08 +0000
commita8c8237bd0362e4fe44a451eb81544b451ae4444 (patch)
treec50e8ec0ef03edcdba50cd651076290f657ffa7e /cube.c
parentfa7ef572c782c9394f60202d950d3380dfdce5c3 (diff)
downloadpuzzles-a8c8237bd0362e4fe44a451eb81544b451ae4444.zip
puzzles-a8c8237bd0362e4fe44a451eb81544b451ae4444.tar.gz
puzzles-a8c8237bd0362e4fe44a451eb81544b451ae4444.tar.bz2
puzzles-a8c8237bd0362e4fe44a451eb81544b451ae4444.tar.xz
Added a status bar.
[originally from svn r4174]
Diffstat (limited to 'cube.c')
-rw-r--r--cube.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/cube.c b/cube.c
index 6fef4d1..5940c8b 100644
--- a/cube.c
+++ b/cube.c
@@ -788,7 +788,7 @@ game_state *new_game(game_params *params, char *seed)
state->previous = state->current;
state->angle = 0.0;
- state->completed = FALSE;
+ state->completed = 0;
state->movecount = 0;
return state;
@@ -1068,7 +1068,7 @@ game_state *make_move(game_state *from, int x, int y, int button)
if (ret->facecolours[i])
j++;
if (j == ret->solid->nfaces)
- ret->completed = TRUE;
+ ret->completed = ret->movecount;
}
sfree(poly);
@@ -1329,6 +1329,19 @@ void game_redraw(frontend *fe, game_drawstate *ds, game_state *oldstate,
draw_update(fe, 0, 0, (int)((bb.r-bb.l+2.0F) * GRID_SCALE),
(int)((bb.d-bb.u+2.0F) * GRID_SCALE));
+
+ /*
+ * Update the status bar.
+ */
+ {
+ char statusbuf[256];
+
+ sprintf(statusbuf, "%sMoves: %d",
+ (state->completed ? "COMPLETED! " : ""),
+ (state->completed ? state->completed : state->movecount));
+
+ status_bar(fe, statusbuf);
+ }
}
float game_anim_length(game_state *oldstate, game_state *newstate)
@@ -1340,3 +1353,8 @@ float game_flash_length(game_state *oldstate, game_state *newstate)
{
return 0.0F;
}
+
+int game_wants_statusbar(void)
+{
+ return TRUE;
+}