[csharp][libgdx] fix iterating bones in VertexAttachment.ComputeWorldVertices.

Postincrement affects its variable only when entire expression is evaluated.
This commit is contained in:
Pavel Platto 2016-07-01 11:21:14 +02:00
parent 1c19365325
commit 70b3e0f86f
2 changed files with 12 additions and 4 deletions

View File

@ -81,7 +81,9 @@ namespace Spine {
if (deformArray.Count == 0) {
for (int w = offset, b = skip * 3; w < count; w += 2) {
float wx = x, wy = y;
for (int n = bones[v++] + v; v < n; v++, b += 3) {
int n = bones[v++];
n += v;
for (; v < n; v++, b += 3) {
Bone bone = skeletonBones[bones[v]];
float vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2];
wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight;
@ -94,7 +96,9 @@ namespace Spine {
float[] deform = deformArray.Items;
for (int w = offset, b = skip * 3, f = skip << 1; w < count; w += 2) {
float wx = x, wy = y;
for (int n = bones[v++] + v; v < n; v++, b += 3, f += 2) {
int n = bones[v++];
n += v;
for (; v < n; v++, b += 3, f += 2) {
Bone bone = skeletonBones[bones[v]];
float vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2];
wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight;

View File

@ -85,7 +85,9 @@ public class VertexAttachment extends Attachment {
if (deformArray.size == 0) {
for (int w = offset, b = skip * 3; w < count; w += 2) {
float wx = x, wy = y;
for (int n = bones[v++] + v; v < n; v++, b += 3) {
int n = bones[v++];
n += v;
for (; v < n; v++, b += 3) {
Bone bone = (Bone)skeletonBones[bones[v]];
float vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2];
wx += (vx * bone.getA() + vy * bone.getB() + bone.getWorldX()) * weight;
@ -98,7 +100,9 @@ public class VertexAttachment extends Attachment {
float[] deform = deformArray.items;
for (int w = offset, b = skip * 3, f = skip << 1; w < count; w += 2) {
float wx = x, wy = y;
for (int n = bones[v++] + v; v < n; v++, b += 3, f += 2) {
int n = bones[v++];
n += v;
for (; v < n; v++, b += 3, f += 2) {
Bone bone = (Bone)skeletonBones[bones[v]];
float vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2];
wx += (vx * bone.getA() + vy * bone.getB() + bone.getWorldX()) * weight;