[ts] fix parsing of default skins without attachment for binary files.

This commit is contained in:
badlogic 2019-08-07 11:37:23 +02:00
parent fada823dcb
commit 8b714d6849
4 changed files with 12229 additions and 12212 deletions

View File

@ -4222,8 +4222,16 @@ var spine;
return skeletonData; return skeletonData;
}; };
SkeletonBinary.prototype.readSkin = function (input, skeletonData, defaultSkin, nonessential) { SkeletonBinary.prototype.readSkin = function (input, skeletonData, defaultSkin, nonessential) {
var skin = new spine.Skin(defaultSkin ? "default" : input.readStringRef()); var skin = null;
if (!defaultSkin) { var slotCount = 0;
if (defaultSkin) {
slotCount = input.readInt(true);
if (slotCount == 0)
return null;
skin = new spine.Skin("default");
}
else {
skin = new spine.Skin(input.readStringRef());
skin.bones.length = input.readInt(true); skin.bones.length = input.readInt(true);
for (var i = 0, n = skin.bones.length; i < n; i++) for (var i = 0, n = skin.bones.length; i < n; i++)
skin.bones[i] = skeletonData.bones[input.readInt(true)]; skin.bones[i] = skeletonData.bones[input.readInt(true)];
@ -4233,8 +4241,9 @@ var spine;
skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]); skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]);
for (var i = 0, n = input.readInt(true); i < n; i++) for (var i = 0, n = input.readInt(true); i < n; i++)
skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]); skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]);
slotCount = input.readInt(true);
} }
for (var i = 0, n = input.readInt(true); i < n; i++) { for (var i = 0; i < slotCount; i++) {
var slotIndex = input.readInt(true); var slotIndex = input.readInt(true);
for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) {
var name_3 = input.readStringRef(); var name_3 = input.readStringRef();

File diff suppressed because one or more lines are too long

View File

@ -245,9 +245,15 @@ module spine {
} }
private readSkin (input: BinaryInput, skeletonData: SkeletonData, defaultSkin: boolean, nonessential: boolean): Skin { private readSkin (input: BinaryInput, skeletonData: SkeletonData, defaultSkin: boolean, nonessential: boolean): Skin {
let skin = new Skin(defaultSkin ? "default" : input.readStringRef()); let skin = null;
let slotCount = 0;
if (!defaultSkin) { if (defaultSkin) {
slotCount = input.readInt(true)
if (slotCount == 0) return null;
skin = new Skin("default");
} else {
skin = new Skin(input.readStringRef());
skin.bones.length = input.readInt(true); skin.bones.length = input.readInt(true);
for (let i = 0, n = skin.bones.length; i < n; i++) for (let i = 0, n = skin.bones.length; i < n; i++)
skin.bones[i] = skeletonData.bones[input.readInt(true)]; skin.bones[i] = skeletonData.bones[input.readInt(true)];
@ -258,9 +264,11 @@ module spine {
skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]); skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]);
for (let i = 0, n = input.readInt(true); i < n; i++) for (let i = 0, n = input.readInt(true); i < n; i++)
skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]); skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]);
slotCount = input.readInt(true);
} }
for (let i = 0, n = input.readInt(true); i < n; i++) { for (let i = 0; i < slotCount; i++) {
let slotIndex = input.readInt(true); let slotIndex = input.readInt(true);
for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) { for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) {
let name = input.readStringRef(); let name = input.readStringRef();