|
|
|
@ -113,17 +113,22 @@ namespace CSMWorld
|
|
|
|
|
const std::string ActorAdapter::ActorData::getPart(ESM::PartReferenceType index) const
|
|
|
|
|
{
|
|
|
|
|
auto it = mParts.find(index);
|
|
|
|
|
if (it == mParts.end() && mRaceData && mRaceData->handlesPart(index))
|
|
|
|
|
if (it == mParts.end())
|
|
|
|
|
{
|
|
|
|
|
if (mFemale)
|
|
|
|
|
if (mRaceData && mRaceData->handlesPart(index))
|
|
|
|
|
{
|
|
|
|
|
// Note: we should use male parts for females as fallback
|
|
|
|
|
const std::string femalePart = mRaceData->getFemalePart(index);
|
|
|
|
|
if (!femalePart.empty())
|
|
|
|
|
return femalePart;
|
|
|
|
|
if (mFemale)
|
|
|
|
|
{
|
|
|
|
|
// Note: we should use male parts for females as fallback
|
|
|
|
|
const std::string femalePart = mRaceData->getFemalePart(index);
|
|
|
|
|
if (!femalePart.empty())
|
|
|
|
|
return femalePart;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return mRaceData->getMalePart(index);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return mRaceData->getMalePart(index);
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const std::string& partName = it->second.first;
|
|
|
|
|