states.c 833 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "states.h"
  2. State current_state = TITLE;
  3. void switch_to_state(State new_state, Game_Data *data)
  4. {
  5. switch (new_state)
  6. {
  7. case GAME:
  8. init_game(data);
  9. break;
  10. case TITLE:
  11. init_title(data);
  12. break;
  13. case MENU:
  14. init_menu(data);
  15. break;
  16. case GAME_OVER:
  17. init_game_over(data);
  18. break;
  19. }
  20. current_state = new_state;
  21. }
  22. void update(Game_Data *data)
  23. {
  24. switch(current_state)
  25. {
  26. case GAME:
  27. update_game(data);
  28. break;
  29. case TITLE:
  30. update_title(data);
  31. break;
  32. case MENU:
  33. update_menu(data);
  34. break;
  35. case GAME_OVER:
  36. update_game_over(data);
  37. break;
  38. }
  39. }
  40. void draw(Game_Data *data)
  41. {
  42. switch(current_state)
  43. {
  44. case GAME:
  45. draw_game(data);
  46. break;
  47. case TITLE:
  48. draw_title(data);
  49. break;
  50. case MENU:
  51. draw_menu(data);
  52. break;
  53. case GAME_OVER:
  54. draw_game_over(data);
  55. break;
  56. }
  57. }