diff --git a/apps/openmw/mwgui/tooltips.cpp b/apps/openmw/mwgui/tooltips.cpp index 6a2550e4f..1455be8b0 100644 --- a/apps/openmw/mwgui/tooltips.cpp +++ b/apps/openmw/mwgui/tooltips.cpp @@ -83,15 +83,22 @@ void ToolTips::onFrame(float frameDuration) if (mWindowManager->getWorldMouseOver() && (mWindowManager->getMode() == GM_Console)) { - MWWorld::Ptr object = MWBase::Environment::get().getWorld()->getFacedObject(); - if (!object.isEmpty()) + MWWorld::Ptr objectptr = MWBase::Environment::get().getWorld()->getFacedObject(); + if (!objectptr.isEmpty()) { - setCoord(0, 0, 300, 300); - mDynamicToolTipBox->setVisible(true); - ToolTipInfo info; - info.caption=object.getCellRef().mRefID; - info.icon=""; - IntSize tooltipSize = createToolTip(info); + const MWWorld::Class& objectclass = MWWorld::Class::get (mFocusObject); + IntSize tooltipSize; + if (!objectclass.hasToolTip(mFocusObject)) + { + setCoord(0, 0, 300, 300); + mDynamicToolTipBox->setVisible(true); + ToolTipInfo info; + info.caption=objectptr.getCellRef().mRefID; + info.icon=""; + tooltipSize = createToolTip(info); + } + else + tooltipSize = getToolTipViaPtr(true); IntPoint tooltipPosition = InputManager::getInstance().getMousePosition() + IntPoint(0, 24); if ((tooltipPosition.left + tooltipSize.width) > viewSize.width) diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 73bb10a48..1b5dc3bd3 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -673,10 +673,10 @@ namespace MWWorld MWWorld::Ptr object = searchPtrViaHandle (result.second); float ActivationDistance; - if (object.getTypeName ().find("NPC") != std::string::npos) - ActivationDistance = getNpcActivationDistance (); - else if (MWBase::Environment::get().getWindowManager()->isConsoleMode()) + if (MWBase::Environment::get().getWindowManager()->isConsoleMode()) ActivationDistance = getObjectActivationDistance ()*50; + else if (object.getTypeName ().find("NPC") != std::string::npos) + ActivationDistance = getNpcActivationDistance (); else ActivationDistance = getObjectActivationDistance ();