From c3491429297ab70517c88e1770a08b4ef9c3b02a Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 1 Feb 2019 00:04:19 +1100 Subject: [PATCH] don't send position updates when pushing bnpcs --- src/world/Actor/Actor.cpp | 12 ++++++++---- src/world/Actor/Actor.h | 4 ++-- src/world/Actor/BNpc.cpp | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/world/Actor/Actor.cpp b/src/world/Actor/Actor.cpp index f3a70534..fa3d3124 100644 --- a/src/world/Actor/Actor.cpp +++ b/src/world/Actor/Actor.cpp @@ -57,18 +57,22 @@ Sapphire::Common::FFXIVARR_POSITION3& Sapphire::Entity::Actor::getPos() return m_pos; } -void Sapphire::Entity::Actor::setPos( float x, float y, float z ) +void Sapphire::Entity::Actor::setPos( float x, float y, float z, bool broadcastUpdate ) { m_pos.x = x; m_pos.y = y; m_pos.z = z; - m_pCurrentZone->updateActorPosition( *this ); + + if( broadcastUpdate ) + m_pCurrentZone->updateActorPosition( *this ); } -void Sapphire::Entity::Actor::setPos( const Sapphire::Common::FFXIVARR_POSITION3& pos ) +void Sapphire::Entity::Actor::setPos( const Sapphire::Common::FFXIVARR_POSITION3& pos, bool broadcastUpdate ) { m_pos = pos; - m_pCurrentZone->updateActorPosition( *this ); + + if( broadcastUpdate ) + m_pCurrentZone->updateActorPosition( *this ); } float Sapphire::Entity::Actor::getRot() const diff --git a/src/world/Actor/Actor.h b/src/world/Actor/Actor.h index 62d47765..c5686b68 100644 --- a/src/world/Actor/Actor.h +++ b/src/world/Actor/Actor.h @@ -59,9 +59,9 @@ namespace Sapphire::Entity Common::FFXIVARR_POSITION3& getPos(); - void setPos( const Common::FFXIVARR_POSITION3& pos ); + void setPos( const Common::FFXIVARR_POSITION3& pos, bool broadcastUpdate = true ); - void setPos( float x, float y, float z ); + void setPos( float x, float y, float z, bool broadcastUpdate = true ); float getRot() const; diff --git a/src/world/Actor/BNpc.cpp b/src/world/Actor/BNpc.cpp index 97dd4db9..32a1465f 100644 --- a/src/world/Actor/BNpc.cpp +++ b/src/world/Actor/BNpc.cpp @@ -653,7 +653,7 @@ void Sapphire::Entity::BNpc::pushNearbyBNpcs() bNpc->setPos( pos.x + ( x * factor * delta ), pos.y, - pos.z + ( z * factor * delta ) ); + pos.z + ( z * factor * delta ), false ); // setPos( m_pos.x + ( xBase * -pushDistance ), // m_pos.y,