From 6619150b235958d999e6cfff6e40590d954f37c1 Mon Sep 17 00:00:00 2001 From: Frederic Chardon Date: Mon, 6 May 2019 23:48:13 +0000 Subject: [PATCH] Do not show magnitude for ingredients --- apps/openmw/mwclass/ingredient.cpp | 1 + apps/openmw/mwgui/alchemywindow.cpp | 1 + apps/openmw/mwgui/tooltips.cpp | 4 +++- apps/openmw/mwgui/tooltips.hpp | 2 ++ apps/openmw/mwgui/widgets.cpp | 4 +++- apps/openmw/mwgui/widgets.hpp | 6 +++++- 6 files changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/openmw/mwclass/ingredient.cpp b/apps/openmw/mwclass/ingredient.cpp index 84117f59d4..37b2d71965 100644 --- a/apps/openmw/mwclass/ingredient.cpp +++ b/apps/openmw/mwclass/ingredient.cpp @@ -156,6 +156,7 @@ namespace MWClass info.effects = list; info.text = text; + info.isIngredient = true; return info; } diff --git a/apps/openmw/mwgui/alchemywindow.cpp b/apps/openmw/mwgui/alchemywindow.cpp index 9db7a055be..0ef8bae499 100644 --- a/apps/openmw/mwgui/alchemywindow.cpp +++ b/apps/openmw/mwgui/alchemywindow.cpp @@ -249,6 +249,7 @@ namespace MWGui params.mAttribute = effectKey.mArg; params.mIsConstant = true; params.mNoTarget = true; + params.mNoMagnitude = true; params.mKnown = mAlchemy->knownEffect(effectIndex, MWBase::Environment::get().getWorld()->getPlayerPtr()); diff --git a/apps/openmw/mwgui/tooltips.cpp b/apps/openmw/mwgui/tooltips.cpp index f9775253ac..c5cce46320 100644 --- a/apps/openmw/mwgui/tooltips.cpp +++ b/apps/openmw/mwgui/tooltips.cpp @@ -486,7 +486,9 @@ namespace MWGui effectsWidget->setEffectList(info.effects); std::vector effectItems; - effectsWidget->createEffectWidgets(effectItems, effectArea, coord, true, info.isPotion ? Widgets::MWEffectList::EF_NoTarget : 0); + int flag = info.isPotion ? Widgets::MWEffectList::EF_NoTarget : 0; + flag |= info.isIngredient ? Widgets::MWEffectList::EF_NoMagnitude : 0; + effectsWidget->createEffectWidgets(effectItems, effectArea, coord, true, flag); totalSize.height += coord.top-6; totalSize.width = std::max(totalSize.width, coord.width); } diff --git a/apps/openmw/mwgui/tooltips.hpp b/apps/openmw/mwgui/tooltips.hpp index 3b8e8b2cca..43187dc5c8 100644 --- a/apps/openmw/mwgui/tooltips.hpp +++ b/apps/openmw/mwgui/tooltips.hpp @@ -22,6 +22,7 @@ namespace MWGui : imageSize(32) , remainingEnchantCharge(-1) , isPotion(false) + , isIngredient(false) , wordWrap(true) {} @@ -41,6 +42,7 @@ namespace MWGui std::vector notes; bool isPotion; // potions do not show target in the tooltip + bool isIngredient; // ingredients have no effect magnitude bool wordWrap; }; diff --git a/apps/openmw/mwgui/widgets.cpp b/apps/openmw/mwgui/widgets.cpp index 8c7f8fdc86..b9b6c18e43 100644 --- a/apps/openmw/mwgui/widgets.cpp +++ b/apps/openmw/mwgui/widgets.cpp @@ -235,6 +235,7 @@ namespace MWGui params.mRange = effectInfo.mRange; params.mIsConstant = (flags & MWEffectList::EF_Constant) != 0; params.mNoTarget = (flags & MWEffectList::EF_NoTarget); + params.mNoMagnitude = (flags & MWEffectList::EF_NoMagnitude); effect->setSpellEffect(params); effects.push_back(effect); coord.top += effect->getHeight(); @@ -293,6 +294,7 @@ namespace MWGui effect = creator->createWidget("MW_EffectImage", coord, MyGUI::Align::Default); effectInfo.mIsConstant = (flags & EF_Constant) || effectInfo.mIsConstant; effectInfo.mNoTarget = (flags & EF_NoTarget) || effectInfo.mNoTarget; + effectInfo.mNoMagnitude = (flags & EF_NoMagnitude) || effectInfo.mNoMagnitude; effect->setSpellEffect(effectInfo); effects.push_back(effect); if (effect->getRequestedWidth() > maxwidth) @@ -421,7 +423,7 @@ namespace MWGui spellLine += formatter.str(); } - else if ( displayType != ESM::MagicEffect::MDT_None ) { + else if ( displayType != ESM::MagicEffect::MDT_None && !mEffectParams.mNoMagnitude) { spellLine += " " + MyGUI::utility::toString(mEffectParams.mMagnMin); if (mEffectParams.mMagnMin != mEffectParams.mMagnMax) spellLine += to + MyGUI::utility::toString(mEffectParams.mMagnMax); diff --git a/apps/openmw/mwgui/widgets.hpp b/apps/openmw/mwgui/widgets.hpp index 6d9c0a580c..a39bfad3f2 100644 --- a/apps/openmw/mwgui/widgets.hpp +++ b/apps/openmw/mwgui/widgets.hpp @@ -38,6 +38,7 @@ namespace MWGui SpellEffectParams() : mNoTarget(false) , mIsConstant(false) + , mNoMagnitude(false) , mKnown(true) , mEffectID(-1) , mSkill(-1) @@ -52,6 +53,7 @@ namespace MWGui bool mNoTarget; // potion effects for example have no target (target is always the player) bool mIsConstant; // constant effect means that duration will not be displayed + bool mNoMagnitude; // effect magnitude will not be displayed (e.g ingredients) bool mKnown; // is this effect known to the player? (If not, will display as a question mark instead) @@ -218,7 +220,9 @@ namespace MWGui enum EffectFlags { EF_NoTarget = 0x01, // potions have no target (target is always the player) - EF_Constant = 0x02 // constant effect means that duration will not be displayed + EF_Constant = 0x02, // constant effect means that duration will not be displayed + EF_NoMagnitude = 0x04 // ingredients have no magnitude + }; void setEffectList(const SpellEffectList& list);