mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-12-11 05:11:25 +00:00
Draw the input prompt while the console is moving
This commit is contained in:
parent
435e1f6e7e
commit
396db189e7
1 changed files with 26 additions and 26 deletions
|
@ -61,7 +61,7 @@ static boolean con_started = false; // console has been initialised
|
||||||
static boolean con_forcepic = true; // at startup toggle console translucency when first off
|
static boolean con_forcepic = true; // at startup toggle console translucency when first off
|
||||||
boolean con_recalc; // set true when screen size has changed
|
boolean con_recalc; // set true when screen size has changed
|
||||||
|
|
||||||
static tic_t con_tick; // console ticker for anim or blinking prompt cursor
|
static tic_t con_tick; // console ticker for blinking prompt cursor
|
||||||
// con_scrollup should use time (currenttime - lasttime)..
|
// con_scrollup should use time (currenttime - lasttime)..
|
||||||
|
|
||||||
static boolean consoletoggle; // true when console key pushed, ticker will handle
|
static boolean consoletoggle; // true when console key pushed, ticker will handle
|
||||||
|
@ -1824,41 +1824,41 @@ static void CON_DrawConsole(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw console text lines from top to bottom
|
// draw console text lines from top to bottom
|
||||||
if (con_curlines < minheight)
|
if (con_curlines >= minheight)
|
||||||
return;
|
|
||||||
|
|
||||||
i = con_cy - con_scrollup;
|
|
||||||
|
|
||||||
// skip the last empty line due to the cursor being at the start of a new line
|
|
||||||
i--;
|
|
||||||
|
|
||||||
i -= (con_curlines - minheight) / charheight;
|
|
||||||
|
|
||||||
if (rendermode == render_none) return;
|
|
||||||
|
|
||||||
for (y = (con_curlines-minheight) % charheight; y <= con_curlines-minheight; y += charheight, i++)
|
|
||||||
{
|
{
|
||||||
INT32 x;
|
i = con_cy - con_scrollup;
|
||||||
size_t c;
|
|
||||||
|
|
||||||
p = (UINT8 *)&con_buffer[((i > 0 ? i : 0)%con_totallines)*con_width];
|
// skip the last empty line due to the cursor being at the start of a new line
|
||||||
|
i--;
|
||||||
|
|
||||||
for (c = 0, x = charwidth; c < con_width; c++, x += charwidth, p++)
|
i -= (con_curlines - minheight) / charheight;
|
||||||
|
|
||||||
|
if (rendermode == render_none) return;
|
||||||
|
|
||||||
|
for (y = (con_curlines-minheight) % charheight; y <= con_curlines-minheight; y += charheight, i++)
|
||||||
{
|
{
|
||||||
while (*p & 0x80)
|
INT32 x;
|
||||||
|
size_t c;
|
||||||
|
|
||||||
|
p = (UINT8 *)&con_buffer[((i > 0 ? i : 0)%con_totallines)*con_width];
|
||||||
|
|
||||||
|
for (c = 0, x = charwidth; c < con_width; c++, x += charwidth, p++)
|
||||||
{
|
{
|
||||||
charflags = (*p & 0x7f) << V_CHARCOLORSHIFT;
|
while (*p & 0x80)
|
||||||
p++;
|
{
|
||||||
c++;
|
charflags = (*p & 0x7f) << V_CHARCOLORSHIFT;
|
||||||
|
p++;
|
||||||
|
c++;
|
||||||
|
}
|
||||||
|
if (c >= con_width)
|
||||||
|
break;
|
||||||
|
V_DrawCharacter(x, y, (INT32)(*p) | charflags | cv_constextsize.value | V_NOSCALESTART, true);
|
||||||
}
|
}
|
||||||
if (c >= con_width)
|
|
||||||
break;
|
|
||||||
V_DrawCharacter(x, y, (INT32)(*p) | charflags | cv_constextsize.value | V_NOSCALESTART, true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw prompt if enough place (not while game startup)
|
// draw prompt if enough place (not while game startup)
|
||||||
if ((con_curlines == con_destlines) && (con_curlines >= minheight) && !con_startup)
|
if ((con_curlines >= (minheight-charheight)) && !con_startup)
|
||||||
CON_DrawInput();
|
CON_DrawInput();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue