Core/Misc: Moved CharacterInfo out of world to separate class

This commit is contained in:
Aokromes
2017-10-27 17:52:30 +02:00
parent 5373e2bd3b
commit 5e1a7bcfbb
43 changed files with 520 additions and 391 deletions

View File

@@ -18,6 +18,7 @@
#include "AccountMgr.h"
#include "CalendarMgr.h"
#include "CharacterCache.h"
#include "Chat.h"
#include "Config.h"
#include "DatabaseEnv.h"
@@ -1875,7 +1876,7 @@ void Guild::HandleAcceptMember(WorldSession* session)
{
Player* player = session->GetPlayer();
if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) &&
player->GetTeam() != sObjectMgr->GetPlayerTeamByGUID(GetLeaderGUID()))
player->GetTeam() != sCharacterCache->GetCharacterTeamByGuid(GetLeaderGUID()))
return;
SQLTransaction trans(nullptr);
@@ -2469,7 +2470,7 @@ bool Guild::LoadMemberFromDB(Field* fields)
return false;
}
sWorld->UpdateCharacterGuildId(playerGuid, GetId());
sCharacterCache->UpdateCharacterGuildId(playerGuid, GetId());
m_members[lowguid] = member;
return true;
}
@@ -2719,7 +2720,7 @@ void Guild::MassInviteToEvent(WorldSession* session, uint32 minLevel, uint32 max
}
Member* member = itr->second;
uint32 level = Player::GetLevelFromCharacterInfo(member->GetGUID());
uint32 level = sCharacterCache->GetCharacterLevelByGuid(member->GetGUID());
if (member->GetGUID() != session->GetPlayer()->GetGUID() && level >= minLevel && level <= maxLevel && member->IsRankNotLower(minRank))
{
@@ -2744,7 +2745,7 @@ bool Guild::AddMember(SQLTransaction& trans, ObjectGuid guid, uint8 rankId)
if (player->GetGuildId() != 0)
return false;
}
else if (Player::GetGuildIdFromCharacterInfo(guid) != 0)
else if (sCharacterCache->GetCharacterGuildIdByGuid(guid) != 0)
return false;
// Remove all player signs from another petitions
@@ -2798,7 +2799,7 @@ bool Guild::AddMember(SQLTransaction& trans, ObjectGuid guid, uint8 rankId)
return false;
}
m_members[lowguid] = member;
sWorld->UpdateCharacterGuildId(guid, GetId());
sCharacterCache->UpdateCharacterGuildId(guid, GetId());
}
member->SaveToDB(trans);
@@ -2874,7 +2875,7 @@ void Guild::DeleteMember(SQLTransaction& trans, ObjectGuid guid, bool isDisbandi
player->RemoveSpell(entry->SpellId, false, false);
}
else
sWorld->UpdateCharacterGuildId(guid, 0);
sCharacterCache->UpdateCharacterGuildId(guid, 0);
_DeleteMemberFromDB(trans, lowguid);
if (!isDisbanding)