Megamix Disclaimer before the game has truly started

Exactly the same unskippable duration, but much more text.
This commit is contained in:
toaster 2024-03-22 15:31:01 +00:00
parent 382110362a
commit c317562bd5

View file

@ -490,7 +490,7 @@ typedef enum
} disclaimerstate;
static disclaimerstate dc_state = 0;
static UINT8 dc_tics = 0;
static UINT16 dc_tics = 0;
static UINT8 dc_segaframe = 1;
static UINT8 dc_bgcol = 0;
static INT32 dc_lasttime = 0;
@ -508,14 +508,26 @@ static void F_DisclaimerAdvanceState(void)
static void F_DisclaimerDrawScene(void)
{
boolean heretrulystarted = M_GameTrulyStarted();
// ================================= SETUP
if (intro_curtime == 0)
{
dc_state = 0;
if (!heretrulystarted)
{
dc_state = DISCLAIMER_FINAL;
dc_bgcol = 31;
dc_bluesegafade = 10;
}
else
{
dc_state = 0;
dc_bgcol = 0;
dc_bluesegafade = 0;
}
dc_segaframe = 1;
dc_bgcol = 0;
dc_bluesegafade = 0;
dc_textfade = 9;
dc_subtextfade = 9;
dc_screenfade = 9;
@ -545,7 +557,7 @@ static void F_DisclaimerDrawScene(void)
return;
// Anaglyph SEGA
if (dc_state >= DISCLAIMER_SLIDE)
if (heretrulystarted && dc_state >= DISCLAIMER_SLIDE)
V_DrawFixedPatch(0, 0, FRACUNIT, 0, W_CachePatchName(va("SEGA_B%02d", dc_segaframe), PU_CACHE), 0);
// Blue SEGA
@ -570,16 +582,67 @@ static void F_DisclaimerDrawScene(void)
if (dc_subtextfade > 0)
subtextalpha = dc_subtextfade << V_ALPHASHIFT;
V_DrawCenteredMenuString(160, 25, textalpha, "Original games and designs by");
char* newText;
char* newText = V_ScaledWordWrap(
290 << FRACBITS,
FRACUNIT, FRACUNIT, FRACUNIT,
0, MENU_FONT,
"\"Dr. Robotnik's Ring Racers\" is a not-for-profit fangame. All registered trademarks belong to their respective owners.\nThis game contains flashing lights and high-contrast patterns. Photosensitive? Use caution and the Profiles>Accessibility menu."
);
if (!heretrulystarted)
{
// Megamix disclaimer. ~toast 220324
V_DrawCenteredMenuString(160, 125, subtextalpha, newText);
const char *sillystring = "Dr. Robotnik's Ring Racers";
const INT32 sillywidth = V_MenuStringWidth(sillystring, 0) + 12;
INT32 sillyx = -((INT32)timetonext % sillywidth);
V_SetClipRect(
1,
1,
(BASEVIDWIDTH * FRACUNIT) - 1,
(BASEVIDHEIGHT * FRACUNIT) - 1,
0
);
while (sillyx < BASEVIDWIDTH)
{
V_DrawMenuString(
sillyx,
8 + 1,
subtextalpha,
sillystring
);
sillyx += sillywidth;
V_DrawMenuString(
BASEVIDWIDTH - sillyx,
BASEVIDHEIGHT - (8 + 8),
subtextalpha,
sillystring
);
}
V_ClearClipRect();
newText = V_ScaledWordWrap(
290 << FRACBITS,
FRACUNIT, FRACUNIT, FRACUNIT,
0, HU_FONT,
"\"Dr. Robotnik's Ring Racers\" is a free fangame & was not produced by or under license from any portion of ""\x88""SEGA Enterprises""\x80"". All registered trademarks belong to their respective owners & were used without intent to harm or profit.\n\nThis software is based on heavily modified code originally created by id Software & is used under the terms of the GNU Public License.\n\n""\x88""SEGA""\x80"" retains rights to the original characters and environments, while all new assets remain property of Kart Krew Dev."
);
V_DrawCenteredString(160, 24, textalpha, newText);
}
else
{
V_DrawCenteredMenuString(160, 25, textalpha, "Original games and designs by");
newText = V_ScaledWordWrap(
290 << FRACBITS,
FRACUNIT, FRACUNIT, FRACUNIT,
0, MENU_FONT,
"\"Dr. Robotnik's Ring Racers\" is a not-for-profit fangame. All registered trademarks belong to their respective owners.\nThis game contains flashing lights and high-contrast patterns. Photosensitive? Use caution and the Profiles>Accessibility menu."
);
V_DrawCenteredMenuString(160, 125, subtextalpha, newText);
}
Z_Free(newText);
}
@ -661,7 +724,7 @@ static void F_DisclaimerDrawScene(void)
if (dc_state == DISCLAIMER_SLIDE && dc_segaframe == 37) // End of animation
F_DisclaimerAdvanceState();
if (dc_state == DISCLAIMER_FINAL && dc_tics == TICRATE*5)
if (dc_state == DISCLAIMER_FINAL && timetonext < TICRATE/2)
F_DisclaimerAdvanceState();
}