Fix T98626: Mesh Deform modifier stops working on a linked collection upon undo.
Regression from rBb66368f3fd9c, we still need to store all data on undo writes, since overrides are not re-applied after undo/redo.
This commit is contained in:
@@ -801,8 +801,9 @@ static void panelRegister(ARegionType *region_type)
|
||||
static void blendWrite(BlendWriter *writer, const ID *id_owner, const ModifierData *md)
|
||||
{
|
||||
CorrectiveSmoothModifierData csmd = *(const CorrectiveSmoothModifierData *)md;
|
||||
const bool is_undo = BLO_write_is_undo(writer);
|
||||
|
||||
if (ID_IS_OVERRIDE_LIBRARY(id_owner)) {
|
||||
if (ID_IS_OVERRIDE_LIBRARY(id_owner) && !is_undo) {
|
||||
BLI_assert(!ID_IS_LINKED(id_owner));
|
||||
const bool is_local = (md->flag & eModifierFlag_OverrideLibrary_Local) != 0;
|
||||
if (!is_local) {
|
||||
|
||||
@@ -846,8 +846,9 @@ static void panelRegister(ARegionType *region_type)
|
||||
static void blendWrite(BlendWriter *writer, const ID *id_owner, const ModifierData *md)
|
||||
{
|
||||
LaplacianDeformModifierData lmd = *(const LaplacianDeformModifierData *)md;
|
||||
const bool is_undo = BLO_write_is_undo(writer);
|
||||
|
||||
if (ID_IS_OVERRIDE_LIBRARY(id_owner)) {
|
||||
if (ID_IS_OVERRIDE_LIBRARY(id_owner) && !is_undo) {
|
||||
BLI_assert(!ID_IS_LINKED(id_owner));
|
||||
const bool is_local = (md->flag & eModifierFlag_OverrideLibrary_Local) != 0;
|
||||
if (!is_local) {
|
||||
|
||||
@@ -584,8 +584,9 @@ static void panelRegister(ARegionType *region_type)
|
||||
static void blendWrite(BlendWriter *writer, const ID *id_owner, const ModifierData *md)
|
||||
{
|
||||
MeshDeformModifierData mmd = *(const MeshDeformModifierData *)md;
|
||||
const bool is_undo = BLO_write_is_undo(writer);
|
||||
|
||||
if (ID_IS_OVERRIDE_LIBRARY(id_owner)) {
|
||||
if (ID_IS_OVERRIDE_LIBRARY(id_owner) && !is_undo) {
|
||||
BLI_assert(!ID_IS_LINKED(id_owner));
|
||||
const bool is_local = (md->flag & eModifierFlag_OverrideLibrary_Local) != 0;
|
||||
if (!is_local) {
|
||||
|
||||
@@ -1672,8 +1672,9 @@ static void panelRegister(ARegionType *region_type)
|
||||
static void blendWrite(BlendWriter *writer, const ID *id_owner, const ModifierData *md)
|
||||
{
|
||||
SurfaceDeformModifierData smd = *(const SurfaceDeformModifierData *)md;
|
||||
const bool is_undo = BLO_write_is_undo(writer);
|
||||
|
||||
if (ID_IS_OVERRIDE_LIBRARY(id_owner)) {
|
||||
if (ID_IS_OVERRIDE_LIBRARY(id_owner) && !is_undo) {
|
||||
BLI_assert(!ID_IS_LINKED(id_owner));
|
||||
const bool is_local = (md->flag & eModifierFlag_OverrideLibrary_Local) != 0;
|
||||
if (!is_local) {
|
||||
|
||||
Reference in New Issue
Block a user