aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-12-27 16:06:01 +0100
committerShauren <shauren.trinity@gmail.com>2025-12-27 16:06:01 +0100
commite654f0a15b36ef7abd1e6ea1daa1364f1b6d026c (patch)
tree1fbf58f0fe548a0e60e3091cb3763c049e21165e /src/server
parent0ff5cf4d002be13cd1457ce910db93a1a303f7ae (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.cpp2
-rw-r--r--src/server/game/Entities/Object/BaseEntity.h3
-rw-r--r--src/server/game/Entities/Object/Object.cpp2
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);
}