mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Misc: Use our new unique_trackable_ptr for various classes exposed to scripts (not actually used anywhere currently)
This commit is contained in:
@@ -17,8 +17,8 @@
|
||||
|
||||
#include "GuildMgr.h"
|
||||
#include "AchievementMgr.h"
|
||||
#include "DatabaseEnv.h"
|
||||
#include "DB2Stores.h"
|
||||
#include "DatabaseEnv.h"
|
||||
#include "Guild.h"
|
||||
#include "Log.h"
|
||||
#include "ObjectMgr.h"
|
||||
@@ -29,15 +29,13 @@ GuildMgr::GuildMgr() : NextGuildId(UI64LIT(1))
|
||||
{
|
||||
}
|
||||
|
||||
GuildMgr::~GuildMgr()
|
||||
{
|
||||
for (GuildContainer::iterator itr = GuildStore.begin(); itr != GuildStore.end(); ++itr)
|
||||
delete itr->second;
|
||||
}
|
||||
GuildMgr::~GuildMgr() = default;
|
||||
|
||||
void GuildMgr::AddGuild(Guild* guild)
|
||||
{
|
||||
GuildStore[guild->GetId()] = guild;
|
||||
Trinity::unique_trackable_ptr<Guild>& ptr = GuildStore[guild->GetId()];
|
||||
ptr.reset(guild);
|
||||
guild->SetWeakPtr(ptr);
|
||||
}
|
||||
|
||||
void GuildMgr::RemoveGuild(ObjectGuid::LowType guildId)
|
||||
@@ -66,7 +64,7 @@ Guild* GuildMgr::GetGuildById(ObjectGuid::LowType guildId) const
|
||||
{
|
||||
GuildContainer::const_iterator itr = GuildStore.find(guildId);
|
||||
if (itr != GuildStore.end())
|
||||
return itr->second;
|
||||
return itr->second.get();
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
@@ -84,9 +82,9 @@ Guild* GuildMgr::GetGuildByGuid(ObjectGuid guid) const
|
||||
|
||||
Guild* GuildMgr::GetGuildByName(std::string_view guildName) const
|
||||
{
|
||||
for (auto [id, guild] : GuildStore)
|
||||
for (auto const& [id, guild] : GuildStore)
|
||||
if (StringEqualI(guild->GetName(), guildName))
|
||||
return guild;
|
||||
return guild.get();
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
@@ -109,7 +107,7 @@ Guild* GuildMgr::GetGuildByLeader(ObjectGuid guid) const
|
||||
{
|
||||
for (GuildContainer::const_iterator itr = GuildStore.begin(); itr != GuildStore.end(); ++itr)
|
||||
if (itr->second->GetLeaderGUID() == guid)
|
||||
return itr->second;
|
||||
return itr->second.get();
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
@@ -483,10 +481,10 @@ void GuildMgr::LoadGuilds()
|
||||
|
||||
for (GuildContainer::iterator itr = GuildStore.begin(); itr != GuildStore.end();)
|
||||
{
|
||||
Guild* guild = itr->second;
|
||||
Guild* guild = itr->second.get();
|
||||
++itr;
|
||||
if (guild && !guild->Validate())
|
||||
delete guild;
|
||||
if (guild)
|
||||
guild->Validate();
|
||||
}
|
||||
|
||||
TC_LOG_INFO("server.loading", ">> Validated data of loaded guilds in {} ms", GetMSTimeDiffToNow(oldMSTime));
|
||||
@@ -562,6 +560,6 @@ void GuildMgr::ResetTimes(bool week)
|
||||
CharacterDatabase.Execute(CharacterDatabase.GetPreparedStatement(CHAR_DEL_GUILD_MEMBER_WITHDRAW));
|
||||
|
||||
for (GuildContainer::const_iterator itr = GuildStore.begin(); itr != GuildStore.end(); ++itr)
|
||||
if (Guild* guild = itr->second)
|
||||
if (Guild* guild = itr->second.get())
|
||||
guild->ResetTimes(week);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user