|
|
@@ -105,6 +105,78 @@ static void enemy_start(Entity *self, GameManager *manager, void *context)
|
|
|
entity_collider_add_circle(self, enemy_context->radius);
|
|
|
}
|
|
|
|
|
|
+static void draw_menu(GameManager *manager, Canvas *canvas)
|
|
|
+{
|
|
|
+ GameContext *game_context = game_manager_game_context_get(manager);
|
|
|
+
|
|
|
+ // draw background rectangle
|
|
|
+ canvas_draw_icon(
|
|
|
+ canvas,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ &I_icon_menu_128x64px);
|
|
|
+
|
|
|
+ // draw menu options
|
|
|
+ switch (game_context->menu_screen)
|
|
|
+ {
|
|
|
+ case GAME_MENU_INFO:
|
|
|
+ // draw info
|
|
|
+ // first option is highlighted
|
|
|
+ char health[32];
|
|
|
+ char xp[32];
|
|
|
+ char level[32];
|
|
|
+ char strength[32];
|
|
|
+
|
|
|
+ snprintf(level, sizeof(level), "Level : %ld", game_context->player_context->level);
|
|
|
+ snprintf(health, sizeof(health), "Health : %ld", game_context->player_context->health);
|
|
|
+ snprintf(xp, sizeof(xp), "XP : %ld", game_context->player_context->xp);
|
|
|
+ snprintf(strength, sizeof(strength), "Strength: %ld", game_context->player_context->strength);
|
|
|
+ canvas_set_font(canvas, FontPrimary);
|
|
|
+ canvas_draw_str(canvas, 7, 16, game_context->player_context->username);
|
|
|
+ canvas_set_font_custom(canvas, FONT_SIZE_SMALL);
|
|
|
+ canvas_draw_str(canvas, 7, 30, level);
|
|
|
+ canvas_draw_str(canvas, 7, 37, health);
|
|
|
+ canvas_draw_str(canvas, 7, 44, xp);
|
|
|
+ canvas_draw_str(canvas, 7, 51, strength);
|
|
|
+
|
|
|
+ // draw a box around the selected option
|
|
|
+ canvas_draw_frame(canvas, 80, 18, 36, 30);
|
|
|
+ canvas_set_font(canvas, FontPrimary);
|
|
|
+ canvas_draw_str(canvas, 86, 30, "Info");
|
|
|
+ canvas_set_font(canvas, FontSecondary);
|
|
|
+ canvas_draw_str(canvas, 86, 42, "More");
|
|
|
+ break;
|
|
|
+ case GAME_MENU_MORE:
|
|
|
+ // draw settings
|
|
|
+ switch (game_context->menu_selection)
|
|
|
+ {
|
|
|
+ case 0:
|
|
|
+ // first option is highlighted
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ // second option is highlighted
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ canvas_set_font(canvas, FontPrimary);
|
|
|
+ canvas_draw_str(canvas, 7, 16, "FlipWorld v0.4");
|
|
|
+ canvas_set_font_custom(canvas, FONT_SIZE_SMALL);
|
|
|
+ canvas_draw_str_multi(canvas, 7, 25, "Developed by\nJBlanked and Derek \nJamison. Graphics\nfrom Pr3!\n\nwww.github.com/jblanked");
|
|
|
+
|
|
|
+ // draw a box around the selected option
|
|
|
+ canvas_draw_frame(canvas, 80, 18, 36, 30);
|
|
|
+ canvas_set_font(canvas, FontSecondary);
|
|
|
+ canvas_draw_str(canvas, 86, 30, "Info");
|
|
|
+ canvas_set_font(canvas, FontPrimary);
|
|
|
+ canvas_draw_str(canvas, 86, 42, "More");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// Enemy render function
|
|
|
static void enemy_render(Entity *self, GameManager *manager, Canvas *canvas, void *context)
|
|
|
{
|
|
|
@@ -159,12 +231,8 @@ static void enemy_render(Entity *self, GameManager *manager, Canvas *canvas, voi
|
|
|
|
|
|
if (game_context->is_menu_open)
|
|
|
{
|
|
|
- // draw menu icon
|
|
|
- canvas_draw_icon(
|
|
|
- canvas,
|
|
|
- 0,
|
|
|
- 0,
|
|
|
- &I_icon_menu_128x64px);
|
|
|
+ // draw menu
|
|
|
+ draw_menu(manager, canvas);
|
|
|
}
|
|
|
}
|
|
|
|