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

Closes #19030

(cherrypicked from 59ce3d6c9b)
This commit is contained in:
xinef1
2017-02-05 23:14:19 +01:00
committed by Shauren
parent 241e79f434
commit ad4e63bae1
41 changed files with 540 additions and 415 deletions

View File

@@ -21,6 +21,7 @@
#include "Bag.h"
#include "CalendarMgr.h"
#include "CalendarPackets.h"
#include "CharacterCache.h"
#include "Chat.h"
#include "ChatPackets.h"
#include "Config.h"
@@ -1734,7 +1735,7 @@ void Guild::HandleAcceptMember(WorldSession* session)
{
Player* player = session->GetPlayer();
if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) &&
player->GetTeam() != ObjectMgr::GetPlayerTeamByGUID(GetLeaderGUID()))
player->GetTeam() != sCharacterCache->GetCharacterTeamByGuid(GetLeaderGUID()))
return;
SQLTransaction trans(nullptr);
@@ -2374,7 +2375,7 @@ bool Guild::LoadMemberFromDB(Field* fields)
return false;
}
sWorld->UpdateCharacterGuildId(playerGuid, GetId());
sCharacterCache->UpdateCharacterGuildId(playerGuid, GetId());
m_members[member->GetGUID()] = member;
return true;
}
@@ -2623,7 +2624,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))
packet.Invites.emplace_back(member->GetGUID(), level);
@@ -2642,7 +2643,7 @@ bool Guild::AddMember(SQLTransaction& trans, ObjectGuid guid, uint8 rankId)
if (player->GetGuildId())
return false;
}
else if (Player::GetGuildIdFromCharacterInfo(guid))
else if (sCharacterCache->GetCharacterGuildIdByGuid(guid))
return false;
// Remove all player signs from another petitions
@@ -2697,7 +2698,7 @@ bool Guild::AddMember(SQLTransaction& trans, ObjectGuid guid, uint8 rankId)
return false;
}
m_members[guid] = member;
sWorld->UpdateCharacterGuildId(guid, GetId());
sCharacterCache->UpdateCharacterGuildId(guid, GetId());
}
member->SaveToDB(trans);
@@ -2771,7 +2772,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);
Guild::_DeleteMemberFromDB(trans, guid.GetCounter());
if (!isDisbanding)