- int i/*, j*/;
- float lerp1, lerp2, lerp3, lerp4/*, ang[3]*/;
- zymbonematrix *out, modelmatrix, swapmatrix, m, *bone1, *bone2, *bone3, *bone4;
- //int a, b, c;
-
- memset(&swapmatrix, 0, sizeof(zymbonematrix));
-
- //ang[0] = (zymdebug & 3) * 90;zymdebug /= 4;
- //ang[1] = (zymdebug & 3) * 90;zymdebug /= 4;
- //ang[2] = (zymdebug & 3) * 90;zymdebug /= 4;
- /*
- ang[0] = 0;
- ang[1] = -90;
- ang[2] = 0;
- AngleVectorsFLU(ang, swapmatrix.m[0], swapmatrix.m[1], swapmatrix.m[2]);
- */
- /*
- i = zymdebug % 3;zymdebug /= 3;
- j = zymdebug % 3;zymdebug /= 3;
- lerp1 = (zymdebug & 1) ? -1 : 1;zymdebug /= 2;
- if (swapmatrix.m[i][j])
- return false;
- swapmatrix.m[i][j] = lerp1;
- i = zymdebug % 3;zymdebug /= 3;
- j = zymdebug % 3;zymdebug /= 3;
- lerp1 = (zymdebug & 1) ? -1 : 1;zymdebug /= 2;
- if (swapmatrix.m[i][j])
- return false;
- swapmatrix.m[i][j] = lerp1;
- i = zymdebug % 3;zymdebug /= 3;
- j = zymdebug % 3;zymdebug /= 3;
- lerp1 = (zymdebug & 1) ? -1 : 1;zymdebug /= 2;
- if (swapmatrix.m[i][j])
- return false;
- swapmatrix.m[i][j] = lerp1;
- */
- /*
- lerp1 = (zymdebug & 1) ? -1 : 1;zymdebug /= 2;
- swapmatrix.m[0][zymdebug % 3] = lerp1;zymdebug /= 3;
- lerp1 = (zymdebug & 1) ? -1 : 1;zymdebug /= 2;
- swapmatrix.m[1][zymdebug % 3] = lerp1;zymdebug /= 3;
- lerp1 = (zymdebug & 1) ? -1 : 1;zymdebug /= 2;
- swapmatrix.m[2][zymdebug % 3] = lerp1;zymdebug /= 3;
- */
- /*
- for (i = 0;i < 3;i++)
- {
- for (j = 0;j < 3;j++)
- {
- swapmatrix.m[i][j] = (zymdebug % 3) - 1;
- zymdebug /= 3;
- }
- }
- */
- /*
- for (i = 0;i < 3;i++)
- {
- if (fabs(swapmatrix.m[i][0] * swapmatrix.m[i][0] + swapmatrix.m[i][1] * swapmatrix.m[i][1] + swapmatrix.m[i][2] * swapmatrix.m[i][2] - 1) > 0.01f)
- return false;
- if (fabs(swapmatrix.m[0][i] * swapmatrix.m[0][i] + swapmatrix.m[1][i] * swapmatrix.m[1][i] + swapmatrix.m[2][i] * swapmatrix.m[2][i] - 1) > 0.01f)
- return false;
- }
- */
- //if (fabs(DotProduct(swapmatrix.m[0], swapmatrix.m[0]) + DotProduct(swapmatrix.m[0], swapmatrix.m[0]) + DotProduct(swapmatrix.m[0], swapmatrix.m[0]) - 3) > 0.01f)
- // return false;
-
- swapmatrix.m[0][1] = -1;
- swapmatrix.m[1][0] = 1;
- swapmatrix.m[2][2] = 1;
-
- memset(&modelmatrix, 0, sizeof(zymbonematrix));
-
- /*
- a = b = c = 0;
- switch (zymdebug % 6)
- {
- case 0: a = 0;b = 1;c = 2;break;
- case 1: a = 1;b = 0;c = 2;break;
- case 2: a = 2;b = 0;c = 1;break;
- case 3: a = 0;b = 2;c = 1;break;
- case 4: a = 1;b = 2;c = 0;break;
- case 5: a = 2;b = 1;c = 0;break;
- }
- zymdebug /= 6;
- AngleVectors(rootangles, m.m[a], m.m[b], m.m[c]);
- if (zymdebug & 1)
- VectorNegate(m.m[0], m.m[0]);
- zymdebug /= 2;
- if (zymdebug & 1)
- VectorNegate(m.m[1], m.m[1]);
- zymdebug /= 2;
- if (zymdebug & 1)
- VectorNegate(m.m[2], m.m[2]);
- zymdebug /= 2;
- if (zymdebug & 1)
- {
- for (a = 0;a < 3;a++)
- for (b = 0;b < 3;b++)
- modelmatrix.m[a][b] = m.m[b][a];
- }
- else
- {
- for (a = 0;a < 3;a++)
- for (b = 0;b < 3;b++)
- modelmatrix.m[a][b] = m.m[a][b];
- }
- zymdebug /= 2;
- VectorScale(modelmatrix.m[0], rootscale, modelmatrix.m[0]);
- VectorScale(modelmatrix.m[1], rootscale, modelmatrix.m[1]);
- VectorScale(modelmatrix.m[2], rootscale, modelmatrix.m[2]);
- */
-
- /*
- AngleVectors(rootangles, modelmatrix.m[0], modelmatrix.m[1], modelmatrix.m[2]);
- VectorScale(modelmatrix.m[0], rootscale, modelmatrix.m[0]);
- VectorScale(modelmatrix.m[1], rootscale, modelmatrix.m[1]);
- VectorScale(modelmatrix.m[2], rootscale, modelmatrix.m[2]);
- modelmatrix.m[0][3] = rootorigin[0];
- modelmatrix.m[1][3] = rootorigin[1];
- modelmatrix.m[2][3] = rootorigin[2];
-
- memcpy(&m, &swapmatrix, sizeof(zymbonematrix));
- if (zymdebug & 1)
- R_ConcatTransforms(&m.m[0], &modelmatrix.m[0], &swapmatrix.m[0]);
- else
- R_ConcatTransforms(&modelmatrix.m[0], &m.m[0], &swapmatrix.m[0]);
- zymdebug /= 2;
- */
-
- memcpy(&m, &swapmatrix, sizeof(zymbonematrix));
- R_ConcatTransforms(&softwaretransform_matrix[0], &m.m[0], &swapmatrix.m[0]);
+ int i;
+ float lerp1, lerp2, lerp3, lerp4;
+ zymbonematrix *out, rootmatrix, m;
+ const zymbonematrix *bone1, *bone2, *bone3, *bone4;
+
+ rootmatrix.m[0][0] = 1;
+ rootmatrix.m[0][1] = 0;
+ rootmatrix.m[0][2] = 0;
+ rootmatrix.m[0][3] = 0;
+ rootmatrix.m[1][0] = 0;
+ rootmatrix.m[1][1] = 1;
+ rootmatrix.m[1][2] = 0;
+ rootmatrix.m[1][3] = 0;
+ rootmatrix.m[2][0] = 0;
+ rootmatrix.m[2][1] = 0;
+ rootmatrix.m[2][2] = 1;
+ rootmatrix.m[2][3] = 0;