2022-01-08 21:57:17 +01:00
|
|
|
#ifndef BILLYSHEET_GUI_DATA_HPP
|
|
|
|
#define BILLYSHEET_GUI_DATA_HPP
|
|
|
|
|
2022-01-25 19:53:58 +01:00
|
|
|
#include <string_view>
|
2022-01-10 21:16:05 +01:00
|
|
|
#include <spdlog/spdlog.h>
|
2022-01-08 23:40:31 +01:00
|
|
|
|
2022-01-17 22:00:26 +01:00
|
|
|
namespace character {
|
2024-01-28 20:31:50 +01:00
|
|
|
class CharacterSheet;
|
2022-01-17 22:00:26 +01:00
|
|
|
}
|
|
|
|
|
2022-01-25 19:53:58 +01:00
|
|
|
using namespace std::string_view_literals;
|
|
|
|
|
2022-01-08 21:57:17 +01:00
|
|
|
namespace gui {
|
2022-01-09 00:43:33 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
enum class characChanged {
|
|
|
|
None,
|
|
|
|
Adresse,
|
|
|
|
Endurance,
|
|
|
|
Chance,
|
|
|
|
Habilete
|
|
|
|
};
|
2022-01-31 20:37:35 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
class GuiData final {
|
|
|
|
private:
|
|
|
|
friend class Gui;
|
2022-01-14 22:06:07 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
character::CharacterSheet &billy;
|
2022-01-11 22:33:29 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
std::pair<characChanged, std::uint32_t> base{ characChanged::None, 0 };
|
2022-01-31 20:37:35 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
std::pair<characChanged, std::uint32_t> carac{ characChanged::None, 0 };
|
2022-01-31 20:37:35 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
std::pair<characChanged, std::uint32_t> materiel{ characChanged::None, 0 };
|
2022-01-31 20:37:35 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
std::pair<characChanged, std::uint32_t> additional{ characChanged::None, 0 };
|
2022-01-31 20:37:35 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
public:
|
|
|
|
static constexpr std::array classes{
|
|
|
|
"Guerrier"sv,
|
|
|
|
"Prudent"sv,
|
|
|
|
"Paysan"sv,
|
|
|
|
"Débrouillard"sv
|
|
|
|
};
|
2022-01-25 19:53:58 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
GuiData() = delete;
|
2022-01-08 23:40:31 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
explicit GuiData(character::CharacterSheet &billy) noexcept: billy(billy) { SPDLOG_DEBUG("Creating GUI Data"); }
|
2022-01-08 23:40:31 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
~GuiData() noexcept = default;
|
2022-01-14 22:06:07 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
[[nodiscard]] const std::pair<characChanged, std::uint32_t> &get_base() const { return base; }
|
2022-01-31 20:37:35 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
[[nodiscard]] const std::pair<characChanged, std::uint32_t> &get_carac() const { return carac; }
|
2022-01-31 20:37:35 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
[[nodiscard]] const std::pair<characChanged, std::uint32_t> &get_materiel() const { return materiel; }
|
2022-01-31 20:37:35 +01:00
|
|
|
|
2024-01-28 20:31:50 +01:00
|
|
|
[[nodiscard]] const std::pair<characChanged, std::uint32_t> &get_additional() const { return additional; }
|
|
|
|
};
|
2022-01-08 21:57:17 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endif //BILLYSHEET_GUI_DATA_HPP
|