story.c 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include <game/story.h>
  2. #include "game/storage.h"
  3. void story_draw_tutorial(Canvas *canvas, GameManager *manager)
  4. {
  5. GameContext *game_context = game_manager_game_context_get(manager);
  6. canvas_set_font(canvas, FontPrimary);
  7. canvas_draw_str(canvas, 45, 12, "Tutorial");
  8. canvas_set_font_custom(canvas, FONT_SIZE_SMALL);
  9. switch (game_context->story_step)
  10. {
  11. case 0:
  12. canvas_draw_str(canvas, 15, 20, "Press LEFT to move left");
  13. break;
  14. case 1:
  15. canvas_draw_str(canvas, 15, 20, "Press RIGHT to move right");
  16. break;
  17. case 2:
  18. canvas_draw_str(canvas, 15, 20, "Press UP to move up");
  19. break;
  20. case 3:
  21. canvas_draw_str(canvas, 15, 20, "Press DOWN to move down");
  22. break;
  23. case 4:
  24. canvas_draw_str(canvas, 0, 20, "Press OK + collide with an enemy to attack");
  25. break;
  26. case 5:
  27. canvas_draw_str(canvas, 15, 20, "Hold OK to open the menu");
  28. break;
  29. case 6:
  30. canvas_draw_str(canvas, 15, 20, "Press BACK to escape the menu");
  31. break;
  32. case 7:
  33. canvas_draw_str(canvas, 15, 20, "Hold BACK to save and exit");
  34. break;
  35. case 8:
  36. save_char("tutorial_done", "J You BLANKED on this one");
  37. game_context->story_step++;
  38. save_uint32("story_step", game_context->story_step);
  39. return;
  40. default:
  41. break;
  42. }
  43. }
  44. void story_draw(Entity *player, Canvas *canvas, GameManager *manager)
  45. {
  46. if (!player || !canvas || !manager)
  47. return;
  48. // Get game context
  49. GameContext *game_context = game_manager_game_context_get(manager);
  50. if (!game_context)
  51. return;
  52. // Get player context
  53. PlayerContext *player_context = entity_context_get(player);
  54. if (!player_context)
  55. return;
  56. // Draw the tutorial or game world
  57. if (game_context->story_step < STORY_TUTORIAL_STEPS)
  58. {
  59. story_draw_tutorial(canvas, manager);
  60. }
  61. else
  62. {
  63. draw_background_render(canvas, manager);
  64. }
  65. }