diff --git a/zone/mob.cpp b/zone/mob.cpp index 5cbd4d70f..b12df39c1 100644 --- a/zone/mob.cpp +++ b/zone/mob.cpp @@ -128,6 +128,7 @@ Mob::Mob( SetMoving(false); moved = false; m_RewindLocation = glm::vec3(); + m_RelativePosition = glm::vec4(); name[0] = 0; orig_name[0] = 0; diff --git a/zone/mob.h b/zone/mob.h index 25e62f29e..2578db0c8 100644 --- a/zone/mob.h +++ b/zone/mob.h @@ -562,6 +562,12 @@ public: inline const float GetY() const { return m_Position.y; } inline const float GetZ() const { return m_Position.z; } inline const float GetHeading() const { return m_Position.w; } + inline const glm::vec4& GetRelativePosition() const { return m_RelativePosition; } + inline void SetRelativePosition(const float x, const float y, const float z) { m_RelativePosition.x = x; m_RelativePosition.y = y; m_RelativePosition.z = z; } + inline const float GetRelativeX() const { return m_RelativePosition.x; } + inline const float GetRelativeY() const { return m_RelativePosition.y; } + inline const float GetRelativeZ() const { return m_RelativePosition.z; } + inline const float GetRelativeHeading() const { return m_RelativePosition.w; } inline const float GetSize() const { return size; } inline const float GetBaseSize() const { return base_size; } inline const GravityBehavior GetFlyMode() const { return flymode; } @@ -1299,6 +1305,7 @@ protected: uint32 npctype_id; glm::vec4 m_Position; + glm::vec4 m_RelativePosition; int animation; // this is really what MQ2 calls SpeedRun just packed like (int)(SpeedRun * 40.0f) float base_size; float size;