diff options
Diffstat (limited to 'source/blender/blenloader/intern/versioning_270.c')
-rw-r--r-- | source/blender/blenloader/intern/versioning_270.c | 256 |
1 files changed, 238 insertions, 18 deletions
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c index bd1b5f2c269..ab5c8ace430 100644 --- a/source/blender/blenloader/intern/versioning_270.c +++ b/source/blender/blenloader/intern/versioning_270.c @@ -35,6 +35,7 @@ #define DNA_DEPRECATED_ALLOW #include "DNA_brush_types.h" +#include "DNA_camera_types.h" #include "DNA_cloth_types.h" #include "DNA_constraint_types.h" #include "DNA_sdna_types.h" @@ -49,19 +50,20 @@ #include "DNA_genfile.h" -#include "BLI_blenlib.h" -#include "BLI_math.h" - #include "BKE_main.h" +#include "BKE_modifier.h" #include "BKE_node.h" +#include "BKE_screen.h" #include "BLI_math.h" +#include "BLI_listbase.h" #include "BLI_string.h" #include "BLO_readfile.h" #include "readfile.h" +#include "MEM_guardedalloc.h" static void do_version_constraints_radians_degrees_270_1(ListBase *lb) { @@ -310,7 +312,7 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) { Scene *scene; for (scene = main->scene.first; scene; scene = scene->id.next) { - int num_layers = BLI_countlist(&scene->r.layers); + int num_layers = BLI_listbase_count(&scene->r.layers); scene->r.actlay = min_ff(scene->r.actlay, num_layers - 1); } } @@ -403,7 +405,7 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) } } } - + if (!MAIN_VERSION_ATLEAST(main, 272, 1)) { Brush *br; for (br = main->brush.first; br; br = br->id.next) { @@ -412,27 +414,245 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) } } - if (!DNA_struct_elem_find(fd->filesdna, "Image", "float", "gen_color")) { - Image *image; - for (image = main->image.first; image != NULL; image = image->id.next) { - image->gen_color[3] = 1.0f; + if (!MAIN_VERSION_ATLEAST(main, 272, 2)) { + if (!DNA_struct_elem_find(fd->filesdna, "Image", "float", "gen_color")) { + Image *image; + for (image = main->image.first; image != NULL; image = image->id.next) { + image->gen_color[3] = 1.0f; + } + } + + if (!DNA_struct_elem_find(fd->filesdna, "bStretchToConstraint", "float", "bulge_min")) { + Object *ob; + + /* Update Transform constraint (again :|). */ + for (ob = main->object.first; ob; ob = ob->id.next) { + do_version_constraints_stretch_to_limits(&ob->constraints); + + if (ob->pose) { + /* Bones constraints! */ + bPoseChannel *pchan; + for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) { + do_version_constraints_stretch_to_limits(&pchan->constraints); + } + } + } + } + } + + if (!MAIN_VERSION_ATLEAST(main, 273, 1)) { +#define BRUSH_RAKE (1 << 7) +#define BRUSH_RANDOM_ROTATION (1 << 25) + + Brush *br; + + for (br = main->brush.first; br; br = br->id.next) { + if (br->flag & BRUSH_RAKE) { + br->mtex.brush_angle_mode |= MTEX_ANGLE_RAKE; + br->mask_mtex.brush_angle_mode |= MTEX_ANGLE_RAKE; + } + else if (br->flag & BRUSH_RANDOM_ROTATION) { + br->mtex.brush_angle_mode |= MTEX_ANGLE_RANDOM; + br->mask_mtex.brush_angle_mode |= MTEX_ANGLE_RANDOM; + } + br->mtex.random_angle = 2.0 * M_PI; + br->mask_mtex.random_angle = 2.0 * M_PI; + } + +#undef BRUSH_RAKE +#undef BRUSH_RANDOM_ROTATION + } + + /* Customizable Safe Areas */ + if (!MAIN_VERSION_ATLEAST(main, 273, 2)) { + if (!DNA_struct_elem_find(fd->filesdna, "Scene", "DisplaySafeAreas", "safe_areas")) { + Scene *scene; + + for (scene = main->scene.first; scene; scene = scene->id.next) { + copy_v2_fl2(scene->safe_areas.title, 3.5f / 100.0f, 3.5f / 100.0f); + copy_v2_fl2(scene->safe_areas.action, 10.0f / 100.0f, 5.0f / 100.0f); + copy_v2_fl2(scene->safe_areas.title_center, 17.5f / 100.0f, 5.0f / 100.0f); + copy_v2_fl2(scene->safe_areas.action_center, 15.0f / 100.0f, 5.0f / 100.0f); + } + } + } + + if (!MAIN_VERSION_ATLEAST(main, 273, 3)) { + ParticleSettings *part; + for (part = main->particle.first; part; part = part->id.next) { + if (part->clumpcurve) + part->child_flag |= PART_CHILD_USE_CLUMP_CURVE; + if (part->roughcurve) + part->child_flag |= PART_CHILD_USE_ROUGH_CURVE; + } + } + + if (!MAIN_VERSION_ATLEAST(main, 273, 6)) { + if (!DNA_struct_elem_find(fd->filesdna, "ClothSimSettings", "float", "bending_damping")) { + Object *ob; + ModifierData *md; + for (ob = main->object.first; ob; ob = ob->id.next) { + for (md = ob->modifiers.first; md; md = md->next) { + if (md->type == eModifierType_Cloth) { + ClothModifierData *clmd = (ClothModifierData *)md; + clmd->sim_parms->bending_damping = 0.5f; + } + else if (md->type == eModifierType_ParticleSystem) { + ParticleSystemModifierData *pmd = (ParticleSystemModifierData *)md; + if (pmd->psys->clmd) { + pmd->psys->clmd->sim_parms->bending_damping = 0.5f; + } + } + } + } + } + + if (!DNA_struct_elem_find(fd->filesdna, "ParticleSettings", "float", "clump_noise_size")) { + ParticleSettings *part; + for (part = main->particle.first; part; part = part->id.next) { + part->clump_noise_size = 1.0f; + } + } + + if (!DNA_struct_elem_find(fd->filesdna, "ParticleSettings", "int", "kink_extra_steps")) { + ParticleSettings *part; + for (part = main->particle.first; part; part = part->id.next) { + part->kink_extra_steps = 4; + } + } + + if (!DNA_struct_elem_find(fd->filesdna, "MTex", "float", "kinkampfac")) { + ParticleSettings *part; + for (part = main->particle.first; part; part = part->id.next) { + int a; + for (a = 0; a < MAX_MTEX; a++) { + MTex *mtex = part->mtex[a]; + if (mtex) { + mtex->kinkampfac = 1.0f; + } + } + } + } + + if (!DNA_struct_elem_find(fd->filesdna, "HookModifierData", "char", "flag")) { + Object *ob; + + for (ob = main->object.first; ob; ob = ob->id.next) { + ModifierData *md; + for (md = ob->modifiers.first; md; md = md->next) { + if (md->type == eModifierType_Hook) { + HookModifierData *hmd = (HookModifierData *)md; + hmd->falloff_type = eHook_Falloff_InvSquare; + } + } + } + } + + if (!DNA_struct_elem_find(fd->filesdna, "NodePlaneTrackDeformData", "char", "flag")) { + FOREACH_NODETREE(main, ntree, id) { + if (ntree->type == NTREE_COMPOSIT) { + bNode *node; + for (node = ntree->nodes.first; node; node = node->next) { + if (ELEM(node->type, CMP_NODE_PLANETRACKDEFORM)) { + NodePlaneTrackDeformData *data = node->storage; + data->flag = 0; + data->motion_blur_samples = 16; + data->motion_blur_shutter = 0.5f; + } + } + } + } + FOREACH_NODETREE_END + } + + if (!DNA_struct_elem_find(fd->filesdna, "Camera", "GPUDOFSettings", "gpu_dof")) { + Camera *ca; + for (ca = main->camera.first; ca; ca = ca->id.next) { + ca->gpu_dof.fstop = 128.0f; + ca->gpu_dof.focal_length = 1.0f; + ca->gpu_dof.focus_distance = 1.0f; + ca->gpu_dof.sensor = 1.0f; + } + } + } + + if (!MAIN_VERSION_ATLEAST(main, 273, 7)) { + bScreen *scr; + ScrArea *sa; + SpaceLink *sl; + ARegion *ar; + + for (scr = main->screen.first; scr; scr = scr->id.next) { + /* Remove old deprecated region from filebrowsers */ + for (sa = scr->areabase.first; sa; sa = sa->next) { + for (sl = sa->spacedata.first; sl; sl = sl->next) { + if (sl->spacetype == SPACE_FILE) { + for (ar = sl->regionbase.first; ar; ar = ar->next) { + if (ar->regiontype == RGN_TYPE_CHANNELS) { + break; + } + } + + if (ar) { + /* Free old deprecated 'channel' region... */ + BKE_area_region_free(NULL, ar); + BLI_freelinkN(&sl->regionbase, ar); + } + } + } + } } } - if (!DNA_struct_elem_find(fd->filesdna, "bStretchToConstraint", "float", "bulge_min")) { + if (!MAIN_VERSION_ATLEAST(main, 273, 8)) { Object *ob; + for (ob = main->object.first; ob != NULL; ob = ob->id.next) { + ModifierData *md; + for (md = ob->modifiers.last; md != NULL; md = md->prev) { + if (modifier_unique_name(&ob->modifiers, md)) { + printf("Warning: Object '%s' had several modifiers with the " + "same name, renamed one of them to '%s'.\n", + ob->id.name + 2, md->name); + } + } + } - /* Update Transform constraint (again :|). */ - for (ob = main->object.first; ob; ob = ob->id.next) { - do_version_constraints_stretch_to_limits(&ob->constraints); + if (!DNA_struct_elem_find(fd->filesdna, "bSteeringActuator", "float", "acceleration")) { + for (ob = main->object.first; ob; ob = ob->id.next) { + bActuator *act; + for (act = ob->actuators.first; act; act = act->next) { + if (act->type == ACT_STEERING) { + bSteeringActuator *sact = act->data; + sact->acceleration = 1000.f; + } + } + } + } + } - if (ob->pose) { - /* Bones constraints! */ - bPoseChannel *pchan; - for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) { - do_version_constraints_stretch_to_limits(&pchan->constraints); + if (!MAIN_VERSION_ATLEAST(main, 273, 9)) { + bScreen *scr; + ScrArea *sa; + SpaceLink *sl; + ARegion *ar; + + /* Make sure sequencer preview area limits zoom */ + for (scr = main->screen.first; scr; scr = scr->id.next) { + for (sa = scr->areabase.first; sa; sa = sa->next) { + for (sl = sa->spacedata.first; sl; sl = sl->next) { + if (sl->spacetype == SPACE_SEQ) { + for (ar = sl->regionbase.first; ar; ar = ar->next) { + if (ar->regiontype == RGN_TYPE_PREVIEW) { + ar->v2d.keepzoom |= V2D_LIMITZOOM; + ar->v2d.minzoom = 0.001f; + ar->v2d.maxzoom = 1000.0f; + break; + } + } + } } } } } + } |