virtual bool needsCollision(btBroadphaseProxy* proxy0) const { if ( proxy0->m_clientObject == mMe ) return false; //.logicking >> behavior of Physical Zone as invisible wall btCollisionObject* colObj = (btCollisionObject*)(proxy0->m_clientObject); SceneObject* sceneObj = PhysicsUserData::getObject(colObj->getUserPointer()); if (sceneObj && (sceneObj->getTypeMask() & PhysicalZoneObjectType)) { SceneObject* playerObject = PhysicsUserData::getObject(mMe->getUserPointer()); PhysicalZone* pZone = static_cast<PhysicalZone*>(sceneObj); if (pZone->isActive() && pZone->isInvisibleWall(playerObject)) return true; } if ( !colObj->hasContactResponse() ) return false; //.logicking << return Parent::needsCollision( proxy0 ); }