diff --git a/src/f_finale.c b/src/f_finale.c index 64e3712118d23264e3b277591b5ea38fdfb727df..bcdac295ae00f7be91d0dc5f8e68cfe776c867a9 100644 --- a/src/f_finale.c +++ b/src/f_finale.c @@ -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