|
|
|
@ -1757,19 +1757,26 @@ namespace MWWorld
|
|
|
|
|
|
|
|
|
|
void World::updateWindowManager ()
|
|
|
|
|
{
|
|
|
|
|
// inform the GUI about focused object
|
|
|
|
|
MWWorld::Ptr object = getFacedObject ();
|
|
|
|
|
|
|
|
|
|
// retrieve object dimensions so we know where to place the floating label
|
|
|
|
|
if (!object.isEmpty ())
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
osg::Vec4f screenBounds = mRendering->getScreenBounds(object);
|
|
|
|
|
// inform the GUI about focused object
|
|
|
|
|
MWWorld::Ptr object = getFacedObject ();
|
|
|
|
|
|
|
|
|
|
MWBase::Environment::get().getWindowManager()->setFocusObjectScreenCoords(
|
|
|
|
|
screenBounds.x(), screenBounds.y(), screenBounds.z(), screenBounds.w());
|
|
|
|
|
}
|
|
|
|
|
// retrieve object dimensions so we know where to place the floating label
|
|
|
|
|
if (!object.isEmpty ())
|
|
|
|
|
{
|
|
|
|
|
osg::Vec4f screenBounds = mRendering->getScreenBounds(object);
|
|
|
|
|
|
|
|
|
|
MWBase::Environment::get().getWindowManager()->setFocusObject(object);
|
|
|
|
|
MWBase::Environment::get().getWindowManager()->setFocusObjectScreenCoords(
|
|
|
|
|
screenBounds.x(), screenBounds.y(), screenBounds.z(), screenBounds.w());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MWBase::Environment::get().getWindowManager()->setFocusObject(object);
|
|
|
|
|
}
|
|
|
|
|
catch (std::exception& e)
|
|
|
|
|
{
|
|
|
|
|
std::cerr << "Error updating window manager: " << e.what() << std::endl;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MWWorld::Ptr World::getFacedObject(float maxDistance, bool ignorePlayer)
|
|
|
|
|