diff options
-rw-r--r-- | source/blender/depsgraph/intern/depsgraph_tag.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/depsgraph_tag.cc b/source/blender/depsgraph/intern/depsgraph_tag.cc index a1083cbfe0a..26a12f42bfc 100644 --- a/source/blender/depsgraph/intern/depsgraph_tag.cc +++ b/source/blender/depsgraph/intern/depsgraph_tag.cc @@ -142,6 +142,14 @@ void depsgraph_base_flags_tag_to_component_opcode( } } +eDepsOperation_Code psysTagToOperationCode(IDRecalcFlag tag) +{ + if (tag == ID_RECALC_PSYS_RESET) { + return DEG_OPCODE_PARTICLE_SETTINGS_RESET; + } + return DEG_OPCODE_OPERATION; +} + void depsgraph_tag_to_component_opcode(const ID *id, IDRecalcFlag tag, eDepsNode_Type *component_type, @@ -177,7 +185,8 @@ void depsgraph_tag_to_component_opcode(const ID *id, * but we can survive for now with single exception here. * Particles needs reconsideration anyway, */ - *component_type = DEG_NODE_TYPE_PARTICLE_SYSTEM; + *component_type = DEG_NODE_TYPE_PARTICLE_SETTINGS; + *operation_code = psysTagToOperationCode(tag); } else { *component_type = DEG_NODE_TYPE_PARTICLE_SYSTEM; |