mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-16 18:19:55 +00:00
Merge pull request #2069 from Capostrophic/skeleton
Use the skeleton from the NPC's set model (bug #4747)
This commit is contained in:
commit
ba491a8af0
2 changed files with 12 additions and 9 deletions
|
@ -17,6 +17,7 @@
|
|||
Bug #4723: ResetActors command works incorrectly
|
||||
Bug #4745: Editor: Interior cell lighting field values are not displayed as colors
|
||||
Bug #4746: Non-solid player can't run or sneak
|
||||
Bug #4747: Bones are not read from X.NIF file for NPC animation
|
||||
Bug #4750: Sneaking doesn't work in first person view if the player is in attack ready state
|
||||
Bug #4768: Fallback numerical value recovery chokes on invalid arguments
|
||||
Bug #4775: Slowfall effect resets player jumping flag
|
||||
|
|
|
@ -470,8 +470,12 @@ void NpcAnimation::updateNpcBase()
|
|||
bool is1stPerson = mViewMode == VM_FirstPerson;
|
||||
bool isBeast = (race->mData.mFlags & ESM::Race::Beast) != 0;
|
||||
|
||||
std::string smodel = SceneUtil::getActorSkeleton(is1stPerson, isFemale, isBeast, isWerewolf);
|
||||
smodel = Misc::ResourceHelpers::correctActorModelPath(smodel, mResourceSystem->getVFS());
|
||||
std::string defaultSkeleton = SceneUtil::getActorSkeleton(is1stPerson, isFemale, isBeast, isWerewolf);
|
||||
defaultSkeleton = Misc::ResourceHelpers::correctActorModelPath(defaultSkeleton, mResourceSystem->getVFS());
|
||||
|
||||
std::string smodel = defaultSkeleton;
|
||||
if (!is1stPerson && !isWerewolf & !mNpc->mModel.empty())
|
||||
smodel = Misc::ResourceHelpers::correctActorModelPath("meshes\\" + mNpc->mModel, mResourceSystem->getVFS());
|
||||
|
||||
setObjectRoot(smodel, true, true, false);
|
||||
|
||||
|
@ -486,15 +490,13 @@ void NpcAnimation::updateNpcBase()
|
|||
if (smodel != base)
|
||||
addAnimSource(base, smodel);
|
||||
|
||||
if (smodel != defaultSkeleton && base != defaultSkeleton)
|
||||
addAnimSource(defaultSkeleton, smodel);
|
||||
|
||||
addAnimSource(smodel, smodel);
|
||||
|
||||
if(!isWerewolf)
|
||||
{
|
||||
if(mNpc->mModel.length() > 0)
|
||||
addAnimSource(Misc::ResourceHelpers::correctActorModelPath("meshes\\" + mNpc->mModel, mResourceSystem->getVFS()), smodel);
|
||||
if(Misc::StringUtils::lowerCase(mNpc->mRace).find("argonian") != std::string::npos)
|
||||
addAnimSource("meshes\\xargonian_swimkna.nif", smodel);
|
||||
}
|
||||
if(!isWerewolf && Misc::StringUtils::lowerCase(mNpc->mRace).find("argonian") != std::string::npos)
|
||||
addAnimSource("meshes\\xargonian_swimkna.nif", smodel);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue