#pragma once //#include #include #include #include #include "AsstTypes.h" namespace asst { class RuntimeStatus { public: RuntimeStatus() = default; RuntimeStatus(const RuntimeStatus& rhs) = delete; RuntimeStatus(RuntimeStatus&& rhs) noexcept = delete; ~RuntimeStatus() = default; std::optional get_number(const std::string& key) const noexcept; void set_number(std::string key, int64_t value); void clear_number() noexcept; std::optional get_rect(const std::string& key) const noexcept; void set_rect(std::string key, Rect rect); void clear_rect() noexcept; std::optional get_str(const std::string& key) const noexcept; void set_str(std::string key, std::string value); void clear_str() noexcept; RuntimeStatus& operator=(const RuntimeStatus& rhs) = delete; RuntimeStatus& operator=(RuntimeStatus&& rhs) noexcept = delete; public: static inline const std::string RoguelikeCharElitePrefix = "RoguelikeElite-"; static inline const std::string RoguelikeCharLevelPrefix = "RoguelikeLevel-"; static inline const std::string RoguelikeCharRarityPrefix = "RoguelikeRarity-"; static inline const std::string RoguelikeCharOverview = "RoguelikeOverview"; static inline const std::string RoguelikeTraderNoLongerBuy = "RoguelikeNoLongerBuy"; private: std::unordered_map m_number; std::unordered_map m_rect; std::unordered_map m_string; }; }