aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/Map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r--src/server/game/Maps/Map.cpp14
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)