Fix credits gamestate in dedicated mode, by properly separating the timer variable code from the drawing code in a semi-hacky way

This commit is contained in:
Monster Iestyn 2019-03-25 21:35:04 +00:00
parent b5a1030722
commit 8c1c0875a2
1 changed files with 21 additions and 3 deletions

View File

@ -1192,16 +1192,34 @@ void F_CreditDrawer(void)
if (FixedMul(y,vid.dupy) > vid.height)
break;
}
}
void F_CreditTicker(void)
{
// "Simulate" the drawing of the credits so that dedicated mode doesn't get stuck
UINT16 i;
fixed_t y = (80<<FRACBITS) - 5*(animtimer<<FRACBITS)/8;
// Draw credits text on top
for (i = 0; credits[i]; i++)
{
switch(credits[i][0])
{
case 0: y += 80<<FRACBITS; break;
case 1: y += 30<<FRACBITS; break;
default: y += 12<<FRACBITS; break;
}
if (FixedMul(y,vid.dupy) > vid.height)
break;
}
// Do this here rather than in the drawer you doofus! (this is why dedicated mode broke at credits)
if (!credits[i] && y <= 120<<FRACBITS && !finalecount)
{
timetonext = 5*TICRATE+1;
finalecount = 5*TICRATE;
}
}
void F_CreditTicker(void)
{
if (timetonext)
timetonext--;
else