From 45fd34eca407fe78f563575d0c0ecbb7827a1711 Mon Sep 17 00:00:00 2001 From: divverent Date: Thu, 1 Jul 2010 18:37:16 +0000 Subject: [PATCH] a third console picture layer. NOW we should be able to do about anything remotely sensible with console backgrounds. git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@10260 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_screen.c | 10 +++++++++- console.c | 24 +++++++++++++++++++----- screen.h | 4 ++++ 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/cl_screen.c b/cl_screen.c index df182566..895f5164 100644 --- a/cl_screen.c +++ b/cl_screen.c @@ -16,13 +16,17 @@ cvar_t scr_viewsize = {CVAR_SAVE, "viewsize","100", "how large the view should be, 110 disables inventory bar, 120 disables status bar"}; cvar_t scr_fov = {CVAR_SAVE, "fov","90", "field of vision, 1-170 degrees, default 90, some players use 110-130"}; cvar_t scr_conalpha = {CVAR_SAVE, "scr_conalpha", "1", "opacity of console background gfx/conback"}; -cvar_t scr_conalpha2factor = {CVAR_SAVE, "scr_conalpha2factor", "0", "opacity of console background gfx/conback2 relative to gfx/conback; when 0, gfx/conback2 is not drawn"}; +cvar_t scr_conalphafactor = {CVAR_SAVE, "scr_conalphafactor", "1", "opacity of console background gfx/conback relative to scr_conalpha; when 0, gfx/conback is not drawn"}; +cvar_t scr_conalpha2factor = {CVAR_SAVE, "scr_conalpha2factor", "0", "opacity of console background gfx/conback2 relative to scr_conalpha; when 0, gfx/conback2 is not drawn"}; +cvar_t scr_conalpha3factor = {CVAR_SAVE, "scr_conalpha3factor", "0", "opacity of console background gfx/conback3 relative to scr_conalpha; when 0, gfx/conback is not drawn"}; cvar_t scr_conbrightness = {CVAR_SAVE, "scr_conbrightness", "1", "brightness of console background (0 = black, 1 = image)"}; cvar_t scr_conforcewhiledisconnected = {0, "scr_conforcewhiledisconnected", "1", "forces fullscreen console while disconnected"}; cvar_t scr_conscroll_x = {CVAR_SAVE, "scr_conscroll_x", "0", "scroll speed of gfx/conback in x direction"}; cvar_t scr_conscroll_y = {CVAR_SAVE, "scr_conscroll_y", "0", "scroll speed of gfx/conback in y direction"}; cvar_t scr_conscroll2_x = {CVAR_SAVE, "scr_conscroll2_x", "0", "scroll speed of gfx/conback2 in x direction"}; cvar_t scr_conscroll2_y = {CVAR_SAVE, "scr_conscroll2_y", "0", "scroll speed of gfx/conback2 in y direction"}; +cvar_t scr_conscroll3_x = {CVAR_SAVE, "scr_conscroll3_x", "0", "scroll speed of gfx/conback3 in x direction"}; +cvar_t scr_conscroll3_y = {CVAR_SAVE, "scr_conscroll3_y", "0", "scroll speed of gfx/conback3 in y direction"}; cvar_t scr_menuforcewhiledisconnected = {0, "scr_menuforcewhiledisconnected", "0", "forces menu while disconnected"}; cvar_t scr_centertime = {0, "scr_centertime","2", "how long centerprint messages show"}; cvar_t scr_showram = {CVAR_SAVE, "showram","1", "show ram icon if low on surface cache memory (not used)"}; @@ -860,11 +864,15 @@ void CL_Screen_Init(void) Cvar_RegisterVariable (&scr_fov); Cvar_RegisterVariable (&scr_viewsize); Cvar_RegisterVariable (&scr_conalpha); + Cvar_RegisterVariable (&scr_conalphafactor); Cvar_RegisterVariable (&scr_conalpha2factor); + Cvar_RegisterVariable (&scr_conalpha3factor); Cvar_RegisterVariable (&scr_conscroll_x); Cvar_RegisterVariable (&scr_conscroll_y); Cvar_RegisterVariable (&scr_conscroll2_x); Cvar_RegisterVariable (&scr_conscroll2_y); + Cvar_RegisterVariable (&scr_conscroll3_x); + Cvar_RegisterVariable (&scr_conscroll3_y); Cvar_RegisterVariable (&scr_conbrightness); Cvar_RegisterVariable (&scr_conforcewhiledisconnected); Cvar_RegisterVariable (&scr_menuforcewhiledisconnected); diff --git a/console.c b/console.c index 332c6800..e23de5bb 100644 --- a/console.c +++ b/console.c @@ -1822,7 +1822,7 @@ The typing input line at the bottom should only be drawn if typing is allowed */ void Con_DrawConsole (int lines) { - float alpha; + float alpha, alpha0; double sx, sy; int mask_must = 0; int mask_mustnot = (developer.integer>0) ? 0 : CON_MASK_DEVELOPER; @@ -1839,8 +1839,8 @@ void Con_DrawConsole (int lines) r_draw2d_force = true; // draw the background - alpha = cls.signon == SIGNONS ? scr_conalpha.value : 1.0f; // always full alpha when not in game - if(alpha > 0) + alpha0 = cls.signon == SIGNONS ? scr_conalpha.value : 1.0f; // always full alpha when not in game + if((alpha = alpha0 * scr_conalphafactor.value) > 0) { sx = scr_conscroll_x.value; sy = scr_conscroll_y.value; @@ -1856,9 +1856,8 @@ void Con_DrawConsole (int lines) 0); else DrawQ_Fill(0, lines - vid_conheight.integer, vid_conwidth.integer, vid_conheight.integer, 0.0f, 0.0f, 0.0f, alpha, 0); - alpha *= scr_conalpha2factor.value; } - if(alpha > 0) + if((alpha = alpha0 * scr_conalpha2factor.value) > 0) { sx = scr_conscroll2_x.value; sy = scr_conscroll2_y.value; @@ -1873,6 +1872,21 @@ void Con_DrawConsole (int lines) 1 + sx, 1 + sy, scr_conbrightness.value, scr_conbrightness.value, scr_conbrightness.value, alpha, 0); } + if((alpha = alpha0 * scr_conalpha3factor.value) > 0) + { + sx = scr_conscroll3_x.value; + sy = scr_conscroll3_y.value; + conbackpic = Draw_CachePic_Flags("gfx/conback3", (sx != 0 || sy != 0) ? CACHEPICFLAG_NOCLAMP : 0); + sx *= realtime; sy *= realtime; + sx -= floor(sx); sy -= floor(sy); + if(conbackpic && conbackpic->tex != r_texture_notexture) + DrawQ_SuperPic(0, lines - vid_conheight.integer, conbackpic, vid_conwidth.integer, vid_conheight.integer, + 0 + sx, 0 + sy, scr_conbrightness.value, scr_conbrightness.value, scr_conbrightness.value, alpha, + 1 + sx, 0 + sy, scr_conbrightness.value, scr_conbrightness.value, scr_conbrightness.value, alpha, + 0 + sx, 1 + sy, scr_conbrightness.value, scr_conbrightness.value, scr_conbrightness.value, alpha, + 1 + sx, 1 + sy, scr_conbrightness.value, scr_conbrightness.value, scr_conbrightness.value, alpha, + 0); + } DrawQ_String(vid_conwidth.integer - DrawQ_TextWidth(engineversion, 0, con_textsize.value, con_textsize.value, false, FONT_CONSOLE), lines - con_textsize.value, engineversion, 0, con_textsize.value, con_textsize.value, 1, 0, 0, 1, 0, NULL, true, FONT_CONSOLE); // draw the text diff --git a/screen.h b/screen.h index a8fbb148..05befb2c 100644 --- a/screen.h +++ b/screen.h @@ -51,11 +51,15 @@ extern cvar_t crosshair; extern cvar_t crosshair_size; extern cvar_t scr_conalpha; +extern cvar_t scr_conalphafactor; extern cvar_t scr_conalpha2factor; +extern cvar_t scr_conalpha3factor; extern cvar_t scr_conscroll_x; extern cvar_t scr_conscroll_y; extern cvar_t scr_conscroll2_x; extern cvar_t scr_conscroll2_y; +extern cvar_t scr_conscroll3_x; +extern cvar_t scr_conscroll3_y; extern cvar_t scr_conbrightness; extern cvar_t r_letterbox; -- 2.39.2