Browse Source

Fixed value type and applied small change in AnimationNodeOneShot

Silc 'Tokage' Renew 4 years ago
parent
commit
662da453a4
1 changed files with 6 additions and 7 deletions
  1. 6 7
      scene/animation/animation_blend_tree.cpp

+ 6 - 7
scene/animation/animation_blend_tree.cpp

@@ -248,27 +248,26 @@ double AnimationNodeOneShot::process(double p_time, bool p_seek) {
 		if (fade_in > 0) {
 			blend = time / fade_in;
 		} else {
-			blend = 0; //wtf
+			blend = 0;
 		}
-
-	} else if (!do_start && remaining < fade_out) {
-		if (fade_out) {
+	} else if (!do_start && remaining <= fade_out) {
+		if (fade_out > 0) {
 			blend = (remaining / fade_out);
 		} else {
-			blend = 1.0;
+			blend = 0;
 		}
 	} else {
 		blend = 1.0;
 	}
 
-	float main_rem;
+	double main_rem;
 	if (mix == MIX_MODE_ADD) {
 		main_rem = blend_input(0, p_time, p_seek, 1.0, FILTER_IGNORE, !sync);
 	} else {
 		main_rem = blend_input(0, p_time, p_seek, 1.0 - blend, FILTER_BLEND, !sync);
 	}
 
-	float os_rem = blend_input(1, os_seek ? time : p_time, os_seek, blend, FILTER_PASS, false);
+	double os_rem = blend_input(1, os_seek ? time : p_time, os_seek, blend, FILTER_PASS, false);
 
 	if (do_start) {
 		remaining = os_rem;