mirror of
https://github.com/OpenMW/openmw.git
synced 2025-11-01 09:26:38 +00:00
Force a scale update when changing view modes
This commit is contained in:
parent
8a0fb4d633
commit
f9da792386
4 changed files with 6 additions and 6 deletions
|
|
@ -293,7 +293,7 @@ namespace MWBase
|
||||||
virtual MWWorld::Ptr moveObjectBy(const MWWorld::Ptr &ptr, const osg::Vec3f& vec) = 0;
|
virtual MWWorld::Ptr moveObjectBy(const MWWorld::Ptr &ptr, const osg::Vec3f& vec) = 0;
|
||||||
///< @return an updated Ptr
|
///< @return an updated Ptr
|
||||||
|
|
||||||
virtual void scaleObject (const MWWorld::Ptr& ptr, float scale) = 0;
|
virtual void scaleObject (const MWWorld::Ptr& ptr, float scale, bool force = false) = 0;
|
||||||
|
|
||||||
virtual void rotateObject(const MWWorld::Ptr& ptr, const osg::Vec3f& rot, RotationFlags flags = RotationFlag_inverseOrder) = 0;
|
virtual void rotateObject(const MWWorld::Ptr& ptr, const osg::Vec3f& rot, RotationFlags flags = RotationFlag_inverseOrder) = 0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -296,7 +296,7 @@ void NpcAnimation::setViewMode(NpcAnimation::ViewMode viewMode)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mViewMode = viewMode;
|
mViewMode = viewMode;
|
||||||
MWBase::Environment::get().getWorld()->scaleObject(mPtr, mPtr.getCellRef().getScale()); // apply race height after view change
|
MWBase::Environment::get().getWorld()->scaleObject(mPtr, mPtr.getCellRef().getScale(), true); // apply race height after view change
|
||||||
|
|
||||||
mAmmunition.reset();
|
mAmmunition.reset();
|
||||||
rebuild();
|
rebuild();
|
||||||
|
|
|
||||||
|
|
@ -1281,9 +1281,9 @@ namespace MWWorld
|
||||||
return moveObject(ptr, newpos);
|
return moveObject(ptr, newpos);
|
||||||
}
|
}
|
||||||
|
|
||||||
void World::scaleObject (const Ptr& ptr, float scale)
|
void World::scaleObject (const Ptr& ptr, float scale, bool force)
|
||||||
{
|
{
|
||||||
if (scale == ptr.getCellRef().getScale())
|
if (!force && scale == ptr.getCellRef().getScale())
|
||||||
return;
|
return;
|
||||||
if (mPhysics->getActor(ptr))
|
if (mPhysics->getActor(ptr))
|
||||||
mNavigator->removeAgent(getPathfindingHalfExtents(ptr));
|
mNavigator->removeAgent(getPathfindingHalfExtents(ptr));
|
||||||
|
|
@ -2482,7 +2482,7 @@ namespace MWWorld
|
||||||
player.getClass().getInventoryStore(player).setInvListener(anim, player);
|
player.getClass().getInventoryStore(player).setInvListener(anim, player);
|
||||||
player.getClass().getInventoryStore(player).setContListener(anim);
|
player.getClass().getInventoryStore(player).setContListener(anim);
|
||||||
|
|
||||||
scaleObject(player, player.getCellRef().getScale()); // apply race height
|
scaleObject(player, player.getCellRef().getScale(), true); // apply race height
|
||||||
rotateObject(player, osg::Vec3f(), MWBase::RotationFlag_inverseOrder | MWBase::RotationFlag_adjust);
|
rotateObject(player, osg::Vec3f(), MWBase::RotationFlag_inverseOrder | MWBase::RotationFlag_adjust);
|
||||||
|
|
||||||
MWBase::Environment::get().getMechanicsManager()->add(getPlayerPtr());
|
MWBase::Environment::get().getMechanicsManager()->add(getPlayerPtr());
|
||||||
|
|
|
||||||
|
|
@ -377,7 +377,7 @@ namespace MWWorld
|
||||||
MWWorld::Ptr moveObjectBy(const Ptr& ptr, const osg::Vec3f& vec) override;
|
MWWorld::Ptr moveObjectBy(const Ptr& ptr, const osg::Vec3f& vec) override;
|
||||||
///< @return an updated Ptr
|
///< @return an updated Ptr
|
||||||
|
|
||||||
void scaleObject (const Ptr& ptr, float scale) override;
|
void scaleObject (const Ptr& ptr, float scale, bool force = false) override;
|
||||||
|
|
||||||
/// World rotates object, uses radians
|
/// World rotates object, uses radians
|
||||||
/// @note Rotations via this method use a different rotation order than the initial rotations in the CS. This
|
/// @note Rotations via this method use a different rotation order than the initial rotations in the CS. This
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue