Fixes for reading mix X/Y.

This commit is contained in:
Nathan Sweet 2021-06-02 20:29:52 -04:00
parent fe9baaf849
commit 7aa940a961
6 changed files with 19 additions and 18 deletions

View File

@ -202,7 +202,7 @@ package spine {
if (pathData.spacingMode == SpacingMode.length || pathData.spacingMode == SpacingMode.fixed) pathData.spacing *= scale;
pathData.mixRotate = getNumber(constraintMap, "mixRotate", 1);
pathData.mixX = getNumber(constraintMap, "mixX", 1);
pathData.mixY = getNumber(constraintMap, "mixY", 1);
pathData.mixY = getNumber(constraintMap, "mixY", pathData.mixX);
skeletonData.pathConstraints.push(pathData);
}

View File

@ -1085,9 +1085,9 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha
if (data->positionMode == SP_POSITION_MODE_FIXED) data->position *= self->scale;
data->spacing = Json_getFloat(constraintMap, "spacing", 0);
if (data->spacingMode == SP_SPACING_MODE_LENGTH || data->spacingMode == SP_SPACING_MODE_FIXED) data->spacing *= self->scale;
data->mixRotate = Json_getFloat(constraintMap, "mixRotate", 1);
data->mixX = Json_getFloat(constraintMap, "mixX", 1);
data->mixY = Json_getFloat(constraintMap, "mixY", 1);
data->mixRotate = Json_getFloat(constraintMap, "mixRotate", 1);
data->mixX = Json_getFloat(constraintMap, "mixX", 1);
data->mixY = Json_getFloat(constraintMap, "mixY", data->mixX);
skeletonData->pathConstraints[i] = data;
}

View File

@ -349,12 +349,12 @@ SkeletonData *SkeletonJson::readSkeletonData(const char *json) {
data->_offsetScaleY = Json::getFloat(constraintMap, "scaleY", 0);
data->_offsetShearY = Json::getFloat(constraintMap, "shearY", 0);
data->_mixRotate = Json::getFloat(constraintMap, "mixRotate", 1);
data->_mixX = Json::getFloat(constraintMap, "mixX", 1);
data->_mixY = Json::getFloat(constraintMap, "mixY", data->_mixX);
data->_mixScaleX = Json::getFloat(constraintMap, "mixScaleX", 1);
data->_mixScaleY = Json::getFloat(constraintMap, "mixScaleY", data->_mixScaleX);
data->_mixShearY = Json::getFloat(constraintMap, "mixShearY", 1);
data->_mixRotate = Json::getFloat(constraintMap, "mixRotate", 1);
data->_mixX = Json::getFloat(constraintMap, "mixX", 1);
data->_mixY = Json::getFloat(constraintMap, "mixY", data->_mixX);
data->_mixScaleX = Json::getFloat(constraintMap, "mixScaleX", 1);
data->_mixScaleY = Json::getFloat(constraintMap, "mixScaleY", data->_mixScaleX);
data->_mixShearY = Json::getFloat(constraintMap, "mixShearY", 1);
skeletonData->_transformConstraints[i] = data;
}
@ -418,7 +418,7 @@ SkeletonData *SkeletonJson::readSkeletonData(const char *json) {
if (data->_spacingMode == SpacingMode_Length || data->_spacingMode == SpacingMode_Fixed) data->_spacing *= _scale;
data->_mixRotate = Json::getFloat(constraintMap, "mixRotate", 1);
data->_mixX = Json::getFloat(constraintMap, "mixX", 1);
data->_mixY = Json::getFloat(constraintMap, "mixY", 1);
data->_mixY = Json::getFloat(constraintMap, "mixY", data->_mixX);
skeletonData->_pathConstraints[i] = data;
}

View File

@ -271,8 +271,7 @@ namespace Spine {
if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale;
data.mixRotate = GetFloat(constraintMap, "mixRotate", 1);
data.mixX = GetFloat(constraintMap, "mixX", 1);
data.mixY = GetFloat(constraintMap, "mixY", 1);
data.mixY = GetFloat(constraintMap, "mixY", data.mixX);
skeletonData.pathConstraints.Add(data);
}

View File

@ -773,9 +773,10 @@ public class SkeletonJson extends SkeletonLoader {
TransformConstraintTimeline timeline = new TransformConstraintTimeline(timelineMap.size, timelineMap.size << 2,
skeletonData.getTransformConstraints().indexOf(constraint, true));
float time = keyMap.getFloat("time", 0);
float mixRotate = keyMap.getFloat("mixRotate", 1), mixShearY = keyMap.getFloat("mixShearY", 1);
float mixRotate = keyMap.getFloat("mixRotate", 1);
float mixX = keyMap.getFloat("mixX", 1), mixY = keyMap.getFloat("mixY", mixX);
float mixScaleX = keyMap.getFloat("mixScaleX", 1), mixScaleY = keyMap.getFloat("mixScaleY", mixScaleX);
float mixShearY = keyMap.getFloat("mixShearY", 1);
for (int frame = 0, bezier = 0;; frame++) {
timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY);
JsonValue nextMap = keyMap.next;
@ -784,9 +785,10 @@ public class SkeletonJson extends SkeletonLoader {
break;
}
float time2 = nextMap.getFloat("time", 0);
float mixRotate2 = nextMap.getFloat("mixRotate", 1), mixShearY2 = nextMap.getFloat("mixShearY", 1);
float mixRotate2 = nextMap.getFloat("mixRotate", 1);
float mixX2 = nextMap.getFloat("mixX", 1), mixY2 = nextMap.getFloat("mixY", mixX2);
float mixScaleX2 = nextMap.getFloat("mixScaleX", 1), mixScaleY2 = nextMap.getFloat("mixScaleY", mixScaleX2);
float mixShearY2 = nextMap.getFloat("mixShearY", 1);
JsonValue curve = keyMap.get("curve");
if (curve != null) {
bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1);

View File

@ -216,7 +216,7 @@ module spine {
if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale;
data.mixRotate = getValue(constraintMap, "mixRotate", 1);
data.mixX = getValue(constraintMap, "mixX", 1);
data.mixY = getValue(constraintMap, "mixY", 1);
data.mixY = getValue(constraintMap, "mixY", data.mixX);
skeletonData.pathConstraints.push(data);
}
@ -697,11 +697,11 @@ module spine {
let time = getValue(keyMap, "time", 0);
let mixRotate = getValue(keyMap, "mixRotate", 1);
let mixShearY = getValue(keyMap, "mixShearY", 1);
let mixX = getValue(keyMap, "mixX", 1);
let mixY = getValue(keyMap, "mixY", mixX);
let mixScaleX = getValue(keyMap, "mixScaleX", 1);
let mixScaleY = getValue(keyMap, "mixScaleY", mixScaleX);
let mixShearY = getValue(keyMap, "mixShearY", 1);
for (let frame = 0, bezier = 0;; frame++) {
timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY);
@ -710,11 +710,11 @@ module spine {
let time2 = getValue(nextMap, "time", 0);
let mixRotate2 = getValue(nextMap, "mixRotate", 1);
let mixShearY2 = getValue(nextMap, "mixShearY", 1);
let mixX2 = getValue(nextMap, "mixX", 1);
let mixY2 = getValue(nextMap, "mixY", mixX2);
let mixScaleX2 = getValue(nextMap, "mixScaleX", 1);
let mixScaleY2 = getValue(nextMap, "mixScaleY", mixScaleX2);
let mixShearY2 = getValue(nextMap, "mixShearY", 1);
let curve = keyMap.curve;
if (curve) {
bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1);