fix hero Strength
The recent acurr() changes introduced a bug that caused Str less than 25 to be limited to 18/07. 25 was treated correctly as a special case but 18/01 through 18/100 and 19 through 24 were not. The cap of 25 imposed on the other characteristics is the same as encoded Str 18/07.
This commit is contained in:
@@ -1851,6 +1851,7 @@ debug fuzzer was triggering out of bounds array access in loseexp() if
|
|||||||
life-saving at level 1 used blessed restore ability to regain lost
|
life-saving at level 1 used blessed restore ability to regain lost
|
||||||
levels and restored those all the way to level 30; introducing an
|
levels and restored those all the way to level 30; introducing an
|
||||||
assert(u.ulevel < MAXULEV) changed bounds issue to assertion failure
|
assert(u.ulevel < MAXULEV) changed bounds issue to assertion failure
|
||||||
|
strength less than 25 was unintentionally being capped at 18/07
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x Platform and/or Interface Problems Exposed Via git Repository
|
Fixes to 3.7.0-x Platform and/or Interface Problems Exposed Via git Repository
|
||||||
|
|||||||
@@ -1167,6 +1167,11 @@ acurr(int chridx)
|
|||||||
STR19(y) yields 100 + y (intended for 19 <= y <= 25) */
|
STR19(y) yields 100 + y (intended for 19 <= y <= 25) */
|
||||||
if (tmp >= STR19(25) || (uarmg && uarmg->otyp == GAUNTLETS_OF_POWER))
|
if (tmp >= STR19(25) || (uarmg && uarmg->otyp == GAUNTLETS_OF_POWER))
|
||||||
result = STR19(25); /* 125 */
|
result = STR19(25); /* 125 */
|
||||||
|
else
|
||||||
|
/* need non-zero here to avoid 'if(result==0)' below because
|
||||||
|
that doesn't deal with Str encoding; the cap of 25 applied
|
||||||
|
there would limit Str to 18/07 [18 + 7] */
|
||||||
|
result = max(tmp, 3);
|
||||||
} else if (chridx == A_CHA) {
|
} else if (chridx == A_CHA) {
|
||||||
if (tmp < 18 && (gy.youmonst.data->mlet == S_NYMPH
|
if (tmp < 18 && (gy.youmonst.data->mlet == S_NYMPH
|
||||||
|| u.umonnum == PM_AMOROUS_DEMON))
|
|| u.umonnum == PM_AMOROUS_DEMON))
|
||||||
|
|||||||
Reference in New Issue
Block a user