diff --git a/apps/openmw/mwgui/waitdialog.cpp b/apps/openmw/mwgui/waitdialog.cpp index 97c869b07..63419d4dd 100644 --- a/apps/openmw/mwgui/waitdialog.cpp +++ b/apps/openmw/mwgui/waitdialog.cpp @@ -216,7 +216,13 @@ namespace MWGui void WaitDialog::setCanRest (bool canRest) { - mUntilHealedButton->setVisible(canRest); + MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayer().getPlayer(); + MWMechanics::CreatureStats& stats = MWWorld::Class::get(player).getCreatureStats(player); + bool full = (stats.getFatigue().getCurrent() >= stats.getFatigue().getModified()) + && (stats.getHealth().getCurrent() >= stats.getHealth().getModified()) + && (stats.getMagicka().getCurrent() >= stats.getMagicka().getModified()); + + mUntilHealedButton->setVisible(canRest && !full); mWaitButton->setCaptionWithReplacing (canRest ? "#{sRest}" : "#{sWait}"); mRestText->setCaptionWithReplacing (canRest ? "#{sRestMenu3}" : "#{sRestIllegal}");