diff options
author | raczman <none@none> | 2009-04-12 12:57:06 +0200 |
---|---|---|
committer | raczman <none@none> | 2009-04-12 12:57:06 +0200 |
commit | 1e77ccd935b7706b7892b40803cd800e970eeee3 (patch) | |
tree | 379a9b5184cbebfd466df4a56bd50e3ca8d9cbc4 /src/game/ObjectMgr.cpp | |
parent | 8d3b5621028093f29888c8faac651e35e3892e8c (diff) |
Change container type for guilds to Map.
Use const_iterator in case nothing is modified in loop.
author: bladex.
--HG--
branch : trunk
Diffstat (limited to 'src/game/ObjectMgr.cpp')
-rw-r--r-- | src/game/ObjectMgr.cpp | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index fbe22bea64b..9d4e3020cfc 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -172,8 +172,10 @@ ObjectMgr::~ObjectMgr() // free group and guild objects for (GroupSet::iterator itr = mGroupSet.begin(); itr != mGroupSet.end(); ++itr) delete (*itr); - for (GuildSet::iterator itr = mGuildSet.begin(); itr != mGuildSet.end(); ++itr) - delete (*itr); + + for (GuildMap::iterator itr = mGuildMap.begin(); itr != mGuildMap.end(); ++itr) + delete itr->second; + mGuildMap.clear(); for (CachePlayerInfoMap::iterator itr = m_mPlayerInfoMap.begin(); itr != m_mPlayerInfoMap.end(); ++itr) delete itr->second; @@ -251,40 +253,49 @@ Group * ObjectMgr::GetGroupByLeader(const uint64 &guid) const Guild * ObjectMgr::GetGuildById(const uint32 GuildId) const { - for(GuildSet::const_iterator itr = mGuildSet.begin(); itr != mGuildSet.end(); ++itr) - if ((*itr)->GetId() == GuildId) - return *itr; + GuildMap::const_iterator itr = mGuildMap.find(GuildId); + if (itr != mGuildMap.end()) + return itr->second; return NULL; } Guild * ObjectMgr::GetGuildByName(const std::string& guildname) const { - for(GuildSet::const_iterator itr = mGuildSet.begin(); itr != mGuildSet.end(); ++itr) - if ((*itr)->GetName() == guildname) - return *itr; + for(GuildMap::const_iterator itr = mGuildMap.begin(); itr != mGuildMap.end(); ++itr) + if (itr->second->GetName() == guildname) + return itr->second; return NULL; } std::string ObjectMgr::GetGuildNameById(const uint32 GuildId) const { - for(GuildSet::const_iterator itr = mGuildSet.begin(); itr != mGuildSet.end(); ++itr) - if ((*itr)->GetId() == GuildId) - return (*itr)->GetName(); + GuildMap::const_iterator itr = mGuildMap.find(GuildId); + if (itr != mGuildMap.end()) + return itr->second->GetName(); return ""; } Guild* ObjectMgr::GetGuildByLeader(const uint64 &guid) const { - for(GuildSet::const_iterator itr = mGuildSet.begin(); itr != mGuildSet.end(); ++itr) - if( (*itr)->GetLeader() == guid) - return *itr; + for(GuildMap::const_iterator itr = mGuildMap.begin(); itr != mGuildMap.end(); ++itr) + if (itr->second->GetLeader() == guid) + return itr->second; return NULL; } +void ObjectMgr::AddGuild(Guild* guild) +{ + mGuildMap[guild->GetId()] = guild; +} + +void ObjectMgr::RemoveGuild(uint32 Id) +{ + mGuildMap.erase(Id); +} ArenaTeam* ObjectMgr::GetArenaTeamById(const uint32 arenateamid) const { ArenaTeamMap::const_iterator itr = mArenaTeamMap.find(arenateamid); @@ -317,9 +328,9 @@ void ObjectMgr::AddArenaTeam(ArenaTeam* arenaTeam) mArenaTeamMap[arenaTeam->GetId()] = arenaTeam; } -void ObjectMgr::RemoveArenaTeam(ArenaTeam* arenaTeam) +void ObjectMgr::RemoveArenaTeam(uint32 Id) { - mArenaTeamMap.erase( arenaTeam->GetId() ); + mArenaTeamMap.erase(Id); } CreatureInfo const* ObjectMgr::GetCreatureTemplate(uint32 id) |