Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2014-04-28 15:20:37 +0400
committerBastien Montagne <montagne29@wanadoo.fr>2014-04-28 15:25:14 +0400
commit912151763d0a217ba53e3d566fae655d1f8b8553 (patch)
treec4f1d658cc4f69939e99b0c942e2c2cad8f90f9b /source/blender/blenloader/intern
parent2aa9d33404ca96e6bd42224ebac19696e03550f8 (diff)
Followup to rB8714ae09f894: better not have several RNA properties affect a single DNA one.
Diffstat (limited to 'source/blender/blenloader/intern')
-rw-r--r--source/blender/blenloader/intern/versioning_270.c45
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;