]> git.draconx.ca Git - rrace.git/blobdiff - src/game.h
Avoid Gnulib std-gnu11 module.
[rrace.git] / src / game.h
index 99b51338a00078a2349b69bb352c3b0fd72de2a0..958cc60f94168489d966fc5ff21466d93c7ff2df 100644 (file)
@@ -161,14 +161,16 @@ static inline uint_fast32_t board_right(int x)
  * and update the location of the empty position which, if the move was valid
  * is now (x, y).
  *
- * Returns 0 if the move was valid (and board has been updated), -1 otherwise.
+ * Returns the board bitmap indicating which positions changed.  A return
+ * value of 0 therefore indicates an invalid move.
  */
-int game_do_move(struct board *board, int x, int y);
+uint_fast32_t game_do_move(struct board *board, int x, int y);
 
 /*
- * Returns 1 if the game is in a winning position, or 0 otherwise.
+ * Returns the board bitmap setting game locations that differ from the goal.
+ * A return value of 0 therefore indicates a winning position.
  */
-int game_check_goal(struct board *board);
+uint_fast32_t game_check_goal(struct board *board);
 
 /*
  * Initialize the game RNG such that the next call to game_reset will produce a
@@ -186,6 +188,11 @@ void game_reset(struct board *board);
  */
 void game_begin(struct board *board);
 
+/*
+ * Return the total elapsed time (in ms) since the last call to game_begin.
+ */
+int_fast32_t game_elapsed(struct board *board);
+
 /*
  * Disable new moves and clear all tile bits other than the 9 goal tiles.
  * Returns the total elapsed time (in ms).