aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Garrison/GarrisonMap.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-05-23 12:09:23 +0200
committerShauren <shauren.trinity@gmail.com>2015-05-23 12:09:23 +0200
commit61b0889e6ce27dbce6888298c5a67f9b6a6e5968 (patch)
treec7b02f73b7cba62d8aac3645e5b9caab58a5f9e0 /src/server/game/Garrison/GarrisonMap.cpp
parentb3a754cd7bef73c4f29a3fa819d2bac9f173685a (diff)
Core/Garrisons: Fixed loading building spawns when logging in on garrison map
Diffstat (limited to 'src/server/game/Garrison/GarrisonMap.cpp')
-rw-r--r--src/server/game/Garrison/GarrisonMap.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/server/game/Garrison/GarrisonMap.cpp b/src/server/game/Garrison/GarrisonMap.cpp
index 7316504d185..b9cf63140b4 100644
--- a/src/server/game/Garrison/GarrisonMap.cpp
+++ b/src/server/game/Garrison/GarrisonMap.cpp
@@ -97,7 +97,7 @@ void GarrisonGridLoader::Visit(CreatureMapType& /*m*/)
}
GarrisonMap::GarrisonMap(uint32 id, time_t expiry, uint32 instanceId, Map* parent, ObjectGuid const& owner)
- : Map(id, expiry, instanceId, DIFFICULTY_NORMAL, parent), _owner(owner)
+ : Map(id, expiry, instanceId, DIFFICULTY_NORMAL, parent), _owner(owner), _loadingPlayer(nullptr)
{
GarrisonMap::InitVisibilityDistance();
}
@@ -112,6 +112,9 @@ void GarrisonMap::LoadGridObjects(NGridType* grid, Cell const& cell)
Garrison* GarrisonMap::GetGarrison()
{
+ if (_loadingPlayer)
+ return _loadingPlayer->GetGarrison();
+
if (Player* owner = ObjectAccessor::FindConnectedPlayer(_owner))
return owner->GetGarrison();
@@ -124,3 +127,16 @@ void GarrisonMap::InitVisibilityDistance()
m_VisibleDistance = World::GetMaxVisibleDistanceInBGArenas();
m_VisibilityNotifyPeriod = World::GetVisibilityNotifyPeriodInBGArenas();
}
+
+bool GarrisonMap::AddPlayerToMap(Player* player, bool initPlayer /*= true*/)
+{
+ if (player->GetGUID() == _owner)
+ _loadingPlayer = player;
+
+ bool result = Map::AddPlayerToMap(player, initPlayer);
+
+ if (player->GetGUID() == _owner)
+ _loadingPlayer = nullptr;
+
+ return result;
+}