Fix (unreported) bad copying of Ocean modifier.
Was needlessly complicated code, forgot to copy a value (foam_fade), and was utterly leaking memory!
This commit is contained in:
parent
e917bc5ee0
commit
1addac8e0c
|
@ -160,40 +160,19 @@ static void freeData(ModifierData *md)
|
|||
static void copyData(ModifierData *md, ModifierData *target)
|
||||
{
|
||||
#ifdef WITH_OCEANSIM
|
||||
#if 0
|
||||
OceanModifierData *omd = (OceanModifierData *) md;
|
||||
#endif
|
||||
OceanModifierData *tomd = (OceanModifierData *) target;
|
||||
|
||||
tomd->geometry_mode = omd->geometry_mode;
|
||||
tomd->resolution = omd->resolution;
|
||||
tomd->spatial_size = omd->spatial_size;
|
||||
freeData(target);
|
||||
|
||||
tomd->wind_velocity = omd->wind_velocity;
|
||||
|
||||
tomd->damp = omd->damp;
|
||||
tomd->smallest_wave = omd->smallest_wave;
|
||||
tomd->depth = omd->depth;
|
||||
|
||||
tomd->wave_alignment = omd->wave_alignment;
|
||||
tomd->wave_direction = omd->wave_direction;
|
||||
tomd->wave_scale = omd->wave_scale;
|
||||
|
||||
tomd->chop_amount = omd->chop_amount;
|
||||
tomd->foam_coverage = omd->foam_coverage;
|
||||
tomd->time = omd->time;
|
||||
|
||||
tomd->seed = omd->seed;
|
||||
tomd->flag = omd->flag;
|
||||
modifier_copyData_generic(md, target);
|
||||
|
||||
tomd->refresh = 0;
|
||||
|
||||
tomd->size = omd->size;
|
||||
tomd->repeat_x = omd->repeat_x;
|
||||
tomd->repeat_y = omd->repeat_y;
|
||||
|
||||
/* XXX todo: copy cache runtime too */
|
||||
tomd->cached = 0;
|
||||
tomd->bakestart = omd->bakestart;
|
||||
tomd->bakeend = omd->bakeend;
|
||||
tomd->oceancache = NULL;
|
||||
|
||||
tomd->ocean = BKE_ocean_add();
|
||||
|
|
Loading…
Reference in New Issue