mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 03:44:02 +02:00
more consistency for collision group values
This commit is contained in:
parent
c9b125612c
commit
502921e877
2 changed files with 15 additions and 12 deletions
|
@ -620,12 +620,12 @@ void EntityMotionState::computeCollisionGroupAndMask(int16_t& group, int16_t& ma
|
|||
case MOTION_TYPE_STATIC:
|
||||
group = BULLET_COLLISION_GROUP_STATIC;
|
||||
break;
|
||||
case MOTION_TYPE_KINEMATIC:
|
||||
group = BULLET_COLLISION_GROUP_KINEMATIC;
|
||||
break;
|
||||
case MOTION_TYPE_DYNAMIC:
|
||||
group = BULLET_COLLISION_GROUP_DYNAMIC;
|
||||
break;
|
||||
case MOTION_TYPE_KINEMATIC:
|
||||
group = BULLET_COLLISION_GROUP_KINEMATIC;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -34,8 +34,8 @@ enum CollisionFilterGroups {
|
|||
*
|
||||
*/
|
||||
|
||||
const int16_t BULLET_COLLISION_GROUP_DYNAMIC = 1 << 0;
|
||||
const int16_t BULLET_COLLISION_GROUP_STATIC = 1 << 1;
|
||||
const int16_t BULLET_COLLISION_GROUP_STATIC = 1 << 0;
|
||||
const int16_t BULLET_COLLISION_GROUP_DYNAMIC = 1 << 1;
|
||||
const int16_t BULLET_COLLISION_GROUP_KINEMATIC = 1 << 2;
|
||||
const int16_t BULLET_COLLISION_GROUP_MY_AVATAR = 1 << 3;
|
||||
const int16_t BULLET_COLLISION_GROUP_OTHER_AVATAR = 1 << 4;
|
||||
|
@ -50,13 +50,15 @@ const int16_t BULLET_COLLISION_GROUP_COLLISIONLESS = 1 << 14;
|
|||
// the default collision mask is: collides with everything except collisionless
|
||||
const int16_t BULLET_COLLISION_MASK_DEFAULT = ~ BULLET_COLLISION_GROUP_COLLISIONLESS;
|
||||
|
||||
const int16_t BULLET_COLLISION_MASK_DYNAMIC = BULLET_COLLISION_MASK_DEFAULT;
|
||||
|
||||
// STATIC is special: it collides with everything exept COLLISIONLESS and other STATIC
|
||||
// STATIC does not collide with itself (as optimization of physics simulation)
|
||||
const int16_t BULLET_COLLISION_MASK_STATIC = ~ (BULLET_COLLISION_GROUP_COLLISIONLESS | BULLET_COLLISION_GROUP_STATIC);
|
||||
|
||||
const int16_t BULLET_COLLISION_MASK_DYNAMIC = BULLET_COLLISION_MASK_DEFAULT;
|
||||
const int16_t BULLET_COLLISION_MASK_KINEMATIC = BULLET_COLLISION_MASK_DEFAULT;
|
||||
const int16_t BULLET_COLLISION_MASK_MY_AVATAR = BULLET_COLLISION_MASK_DEFAULT;
|
||||
|
||||
// MY_AVATAR does not collide with itself
|
||||
const int16_t BULLET_COLLISION_MASK_MY_AVATAR = ~(BULLET_COLLISION_GROUP_COLLISIONLESS | BULLET_COLLISION_GROUP_MY_AVATAR);
|
||||
|
||||
const int16_t BULLET_COLLISION_MASK_OTHER_AVATAR = BULLET_COLLISION_MASK_DEFAULT;
|
||||
|
||||
// COLLISIONLESS gets an empty mask.
|
||||
|
@ -64,15 +66,16 @@ const int16_t BULLET_COLLISION_MASK_COLLISIONLESS = 0;
|
|||
|
||||
|
||||
// The USER collision groups are exposed to script and can be used to generate per-object collision masks.
|
||||
const uint8_t USER_COLLISION_GROUP_DYNAMIC = 1 << 0;
|
||||
const uint8_t USER_COLLISION_GROUP_STATIC = 1 << 1;
|
||||
// They are not necessarily the same as the BULLET_COLLISION_GROUPS, but we start them off with matching numbers.
|
||||
const uint8_t USER_COLLISION_GROUP_STATIC = 1 << 0;
|
||||
const uint8_t USER_COLLISION_GROUP_DYNAMIC = 1 << 1;
|
||||
const uint8_t USER_COLLISION_GROUP_KINEMATIC = 1 << 2;
|
||||
const uint8_t USER_COLLISION_GROUP_MY_AVATAR = 1 << 3;
|
||||
const uint8_t USER_COLLISION_GROUP_OTHER_AVATAR = 1 << 4;
|
||||
|
||||
const uint8_t ENTITY_COLLISION_MASK_DEFAULT =
|
||||
USER_COLLISION_GROUP_DYNAMIC |
|
||||
USER_COLLISION_GROUP_STATIC |
|
||||
USER_COLLISION_GROUP_DYNAMIC |
|
||||
USER_COLLISION_GROUP_KINEMATIC |
|
||||
USER_COLLISION_GROUP_MY_AVATAR |
|
||||
USER_COLLISION_GROUP_OTHER_AVATAR;
|
||||
|
|
Loading…
Reference in a new issue