diff options
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r-- | src/server/game/Maps/Map.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index ebfdaaf3b73..44517427e0a 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -473,7 +473,7 @@ void Map::LoadGrid(float x, float y) EnsureGridLoaded(Cell(x, y)); } -bool Map::AddPlayerToMap(Player* player) +bool Map::AddPlayerToMap(Player* player, bool initPlayer /*= true*/) { CellCoord cellCoord = Trinity::ComputeCellCoord(player->GetPositionX(), player->GetPositionY()); if (!cellCoord.IsCoordValid()) @@ -491,7 +491,9 @@ bool Map::AddPlayerToMap(Player* player) player->SetMap(this); player->AddToWorld(); - SendInitSelf(player); + if (initPlayer) + SendInitSelf(player); + SendInitTransports(player); SendZoneDynamicInfo(player); @@ -2955,7 +2957,7 @@ bool InstanceMap::CanEnter(Player* player) /* Do map specific checks and add the player to the map if successful. */ -bool InstanceMap::AddPlayerToMap(Player* player) +bool InstanceMap::AddPlayerToMap(Player* player, bool initPlayer /*= true*/) { /// @todo Not sure about checking player level: already done in HandleAreaTriggerOpcode // GMs still can teleport player in instance. @@ -3065,7 +3067,7 @@ bool InstanceMap::AddPlayerToMap(Player* player) } // this will acquire the same mutex so it cannot be in the previous block - Map::AddPlayerToMap(player); + Map::AddPlayerToMap(player, initPlayer); if (i_data) i_data->OnPlayerEnter(player); @@ -3323,7 +3325,7 @@ bool BattlegroundMap::CanEnter(Player* player) return Map::CanEnter(player); } -bool BattlegroundMap::AddPlayerToMap(Player* player) +bool BattlegroundMap::AddPlayerToMap(Player* player, bool initPlayer /*= true*/) { { std::lock_guard<std::mutex> lock(_mapLock); @@ -3333,7 +3335,7 @@ bool BattlegroundMap::AddPlayerToMap(Player* player) // reset instance validity, battleground maps do not homebind player->m_InstanceValid = true; } - return Map::AddPlayerToMap(player); + return Map::AddPlayerToMap(player, initPlayer); } void BattlegroundMap::RemovePlayerFromMap(Player* player, bool remove) |