#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); Object * create_object(const std::string & name); Location * create_location(const std::string & name); public: void leaderbord_add(const std::string & name, unsigned int gold); std::vector random_locations(unsigned count = 1); private: GameData(); virtual ~GameData() = default; private: std::unique_ptr db = nullptr; };