aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-10-05 15:10:33 +0200
committerShauren <shauren.trinity@gmail.com>2021-10-05 15:10:33 +0200
commit6d93f0a5f79c5465341a850279466ce36232e72e (patch)
treeb942df2a962d5e2b08e36fafa42107181cdeb1c7 /src/server/game/Entities/Object
parenta566b84e6a8602a362528b0deac72b7ff5903c08 (diff)
Core/Scenes: Delay scenes sent when not in world until adding to map
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 5eac3047a38..a38b488bee6 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -732,21 +732,22 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags) const
if (flags.ActivePlayer)
{
- bool HasSceneInstanceIDs = false;
+ Player const* player = ToPlayer();
+
+ bool HasSceneInstanceIDs = !player->GetSceneMgr().GetSceneTemplateByInstanceMap().empty();
bool HasRuneState = ToUnit()->GetPowerIndex(POWER_RUNES) != MAX_POWERS;
data->WriteBit(HasSceneInstanceIDs);
data->WriteBit(HasRuneState);
data->FlushBits();
- //if (HasSceneInstanceIDs)
- //{
- // *data << uint32(SceneInstanceIDs.size());
- // for (std::size_t i = 0; i < SceneInstanceIDs.size(); ++i)
- // *data << uint32(SceneInstanceIDs[i]);
- //}
+ if (HasSceneInstanceIDs)
+ {
+ *data << uint32(player->GetSceneMgr().GetSceneTemplateByInstanceMap().size());
+ for (auto const& itr : player->GetSceneMgr().GetSceneTemplateByInstanceMap())
+ *data << uint32(itr.first);
+ }
if (HasRuneState)
{
- Player const* player = ToPlayer();
float baseCd = float(player->GetRuneBaseCooldown());
uint32 maxRunes = uint32(player->GetMaxPower(POWER_RUNES));