From ee63b94f2c9e176f549c4446391e4c59f5a5be53 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 5 Aug 2018 22:28:41 +0200 Subject: Prevent objects from colliding with own child attachments (#7610) Also, use a better distance calculation for 'collide with objects'. Fixes the issue of a vehicle occasionally colliding with its own driver, causing one of the velocity components to be set to zero. --- src/content_sao.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src/content_sao.cpp') diff --git a/src/content_sao.cpp b/src/content_sao.cpp index 4ef52c7f2..f32294191 100644 --- a/src/content_sao.cpp +++ b/src/content_sao.cpp @@ -118,15 +118,14 @@ UnitSAO::UnitSAO(ServerEnvironment *env, v3f pos): m_armor_groups["fleshy"] = 100; } -bool UnitSAO::isAttached() const +ServerActiveObject *UnitSAO::getParent() const { if (!m_attachment_parent_id) - return false; + return nullptr; // Check if the parent still exists ServerActiveObject *obj = m_env->getActiveObject(m_attachment_parent_id); - if (obj) - return true; - return false; + + return obj; } void UnitSAO::setArmorGroups(const ItemGroupList &armor_groups) -- cgit v1.2.3