--- deliantra/server/server/spell_util.C 2007/02/13 21:28:11 1.37 +++ deliantra/server/server/spell_util.C 2007/02/23 21:52:21 1.38 @@ -190,7 +190,6 @@ * This is because the new code compares casting_level against * min_caster_level, so the difference is effectively 4 */ - int caster_level (object *caster, object *spell) { @@ -215,15 +214,13 @@ } /* Got valid caster level. Now adjust for attunement */ - level += ((caster->path_repelled & spell->path_attuned) ? -2 : 0) + ((caster->path_attuned & spell->path_attuned) ? 2 : 0); + level += caster->path_repelled & spell->path_attuned ? -2 : 0; + level += caster->path_attuned & spell->path_attuned ? +2 : 0; /* Always make this at least 1. If this is zero, we get divide by zero * errors in various places. */ - if (level < 1) - level = 1; - - return level; + return max (level, 1); } /* The following function scales the spellpoint cost of