summary refs log tree commit diff
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;