diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-12-27 16:06:01 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-12-27 16:06:01 +0100 |
| commit | e654f0a15b36ef7abd1e6ea1daa1364f1b6d026c (patch) | |
| tree | 1fbf58f0fe548a0e60e3091cb3763c049e21165e /src/server | |
| parent | 0ff5cf4d002be13cd1457ce910db93a1a303f7ae (diff) | |
Core/Objects: Support creating client position entity fragment for non-WorldObject entities
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/game/Entities/Object/BaseEntity.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/BaseEntity.h | 3 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 2 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Entities/Object/BaseEntity.cpp b/src/server/game/Entities/Object/BaseEntity.cpp index e52fafbe806..6aa451618a0 100644 --- a/src/server/game/Entities/Object/BaseEntity.cpp +++ b/src/server/game/Entities/Object/BaseEntity.cpp @@ -198,7 +198,7 @@ void BaseEntity::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, P if (IsGameObject()) PauseTimes = static_cast<GameObject const*>(this)->GetPauseTimes(); - data->WriteBit(IsWorldObject()); // HasPositionFragment + data->WriteBit(flags.HasEntityPosition); data->WriteBit(flags.NoBirthAnim); data->WriteBit(flags.EnablePortals); data->WriteBit(flags.PlayHoverAnim); diff --git a/src/server/game/Entities/Object/BaseEntity.h b/src/server/game/Entities/Object/BaseEntity.h index 7844fa9295d..b227a13f884 100644 --- a/src/server/game/Entities/Object/BaseEntity.h +++ b/src/server/game/Entities/Object/BaseEntity.h @@ -33,9 +33,11 @@ typedef std::unordered_map<Player*, UpdateData> UpdateDataMapType; struct CreateObjectBits { + bool HasEntityPosition : 1; bool NoBirthAnim : 1; bool EnablePortals : 1; bool PlayHoverAnim : 1; + bool ThisIsYou : 1; bool MovementUpdate : 1; bool MovementTransport : 1; bool Stationary : 1; @@ -46,7 +48,6 @@ struct CreateObjectBits bool Rotation : 1; bool GameObject : 1; bool SmoothPhasing : 1; - bool ThisIsYou : 1; bool SceneObject : 1; bool ActivePlayer : 1; bool Conversation : 1; diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index bb506f62bd9..9bf79150cb9 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -188,6 +188,8 @@ m_movementInfo(), m_name(), m_isActive(false), m_isFarVisible(false), m_isStored m_transport(nullptr), m_zoneId(0), m_areaId(0), m_staticFloorZ(VMAP_INVALID_HEIGHT), m_outdoors(false), m_liquidStatus(LIQUID_MAP_NO_WATER), m_currMap(nullptr), m_InstanceId(0), _dbPhase(0), m_notifyflags(0), _heartbeatTimer(HEARTBEAT_INTERVAL) { + m_updateFlag.HasEntityPosition = true; + m_serverSideVisibility.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_ALIVE | GHOST_VISIBILITY_GHOST); m_serverSideVisibilityDetect.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_ALIVE); } |
