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:
authorMitchell Stokes <mogurijin@gmail.com>2012-06-21 10:27:51 +0400
committerMitchell Stokes <mogurijin@gmail.com>2012-06-21 10:27:51 +0400
commit7ef54879ed8bb157046e305da554cae907adf6e8 (patch)
treed2ef5bd2a17a7580d3f6aa8ffd79181c39a69e61 /source/blender/blenloader
parentd8e2c475a0dbfb9de31c363f76899435d80cff8f (diff)
Fix for properly converting 2.4x IPO Actuators to 2.6x Action Actuators. Previously the converted Action Actuators would not have an action assigned. This fix is based on code provided by Maxim Aleynikov in his report: [#30410] not full conversion IPO Actuator in Action Actuator.
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r--source/blender/blenloader/intern/versioning_250.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source/blender/blenloader/intern/versioning_250.c b/source/blender/blenloader/intern/versioning_250.c
index 5ed39ad5307..bfaa526b995 100644
--- a/source/blender/blenloader/intern/versioning_250.c
+++ b/source/blender/blenloader/intern/versioning_250.c
@@ -2558,11 +2558,11 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *main)
for (ob = main->object.first; ob; ob = ob->id.next) {
for (act = ob->actuators.first; act; act = act->next) {
if (act->type == ACT_IPO) {
- // Create the new actuator
+ /* Create the new actuator */
ia = act->data;
aa = MEM_callocN(sizeof(bActionActuator), "fcurve -> action actuator do_version");
- // Copy values
+ /* Copy values */
aa->type = ia->type;
aa->flag = ia->flag;
aa->sta = ia->sta;
@@ -2572,12 +2572,18 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *main)
if (ob->adt)
aa->act = ob->adt->action;
- // Get rid of the old actuator
+ /* Get rid of the old actuator */
MEM_freeN(ia);
- // Assign the new actuator
+ /* Assign the new actuator */
act->data = aa;
act->type = act->otype = ACT_ACTION;
+
+ /* Fix for converting 2.4x files: if we don't have an action, but we have an
+ object IPO, then leave the actuator as an IPO actuator for now and let the
+ IPO conversion code handle it */
+ if (ob->ipo && !aa->act)
+ act->type = ACT_IPO;
}
else if (act->type == ACT_SHAPEACTION) {
act->type = act->otype = ACT_ACTION;