Prechádzať zdrojové kódy

Fix premature end of animation playing backwards

(cherry picked from commit 826af5b28ad190345cf4daa076a8c552a101ce51)
Pedro J. Estébanez 4 rokov pred
rodič
commit
a45bf288e8
1 zmenil súbory, kde vykonal 2 pridanie a 5 odobranie
  1. 2 5
      scene/animation/animation_player.cpp

+ 2 - 5
scene/animation/animation_player.cpp

@@ -782,13 +782,10 @@ void AnimationPlayer::_animation_process_data(PlaybackData &cd, float p_delta, f
 		else if (next_pos > len)
 			next_pos = len;
 
-		// fix delta
-		delta = next_pos - cd.pos;
+		bool backwards = signbit(delta); // Negative zero means playing backwards too
+		delta = next_pos - cd.pos; // Fix delta (after determination of backwards because negative zero is lost here)
 
 		if (&cd == &playback.current) {
-
-			bool backwards = delta < 0;
-
 			if (!backwards && cd.pos <= len && next_pos == len /*&& playback.blend.empty()*/) {
 				//playback finished
 				end_reached = true;