mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-21 20:11:12 +00:00
Fix #1258
This commit is contained in:
parent
8a6beee52a
commit
417bd0b000
3 changed files with 58 additions and 64 deletions
|
@ -1936,6 +1936,8 @@ void G_DoLoadLevel(boolean resetplayer)
|
||||||
//
|
//
|
||||||
void G_StartTitleCard(void)
|
void G_StartTitleCard(void)
|
||||||
{
|
{
|
||||||
|
ST_stopTitleCard();
|
||||||
|
|
||||||
// The title card has been disabled for this map.
|
// The title card has been disabled for this map.
|
||||||
// Oh well.
|
// Oh well.
|
||||||
if (!G_IsTitleCardAvailable())
|
if (!G_IsTitleCardAvailable())
|
||||||
|
|
118
src/st_stuff.c
118
src/st_stuff.c
|
@ -1258,6 +1258,8 @@ static void ST_drawInput(void)
|
||||||
V_DrawThinString(x, y, hudinfo[HUD_INPUT].f|((leveltime & 4) ? V_YELLOWMAP : V_REDMAP), "BAD DEMO!!");
|
V_DrawThinString(x, y, hudinfo[HUD_INPUT].f|((leveltime & 4) ? V_YELLOWMAP : V_REDMAP), "BAD DEMO!!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static boolean lt_active = false;
|
||||||
|
|
||||||
static patch_t *lt_patches[3];
|
static patch_t *lt_patches[3];
|
||||||
static INT32 lt_scroll = 0;
|
static INT32 lt_scroll = 0;
|
||||||
static INT32 lt_mom = 0;
|
static INT32 lt_mom = 0;
|
||||||
|
@ -1306,6 +1308,7 @@ void ST_startTitleCard(void)
|
||||||
ST_cacheLevelTitle();
|
ST_cacheLevelTitle();
|
||||||
|
|
||||||
// initialize HUD variables
|
// initialize HUD variables
|
||||||
|
lt_active = true;
|
||||||
lt_ticker = lt_exitticker = lt_lasttic = 0;
|
lt_ticker = lt_exitticker = lt_lasttic = 0;
|
||||||
lt_endtime = 2*TICRATE + (10*NEWTICRATERATIO);
|
lt_endtime = 2*TICRATE + (10*NEWTICRATERATIO);
|
||||||
lt_scroll = BASEVIDWIDTH * FRACUNIT;
|
lt_scroll = BASEVIDWIDTH * FRACUNIT;
|
||||||
|
@ -1314,21 +1317,11 @@ void ST_startTitleCard(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// What happens before drawing the title card.
|
// Stops the title card.
|
||||||
// Which is just setting the HUD translucency.
|
|
||||||
//
|
//
|
||||||
void ST_preDrawTitleCard(void)
|
void ST_stopTitleCard(void)
|
||||||
{
|
{
|
||||||
if (!G_IsTitleCardAvailable())
|
lt_active = false;
|
||||||
return;
|
|
||||||
|
|
||||||
if (lt_ticker >= (lt_endtime + TICRATE))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!lt_exitticker)
|
|
||||||
st_translucency = 0;
|
|
||||||
else
|
|
||||||
st_translucency = max(0, min((INT32)lt_exitticker-4, cv_translucenthud.value));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1337,47 +1330,43 @@ void ST_preDrawTitleCard(void)
|
||||||
//
|
//
|
||||||
void ST_runTitleCard(void)
|
void ST_runTitleCard(void)
|
||||||
{
|
{
|
||||||
boolean run = !(paused || P_AutoPause());
|
if (!lt_active || ((paused || P_AutoPause()) && lt_ticker >= PRELEVELTIME))
|
||||||
|
|
||||||
if (!G_IsTitleCardAvailable())
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (lt_ticker >= (lt_endtime + TICRATE))
|
if (!lt_exitticker)
|
||||||
return;
|
|
||||||
|
|
||||||
if (run || (lt_ticker < PRELEVELTIME))
|
|
||||||
{
|
{
|
||||||
// tick
|
if (abs(lt_scroll) > FRACUNIT)
|
||||||
lt_ticker++;
|
lt_scroll -= (lt_scroll>>2);
|
||||||
if (lt_ticker >= lt_endtime)
|
|
||||||
lt_exitticker++;
|
|
||||||
|
|
||||||
// scroll to screen (level title)
|
|
||||||
if (!lt_exitticker)
|
|
||||||
{
|
|
||||||
if (abs(lt_scroll) > FRACUNIT)
|
|
||||||
lt_scroll -= (lt_scroll>>2);
|
|
||||||
else
|
|
||||||
lt_scroll = 0;
|
|
||||||
}
|
|
||||||
// scroll away from screen (level title)
|
|
||||||
else
|
else
|
||||||
|
lt_scroll = 0;
|
||||||
|
|
||||||
|
if (abs(lt_zigzag) > FRACUNIT)
|
||||||
|
lt_zigzag -= (lt_zigzag>>2);
|
||||||
|
else
|
||||||
|
lt_zigzag = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lt_mom -= FRACUNIT*6;
|
||||||
|
|
||||||
|
if (lt_scroll > -BASEVIDWIDTH * FRACUNIT * 2)
|
||||||
{
|
{
|
||||||
lt_mom -= FRACUNIT*6;
|
|
||||||
lt_scroll += lt_mom;
|
lt_scroll += lt_mom;
|
||||||
}
|
}
|
||||||
|
|
||||||
// scroll to screen (zigzag)
|
if (lt_zigzag > -(lt_patches[1]->width)*FRACUNIT)
|
||||||
if (!lt_exitticker)
|
|
||||||
{
|
{
|
||||||
if (abs(lt_zigzag) > FRACUNIT)
|
|
||||||
lt_zigzag -= (lt_zigzag>>2);
|
|
||||||
else
|
|
||||||
lt_zigzag = 0;
|
|
||||||
}
|
|
||||||
// scroll away from screen (zigzag)
|
|
||||||
else
|
|
||||||
lt_zigzag += lt_mom;
|
lt_zigzag += lt_mom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lt_ticker++;
|
||||||
|
lt_exitticker = max((signed)lt_ticker - (signed)lt_endtime, 0);
|
||||||
|
|
||||||
|
if (lt_ticker >= (lt_endtime + TICRATE))
|
||||||
|
{
|
||||||
|
lt_active = false;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1404,9 +1393,6 @@ void ST_drawTitleCard(void)
|
||||||
|
|
||||||
colormap = R_GetTranslationColormap(TC_DEFAULT, colornum, GTC_CACHE);
|
colormap = R_GetTranslationColormap(TC_DEFAULT, colornum, GTC_CACHE);
|
||||||
|
|
||||||
if (!G_IsTitleCardAvailable())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!LUA_HudEnabled(hud_stagetitle))
|
if (!LUA_HudEnabled(hud_stagetitle))
|
||||||
goto luahook;
|
goto luahook;
|
||||||
|
|
||||||
|
@ -1487,13 +1473,14 @@ void ST_preLevelTitleCardDrawer(void)
|
||||||
//
|
//
|
||||||
void ST_drawWipeTitleCard(void)
|
void ST_drawWipeTitleCard(void)
|
||||||
{
|
{
|
||||||
|
if (!lt_active)
|
||||||
|
return;
|
||||||
|
|
||||||
stplyr = &players[consoleplayer];
|
stplyr = &players[consoleplayer];
|
||||||
ST_preDrawTitleCard();
|
|
||||||
ST_drawTitleCard();
|
ST_drawTitleCard();
|
||||||
if (splitscreen)
|
if (splitscreen)
|
||||||
{
|
{
|
||||||
stplyr = &players[secondarydisplayplayer];
|
stplyr = &players[secondarydisplayplayer];
|
||||||
ST_preDrawTitleCard();
|
|
||||||
ST_drawTitleCard();
|
ST_drawTitleCard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2704,24 +2691,14 @@ static boolean ST_doItemFinderIconsAndSound(void)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static boolean drawstagetitle = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Draw the status bar overlay, customisable: the user chooses which
|
// Draw the status bar overlay, customisable: the user chooses which
|
||||||
// kind of information to overlay
|
// kind of information to overlay
|
||||||
//
|
//
|
||||||
static void ST_overlayDrawer(void)
|
static void ST_overlayDrawer(void)
|
||||||
{
|
{
|
||||||
// Decide whether to draw the stage title or not
|
|
||||||
boolean stagetitle = false;
|
|
||||||
|
|
||||||
// Check for a valid level title
|
|
||||||
// If the HUD is enabled
|
|
||||||
// And, if Lua is running, if the HUD library has the stage title enabled
|
|
||||||
if (G_IsTitleCardAvailable() && *mapheaderinfo[gamemap-1]->lvlttl != '\0' && !(hu_showscores && (netgame || multiplayer)))
|
|
||||||
{
|
|
||||||
stagetitle = true;
|
|
||||||
ST_preDrawTitleCard();
|
|
||||||
}
|
|
||||||
|
|
||||||
// hu_showscores = auto hide score/time/rings when tab rankings are shown
|
// hu_showscores = auto hide score/time/rings when tab rankings are shown
|
||||||
if (!(hu_showscores && (netgame || multiplayer)))
|
if (!(hu_showscores && (netgame || multiplayer)))
|
||||||
{
|
{
|
||||||
|
@ -2861,7 +2838,7 @@ static void ST_overlayDrawer(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw level title Tails
|
// draw level title Tails
|
||||||
if (stagetitle && (!WipeInAction) && (!WipeStageTitle))
|
if (drawstagetitle && !WipeInAction && !WipeStageTitle)
|
||||||
ST_drawTitleCard();
|
ST_drawTitleCard();
|
||||||
|
|
||||||
if (!hu_showscores && (netgame || multiplayer) && LUA_HudEnabled(hud_textspectator))
|
if (!hu_showscores && (netgame || multiplayer) && LUA_HudEnabled(hud_textspectator))
|
||||||
|
@ -2932,7 +2909,22 @@ void ST_Drawer(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
st_translucency = cv_translucenthud.value;
|
// Decide whether to draw the stage title or not
|
||||||
|
if (lt_active)
|
||||||
|
{
|
||||||
|
drawstagetitle = !(hu_showscores && (netgame || multiplayer));
|
||||||
|
|
||||||
|
if (!lt_exitticker)
|
||||||
|
st_translucency = 0;
|
||||||
|
else
|
||||||
|
st_translucency = max(0, min((INT32)lt_exitticker-4, cv_translucenthud.value));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
st_translucency = cv_translucenthud.value;
|
||||||
|
|
||||||
|
drawstagetitle = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (st_overlay)
|
if (st_overlay)
|
||||||
{
|
{
|
||||||
|
|
|
@ -49,9 +49,9 @@ void ST_doPaletteStuff(void);
|
||||||
|
|
||||||
// title card
|
// title card
|
||||||
void ST_startTitleCard(void);
|
void ST_startTitleCard(void);
|
||||||
|
void ST_stopTitleCard(void);
|
||||||
void ST_runTitleCard(void);
|
void ST_runTitleCard(void);
|
||||||
void ST_drawTitleCard(void);
|
void ST_drawTitleCard(void);
|
||||||
void ST_preDrawTitleCard(void);
|
|
||||||
void ST_preLevelTitleCardDrawer(void);
|
void ST_preLevelTitleCardDrawer(void);
|
||||||
void ST_drawWipeTitleCard(void);
|
void ST_drawWipeTitleCard(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue