diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 4aa249a6d..abae3a3ae 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -1014,7 +1014,7 @@ namespace MWWorld if (MWBase::Environment::get().getWindowManager()->isGuiMode() && MWBase::Environment::get().getWindowManager()->isConsoleMode()) - facedObject = getFacedObject(getMaxActivationDistance() * 50, mDistanceToFacedObject, false); + facedObject = getFacedObject(getMaxActivationDistance() * 50, false); else { float telekinesisRangeBonus = @@ -1024,7 +1024,7 @@ namespace MWWorld float activationDistance = getMaxActivationDistance() + telekinesisRangeBonus; - facedObject = getFacedObject(activationDistance, mDistanceToFacedObject, true); + facedObject = getFacedObject(activationDistance, true); if (!facedObject.isEmpty() && !facedObject.getClass().allowTelekinesis(facedObject) && mDistanceToFacedObject > getMaxActivationDistance()) @@ -1717,7 +1717,7 @@ namespace MWWorld } } - MWWorld::Ptr World::getFacedObject(float maxDistance, float& distance, bool ignorePlayer) + MWWorld::Ptr World::getFacedObject(float maxDistance, bool ignorePlayer) { maxDistance += mRendering->getCameraDistance(); MWWorld::Ptr facedObject; @@ -1733,10 +1733,10 @@ namespace MWWorld rayToObject = mRendering->castCameraToViewportRay(0.5f, 0.5f, maxDistance, ignorePlayer); facedObject = rayToObject.mHitObject; - if (!facedObject.isEmpty()) - distance = rayToObject.mRatio * maxDistance; + if (rayToObject.mHit) + mDistanceToFacedObject = rayToObject.mRatio * maxDistance; else - distance = -1; + mDistanceToFacedObject = -1; return facedObject; } diff --git a/apps/openmw/mwworld/worldimp.hpp b/apps/openmw/mwworld/worldimp.hpp index 411dbc103..aa67c9ea8 100644 --- a/apps/openmw/mwworld/worldimp.hpp +++ b/apps/openmw/mwworld/worldimp.hpp @@ -128,7 +128,7 @@ namespace MWWorld void updateWindowManager (); void updatePlayer(bool paused); - MWWorld::Ptr getFacedObject(float maxDistance, float& distanceToObject, bool ignorePlayer=true); + MWWorld::Ptr getFacedObject(float maxDistance, bool ignorePlayer=true); public: // FIXME void removeContainerScripts(const Ptr& reference);