LFGuildStore GuildFinderMgr::GetGuildsMatchingSetting(LFGuildPlayer& settings, TeamId faction) { LFGuildStore resultSet; for (LFGuildStore::const_iterator itr = _guildSettings.begin(); itr != _guildSettings.end(); ++itr) { LFGuildSettings const& guildSettings = itr->second; if (guildSettings.GetTeam() != faction) continue; if (!(guildSettings.GetAvailability() & settings.GetAvailability())) continue; if (!(guildSettings.GetClassRoles() & settings.GetClassRoles())) continue; if (!(guildSettings.GetInterests() & settings.GetInterests())) continue; if (!(guildSettings.GetLevel() & settings.GetLevel())) continue; resultSet.insert(std::make_pair(itr->first, guildSettings)); } return resultSet; }