game_manager.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include "level.h"
  3. #include "game_engine.h"
  4. #include "sprite.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. typedef struct GameManager GameManager;
  9. Level* game_manager_add_level(GameManager* manager, const LevelBehaviour* behaviour);
  10. void game_manager_next_level_set(GameManager* manager, Level* level);
  11. Level* game_manager_current_level_get(GameManager* manager);
  12. GameEngine* game_manager_engine_get(GameManager* manager);
  13. InputState game_manager_input_get(GameManager* manager);
  14. void* game_manager_game_context_get(GameManager* manager);
  15. void game_manager_game_stop(GameManager* manager);
  16. void game_manager_show_fps_set(GameManager* manager, bool show_fps);
  17. /**
  18. * @brief Load a sprite from a file
  19. * Sprite will be cached and reused if the same file is loaded again
  20. *
  21. * @param manager game manager instance
  22. * @param path sprite file path, relative to the game's assets folder
  23. * @return Sprite* or NULL if the sprite could not be loaded
  24. */
  25. Sprite* game_manager_sprite_load(GameManager* manager, const char* path);
  26. #ifdef __cplusplus
  27. }
  28. #endif