The previous code immediately dropped identity overrides, even if there still was an interpolation to be done.
Also a little bit of cleanup, and setting an appropriate identity default for the scale property when interpolating.
For modders: As a workaround, you can add a tiny offset so that overrides aren't identity overrides.
* Fix attachments lagging behind their parents (#14818)
* Fix animation blending (#14817)
* Bring back cool guy as another .x smoke test
* Add .x mesh loader unittest
* Do bounding box & matrix calculation at proper point in time
* Remove obsolete `SAnimatedMesh`
The cause for the test failure is an edge case bug
in the raycast implementation (perfectly diagonal raycasts).
This is fixed by switching to a continuous random distribution
which makes it extremely unlikely that the buggy edge case occurs.
Additionally, devtest unit test failures now print their random seed
to be easier to reproduce in the future.
* Add "lava flan" (.x model) smoke test
* Fix double finalize in `.x` mesh loader
* Use reserve instead of resize again
The weights are added indirectly via `AnimatedMesh->addWeight`
This lets modders avoid alpha blending rendering bugs as well as potential (future) performance issues.
The appropriate blend modes are also used for node dig particles.
---------
Co-authored-by: sfan5 <sfan5@live.de>
Also removes all animations but the first one from gltf_frog.gltf
to address the corresponding warning.
Catches some more possible exceptions (out of bounds, optional access)
which might be caused by a broken model to properly log them.
New parameter 'content padding'. When specified, the scrollbar
max value is calculated automatically. This aims to reduce manual
calculation functions.
This improves texture pack compatibility. Masks are expected to be of the same
size as the base texture. This change upscales the smaller texture if needed.
The behaviour is now the same as a.png^b.png and a.png^[overlay:b.png (to mention a few).