Fix T49460: Particle group instance 'Use Count' value gets reset on file-load.

Regression caused rBbcc863993ad, write code was assuming dw->ob was always valid,
wich is no more the case right after reading file e.g.

Another good example of how bad it is to use 'hidden' dependencies between datablocks. :(
And another fix to be backported to 2.78a. :(((
This commit is contained in:
Bastien Montagne 2016-09-28 15:06:50 +02:00
parent 601ce6a89c
commit cbd3827d83
Notes: blender-bot 2023-02-14 07:33:57 +01:00
Referenced by issue #49460, Particle group instance 'Use Count' value gets reset on file-load
1 changed files with 5 additions and 7 deletions

View File

@ -1306,13 +1306,11 @@ static void write_particlesettings(WriteData *wd, ListBase *idbase)
dw = part->dupliweights.first;
for (; dw; dw = dw->next) {
/* update indices */
dw->index = 0;
if (part->dup_group) { /* can be NULL if lining fails or set to None */
go = part->dup_group->gobject.first;
while (go && go->ob != dw->ob) {
go = go->next;
dw->index++;
/* update indices, but only if dw->ob is set (can be NULL after loading e.g.) */
if (dw->ob != NULL) {
dw->index = 0;
if (part->dup_group) { /* can be NULL if lining fails or set to None */
for (go = part->dup_group->gobject.first; go && go->ob != dw->ob; go = go->next, dw->index++);
}
}
writestruct(wd, DATA, ParticleDupliWeight, 1, dw);