#pragma once #include #include "DB.h" class Enemy; class Object; class Location; class GameData { public: static GameData & get_instance(); public: Enemy * create_enemy(const std::string & name) const; Object * create_object(const std::string & name) const; Location * create_location(const std::string & name) const; public: void leaderbord_add(const std::string & name, unsigned int gold) const; void leaderbord_print() const; std::vector random_locations(unsigned count = 1); private: GameData(); virtual ~GameData() = default; private: std::unique_ptr db = nullptr; };