diff options
| author | Shauren <shauren.trinity@gmail.com> | 2021-10-05 15:10:33 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-10-05 15:10:33 +0200 |
| commit | 6d93f0a5f79c5465341a850279466ce36232e72e (patch) | |
| tree | b942df2a962d5e2b08e36fafa42107181cdeb1c7 /src/server/game/Entities/Object | |
| parent | a566b84e6a8602a362528b0deac72b7ff5903c08 (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.cpp | 17 |
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)); |
