This code obviously should also use the cache_fields flag variable, like the code for reading the lowres data in the same function. This is because fluid_fields actually represents the old state before smoke was reallocated to match cache_fields read from the file, and if it has some fields enabled that aren't allocated any more, it crashes. This also fixes a reverse glitch: when a file was loaded with the current frame in the middle of a baked smoke+fire simulation, smoke appeared immediately, but the fire didn't until the frame was changed. The reason is the same: after file load no fields are initially allocated and thus fluid_fields is 0.
114 KiB
114 KiB