Fixed writing to Skeleton.Bones[-1] when FindBone() returns -1 because, say, PELVISPOLY does not exist

This commit is contained in:
Fatbag 2012-02-19 01:00:11 -06:00
parent e3f6880ed2
commit 6df7a494a1

View file

@ -217,7 +217,9 @@ void AdvanceFrame(Skeleton_t& Skeleton, Animation_t& Animation){
static unsigned Frame = 0;
for(unsigned i=0; i<Animation.MotionsCount; i++){
Bone_t& Bone = Skeleton.Bones[FindBone(Skeleton, Animation.Motions[i].BoneName, Skeleton.BoneCount)];
unsigned BoneIndex = FindBone(Skeleton, Animation.Motions[i].BoneName, Skeleton.BoneCount);
if(BoneIndex != (unsigned)-1){
Bone_t& Bone = Skeleton.Bones[BoneIndex];
if(Animation.Motions[i].HasTranslation){
Translation_t& Translation = Animation.Motions[i].Translations[Frame];
@ -233,6 +235,7 @@ void AdvanceFrame(Skeleton_t& Skeleton, Animation_t& Animation){
Bone.Rotation.w = Rotation.w;
}
}
}
if(++Frame >= Animation.Motions[0].FrameCount) Frame = 0;
}