From f4eaff82b260a7a2afae6bce1a0834574146c1a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20T=C3=B6nne?= Date: Tue, 26 Aug 2014 15:30:59 +0200 Subject: Fix for broken hair sim in old files. Files older than rB37e1285 have broken hair sim due to the (hacky) velocity "damping" factor, which is not initialized to 1. --- source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenkernel/intern/particle_system.c | 1 + source/blender/blenloader/intern/versioning_270.c | 17 +++++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index e2d4f7c5a22..46a0c36a5f2 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -42,7 +42,7 @@ extern "C" { * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ #define BLENDER_VERSION 271 -#define BLENDER_SUBVERSION 5 +#define BLENDER_SUBVERSION 6 /* 262 was the last editmesh release but it has compatibility code for bmesh data */ #define BLENDER_MINVERSION 270 #define BLENDER_MINSUBVERSION 5 diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index e32b46f4b73..09e20c02691 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -4012,6 +4012,7 @@ static void do_hair_dynamics(ParticleSimulationData *sim) if (!psys->clmd) { psys->clmd = (ClothModifierData*)modifier_new(eModifierType_Cloth); psys->clmd->sim_parms->goalspring = 0.0f; + psys->clmd->sim_parms->vel_damping = 1.0f; psys->clmd->sim_parms->flags |= CLOTH_SIMSETTINGS_FLAG_GOAL|CLOTH_SIMSETTINGS_FLAG_NO_SPRING_COMPRESS; psys->clmd->coll_parms->flags &= ~CLOTH_COLLSETTINGS_FLAG_SELF; } diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c index 2e4d38eebcc..6f8919c3693 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_cloth_types.h" #include "DNA_constraint_types.h" #include "DNA_sdna_types.h" #include "DNA_space_types.h" @@ -42,6 +43,7 @@ #include "DNA_object_types.h" #include "DNA_mesh_types.h" #include "DNA_modifier_types.h" +#include "DNA_particle_types.h" #include "DNA_linestyle_types.h" #include "DNA_actuator_types.h" @@ -356,4 +358,19 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) scene->r.preview_start_resolution = 64; } } + + if (!MAIN_VERSION_ATLEAST(main, 271, 6)) { + 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_ParticleSystem) { + ParticleSystemModifierData *pmd = (ParticleSystemModifierData*) md; + if (pmd->psys && pmd->psys->clmd) + pmd->psys->clmd->sim_parms->vel_damping = 1.0f; + } + } + } + } } -- cgit v1.2.3