summaryrefslogtreecommitdiff
path: root/src/client/console.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/console.c')
-rw-r--r--src/client/console.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/client/console.c b/src/client/console.c
index 4cf59f8..cbaebf3 100644
--- a/src/client/console.c
+++ b/src/client/console.c
@@ -364,18 +364,17 @@ Con_CheckResize
If the line width has changed, reformat the buffer.
================
*/
-static void Con_CheckResize(void)
+void Con_CheckResize(void)
{
int width;
+ con.scale = R_ClampScale(con_scale);
+
con.vidWidth = r_config.width * con.scale;
con.vidHeight = r_config.height * con.scale;
width = (con.vidWidth / CHAR_WIDTH) - 2;
- if (width == con.linewidth)
- return;
-
con.linewidth = width > CON_LINEWIDTH ? CON_LINEWIDTH : width;
con.prompt.inputLine.visibleChars = con.linewidth;
con.prompt.widthInChars = con.linewidth - 1; // account for color byte
@@ -408,6 +407,13 @@ static void con_param_changed(cvar_t *self)
}
}
+static void con_scale_changed(cvar_t *self)
+{
+ if (con.initialized && cls.ref_initialized) {
+ Con_CheckResize();
+ }
+}
+
static const cmdreg_t c_console[] = {
{ "toggleconsole", Con_ToggleConsole_f },
{ "togglechat", Con_ToggleChat_f },
@@ -443,6 +449,7 @@ void Con_Init(void)
con_speed = Cvar_Get("scr_conspeed", "3", 0);
con_alpha = Cvar_Get("con_alpha", "1", 0);
con_scale = Cvar_Get("con_scale", "1", 0);
+ con_scale->changed = con_scale_changed;
con_font = Cvar_Get("con_font", "conchars", 0);
con_font->changed = con_param_changed;
con_background = Cvar_Get("con_background", "conback", 0);
@@ -1024,16 +1031,10 @@ SCR_DrawConsole
*/
void Con_DrawConsole(void)
{
- Cvar_ClampValue(con_scale, 1, 9);
-
- con.scale = 1.0f / con_scale->value;
- R_SetScale(&con.scale);
-
- Con_CheckResize();
+ R_SetScale(con.scale);
Con_DrawSolidConsole();
Con_DrawNotify();
-
- R_SetScale(NULL);
+ R_SetScale(1.0f);
}