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.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/content_sao.h') diff --git a/src/content_sao.h b/src/content_sao.h index 8510015c5..e45a4028e 100644 --- a/src/content_sao.h +++ b/src/content_sao.h @@ -42,7 +42,9 @@ public: // Use a function, if isDead can be defined by other conditions bool isDead() const { return m_hp == 0; } - bool isAttached() const; + inline bool isAttached() const + { return getParent(); } + void setArmorGroups(const ItemGroupList &armor_groups); const ItemGroupList &getArmorGroups(); void setAnimation(v2f frame_range, float frame_speed, float frame_blend, bool frame_loop); @@ -57,6 +59,7 @@ public: void addAttachmentChild(int child_id); void removeAttachmentChild(int child_id); const std::unordered_set &getAttachmentChildIds(); + ServerActiveObject *getParent() const; ObjectProperties* accessObjectProperties(); void notifyObjectPropertiesModified(); protected: -- cgit v1.2.3