[c] Fixed dipping problem fix

This commit is contained in:
badlogic 2017-04-10 13:37:36 +02:00
parent 76f8d683fa
commit 01b20b568b

View File

@ -591,17 +591,18 @@ void _spAnimationState_setCurrent (spAnimationState* self, int index, spTrackEnt
mixingFrom = from->mixingFrom; mixingFrom = from->mixingFrom;
if (mixingFrom != 0 && from->mixDuration > 0) { if (mixingFrom != 0 && from->mixDuration > 0) {
if (self->multipleMixing && from->mixTime / from->mixDuration < 0.5 && mixingFrom->animation != SP_EMPTY_ANIMATION) { if (self->multipleMixing) {
current->mixingFrom = mixingFrom; current->mixAlpha *= MIN(from->mixTime / from->mixDuration, 1);
mixingFrom->mixingFrom = from; } else {
mixingFrom->mixTime = from->mixDuration - from->mixTime; if (from->mixTime / from->mixDuration < 0.5 && mixingFrom->animation != SP_EMPTY_ANIMATION) {
mixingFrom->mixDuration = from->mixDuration; current->mixingFrom = mixingFrom;
from->mixingFrom = 0; mixingFrom->mixingFrom = from;
from = mixingFrom; mixingFrom->mixTime = from->mixDuration - from->mixTime;
} mixingFrom->mixDuration = from->mixDuration;
from->mixingFrom = 0;
current->mixAlpha *= MIN(from->mixTime / from->mixDuration, 1); from = mixingFrom;
if (!self->multipleMixing) { }
from->mixAlpha = 0; from->mixAlpha = 0;
from->mixTime = 0; from->mixTime = 0;
from->mixDuration = 0; from->mixDuration = 0;