Use stl algorithms for expedition member searches

This commit is contained in:
hg 2020-05-23 17:25:09 -04:00
parent 780cf148fa
commit 32cc2d66dd
2 changed files with 20 additions and 30 deletions

View File

@ -352,52 +352,42 @@ bool Expedition::HasReplayLockout()
bool Expedition::HasMember(uint32_t character_id) bool Expedition::HasMember(uint32_t character_id)
{ {
for (const auto& member : m_members) return std::any_of(m_members.begin(), m_members.end(), [&](const ExpeditionMember& member) {
{ return member.char_id == character_id;
if (member.char_id == character_id) });
{
return true;
}
}
return false;
} }
bool Expedition::HasMember(const std::string& name) bool Expedition::HasMember(const std::string& character_name)
{ {
for (const auto& member : m_members) return std::any_of(m_members.begin(), m_members.end(), [&](const ExpeditionMember& member) {
{ return (strcasecmp(member.name.c_str(), character_name.c_str()) == 0);
if (strcasecmp(member.name.c_str(), name.c_str()) == 0) });
{
return true;
}
}
return false;
} }
ExpeditionMember Expedition::GetMemberData(uint32_t character_id) ExpeditionMember Expedition::GetMemberData(uint32_t character_id)
{ {
auto it = std::find_if(m_members.begin(), m_members.end(), [&](const ExpeditionMember& member) {
return member.char_id == character_id;
});
ExpeditionMember member_data; ExpeditionMember member_data;
for (const auto& member : m_members) if (it != m_members.end())
{ {
if (member.char_id == character_id) member_data = *it;
{
member_data = member;
break;
}
} }
return member_data; return member_data;
} }
ExpeditionMember Expedition::GetMemberData(const std::string& character_name) ExpeditionMember Expedition::GetMemberData(const std::string& character_name)
{ {
auto it = std::find_if(m_members.begin(), m_members.end(), [&](const ExpeditionMember& member) {
return (strcasecmp(member.name.c_str(), character_name.c_str()) == 0);
});
ExpeditionMember member_data; ExpeditionMember member_data;
for (const auto& member : m_members) if (it != m_members.end())
{ {
if (strcasecmp(member.name.c_str(), character_name.c_str()) == 0) member_data = *it;
{
member_data = member;
break;
}
} }
return member_data; return member_data;
} }

View File

@ -100,7 +100,7 @@ public:
const std::vector<ExpeditionMember>& GetMembers() const { return m_members; } const std::vector<ExpeditionMember>& GetMembers() const { return m_members; }
bool AddMember(const std::string& add_char_name, uint32_t add_char_id); bool AddMember(const std::string& add_char_name, uint32_t add_char_id);
bool HasMember(const std::string& name); bool HasMember(const std::string& character_name);
bool HasMember(uint32_t character_id); bool HasMember(uint32_t character_id);
void RemoveAllMembers(bool enable_removal_timers = true, bool update_dz_expire_time = true); void RemoveAllMembers(bool enable_removal_timers = true, bool update_dz_expire_time = true);
bool RemoveMember(const std::string& remove_char_name); bool RemoveMember(const std::string& remove_char_name);