void RaceDialog::updatePreview() { ESM::NPC record = mPreview->getPrototype(); record.mRace = mCurrentRaceId; record.setIsMale(mGenderIndex == 0); std::string prefix = "b_n_" + mCurrentRaceId + ((record.isMale()) ? "_m_" : "_f_"); std::string headIndex = (boost::format("%02d") % (mFaceIndex + 1)).str(); std::string hairIndex = (boost::format("%02d") % (mHairIndex + 1)).str(); record.mHead = prefix + "head_" + headIndex; record.mHair = prefix + "hair_" + hairIndex; const MWWorld::Store<ESM::BodyPart> &parts = MWBase::Environment::get().getWorld()->getStore().get<ESM::BodyPart>(); if (parts.search(record.mHair) == 0) { record.mHair = prefix + "hair" + hairIndex; } mPreview->setPrototype(record); }