mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 10:26:39 +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