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:
authorAleksi Juvani <aleksijuvani>2022-01-11 15:02:49 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2022-01-11 17:46:14 +0300
commit66346a6852e282a3a614ac230badf3aa3d228fc4 (patch)
tree1b80981783264234b8c592292b0230d5c2023d8a
parentbbad834f1c2a1f7030ed9741c486b23241e8885e (diff)
Fix `PSYS_GLOBAL_HAIR` stripped even if connecting the hair fails
After disconnecting hair on an object, if you then hide the particle system, and try connecting the hair again, the operator is cancelled due to `remap_hair_emitter` returning `false` because `target_psmd->mesh_final` is NULL, but `connect_hair` will still strip the `PSYS_GLOBAL_HAIR` flag, which will cause the hair in the hidden particle system to be positioned incorrectly. The correct behavior is to strip the flag only if `remap_hair_emitter` succeeds. Differential Revision: https://developer.blender.org/D13703
-rw-r--r--source/blender/editors/physics/particle_object.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/editors/physics/particle_object.c b/source/blender/editors/physics/particle_object.c
index 8ba600d3a7d..d6b36dd4a6b 100644
--- a/source/blender/editors/physics/particle_object.c
+++ b/source/blender/editors/physics/particle_object.c
@@ -937,7 +937,9 @@ static bool connect_hair(Depsgraph *depsgraph, Scene *scene, Object *ob, Particl
ob->obmat,
psys->flag & PSYS_GLOBAL_HAIR,
false);
- psys->flag &= ~PSYS_GLOBAL_HAIR;
+ if (ok) {
+ psys->flag &= ~PSYS_GLOBAL_HAIR;
+ }
return ok;
}