Merge branch 'master' into next

This commit is contained in:
Monster Iestyn 2019-04-02 15:47:07 +01:00
commit ab0fe6b164
4 changed files with 36 additions and 30 deletions

View File

@ -96,6 +96,7 @@ static size_t input_len; // length of current line, used to bound cursor and suc
// protos. // protos.
static void CON_InputInit(void); static void CON_InputInit(void);
static void CON_RecalcSize(void); static void CON_RecalcSize(void);
static void CON_ChangeHeight(void);
static void CONS_hudlines_Change(void); static void CONS_hudlines_Change(void);
static void CONS_backcolor_Change(void); static void CONS_backcolor_Change(void);
@ -447,6 +448,12 @@ static void CON_RecalcSize(void)
con_destlines = vid.height; con_destlines = vid.height;
} }
if (con_destlines > 0) // Resize console if already open
{
CON_ChangeHeight();
con_curlines = con_destlines;
}
// check for change of video width // check for change of video width
if (conw == con_width) if (conw == con_width)
return; // didn't change return; // didn't change
@ -496,6 +503,20 @@ static void CON_RecalcSize(void)
Z_Free(tmp_buffer); Z_Free(tmp_buffer);
} }
static void CON_ChangeHeight(void)
{
INT32 minheight = 20 * con_scalefactor; // 20 = 8+8+4
// toggle console in
con_destlines = (cons_height.value*vid.height)/100;
if (con_destlines < minheight)
con_destlines = minheight;
else if (con_destlines > vid.height)
con_destlines = vid.height;
con_destlines &= ~0x3; // multiple of text row height
}
// Handles Console moves in/out of screen (per frame) // Handles Console moves in/out of screen (per frame)
// //
static void CON_MoveConsole(void) static void CON_MoveConsole(void)
@ -584,16 +605,7 @@ void CON_Ticker(void)
CON_ClearHUD(); CON_ClearHUD();
} }
else else
{ CON_ChangeHeight();
// toggle console in
con_destlines = (cons_height.value*vid.height)/100;
if (con_destlines < minheight)
con_destlines = minheight;
else if (con_destlines > vid.height)
con_destlines = vid.height;
con_destlines &= ~0x3; // multiple of text row height
}
} }
// console movement // console movement
@ -1106,6 +1118,7 @@ static void CON_Print(char *msg)
{ {
size_t l; size_t l;
INT32 controlchars = 0; // for color changing INT32 controlchars = 0; // for color changing
char color = '\x80'; // keep color across lines
if (msg == NULL) if (msg == NULL)
return; return;
@ -1131,7 +1144,7 @@ static void CON_Print(char *msg)
{ {
if (*msg & 0x80) if (*msg & 0x80)
{ {
con_line[con_cx++] = *(msg++); color = con_line[con_cx++] = *(msg++);
controlchars++; controlchars++;
continue; continue;
} }
@ -1139,12 +1152,14 @@ static void CON_Print(char *msg)
{ {
con_cy--; con_cy--;
CON_Linefeed(); CON_Linefeed();
color = '\x80';
controlchars = 0; controlchars = 0;
} }
else if (*msg == '\n') // linefeed else if (*msg == '\n') // linefeed
{ {
CON_Linefeed(); CON_Linefeed();
controlchars = 0; con_line[con_cx++] = color;
controlchars = 1;
} }
else if (*msg == ' ') // space else if (*msg == ' ') // space
{ {
@ -1152,7 +1167,8 @@ static void CON_Print(char *msg)
if (con_cx - controlchars >= con_width-11) if (con_cx - controlchars >= con_width-11)
{ {
CON_Linefeed(); CON_Linefeed();
controlchars = 0; con_line[con_cx++] = color;
controlchars = 1;
} }
} }
else if (*msg == '\t') else if (*msg == '\t')
@ -1167,7 +1183,8 @@ static void CON_Print(char *msg)
if (con_cx - controlchars >= con_width-11) if (con_cx - controlchars >= con_width-11)
{ {
CON_Linefeed(); CON_Linefeed();
controlchars = 0; con_line[con_cx++] = color;
controlchars = 1;
} }
} }
msg++; msg++;
@ -1184,7 +1201,8 @@ static void CON_Print(char *msg)
if ((con_cx - controlchars) + l > con_width-11) if ((con_cx - controlchars) + l > con_width-11)
{ {
CON_Linefeed(); CON_Linefeed();
controlchars = 0; con_line[con_cx++] = color;
controlchars = 1;
} }
// a word at a time // a word at a time
@ -1539,8 +1557,7 @@ static void CON_DrawConsole(void)
i = con_cy - con_scrollup; i = con_cy - con_scrollup;
// skip the last empty line due to the cursor being at the start of a new line // skip the last empty line due to the cursor being at the start of a new line
if (!con_scrollup && !con_cx) i--;
i--;
i -= (con_curlines - minheight) / charheight; i -= (con_curlines - minheight) / charheight;

View File

@ -726,7 +726,6 @@ void D_StartTitle(void)
paused = false; paused = false;
advancedemo = false; advancedemo = false;
F_StartTitleScreen(); F_StartTitleScreen();
CON_ToggleOff();
// Reset the palette // Reset the palette
if (rendermode != render_none) if (rendermode != render_none)
@ -1396,13 +1395,13 @@ void D_SRB2Main(void)
} }
else if (M_CheckParm("-skipintro")) else if (M_CheckParm("-skipintro"))
{ {
CON_ToggleOff();
CON_ClearHUD();
F_StartTitleScreen(); F_StartTitleScreen();
} }
else else
F_StartIntro(); // Tails 03-03-2002 F_StartIntro(); // Tails 03-03-2002
CON_ToggleOff();
if (dedicated && server) if (dedicated && server)
{ {
pagename = "TITLESKY"; pagename = "TITLESKY";

View File

@ -1826,9 +1826,6 @@ static void Got_Mapcmd(UINT8 **cp, INT32 playernum)
CONS_Printf(M_GetText("Speeding off to level...\n")); CONS_Printf(M_GetText("Speeding off to level...\n"));
} }
CON_ToggleOff();
CON_ClearHUD();
if (demoplayback && !timingdemo) if (demoplayback && !timingdemo)
precache = false; precache = false;

View File

@ -444,7 +444,6 @@ void F_StartIntro(void)
gameaction = ga_nothing; gameaction = ga_nothing;
paused = false; paused = false;
CON_ToggleOff(); CON_ToggleOff();
CON_ClearHUD();
F_NewCutscene(introtext[0]); F_NewCutscene(introtext[0]);
intro_scenenum = 0; intro_scenenum = 0;
@ -1146,7 +1145,6 @@ void F_StartCredits(void)
gameaction = ga_nothing; gameaction = ga_nothing;
paused = false; paused = false;
CON_ToggleOff(); CON_ToggleOff();
CON_ClearHUD();
S_StopMusic(); S_StopMusic();
S_ChangeMusicInternal("credit", false); S_ChangeMusicInternal("credit", false);
@ -1313,7 +1311,6 @@ void F_StartGameEvaluation(void)
gameaction = ga_nothing; gameaction = ga_nothing;
paused = false; paused = false;
CON_ToggleOff(); CON_ToggleOff();
CON_ClearHUD();
finalecount = 0; finalecount = 0;
} }
@ -1423,7 +1420,6 @@ void F_StartGameEnd(void)
gameaction = ga_nothing; gameaction = ga_nothing;
paused = false; paused = false;
CON_ToggleOff(); CON_ToggleOff();
CON_ClearHUD();
S_StopMusic(); S_StopMusic();
// In case menus are still up?!! // In case menus are still up?!!
@ -1626,7 +1622,6 @@ void F_StartContinue(void)
keypressed = false; keypressed = false;
paused = false; paused = false;
CON_ToggleOff(); CON_ToggleOff();
CON_ClearHUD();
// In case menus are still up?!! // In case menus are still up?!!
M_ClearMenus(true); M_ClearMenus(true);
@ -1798,8 +1793,6 @@ void F_StartCustomCutscene(INT32 cutscenenum, boolean precutscene, boolean reset
F_NewCutscene(cutscenes[cutscenenum]->scene[0].text); F_NewCutscene(cutscenes[cutscenenum]->scene[0].text);
CON_ClearHUD();
cutsceneover = false; cutsceneover = false;
runningprecutscene = precutscene; runningprecutscene = precutscene;
precutresetplayer = resetplayer; precutresetplayer = resetplayer;