diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2014-04-28 15:20:37 +0400 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2014-04-28 15:25:14 +0400 |
commit | 912151763d0a217ba53e3d566fae655d1f8b8553 (patch) | |
tree | c4f1d658cc4f69939e99b0c942e2c2cad8f90f9b /source/blender/blenloader | |
parent | 2aa9d33404ca96e6bd42224ebac19696e03550f8 (diff) |
Followup to rB8714ae09f894: better not have several RNA properties affect a single DNA one.
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/versioning_270.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c index 507d711ce9e..ae6d5eec6fa 100644 --- a/source/blender/blenloader/intern/versioning_270.c +++ b/source/blender/blenloader/intern/versioning_270.c @@ -79,6 +79,34 @@ static void do_version_constraints_radians_degrees_270_1(ListBase *lb) } } +static void do_version_constraints_radians_degrees_270_5(ListBase *lb) +{ + bConstraint *con; + + for (con = lb->first; con; con = con->next) { + if (con->type == CONSTRAINT_TYPE_TRANSFORM) { + bTransformConstraint *data = (bTransformConstraint *)con->data; + + if (data->from == TRANS_ROTATION) { + copy_v3_v3(data->from_min_rot, data->from_min); + copy_v3_v3(data->from_max_rot, data->from_max); + } + else if (data->from == TRANS_SCALE) { + copy_v3_v3(data->from_min_scale, data->from_min); + copy_v3_v3(data->from_max_scale, data->from_max); + } + + if (data->to == TRANS_ROTATION) { + copy_v3_v3(data->to_min_rot, data->to_min); + copy_v3_v3(data->to_max_rot, data->to_max); + } + else if (data->to == TRANS_SCALE) { + copy_v3_v3(data->to_min_scale, data->to_min); + copy_v3_v3(data->to_max_scale, data->to_max); + } + } + } +} void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) { @@ -204,6 +232,23 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) } } + if (!MAIN_VERSION_ATLEAST(main, 270, 5)) { + Object *ob; + + /* Update Transform constraint (again :|). */ + for (ob = main->object.first; ob; ob = ob->id.next) { + do_version_constraints_radians_degrees_270_5(&ob->constraints); + + if (ob->pose) { + /* Bones constraints! */ + bPoseChannel *pchan; + for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) { + do_version_constraints_radians_degrees_270_5(&pchan->constraints); + } + } + } + } + if (!DNA_struct_elem_find(fd->filesdna, "Material", "int", "mode2")) { /* will be replaced with version check when other new flag is added to mode2 */ Material *ma; |