|
|
|
@ -408,8 +408,6 @@ void NpcAnimation::updateParts()
|
|
|
|
|
if (bodypart.mData.mType != ESM::BodyPart::MT_Skin)
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
if (!mNpc->isMale() != (bodypart.mData.mFlags & ESM::BodyPart::BPF_Female))
|
|
|
|
|
continue;
|
|
|
|
|
if (!Misc::StringUtils::ciEqual(bodypart.mRace, mNpc->mRace))
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
@ -435,6 +433,20 @@ void NpcAnimation::updateParts()
|
|
|
|
|
}
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!mNpc->isMale() != (bodypart.mData.mFlags & ESM::BodyPart::BPF_Female))
|
|
|
|
|
{
|
|
|
|
|
// Allow opposite gender's parts as fallback if parts for our gender are missing
|
|
|
|
|
BodyPartMapType::const_iterator bIt = sBodyPartMap.lower_bound(BodyPartMapType::key_type(bodypart.mData.mPart));
|
|
|
|
|
while(bIt != sBodyPartMap.end() && bIt->first == bodypart.mData.mPart)
|
|
|
|
|
{
|
|
|
|
|
if(!parts[bIt->second])
|
|
|
|
|
parts[bIt->second] = &*it;
|
|
|
|
|
++bIt;
|
|
|
|
|
}
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BodyPartMapType::const_iterator bIt = sBodyPartMap.lower_bound(BodyPartMapType::key_type(bodypart.mData.mPart));
|
|
|
|
|
while(bIt != sBodyPartMap.end() && bIt->first == bodypart.mData.mPart)
|
|
|
|
|
{
|
|
|
|
|