std::vector<GameObjectPtr> Map::GetObjectsAtPosition(int x, int y) const { glm::vec4 p = Tilepos(x, y); std::vector<GameObjectPtr> result; for (auto c : children) { if (c) { GameObjectPtr cPtr = std::dynamic_pointer_cast<GameObject>(c); glm::vec4 cPos = cPtr->GetPosition(); if (cPos.x >= p.x && cPos.y >= p.y && cPos.x <= p[2] && cPos.y <= p[3]) { result.push_back(cPtr); } } } return result; }