diff --git a/Source/objects.cpp b/Source/objects.cpp index 471343ef3..b17260919 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -2524,10 +2524,12 @@ void OperateShrineCostOfWisdom(Player &player, SpellID spellId, diablo_message m } } - const int maxBase = std::max(0, player._pMaxManaBase); - const int penalty = maxBase / 10; // 10% of max base mana (>= 0) + if (player._pMaxManaBase < 0) + player._pMaxManaBase = 0; - ModifyPlrManaCapacity(player, -penalty); + const int penalty = player._pMaxManaBase / 10; + + ModifyPlrManaCapacity(player, -penalty, true); RedrawEverything(); InitDiabloMsg(message); } diff --git a/Source/player.cpp b/Source/player.cpp index 21a7e7dfb..e3c2cb110 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -3389,9 +3389,6 @@ void ModifyPlrManaCapacity(Player &player, int delta, bool shiftCurrent) player._pManaBase = std::min(player._pManaBase, player._pMaxManaBase); player._pMana = std::min(player._pMana, player._pMaxMana); } - - if (&player == MyPlayer) - RedrawComponent(PanelDrawComponent::Mana); } void SetPlayerHitPoints(Player &player, int val)