File tree Expand file tree Collapse file tree 1 file changed +13
-8
lines changed
Client/mods/deathmatch/logic/luadefs Expand file tree Collapse file tree 1 file changed +13
-8
lines changed Original file line number Diff line number Diff line change @@ -553,23 +553,28 @@ int CLuaResourceDefs::Load(lua_State* luaVM)
553553std::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}
You can’t perform that action at this time.
0 commit comments