M_GetNextAchievedUnlock: Correctly handle reaching the Chao Key limit

This commit is contained in:
toaster 2023-06-09 17:27:31 +01:00
parent 7c91f768d8
commit 7d4efd6629

View file

@ -1806,11 +1806,21 @@ UINT16 M_GetNextAchievedUnlock(boolean canskipchaokeys)
if (canskipchaokeys == true) if (canskipchaokeys == true)
{ {
// Okay, we're skipping chao keys - let's just insta-digest them. // Okay, we're skipping chao keys - let's just insta-digest them.
if (gamedata->chaokeys + gamedata->keyspending < GDMAX_CHAOKEYS)
{
gamedata->chaokeys += gamedata->keyspending; gamedata->chaokeys += gamedata->keyspending;
gamedata->pendingkeyroundoffset = gamedata->pendingkeyroundoffset =
(gamedata->pendingkeyroundoffset + gamedata->pendingkeyrounds) (gamedata->pendingkeyroundoffset + gamedata->pendingkeyrounds)
% GDCONVERT_ROUNDSTOKEY; % GDCONVERT_ROUNDSTOKEY;
}
else
{
gamedata->chaokeys = GDMAX_CHAOKEYS;
gamedata->pendingkeyroundoffset = 0;
}
gamedata->keyspending = 0; gamedata->keyspending = 0;
gamedata->pendingkeyrounds = 0; gamedata->pendingkeyrounds = 0;
} }