/*
* Choose a non-blue square for the polyhedron.
*/
- sprintf(p, ":%d", rand_upto(m));
+ sprintf(p, ":%d", data.gridptrs[0][rand_upto(m)]);
sfree(data.gridptrs[0]);
sfree(flags);
state->previous = state->current;
state->angle = 0.0;
- state->completed = FALSE;
+ state->completed = 0;
state->movecount = 0;
return state;
ret->facecolours = newcolours;
}
+ ret->movecount++;
+
/*
* And finally, swap the colour between the bottom face of the
* polyhedron and the face we've just landed on.
if (ret->facecolours[i])
j++;
if (j == ret->solid->nfaces)
- ret->completed = TRUE;
+ ret->completed = ret->movecount;
}
sfree(poly);
ret->sgkey[1] = skey[1];
ret->previous = from->current;
ret->angle = angle;
- ret->movecount++;
return ret;
}
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)
{
return 0.0F;
}
+
+int game_wants_statusbar(void)
+{
+ return TRUE;
+}