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

2
Source/missiles.cpp

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

2
Source/monster.cpp

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

2
Source/objects.cpp

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

2
Source/panels/charpanel.cpp

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

5
Source/player.h

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

Loading…
Cancel
Save