[csharp] Fix dark color loading from json.

This commit is contained in:
pharan 2017-02-27 00:30:48 +08:00
parent a56c22cb74
commit cd2c3e6b9d

View File

@ -149,9 +149,9 @@ namespace Spine {
if (slotMap.ContainsKey("dark")) { if (slotMap.ContainsKey("dark")) {
var color2 = (String)slotMap["dark"]; var color2 = (String)slotMap["dark"];
data.r2 = ToColor(color2, 0); data.r2 = ToColor(color2, 0, 6); // expectedLength = 6. ie. "RRGGBB"
data.g2 = ToColor(color2, 1); data.g2 = ToColor(color2, 1, 6);
data.b2 = ToColor(color2, 2); data.b2 = ToColor(color2, 2, 6);
data.hasSecondColor = true; data.hasSecondColor = true;
} }
@ -500,7 +500,7 @@ namespace Spine {
string light = (string)valueMap["light"]; string light = (string)valueMap["light"];
string dark = (string)valueMap["dark"]; string dark = (string)valueMap["dark"];
timeline.SetFrame(frameIndex, time, ToColor(light, 0), ToColor(light, 1), ToColor(light, 2), ToColor(light, 3), timeline.SetFrame(frameIndex, time, ToColor(light, 0), ToColor(light, 1), ToColor(light, 2), ToColor(light, 3),
ToColor(dark, 0), ToColor(dark, 1), ToColor(dark, 2)); ToColor(dark, 0, 6), ToColor(dark, 1, 6), ToColor(dark, 2, 6));
ReadCurve(valueMap, timeline, frameIndex); ReadCurve(valueMap, timeline, frameIndex);
frameIndex++; frameIndex++;
} }
@ -840,9 +840,9 @@ namespace Spine {
return (String)map[name]; return (String)map[name];
} }
static float ToColor(String hexString, int colorIndex) { static float ToColor(String hexString, int colorIndex, int expectedLength = 8) {
if (hexString.Length != 8) if (hexString.Length != expectedLength)
throw new ArgumentException("Color hexidecimal length must be 8, recieved: " + hexString, "hexString"); throw new ArgumentException("Color hexidecimal length must be " + expectedLength + ", recieved: " + hexString, "hexString");
return Convert.ToInt32(hexString.Substring(colorIndex * 2, 2), 16) / (float)255; return Convert.ToInt32(hexString.Substring(colorIndex * 2, 2), 16) / (float)255;
} }
} }