From 1013e31268b335dbc5615e84e224a55620dc7ebf Mon Sep 17 00:00:00 2001 From: badlogic Date: Wed, 19 Jul 2017 13:58:13 +0200 Subject: [PATCH] [c] Fix applying flipping for noScale/noScaleOrReflection transform mode. See #951 --- spine-c/spine-c/src/spine/Bone.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spine-c/spine-c/src/spine/Bone.c b/spine-c/spine-c/src/spine/Bone.c index 9e76a2caf..96d43cb6d 100644 --- a/spine-c/spine-c/src/spine/Bone.c +++ b/spine-c/spine-c/src/spine/Bone.c @@ -173,14 +173,14 @@ void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rota lb = COS_DEG(90 + shearY) * scaleY; lc = SIN_DEG(shearX) * scaleX; ld = SIN_DEG(90 + shearY) * scaleY; + if (self->data->transformMode != SP_TRANSFORMMODE_NOSCALEORREFLECTION ? pa * pd - pb * pc < 0 : self->skeleton->flipX != self->skeleton->flipY) { + zb = -zb; + zd = -zd; + } CONST_CAST(float, self->a) = za * la + zb * lc; CONST_CAST(float, self->b) = za * lb + zb * ld; CONST_CAST(float, self->c) = zc * la + zd * lc; CONST_CAST(float, self->d) = zc * lb + zd * ld; - if (self->data->transformMode != SP_TRANSFORMMODE_NOSCALEORREFLECTION ? pa * pd - pb * pc < 0 : self->skeleton->flipX != self->skeleton->flipY) { - CONST_CAST(float, self->b) = -self->b; - CONST_CAST(float, self->d) = -self->d; - } return; } }