diff options
Diffstat (limited to 'src/game_loop/shop.h')
-rw-r--r-- | src/game_loop/shop.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/game_loop/shop.h b/src/game_loop/shop.h new file mode 100644 index 0000000..642bcc3 --- /dev/null +++ b/src/game_loop/shop.h @@ -0,0 +1,37 @@ +#pragma once + +#include "input.h" +#include "engine/draw_screen.h" +#include "engine/level_const.h" + + +#include <stdint.h> +#include <stdbool.h> + +typedef enum { + hh_e_shop_show, + hh_e_shop_main, + hh_e_shop_end, +} hh_e_shop_states; + +/** @brief amount of upgrade types */ +#define HH_SHOP_UPG_COUNT 5 +/** @brief count of visible upgrades in shop */ +#define HH_SHOP_UPG_DISPLAY 5 +/** @brief all possible upgrades */ +typedef enum { + hh_e_upg_jump, + hh_e_upg_speed, + hh_e_upg_damage, + hh_e_upg_heal, + hh_e_upg_max_health, +} hh_e_upgrades; + +/** @brief init */ +void hh_shop_init(hh_e_upgrades* in); +/** @brief deals with displayed entity rendering */ +void hh_shop_display(uint8_t selected, hh_e_upgrades* upgrades); +/** @brief moves 'cursor' through selection field */ +void hh_shift_selected(uint8_t* pos, bool dir, uint8_t min, uint8_t max); + +void hh_shop(hh_e_game_state*); |