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)
{
for (const auto& member : m_members)
{
if (member.char_id == character_id)
{
return true;
}
}
return false;
return std::any_of(m_members.begin(), m_members.end(), [&](const ExpeditionMember& member) {
return member.char_id == character_id;
});
}
bool Expedition::HasMember(const std::string& name)
bool Expedition::HasMember(const std::string& character_name)
{
for (const auto& member : m_members)
{
if (strcasecmp(member.name.c_str(), name.c_str()) == 0)
{
return true;
}
}
return false;
return std::any_of(m_members.begin(), m_members.end(), [&](const ExpeditionMember& member) {
return (strcasecmp(member.name.c_str(), character_name.c_str()) == 0);
});
}
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;
for (const auto& member : m_members)
if (it != m_members.end())
{
if (member.char_id == character_id)
{
member_data = member;
break;
}
member_data = *it;
}
return member_data;
}
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;
for (const auto& member : m_members)
if (it != m_members.end())
{
if (strcasecmp(member.name.c_str(), character_name.c_str()) == 0)
{
member_data = member;
break;
}
member_data = *it;
}
return member_data;
}

View File

@ -100,7 +100,7 @@ public:
const std::vector<ExpeditionMember>& GetMembers() const { return m_members; }
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);
void RemoveAllMembers(bool enable_removal_timers = true, bool update_dz_expire_time = true);
bool RemoveMember(const std::string& remove_char_name);