mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-28 21:02:14 +01:00
Core/Phases: Update transport visibility when changing phases
This commit is contained in:
@@ -2526,7 +2526,7 @@ void Map::SendInitTransports(Player* player)
|
||||
// Hack to send out transports
|
||||
UpdateData transData(player->GetMapId());
|
||||
for (TransportsContainer::const_iterator i = _transports.begin(); i != _transports.end(); ++i)
|
||||
if (*i != player->GetTransport())
|
||||
if (*i != player->GetTransport() && player->IsInPhase(*i))
|
||||
(*i)->BuildCreateUpdateBlockForPlayer(&transData, player);
|
||||
|
||||
WorldPacket packet;
|
||||
@@ -2547,6 +2547,26 @@ void Map::SendRemoveTransports(Player* player)
|
||||
player->GetSession()->SendPacket(&packet);
|
||||
}
|
||||
|
||||
void Map::SendUpdateTransportVisibility(Player* player, std::set<uint32> const& previousPhases)
|
||||
{
|
||||
// Hack to send out transports
|
||||
UpdateData transData(player->GetMapId());
|
||||
for (TransportsContainer::const_iterator i = _transports.begin(); i != _transports.end(); ++i)
|
||||
{
|
||||
if (*i == player->GetTransport())
|
||||
continue;
|
||||
|
||||
if (player->IsInPhase(*i) && !Trinity::Containers::Intersects(previousPhases.begin(), previousPhases.end(), (*i)->GetPhases().begin(), (*i)->GetPhases().end()))
|
||||
(*i)->BuildCreateUpdateBlockForPlayer(&transData);
|
||||
else if (!player->IsInPhase(*i))
|
||||
(*i)->BuildOutOfRangeUpdateBlock(&transData);
|
||||
}
|
||||
|
||||
WorldPacket packet;
|
||||
transData.BuildPacket(&packet);
|
||||
player->GetSession()->SendPacket(&packet);
|
||||
}
|
||||
|
||||
inline void Map::setNGrid(NGridType *grid, uint32 x, uint32 y)
|
||||
{
|
||||
if (x >= MAX_NUMBER_OF_GRIDS || y >= MAX_NUMBER_OF_GRIDS)
|
||||
|
||||
Reference in New Issue
Block a user