ソースを参照

Fixed reading path constraint mix timelines in binary data.

Nathan Sweet 4 年 前
コミット
8c4d03c8be

+ 1 - 1
spine-csharp/src/SkeletonBinary.cs

@@ -879,7 +879,7 @@ namespace Spine {
 							PathConstraintMixTimeline timeline = new PathConstraintMixTimeline(input.ReadInt(true), input.ReadInt(true),
 							PathConstraintMixTimeline timeline = new PathConstraintMixTimeline(input.ReadInt(true), input.ReadInt(true),
 								index);
 								index);
 							float time = input.ReadFloat(), mixRotate = input.ReadFloat(), mixX = input.ReadFloat(), mixY = input.ReadFloat();
 							float time = input.ReadFloat(), mixRotate = input.ReadFloat(), mixX = input.ReadFloat(), mixY = input.ReadFloat();
-							for (int frame = 0, bezier = 0, frameLast = nn - 1; ; frame++) {
+							for (int frame = 0, bezier = 0, frameLast = timeline.FrameCount - 1; ; frame++) {
 								timeline.SetFrame(frame, time, mixRotate, mixX, mixY);
 								timeline.SetFrame(frame, time, mixRotate, mixX, mixY);
 								if (frame == frameLast) break;
 								if (frame == frameLast) break;
 								float time2 = input.ReadFloat(), mixRotate2 = input.ReadFloat(), mixX2 = input.ReadFloat(),
 								float time2 = input.ReadFloat(), mixRotate2 = input.ReadFloat(), mixX2 = input.ReadFloat(),

+ 1 - 1
spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java

@@ -861,7 +861,7 @@ public class SkeletonBinary extends SkeletonLoader {
 					PathConstraintMixTimeline timeline = new PathConstraintMixTimeline(input.readInt(true), input.readInt(true),
 					PathConstraintMixTimeline timeline = new PathConstraintMixTimeline(input.readInt(true), input.readInt(true),
 						index);
 						index);
 					float time = input.readFloat(), mixRotate = input.readFloat(), mixX = input.readFloat(), mixY = input.readFloat();
 					float time = input.readFloat(), mixRotate = input.readFloat(), mixX = input.readFloat(), mixY = input.readFloat();
-					for (int frame = 0, bezier = 0, frameLast = nn - 1;; frame++) {
+					for (int frame = 0, bezier = 0, frameLast = timeline.getFrameCount() - 1;; frame++) {
 						timeline.setFrame(frame, time, mixRotate, mixX, mixY);
 						timeline.setFrame(frame, time, mixRotate, mixX, mixY);
 						if (frame == frameLast) break;
 						if (frame == frameLast) break;
 						float time2 = input.readFloat(), mixRotate2 = input.readFloat(), mixX2 = input.readFloat(),
 						float time2 = input.readFloat(), mixRotate2 = input.readFloat(), mixX2 = input.readFloat(),

+ 1 - 1
spine-ts/core/src/SkeletonBinary.ts

@@ -842,7 +842,7 @@ module spine {
 						let timeline = new PathConstraintMixTimeline(input.readInt(true), input.readInt(true),
 						let timeline = new PathConstraintMixTimeline(input.readInt(true), input.readInt(true),
 							index);
 							index);
 						let time = input.readFloat(), mixRotate = input.readFloat(), mixX = input.readFloat(), mixY = input.readFloat();
 						let time = input.readFloat(), mixRotate = input.readFloat(), mixX = input.readFloat(), mixY = input.readFloat();
-						for (let frame = 0, bezier = 0, frameLast = nn - 1;; frame++) {
+						for (let frame = 0, bezier = 0, frameLast = timeline.getFrameCount() - 1;; frame++) {
 							timeline.setFrame(frame, time, mixRotate, mixX, mixY);
 							timeline.setFrame(frame, time, mixRotate, mixX, mixY);
 							if (frame == frameLast) break;
 							if (frame == frameLast) break;
 							let time2 = input.readFloat(), mixRotate2 = input.readFloat(), mixX2 = input.readFloat(),
 							let time2 = input.readFloat(), mixRotate2 = input.readFloat(), mixX2 = input.readFloat(),