From 66edae9b932988fbe0fff29260c3d5bf82d88bc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Kune=C5=A1?= Date: Fri, 17 Jul 2015 17:29:00 +0200 Subject: [PATCH] change collor of crosshair --- apps/openmw/mwbase/windowmanager.hpp | 1 + apps/openmw/mwgui/hud.cpp | 16 +++++++++++- apps/openmw/mwgui/hud.hpp | 1 + apps/openmw/mwgui/tooltips.cpp | 36 ++++++++++++++------------ apps/openmw/mwgui/tooltips.hpp | 3 +++ apps/openmw/mwgui/windowmanagerimp.cpp | 6 +++++ apps/openmw/mwgui/windowmanagerimp.hpp | 1 + 7 files changed, 47 insertions(+), 17 deletions(-) diff --git a/apps/openmw/mwbase/windowmanager.hpp b/apps/openmw/mwbase/windowmanager.hpp index f8bf157c2d..86b42c9f97 100644 --- a/apps/openmw/mwbase/windowmanager.hpp +++ b/apps/openmw/mwbase/windowmanager.hpp @@ -219,6 +219,7 @@ namespace MWBase virtual void unsetSelectedWeapon() = 0; virtual void showCrosshair(bool show) = 0; + virtual void setCrosshairOwned(bool owned) = 0; virtual bool getSubtitlesEnabled() = 0; virtual bool toggleGui() = 0; diff --git a/apps/openmw/mwgui/hud.cpp b/apps/openmw/mwgui/hud.cpp index 76a7248ee4..0f107f4e39 100644 --- a/apps/openmw/mwgui/hud.cpp +++ b/apps/openmw/mwgui/hud.cpp @@ -518,7 +518,21 @@ namespace MWGui { mCrosshair->setVisible (visible); } - + + void HUD::setCrosshairOwned(bool owned) + { + MyGUI::Colour red = MyGUI::Colour(1.0, 0, 0); + MyGUI::Colour white = MyGUI::Colour(1.0, 1.0, 1.0); + if(owned) + { + mCrosshair->setColour(red); + } + else + { + mCrosshair->setColour(white); + } + } + void HUD::setHmsVisible(bool visible) { mHealth->setVisible(visible); diff --git a/apps/openmw/mwgui/hud.hpp b/apps/openmw/mwgui/hud.hpp index 72fc06f6a5..629613c982 100644 --- a/apps/openmw/mwgui/hud.hpp +++ b/apps/openmw/mwgui/hud.hpp @@ -47,6 +47,7 @@ namespace MWGui void unsetSelectedWeapon(); void setCrosshairVisible(bool visible); + void setCrosshairOwned(bool owned); void onFrame(float dt); diff --git a/apps/openmw/mwgui/tooltips.cpp b/apps/openmw/mwgui/tooltips.cpp index 18f65e3ba1..34762de5a7 100644 --- a/apps/openmw/mwgui/tooltips.cpp +++ b/apps/openmw/mwgui/tooltips.cpp @@ -299,7 +299,10 @@ namespace MWGui tooltipSize.height); mDynamicToolTipBox->setVisible(true); + } + + checkOwned(); } } @@ -344,29 +347,30 @@ namespace MWGui info.icon = ""; tooltipSize = createToolTip(info); - // start owned check + } + + return tooltipSize; + } + + void ToolTips::checkOwned() + { + MWBase::WindowManager *wm = MWBase::Environment::get().getWindowManager(); + + if(!mFocusObject.isEmpty()) + { MWWorld::CellRef& cellref = mFocusObject.getCellRef(); MWWorld::Ptr ptr = MWBase::Environment::get().getWorld()->getPlayerPtr(); MWWorld::Ptr victim; MWMechanics::MechanicsManager* mm = new MWMechanics::MechanicsManager; bool allowed = mm->isAllowedToUse(ptr, cellref, victim); // 0 - owned, 1 - not owned - - MWBase::WindowManager *wm = MWBase::Environment::get().getWindowManager(); - if(allowed) - { - // if 'item' is not owned - wm->showCrosshair(true); - } - else - { - // if 'item' is owned - wm->showCrosshair(false); - } - - } - return tooltipSize; + wm->setCrosshairOwned(!allowed); + } + else + { + wm->setCrosshairOwned(false); + } } MyGUI::IntSize ToolTips::createToolTip(const MWGui::ToolTipInfo& info) diff --git a/apps/openmw/mwgui/tooltips.hpp b/apps/openmw/mwgui/tooltips.hpp index d14993639a..a54888780d 100644 --- a/apps/openmw/mwgui/tooltips.hpp +++ b/apps/openmw/mwgui/tooltips.hpp @@ -95,6 +95,9 @@ namespace MWGui MyGUI::IntSize getToolTipViaPtr (bool image=true); ///< @return requested tooltip size + + void checkOwned(); + /// Checks if object is owned and sets correct crosshair mode MyGUI::IntSize createToolTip(const ToolTipInfo& info); ///< @return requested tooltip size diff --git a/apps/openmw/mwgui/windowmanagerimp.cpp b/apps/openmw/mwgui/windowmanagerimp.cpp index a2a8261617..2588f2d86b 100644 --- a/apps/openmw/mwgui/windowmanagerimp.cpp +++ b/apps/openmw/mwgui/windowmanagerimp.cpp @@ -1423,6 +1423,12 @@ namespace MWGui if (mHud) mHud->setCrosshairVisible (show && mCrosshairEnabled); } + + void WindowManager::setCrosshairOwned (bool owned) + { + if (mHud) + mHud->setCrosshairOwned (owned); + } void WindowManager::activateQuickKey (int index) { diff --git a/apps/openmw/mwgui/windowmanagerimp.hpp b/apps/openmw/mwgui/windowmanagerimp.hpp index e6c8d0a817..94538840bf 100644 --- a/apps/openmw/mwgui/windowmanagerimp.hpp +++ b/apps/openmw/mwgui/windowmanagerimp.hpp @@ -233,6 +233,7 @@ namespace MWGui virtual void unsetSelectedWeapon(); virtual void showCrosshair(bool show); + virtual void setCrosshairOwned(bool owned); virtual bool getSubtitlesEnabled(); /// Turn visibility of *all* GUI elements on or off (HUD and all windows, except the console)