Browse Source

[csharp] Fix dark color loading from json.

pharan 8 years ago
parent
commit
cd2c3e6b9d
1 changed files with 7 additions and 7 deletions
  1. 7 7
      spine-csharp/src/SkeletonJson.cs

+ 7 - 7
spine-csharp/src/SkeletonJson.cs

@@ -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.g2 = ToColor(color2, 1);
-						data.b2 = ToColor(color2, 2);
+						data.r2 = ToColor(color2, 0, 6); // expectedLength = 6. ie. "RRGGBB"
+						data.g2 = ToColor(color2, 1, 6);
+						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) {
-			if (hexString.Length != 8)
-				throw new ArgumentException("Color hexidecimal length must be 8, recieved: " + hexString, "hexString");
+		static float ToColor(String hexString, int colorIndex, int expectedLength = 8) {
+			if (hexString.Length != expectedLength)
+				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;
 		}
 		}
 	}
 	}