mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-16 16:29:55 +00:00
Do not disable controllers for melee weapons sheathes (bug 8191)
This commit is contained in:
parent
bac0018a09
commit
aab2f4a5bb
2 changed files with 8 additions and 4 deletions
|
@ -194,6 +194,7 @@
|
||||||
Bug #8171: Items with more than 100% health can be repaired
|
Bug #8171: Items with more than 100% health can be repaired
|
||||||
Bug #8172: Openmw-cs crashes when viewing `Dantooine, Sea`
|
Bug #8172: Openmw-cs crashes when viewing `Dantooine, Sea`
|
||||||
Bug #8187: Intervention effects should use Chebyshev distance to determine the closest marker
|
Bug #8187: Intervention effects should use Chebyshev distance to determine the closest marker
|
||||||
|
Bug #8191: NiRollController does not work for sheath meshes
|
||||||
Feature #1415: Infinite fall failsafe
|
Feature #1415: Infinite fall failsafe
|
||||||
Feature #2566: Handle NAM9 records for manual cell references
|
Feature #2566: Handle NAM9 records for manual cell references
|
||||||
Feature #3501: OpenMW-CS: Instance Editing - Shortcuts for axial locking
|
Feature #3501: OpenMW-CS: Instance Editing - Shortcuts for axial locking
|
||||||
|
|
|
@ -335,7 +335,8 @@ namespace MWRender
|
||||||
|
|
||||||
// Since throwing weapons stack themselves, do not show such weapon itself
|
// Since throwing weapons stack themselves, do not show such weapon itself
|
||||||
int type = weapon->get<ESM::Weapon>()->mBase->mData.mType;
|
int type = weapon->get<ESM::Weapon>()->mBase->mData.mType;
|
||||||
if (MWMechanics::getWeaponType(type)->mWeaponClass == ESM::WeaponType::Thrown)
|
auto weaponClass = MWMechanics::getWeaponType(type)->mWeaponClass;
|
||||||
|
if (weaponClass == ESM::WeaponType::Thrown)
|
||||||
showHolsteredWeapons = false;
|
showHolsteredWeapons = false;
|
||||||
|
|
||||||
const VFS::Path::Normalized mesh = weapon->getClass().getCorrectedModel(*weapon);
|
const VFS::Path::Normalized mesh = weapon->getClass().getCorrectedModel(*weapon);
|
||||||
|
@ -356,7 +357,7 @@ namespace MWRender
|
||||||
const osg::Vec4f glowColor
|
const osg::Vec4f glowColor
|
||||||
= isEnchanted ? weapon->getClass().getEnchantmentColor(*weapon) : osg::Vec4f();
|
= isEnchanted ? weapon->getClass().getEnchantmentColor(*weapon) : osg::Vec4f();
|
||||||
mScabbard = attachMesh(mesh, boneName, isEnchanted ? &glowColor : nullptr);
|
mScabbard = attachMesh(mesh, boneName, isEnchanted ? &glowColor : nullptr);
|
||||||
if (mScabbard)
|
if (mScabbard && weaponClass == ESM::WeaponType::Ranged)
|
||||||
resetControllers(mScabbard->getNode());
|
resetControllers(mScabbard->getNode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -364,7 +365,7 @@ namespace MWRender
|
||||||
}
|
}
|
||||||
|
|
||||||
mScabbard = attachMesh(scabbardName, boneName);
|
mScabbard = attachMesh(scabbardName, boneName);
|
||||||
if (mScabbard)
|
if (mScabbard && weaponClass == ESM::WeaponType::Ranged)
|
||||||
resetControllers(mScabbard->getNode());
|
resetControllers(mScabbard->getNode());
|
||||||
|
|
||||||
osg::Group* weaponNode = getBoneByName("Bip01 Weapon");
|
osg::Group* weaponNode = getBoneByName("Bip01 Weapon");
|
||||||
|
@ -386,6 +387,8 @@ namespace MWRender
|
||||||
{
|
{
|
||||||
osg::ref_ptr<osg::Node> fallbackNode
|
osg::ref_ptr<osg::Node> fallbackNode
|
||||||
= mResourceSystem->getSceneManager()->getInstance(mesh, weaponNode);
|
= mResourceSystem->getSceneManager()->getInstance(mesh, weaponNode);
|
||||||
|
|
||||||
|
if (weaponClass == ESM::WeaponType::Ranged)
|
||||||
resetControllers(fallbackNode);
|
resetControllers(fallbackNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue