openmw/apps/opencs/model/doc/blacklist.cpp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

29 lines
865 B
C++
Raw Normal View History

#include "blacklist.hpp"
#include <algorithm>
#include <components/misc/strings/lower.hpp>
2022-09-22 21:26:05 +03:00
bool CSMDoc::Blacklist::isBlacklisted(const CSMWorld::UniversalId& id) const
{
2022-09-22 21:26:05 +03:00
std::map<CSMWorld::UniversalId::Type, std::vector<std::string>>::const_iterator iter = mIds.find(id.getType());
2022-09-22 21:26:05 +03:00
if (iter == mIds.end())
return false;
2022-09-22 21:26:05 +03:00
return std::binary_search(iter->second.begin(), iter->second.end(), Misc::StringUtils::lowerCase(id.getId()));
}
2022-09-22 21:26:05 +03:00
void CSMDoc::Blacklist::add(CSMWorld::UniversalId::Type type, const std::vector<std::string>& ids)
{
std::vector<std::string>& list = mIds[type];
2021-05-02 10:43:44 +04:00
size_t size = list.size();
2022-09-22 21:26:05 +03:00
list.resize(size + ids.size());
2022-09-22 21:26:05 +03:00
std::transform(ids.begin(), ids.end(), list.begin() + size,
[](const std::string& s) { return Misc::StringUtils::lowerCase(s); });
std::sort(list.begin(), list.end());
2015-03-11 10:54:45 -04:00
}