From 606b9f09a066231ad2283151c6b03df7338b0101 Mon Sep 17 00:00:00 2001 From: pionere Date: Wed, 23 Sep 2020 10:37:40 +0200 Subject: [PATCH] prevent mana gain from books when nomana flag is set --- Source/items.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Source/items.cpp b/Source/items.cpp index 4e220cd8c..de3344a48 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -4431,12 +4431,14 @@ void UseItem(int p, int Mid, int spl) plr[p]._pMemSpells |= SPELLBIT(spl); if (plr[p]._pSplLvl[spl] < MAX_SPELL_LEVEL) plr[p]._pSplLvl[spl]++; - plr[p]._pMana += spelldata[spl].sManaCost << 6; - if (plr[p]._pMana > plr[p]._pMaxMana) - plr[p]._pMana = plr[p]._pMaxMana; - plr[p]._pManaBase += spelldata[spl].sManaCost << 6; - if (plr[p]._pManaBase > plr[p]._pMaxManaBase) - plr[p]._pManaBase = plr[p]._pMaxManaBase; + if (!(plr[p]._pIFlags & ISPL_NOMANA)) { + plr[p]._pMana += spelldata[spl].sManaCost << 6; + if (plr[p]._pMana > plr[p]._pMaxMana) + plr[p]._pMana = plr[p]._pMaxMana; + plr[p]._pManaBase += spelldata[spl].sManaCost << 6; + if (plr[p]._pManaBase > plr[p]._pMaxManaBase) + plr[p]._pManaBase = plr[p]._pMaxManaBase; + } if (p == myplr) CalcPlrBookVals(p); drawmanaflag = TRUE;