Merge branch 'blender-v2.83-release'

This commit is contained in:
Campbell Barton 2020-04-23 12:02:25 +10:00
commit 101ec2f3b8
3 changed files with 55 additions and 24 deletions

View File

@ -1027,6 +1027,11 @@ static void rigidbody_validate_sim_constraint(RigidBodyWorld *rbw, Object *ob, b
return;
}
/* When 'rbc->type' is unknown. */
if (rbc->physics_constraint == NULL) {
return;
}
RB_constraint_set_enabled(rbc->physics_constraint, rbc->flag & RBC_FLAG_ENABLED);
if (rbc->flag & RBC_FLAG_USE_BREAKING) {

View File

@ -4998,19 +4998,7 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
/**
* Versioning code until next subversion bump goes here.
*
* \note Be sure to check when bumping the version:
* - #do_versions_after_linking_280 in this file.
* - "versioning_userdef.c", #BLO_version_defaults_userpref_blend
* - "versioning_userdef.c", #do_versions_theme
*
* \note Keep this message at the bottom of the function.
*/
{
/* Keep this block, even when empty. */
if (!MAIN_VERSION_ATLEAST(bmain, 283, 14)) {
/* Solidify modifier merge tolerance. */
if (!DNA_struct_elem_find(fd->filesdna, "SolidifyModifierData", "float", "merge_tolerance")) {
for (Object *ob = bmain->objects.first; ob; ob = ob->id.next) {
@ -5023,5 +5011,43 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
}
/* Enumerator was incorrect for a time in 2.83 development.
* Note that this only corrects values known to be invalid. */
for (Object *ob = bmain->objects.first; ob; ob = ob->id.next) {
RigidBodyCon *rbc = ob->rigidbody_constraint;
if (rbc != NULL) {
enum {
INVALID_RBC_TYPE_SLIDER = 2,
INVALID_RBC_TYPE_6DOF_SPRING = 4,
INVALID_RBC_TYPE_MOTOR = 7,
};
switch (rbc->type) {
case INVALID_RBC_TYPE_SLIDER:
rbc->type = RBC_TYPE_SLIDER;
break;
case INVALID_RBC_TYPE_6DOF_SPRING:
rbc->type = RBC_TYPE_6DOF_SPRING;
break;
case INVALID_RBC_TYPE_MOTOR:
rbc->type = RBC_TYPE_MOTOR;
break;
}
}
}
}
/**
* Versioning code until next subversion bump goes here.
*
* \note Be sure to check when bumping the version:
* - #do_versions_after_linking_280 in this file.
* - "versioning_userdef.c", #BLO_version_defaults_userpref_blend
* - "versioning_userdef.c", #do_versions_theme
*
* \note Keep this message at the bottom of the function.
*/
{
/* Keep this block, even when empty. */
}
}

View File

@ -306,28 +306,28 @@ typedef enum eRigidBodyCon_Type {
/** lets bodies rotate around a specified point */
RBC_TYPE_POINT = 0,
/** lets bodies rotate around a specified axis */
RBC_TYPE_HINGE,
RBC_TYPE_HINGE = 1,
/** simulates wheel suspension */
/* RBC_TYPE_HINGE2, */ /* UNUSED */
/* RBC_TYPE_HINGE2 = 2, */ /* UNUSED */
/** restricts movent to a specified axis */
RBC_TYPE_SLIDER,
RBC_TYPE_SLIDER = 3,
/** lets object rotate within a specified cone */
/* RBC_TYPE_CONE_TWIST, */ /* UNUSED */
/* RBC_TYPE_CONE_TWIST = 4, */ /* UNUSED */
/** allows user to specify constraint axes */
RBC_TYPE_6DOF,
RBC_TYPE_6DOF = 5,
/** like 6DOF but has springs */
RBC_TYPE_6DOF_SPRING,
RBC_TYPE_6DOF_SPRING = 6,
/** simulates a universal joint */
/* RBC_TYPE_UNIVERSAL, */ /* UNUSED */
/* RBC_TYPE_UNIVERSAL = 7, */ /* UNUSED */
/** glues two bodies together */
RBC_TYPE_FIXED,
RBC_TYPE_FIXED = 8,
/** similar to slider but also allows rotation around slider axis */
RBC_TYPE_PISTON,
RBC_TYPE_PISTON = 9,
/** Simplified spring constraint with only once axis that's
* automatically placed between the connected bodies */
/* RBC_TYPE_SPRING, */ /* UNUSED */
/* RBC_TYPE_SPRING = 10, */ /* UNUSED */
/** dirves bodies by applying linear and angular forces */
RBC_TYPE_MOTOR,
RBC_TYPE_MOTOR = 11,
} eRigidBodyCon_Type;
/* Spring implementation type for RigidBodyOb */