From d934863673f5300fdaa3cabc46f5cb624f76643d Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 20 Apr 2019 15:42:48 +0200 Subject: [PATCH] Maybe better scales? --- src/world/Actor/BNpc.cpp | 12 ++++-------- src/world/Actor/Player.cpp | 1 + src/world/Navi/NaviProvider.cpp | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/world/Actor/BNpc.cpp b/src/world/Actor/BNpc.cpp index 1196341e..fd44a708 100644 --- a/src/world/Actor/BNpc.cpp +++ b/src/world/Actor/BNpc.cpp @@ -278,7 +278,7 @@ bool Sapphire::Entity::BNpc::moveTo( const Entity::Chara& targetChara ) auto pos1 = pNaviProvider->getMovePos( *this ); - if( Util::distance( pos1, targetChara.getPos() ) <= ( getScale() + targetChara.getScale() ) ) + if( Util::distance( pos1, targetChara.getPos() ) <= ( getScale() + targetChara.getScale() ) + 0.25f ) { // Reached destination face( targetChara.getPos() ); @@ -534,9 +534,7 @@ void Sapphire::Entity::BNpc::update( uint64_t tickCount ) return; auto distanceOrig = Util::distance( getPos().x, getPos().y, getPos().z, - m_spawnPos.x, - m_spawnPos.y, - m_spawnPos.z ); + m_spawnPos.x, m_spawnPos.y, m_spawnPos.z ); if( pHatedActor && !pHatedActor->isAlive() ) { @@ -550,9 +548,7 @@ void Sapphire::Entity::BNpc::update( uint64_t tickCount ) if( pHatedActor ) { auto distance = Util::distance( getPos().x, getPos().y, getPos().z, - pHatedActor->getPos().x, - pHatedActor->getPos().y, - pHatedActor->getPos().z ); + pHatedActor->getPos().x, pHatedActor->getPos().y, pHatedActor->getPos().z ); if( !hasFlag( NoDeaggro ) && ( distanceOrig > maxDistanceToOrigin ) ) { @@ -564,7 +560,7 @@ void Sapphire::Entity::BNpc::update( uint64_t tickCount ) break; } - if( distance > ( getScale() / 2 + pHatedActor->getScale() / 2 ) ) + if( distance > ( getScale() + pHatedActor->getScale() ) ) { if( hasFlag( Immobile ) ) break; diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index de231a2b..84b1be39 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -84,6 +84,7 @@ Sapphire::Entity::Player::Player( FrameworkPtr pFw ) : m_queuedZoneing = nullptr; m_status = ActorStatus::Idle; m_invincibilityType = InvincibilityType::InvincibilityNone; + m_scale = 1.f; memset( m_questTracking, 0, sizeof( m_questTracking ) ); memset( m_name, 0, sizeof( m_name ) ); diff --git a/src/world/Navi/NaviProvider.cpp b/src/world/Navi/NaviProvider.cpp index 2390e818..9934b8cb 100644 --- a/src/world/Navi/NaviProvider.cpp +++ b/src/world/Navi/NaviProvider.cpp @@ -573,7 +573,7 @@ int32_t Sapphire::World::Navi::NaviProvider::addAgent( Entity::Chara& chara ) params.height = 3.f; params.maxAcceleration = 25.f; params.maxSpeed = std::pow( 2, chara.getScale() * 0.35f ) + 1.f; - params.radius = chara.getScale() / 2; + params.radius = ( chara.getScale() ) * 0.9f; params.collisionQueryRange = params.radius * 12.0f; params.pathOptimizationRange = params.radius * 20.0f; params.updateFlags = 0;