From 48071bbdb39c834d42b2ae5ccc11bec6587b5606 Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 8 Oct 2014 11:48:30 -0700 Subject: [PATCH] don't collide with entities with unknown IDs --- libraries/entities/src/EntityCollisionSystem.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libraries/entities/src/EntityCollisionSystem.cpp b/libraries/entities/src/EntityCollisionSystem.cpp index 4ec9912b01..7f987db9ed 100644 --- a/libraries/entities/src/EntityCollisionSystem.cpp +++ b/libraries/entities/src/EntityCollisionSystem.cpp @@ -115,6 +115,11 @@ void EntityCollisionSystem::updateCollisionWithEntities(EntityItem* entityA) { return; // bail early if this entity is to be ignored... } + // don't collide entities with unknown IDs, + if (!entityA->isKnownID()) { + return; + } + glm::vec3 penetration; EntityItem* entityB = NULL; @@ -133,6 +138,11 @@ void EntityCollisionSystem::updateCollisionWithEntities(EntityItem* entityA) { penetration = collision->_penetration; entityB = static_cast(collision->_extraData); + // don't collide entities with unknown IDs, + if (!entityB->isKnownID()) { + continue; // skip this loop pass if the entity has an unknown ID + } + // NOTE: 'penetration' is the depth that 'entityA' overlaps 'entityB'. It points from A into B. glm::vec3 penetrationInTreeUnits = penetration / (float)(TREE_SCALE); @@ -267,6 +277,12 @@ void EntityCollisionSystem::updateCollisionWithAvatars(EntityItem* entity) { } void EntityCollisionSystem::applyHardCollision(EntityItem* entity, const CollisionInfo& collisionInfo) { + + // don't collide entities with unknown IDs, + if (!entity->isKnownID()) { + return; + } + // HALTING_* params are determined using expected acceleration of gravity over some timescale. // This is a HACK for entities that bounce in a 1.0 gravitational field and should eventually be made more universal. const float HALTING_ENTITY_PERIOD = 0.0167f; // ~1/60th of a second