Skip to content

Commit df5275e

Browse files
committed
Update CLuaResourceDefs.cpp
1 parent 543e6cd commit df5275e

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

Client/mods/deathmatch/logic/luadefs/CLuaResourceDefs.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -553,23 +553,28 @@ int CLuaResourceDefs::Load(lua_State* luaVM)
553553
std::vector<std::string> CLuaResourceDefs::GetResourceFiles(lua_State* luaVM, std::optional<CResourceFile::eResourceCategory> type,
554554
std::optional<CResource*> resource) noexcept
555555
{
556+
using eResourceCategory = CResourceFile::eResourceCategory;
557+
556558
if (!type)
557-
type = CResourceFile::eResourceCategory::ALL;
559+
type = eResourceCategory::ALL;
558560

559561
if (!resource)
560562
resource = &lua_getownerresource(luaVM);
561563

562564
const auto resourceFiles = (*resource)->GetResourceFiles();
563565

564-
std::vector<std::string> files;
565-
files.reserve(resourceFiles.size());
566+
std::unordered_set<std::string> files;
566567
for (const auto& file : resourceFiles)
567568
{
568-
if (file->GetResourceCategoryType() == type.value() || type.value() == CResourceFile::eResourceCategory::ALL)
569-
{
570-
files.push_back(file->GetName());
571-
}
569+
if (file->GetResourceCategoryType() != type.value() && type.value() != eResourceCategory::ALL)
570+
continue;
571+
files.insert(file->GetName());
572572
}
573573

574-
return files;
574+
// TODO: Upgrade ArgumentParser so it would accept
575+
// std::set and std::unordered_set as return values
576+
return std::vector<std::string>(
577+
std::make_move_iterator(files.begin()),
578+
std::make_move_iterator(files.end())
579+
);
575580
}

0 commit comments

Comments
 (0)