diff --git a/src/f_finale.c b/src/f_finale.c index cb64618535659f329bb357f65c2cec0bbe006b2d..9741962289d3891273d5a49567971de6e57c3032 100644 --- a/src/f_finale.c +++ b/src/f_finale.c @@ -1303,6 +1303,9 @@ void F_CreditDrawer(void) // Dim the background V_DrawFadeScreen(0xFF00, 16); + // compensation for y on non-green resolutions, used to prevent text from disappearing before reaching the top + int compy = vid.height - BASEVIDHEIGHT; + // Draw credits text on top for (i = 0; credits[i]; i++) { @@ -1312,17 +1315,17 @@ void F_CreditDrawer(void) y += 80<<FRACBITS; break; case 1: - if (y>>FRACBITS > -20) + if (y>>FRACBITS > -20-compy) V_DrawCreditString((160 - (V_CreditStringWidth(&credits[i][1])>>1))<<FRACBITS, y, 0, &credits[i][1]); y += 30<<FRACBITS; break; case 2: - if (y>>FRACBITS > -10) + if (y>>FRACBITS > -10-compy) V_DrawStringAtFixed((BASEVIDWIDTH-V_StringWidth(&credits[i][1], V_ALLOWLOWERCASE|V_YELLOWMAP))<<FRACBITS>>1, y, V_ALLOWLOWERCASE|V_YELLOWMAP, &credits[i][1]); y += 12<<FRACBITS; break; default: - if (y>>FRACBITS > -10) + if (y>>FRACBITS > -10-compy) V_DrawStringAtFixed(32<<FRACBITS, y, V_ALLOWLOWERCASE, credits[i]); y += 12<<FRACBITS; break;