#pragma once #include #include #include using namespace std; class GameDatabase { private: std::map> db; public: GameDatabase() = default; void Insert(ObjectId id, string name, size_t x, size_t y) { GameObject obj; obj.name = name; obj.id = id; obj.x = x; obj.y = y; db[id] = obj; } void Remove(ObjectId id) { map::iterator obj; obj = db.find(id); if (obj != db.end()) db.erase(obj); } vector DataByName(string name) const { vector mass; map::const_iterator i; for (i = db.begin(); i != db.end(); i++) { if (i->second.name == name) { mass.push_back(i->second); } } return mass; } vector DataByPosition(size_t x, size_t y) const { vector mass; map::const_iterator i; for (i = db.begin(); i != db.end(); i++) { if (i->second.x == x && i->second.y == y) { mass.push_back(i->second); } } return mass; } vector Data() const { vector mass; map::const_iterator i; for (i = db.begin(); i != db.end(); i++) { mass.push_back(i->second); } return mass; } };