Pārlūkot izejas kodu

[c] Fixed yDown behaviour in Bone, fixed spSkeleton_updateCache.

badlogic 9 gadi atpakaļ
vecāks
revīzija
fc373f9791
2 mainītis faili ar 10 papildinājumiem un 5 dzēšanām
  1. 1 1
      spine-c/src/spine/Bone.c
  2. 9 4
      spine-c/src/spine/Skeleton.c

+ 1 - 1
spine-c/src/spine/Bone.c

@@ -189,7 +189,7 @@ void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rota
 		CONST_CAST(float, self->a) = -self->a;
 		CONST_CAST(float, self->b) = -self->b;
 	}
-	if (self->skeleton->flipY) {
+	if (self->skeleton->flipY != yDown) {
 		CONST_CAST(float, self->c) = -self->c;
 		CONST_CAST(float, self->d) = -self->d;
 	}

+ 9 - 4
spine-c/src/spine/Skeleton.c

@@ -174,7 +174,7 @@ static void _addToUpdateCacheReset(_spSkeleton* const internal, spBone* bone) {
 		internal->updateCacheResetCapacity *= 2;
 		internal->updateCacheReset = realloc(internal->updateCacheReset, sizeof(spBone*) * internal->updateCacheResetCapacity);
 	}
-	internal->updateCacheReset[internal->updateCacheResetCount++] = bone;
+	internal->updateCacheReset[internal->updateCacheResetCount] = bone;
 	++internal->updateCacheResetCount;
 }
 
@@ -244,7 +244,8 @@ static void _sortIkConstraint (_spSkeleton* const internal, spIkConstraint* cons
 				break;
 			}
 		}
-		if (!contains) _addToUpdateCacheReset(internal, child);
+		if (!contains)
+			_addToUpdateCacheReset(internal, child);
 	}
 
 	_addToUpdateCache(internal, SP_UPDATE_IK_CONSTRAINT, constraint);
@@ -331,11 +332,14 @@ void spSkeleton_updateCache (spSkeleton* self) {
 	ikCount = self->ikConstraintsCount; transformCount = self->transformConstraintsCount; pathCount = self->pathConstraintsCount;
 	constraintCount = ikCount + transformCount + pathCount;
 
-	for (i = 0; i < constraintCount; i++) {
+	i = 0;
+	outer:
+	for (; i < constraintCount; i++) {
 		for (ii = 0; ii < ikCount; ii++) {
 			spIkConstraint* ikConstraint = ikConstraints[ii];
 			if (ikConstraint->data->order == i) {
 				_sortIkConstraint(internal, ikConstraint);
+				i++;
 				goto outer;
 			}
 		}
@@ -344,6 +348,7 @@ void spSkeleton_updateCache (spSkeleton* self) {
 			spTransformConstraint* transformConstraint = transformConstraints[ii];
 			if (transformConstraint->data->order == i) {
 				_sortTransformConstraint(internal, transformConstraint);
+				i++;
 				goto outer;
 			}
 		}
@@ -352,11 +357,11 @@ void spSkeleton_updateCache (spSkeleton* self) {
 			spPathConstraint* pathConstraint = pathConstraints[ii];
 			if (pathConstraint->data->order == i) {
 				_sortPathConstraint(internal, pathConstraint);
+				i++;
 				goto outer;
 			}
 		}
 	}
-	outer:
 
 	for (i = 0; i < self->bonesCount; ++i)
 		_sortBone(internal, self->bones[i]);