collisionMask shouldn't override ignoreForCollisions

This commit is contained in:
U-GAPOS\andrew 2016-01-13 16:58:34 -08:00
parent 3aa1837e07
commit 0126684a96
2 changed files with 3 additions and 1 deletions

View file

@ -275,6 +275,7 @@ public:
void setIgnoreForCollisions(bool value) { _ignoreForCollisions = value; }
uint8_t getCollisionMask() const { return _collisionMask; }
uint8_t getFinalCollisionMask() const { return _ignoreForCollisions ? 0 : _collisionMask; }
void setCollisionMask(uint8_t value) { _collisionMask = value; }
bool getCollisionsWillMove() const { return _collisionsWillMove; }
@ -446,6 +447,7 @@ protected:
bool _visible;
bool _ignoreForCollisions;
uint8_t _collisionMask { ENTITY_COLLISION_MASK_DEFAULT };
uint8_t _collisionGroupOverride;
bool _collisionsWillMove;
bool _locked;
QString _userData;

View file

@ -644,7 +644,7 @@ void EntityMotionState::computeCollisionGroupAndMask(int16_t& group, int16_t& ma
mask = PhysicsEngine::getCollisionMask(group);
if (_entity) {
uint8_t entityCollisionMask = _entity->getCollisionMask();
uint8_t entityCollisionMask = _entity->getFinalCollisionMask();
if ((bool)(entityCollisionMask & USER_COLLISION_GROUP_MY_AVATAR) !=
(bool)(entityCollisionMask & USER_COLLISION_GROUP_OTHER_AVATAR)) {
// asymmetric avatar collision mask bits