game_state.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. typedef enum {
  5. TeamRed,
  6. TeamBlue
  7. } LaserTagTeam;
  8. typedef enum {
  9. LaserTagStateSplashScreen,
  10. LaserTagStateTeamSelect,
  11. LaserTagStateGame,
  12. LaserTagStateGameOver,
  13. } LaserTagState;
  14. typedef struct GameState GameState;
  15. GameState* game_state_alloc();
  16. void game_state_reset(GameState* state);
  17. void game_state_set_team(GameState* state, LaserTagTeam team);
  18. LaserTagTeam game_state_get_team(GameState* state);
  19. void game_state_decrease_health(GameState* state, uint8_t amount);
  20. void game_state_increase_health(GameState* state, uint8_t amount);
  21. uint8_t game_state_get_health(GameState* state);
  22. void game_state_decrease_ammo(GameState* state, uint16_t amount);
  23. void game_state_increase_ammo(GameState* state, uint16_t amount);
  24. uint16_t game_state_get_ammo(GameState* state);
  25. void game_state_update_time(GameState* state, uint32_t delta_time);
  26. uint32_t game_state_get_time(GameState* state);
  27. bool game_state_is_game_over(GameState* state);
  28. void game_state_set_game_over(GameState* state, bool game_over);
  29. #define INITIAL_HEALTH 100
  30. #define INITIAL_AMMO 100
  31. #define MAX_HEALTH 100