Browse Source

Add Player hasNoMana helper

pull/8309/head
Eric Robinson 3 months ago committed by Stephen C. Wills
parent
commit
bc0d60bff7
  1. 2
      Source/engine/render/scrollrt.cpp
  2. 2
      Source/missiles.cpp
  3. 2
      Source/monster.cpp
  4. 2
      Source/objects.cpp
  5. 2
      Source/panels/charpanel.cpp
  6. 5
      Source/player.h

2
Source/engine/render/scrollrt.cpp

@ -1791,7 +1791,7 @@ void DrawAndBlit()
DrawFlaskValues(out, { mainPanel.position.x + 134, mainPanel.position.y + 28 }, MyPlayer->_pHitPoints >> 6, MyPlayer->_pMaxHP >> 6);
if (*GetOptions().Gameplay.showManaValues)
DrawFlaskValues(out, { mainPanel.position.x + mainPanel.size.width - 138, mainPanel.position.y + 28 },
(HasAnyOf(InspectPlayer->_pIFlags, ItemSpecialEffect::NoMana) || (MyPlayer->_pMana >> 6) <= 0) ? 0 : MyPlayer->_pMana >> 6,
(HasAnyOf(InspectPlayer->_pIFlags, ItemSpecialEffect::NoMana) || MyPlayer->hasNoMana()) ? 0 : MyPlayer->_pMana >> 6,
HasAnyOf(InspectPlayer->_pIFlags, ItemSpecialEffect::NoMana) ? 0 : MyPlayer->_pMaxMana >> 6);
if (*GetOptions().Gameplay.floatingInfoBox)
DrawFloatingInfoBox(out);

2
Source/missiles.cpp

@ -4207,7 +4207,7 @@ static void DeleteMissiles()
void ProcessManaShield()
{
Player &myPlayer = *MyPlayer;
if (myPlayer.pManaShield && myPlayer._pMana <= 0) {
if (myPlayer.pManaShield && myPlayer.hasNoMana()) {
myPlayer.pManaShield = false;
NetSendCmd(true, CMD_REMSHIELD);
}

2
Source/monster.cpp

@ -4008,7 +4008,7 @@ void PrepDoEnding()
if (gbIsMultiplayer) {
if (player.hasNoLife())
player._pHitPoints = 64;
if (player._pMana >> 6 == 0)
if (player.hasNoMana())
player._pMana = 64;
}
}

2
Source/objects.cpp

@ -2533,7 +2533,7 @@ void OperateShrineCostOfWisdom(Player &player, SpellID spellId, diablo_message m
player._pMana -= t;
player._pMaxMana -= t;
player._pMaxManaBase -= t;
if (player._pMana >> 6 <= 0) {
if (player.hasNoMana()) {
player._pMana = v1;
player._pManaBase = 0;
}

2
Source/panels/charpanel.cpp

@ -188,7 +188,7 @@ PanelEntry panelEntries[] = {
{ N_("Mana"), { LeftColumnLabelX, 312 }, 45, LeftColumnLabelWidth,
[]() { return StyledText { GetMaxManaColor(), StrCat(HasAnyOf(InspectPlayer->_pIFlags, ItemSpecialEffect::NoMana) ? 0 : InspectPlayer->_pMaxMana >> 6) }; } },
{ "", { 135, 312 }, 45, 0,
[]() { return StyledText { (InspectPlayer->_pMana != InspectPlayer->_pMaxMana ? UiFlags::ColorRed : GetMaxManaColor()), StrCat((HasAnyOf(InspectPlayer->_pIFlags, ItemSpecialEffect::NoMana) || (InspectPlayer->_pMana >> 6) <= 0) ? 0 : InspectPlayer->_pMana >> 6) }; } },
[]() { return StyledText { (InspectPlayer->_pMana != InspectPlayer->_pMaxMana ? UiFlags::ColorRed : GetMaxManaColor()), StrCat((HasAnyOf(InspectPlayer->_pIFlags, ItemSpecialEffect::NoMana) || InspectPlayer->hasNoMana()) ? 0 : InspectPlayer->_pMana >> 6) }; } },
{ N_("Resist magic"), { RightColumnLabelX, 256 }, 57, RightColumnLabelWidth,
[]() { return GetResistInfo(InspectPlayer->_pMagResist); } },

5
Source/player.h

@ -905,6 +905,11 @@ public:
{
return leveltype == DTYPE_TOWN ? false : _pHitPoints >> 6 <= 0;
}
bool hasNoMana() const
{
return _pMana >> 6 <= 0;
}
};
extern DVL_API_FOR_TEST uint8_t MyPlayerId;

Loading…
Cancel
Save