aboutsummaryrefslogtreecommitdiff
path: root/src/Skeleton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Skeleton.cpp')
-rw-r--r--src/Skeleton.cpp27
1 files changed, 11 insertions, 16 deletions
diff --git a/src/Skeleton.cpp b/src/Skeleton.cpp
index 6aa3508..58f6035 100644
--- a/src/Skeleton.cpp
+++ b/src/Skeleton.cpp
@@ -98,9 +98,7 @@ void Skeleton::DoConstraints(Model *collide, XYZ *move, float rotation)
numrepeats = 2;
for (int j = 0; j < numrepeats; j++) {
for (int i = 0; i < max_joints; i++) {
- if (!joints[i].existing
- && i != jointlabels[lefthand]
- && i != jointlabels[righthand])
+ if (!joints[i].existing && i != lefthand && i != righthand)
continue;
// Length constraints
@@ -181,9 +179,7 @@ void Skeleton::DoConstraints(Model *collide, XYZ *move, float rotation)
for (int i = 0; i < max_joints; i++) {
joints[i].realoldposition = joints[i].position;
//Add velocity
- if (joints[i].existing
- || i == jointlabels[lefthand]
- || i == jointlabels[righthand])
+ if (joints[i].existing || i == lefthand || i == righthand)
joints[i].position += joints[i].velocity * multiplier;
}
}
@@ -420,21 +416,21 @@ void Animation::load(const char* name)
//Special forwards
testskeleton.specialforward[0]=testskeleton.forward;
- testskeleton.specialforward[1]=testskeleton.joints[testskeleton.jointlabels[rightshoulder]].position+testskeleton.joints[testskeleton.jointlabels[rightwrist]].position;
- testskeleton.specialforward[1]=testskeleton.joints[testskeleton.jointlabels[rightelbow]].position-testskeleton.specialforward[1]/2;
+ testskeleton.specialforward[1]=testskeleton.joints[rightshoulder].position+testskeleton.joints[rightwrist].position;
+ testskeleton.specialforward[1]=testskeleton.joints[rightelbow].position-testskeleton.specialforward[1]/2;
testskeleton.specialforward[1]+=testskeleton.forward*.2;
Normalise(&testskeleton.specialforward[1]);
- testskeleton.specialforward[2]=testskeleton.joints[testskeleton.jointlabels[leftshoulder]].position+testskeleton.joints[testskeleton.jointlabels[leftwrist]].position;
- testskeleton.specialforward[2]=testskeleton.joints[testskeleton.jointlabels[leftelbow]].position-testskeleton.specialforward[2]/2;
+ testskeleton.specialforward[2]=testskeleton.joints[leftshoulder].position+testskeleton.joints[leftwrist].position;
+ testskeleton.specialforward[2]=testskeleton.joints[leftelbow].position-testskeleton.specialforward[2]/2;
testskeleton.specialforward[2]+=testskeleton.forward*.2;
Normalise(&testskeleton.specialforward[2]);
- testskeleton.specialforward[3]=testskeleton.joints[testskeleton.jointlabels[righthip]].position+testskeleton.joints[testskeleton.jointlabels[rightankle]].position;
- testskeleton.specialforward[3]=testskeleton.specialforward[3]/2-testskeleton.joints[testskeleton.jointlabels[rightknee]].position;
+ testskeleton.specialforward[3]=testskeleton.joints[righthip].position+testskeleton.joints[rightankle].position;
+ testskeleton.specialforward[3]=testskeleton.specialforward[3]/2-testskeleton.joints[rightknee].position;
testskeleton.specialforward[3]+=testskeleton.lowforward*.2;
Normalise(&testskeleton.specialforward[3]);
- testskeleton.specialforward[4]=testskeleton.joints[testskeleton.jointlabels[lefthip]].position+testskeleton.joints[testskeleton.jointlabels[leftankle]].position;
- testskeleton.specialforward[4]=testskeleton.specialforward[4]/2-testskeleton.joints[testskeleton.jointlabels[leftknee]].position;
+ testskeleton.specialforward[4]=testskeleton.joints[lefthip].position+testskeleton.joints[leftankle].position;
+ testskeleton.specialforward[4]=testskeleton.specialforward[4]/2-testskeleton.joints[leftknee].position;
testskeleton.specialforward[4]+=testskeleton.lowforward*.2;
Normalise(&testskeleton.specialforward[4]);
@@ -513,7 +509,7 @@ void Skeleton::reload()
JointData joints_data[max_joints];
loadJoints(joints_data);
for (int i = 0; i < max_joints; ++i) {
- joints[i].label = joints_data[i].label;
+ joints[i].label = i;
joints[i].position.x = joints_data[i].x;
joints[i].position.y = joints_data[i].y;
joints[i].position.z = joints_data[i].z;
@@ -534,7 +530,6 @@ void Skeleton::reload()
joints[i].locked = false;
joints[i].velocity = 0;
joints[i].oldposition = joints[i].position;
- jointlabels[joints[i].label] = i;
}
forwardjoints[0] = 7;