diff --git a/Core/Game/World/World.hpp b/Core/Game/World/World.hpp index 029736a..68f7d50 100644 --- a/Core/Game/World/World.hpp +++ b/Core/Game/World/World.hpp @@ -31,10 +31,10 @@ public: void load(std::shared_ptr save) override; #pragma endregion - template>> - Container GetActorsByClass() + template class Container = std::vector> + Container> GetActorsByClass() { - Container list; + Container> list; for (auto i = actors_map.cbegin(); i != actors_map.cend(); ++i) { if (RTTI::dyn_cast(i->second.get())) @@ -57,18 +57,21 @@ public: void DestroyActor(std::weak_ptr ptr); - template>> - Container GetActorsByTag(std::string tag) + template class Container = std::vector> + Container> GetActorsByTag(std::string tag) { - Container container; + Container> container; for (auto& i : actors_map) { - const std::list& tags = i.second->GetTags(); - for (auto& j : tags) + if (RTTI::dyn_cast(i.second.get())) { - if (j == tag) - container.push_back(i.second); + const std::list& tags = i.second->GetTags(); + for (auto& j : tags) + { + if (j == tag) + container.push_back(i.second); + } } } diff --git a/Tests/World/WorldTest.cpp b/Tests/World/WorldTest.cpp index 12f9f60..2fd151e 100644 --- a/Tests/World/WorldTest.cpp +++ b/Tests/World/WorldTest.cpp @@ -175,7 +175,7 @@ R"( CoreInstance tmp_core; // Test find by class - std::vector> test_actors = tmp_core.GetGameInstance()->GetWorld()->GetActorsByClass(); + std::list> test_actors = tmp_core.GetGameInstance()->GetWorld()->GetActorsByClass(); ASSERT_EQ(test_actors.size(), 1); // Test find by tag