diff --git a/apps/openmw/mwgui/alchemywindow.cpp b/apps/openmw/mwgui/alchemywindow.cpp index 6f13151c6a..2ac9c281b6 100644 --- a/apps/openmw/mwgui/alchemywindow.cpp +++ b/apps/openmw/mwgui/alchemywindow.cpp @@ -333,14 +333,7 @@ namespace MWGui if (_sender->getUserData()->isEmpty()) // if this apparatus slot is empty { std::string title; - - size_t i = 0; - for (; i < mApparatus.size(); ++i) - { - if (mApparatus[i] == _sender) - break; - } - + size_t i = std::distance(mApparatus.begin(), std::find(mApparatus.begin(), mApparatus.end(), _sender)); switch (i) { case ESM::Apparatus::AppaType::MortarPestle: @@ -468,7 +461,7 @@ namespace MWGui void AlchemyWindow::removeIngredient(MyGUI::Widget* ingredient) { - for (int i = 0; i < 4; ++i) + for (int i = 0; i < mIngredients.size(); ++i) if (mIngredients[i] == ingredient) mAlchemy->removeIngredient(i); @@ -479,19 +472,18 @@ namespace MWGui { for (size_t i = 0; i < mApparatus.size(); ++i) { - const auto& widget = mApparatus[i]; - if (widget == apparatus) + if (mApparatus[i] == apparatus) { + const auto& widget = mApparatus[i]; mAlchemy->removeApparatus(i); if (widget->getChildCount()) MyGUI::Gui::getInstance().destroyWidget(widget->getChildAt(0)); widget->clearUserStrings(); - widget->setItem(MWWorld::Ptr()); - widget->setUserData(MWWorld::Ptr()); + break; } } }