Fixes UB in caps.c (#5878)

This commit is contained in:
Alex 2024-12-25 22:42:14 +01:00 committed by GitHub
parent 878724c9ae
commit 816d3020fa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -54,7 +54,7 @@ u32 GetSoftLevelCapExpValue(u32 level, u32 expValue)
if (B_LEVEL_CAP_EXP_UP) if (B_LEVEL_CAP_EXP_UP)
{ {
levelDifference = currentLevelCap - level; levelDifference = currentLevelCap - level;
if (levelDifference > ARRAY_COUNT(sExpScalingUp)) if (levelDifference > ARRAY_COUNT(sExpScalingUp) - 1)
return expValue + (expValue / sExpScalingUp[ARRAY_COUNT(sExpScalingUp) - 1]); return expValue + (expValue / sExpScalingUp[ARRAY_COUNT(sExpScalingUp) - 1]);
else else
return expValue + (expValue / sExpScalingUp[levelDifference]); return expValue + (expValue / sExpScalingUp[levelDifference]);
@ -71,7 +71,7 @@ u32 GetSoftLevelCapExpValue(u32 level, u32 expValue)
else if (B_EXP_CAP_TYPE == EXP_CAP_SOFT) else if (B_EXP_CAP_TYPE == EXP_CAP_SOFT)
{ {
levelDifference = level - currentLevelCap; levelDifference = level - currentLevelCap;
if (levelDifference > ARRAY_COUNT(sExpScalingDown)) if (levelDifference > ARRAY_COUNT(sExpScalingDown) - 1)
return expValue / sExpScalingDown[ARRAY_COUNT(sExpScalingDown) - 1]; return expValue / sExpScalingDown[ARRAY_COUNT(sExpScalingDown) - 1];
else else
return expValue / sExpScalingDown[levelDifference]; return expValue / sExpScalingDown[levelDifference];