director.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "director.h"
  2. #include "director_i.h"
  3. #include "level_manager.h"
  4. #include <stdlib.h>
  5. #include <string.h>
  6. struct Director {
  7. RunningGameEngine* engine;
  8. LevelManager* level_manager;
  9. InputState input;
  10. void* game_context;
  11. };
  12. Director* director_alloc() {
  13. Director* director = malloc(sizeof(Director));
  14. memset(director, 0, sizeof(Director));
  15. return director;
  16. }
  17. void director_free(Director* director) {
  18. free(director);
  19. }
  20. void director_input_set(Director* director, InputState input) {
  21. director->input = input;
  22. }
  23. void director_engine_set(Director* director, RunningGameEngine* engine) {
  24. director->engine = engine;
  25. }
  26. void director_level_manager_set(Director* director, LevelManager* level_manager) {
  27. director->level_manager = level_manager;
  28. }
  29. InputState director_input_get(Director* director) {
  30. return director->input;
  31. }
  32. RunningGameEngine* director_engine_get(Director* director) {
  33. return director->engine;
  34. }
  35. LevelManager* director_level_manager_get(Director* director) {
  36. return director->level_manager;
  37. }
  38. Level* director_level_get(Director* director) {
  39. return level_manager_current_level_get(director->level_manager);
  40. }
  41. void* director_game_context_get(Director* director) {
  42. return director->game_context;
  43. }
  44. void director_game_context_set(Director* director, void* context) {
  45. director->game_context = context;
  46. }