game_state.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. } LaserTagState;
  13. typedef struct GameState GameState;
  14. GameState* game_state_alloc();
  15. void game_state_reset(GameState* state);
  16. void game_state_set_team(GameState* state, LaserTagTeam team);
  17. LaserTagTeam game_state_get_team(GameState* state);
  18. void game_state_decrease_health(GameState* state, uint8_t amount);
  19. void game_state_increase_health(GameState* state, uint8_t amount);
  20. uint8_t game_state_get_health(GameState* state);
  21. void game_state_decrease_ammo(GameState* state, uint16_t amount);
  22. void game_state_increase_ammo(GameState* state, uint16_t amount);
  23. uint16_t game_state_get_ammo(GameState* state);
  24. void game_state_update_time(GameState* state, uint32_t delta_time);
  25. uint32_t game_state_get_time(GameState* state);
  26. bool game_state_is_game_over(GameState* state);
  27. void game_state_set_game_over(GameState* state, bool game_over);
  28. #define INITIAL_HEALTH 100
  29. #define INITIAL_AMMO 100
  30. #define MAX_HEALTH 100