diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-01-09 06:59:45 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-01-09 07:09:55 +0300 |
commit | 6554207841a452cc58857232837740746a1e8b80 (patch) | |
tree | d904fb81f7b9321fb7a9b3fdb66c6b4db01107b6 /source/blender/blenloader | |
parent | 850f73638ce96ba87e1fbb1b7185f9021d857e8f (diff) |
Add deform axis for Simple Deform modifier
D2989 by @dmarra w/ own edits
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/versioning_270.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c index fa7bf0c7dee..20475582bc9 100644 --- a/source/blender/blenloader/intern/versioning_270.c +++ b/source/blender/blenloader/intern/versioning_270.c @@ -1735,6 +1735,29 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) } } + if (!MAIN_VERSION_ATLEAST(main, 279, 1)) { + /* Simple deform modifier no longer assumes Z axis (X for bend type). + * Must set previous defaults. */ + if (!DNA_struct_elem_find(fd->filesdna, "SimpleDeformModifierData", "char", "deform_axis")) { + for (Object *ob = main->object.first; ob; ob = ob->id.next) { + for (ModifierData *md = ob->modifiers.first; md; md = md->next) { + if (md->type == eModifierType_SimpleDeform) { + SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md; + switch (smd->mode) { + case MOD_SIMPLEDEFORM_MODE_BEND: + smd->deform_axis = 0; + break; + default: + smd->deform_axis = 2; + break; + } + } + } + } + } + } + + { /* Fix for invalid state of screen due to bug in older versions. */ for (bScreen *sc = main->screen.first; sc; sc = sc->id.next) { |