diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index 9e58d6ac7..0e9617183 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -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 levels and restored those all the way to level 30; introducing an 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 diff --git a/src/attrib.c b/src/attrib.c index f4343a7fd..2644f402a 100644 --- a/src/attrib.c +++ b/src/attrib.c @@ -1167,6 +1167,11 @@ acurr(int chridx) STR19(y) yields 100 + y (intended for 19 <= y <= 25) */ if (tmp >= STR19(25) || (uarmg && uarmg->otyp == GAUNTLETS_OF_POWER)) 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) { if (tmp < 18 && (gy.youmonst.data->mlet == S_NYMPH || u.umonnum == PM_AMOROUS_DEMON))