Use macro for spell pw cost per spell level

This commit is contained in:
Pasi Kallinen
2022-02-28 22:21:37 +02:00
parent 3cf1b87914
commit b172957831
3 changed files with 7 additions and 4 deletions

View File

@@ -25,4 +25,7 @@ struct spell {
#define spellid(spell) g.spl_book[spell].sp_id
#define spellknow(spell) g.spl_book[spell].sp_know
/* how much Pw a spell of level lvl costs to cast? */
#define SPELL_LEV_PW(lvl) ((lvl) * 5)
#endif /* SPELL_H */

View File

@@ -924,7 +924,7 @@ spelleffects(int spell_otyp, boolean atme)
* Note: dotele() also calculates energy use and checks nutrition
* and strength requirements; if any of these change, update it too.
*/
energy = (spellev(spell) * 5); /* 5 <= energy <= 35 */
energy = SPELL_LEV_PW(spellev(spell)); /* 5 <= energy <= 35 */
/*
* Spell casting no longer affects knowledge of the spell. A

View File

@@ -932,10 +932,10 @@ u_init(void)
break;
}
/* If we have at least one spell, force starting Pw to be 5,
/* If we have at least one spell, force starting Pw to be enough,
so hero can cast the level 1 spell they should have */
if (num_spells() && (u.uenmax < 5))
u.uen = u.uenmax = u.uenpeak = u.ueninc[u.ulevel] = 5;
if (num_spells() && (u.uenmax < SPELL_LEV_PW(1)))
u.uen = u.uenmax = u.uenpeak = u.ueninc[u.ulevel] = SPELL_LEV_PW(1);
return;
}