From ee033a4d5980cee5ec4c38a035852254efcf1819 Mon Sep 17 00:00:00 2001 From: FruitieX Date: Wed, 7 Jul 2010 16:12:59 +0300 Subject: [PATCH] fix smooth moving/resizing to an always visible spot when dialog is open --- qcsrc/client/hud.qc | 57 --------------------------------------------- qcsrc/client/hud.qh | 44 +++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 58 deletions(-) diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc index c55dc19571..701c18b47b 100644 --- a/qcsrc/client/hud.qc +++ b/qcsrc/client/hud.qc @@ -553,63 +553,6 @@ void HUD_Panel_ExportCfg(string cfgname) fclose(fh); } -// return smoothly faded size of given panel when a dialog is active -vector HUD_Panel_GetMenuSize(float id) -{ - vector mySize; - mySize = panel_size; - - mySize = eX * mySize_x * vid_conwidth + eY * mySize_y * vid_conheight; - - if(disable_menu_alphacheck == 2 && id == highlightedPanel) - { - vector menu_enable_maxsize, menu_enable_size; - menu_enable_maxsize = '0 0 0'; // shut up FTEQCC - menu_enable_maxsize_x = 0.3 * vid_conwidth; - menu_enable_maxsize_y = 0.18 * vid_conheight; - if(mySize_x > mySize_y) - { - if(mySize_y > menu_enable_maxsize_y) - { - menu_enable_size_y = menu_enable_maxsize_y; - menu_enable_size_x = mySize_x * (menu_enable_maxsize_y/mySize_y); - mySize = (1 - autocvar__menu_alpha) * mySize + (autocvar__menu_alpha) * menu_enable_size; - } - } - else - { - if(mySize_x > menu_enable_maxsize_x) - { - menu_enable_size_x = menu_enable_maxsize_x; - menu_enable_size_y = mySize_y * (menu_enable_maxsize_x/mySize_x); - mySize = (1 - autocvar__menu_alpha) * mySize + (autocvar__menu_alpha) * menu_enable_size; - } - } - } - return mySize; -} - -// return smoothly faded pos of given panel when a dialog is active -vector HUD_Panel_GetMenuPos(float id) -{ - vector pos; - pos = panel_pos; - - pos = eX * pos_x * vid_conwidth + eY * pos_y * vid_conheight; - - if(disable_menu_alphacheck == 2 && id == highlightedPanel) - { - vector mySize, menu_enable_panelpos; - mySize = HUD_Panel_GetMenuSize(id); - if(mySize_x > mySize_y) - menu_enable_panelpos = eX * 0.5 * vid_conwidth - eX * 0.5 * mySize_x + eY * 0.82 * vid_conheight; - else - menu_enable_panelpos = eY * 0.5 * vid_conheight - eY * 0.5 * mySize_y + eX * 0.7 * vid_conwidth; - pos = (1 - autocvar__menu_alpha) * pos + (autocvar__menu_alpha) * menu_enable_panelpos; - } - return pos; -} - const float hlBorderSize = 4; const string hlBorder = "gfx/hud/default/border_highlighted"; const string hlBorder2 = "gfx/hud/default/border_highlighted2"; diff --git a/qcsrc/client/hud.qh b/qcsrc/client/hud.qh index 71de37649b..3b48d3cf01 100644 --- a/qcsrc/client/hud.qh +++ b/qcsrc/client/hud.qh @@ -202,6 +202,40 @@ HUD_Panel_GetBorder()\ HUD_Panel_GetScaledVectors()\ HUD_Panel_GetPadding() +// return smoothly faded pos of given panel when a dialog is active +var vector menu_enable_panelpos; +#define HUD_Panel_GetMenuPos() \ +if(panel_size_x > panel_size_y)\ + menu_enable_panelpos = eX * 0.5 * vid_conwidth - eX * 0.5 * panel_size_x + eY * 0.82 * vid_conheight;\ +else\ + menu_enable_panelpos = eY * 0.5 * vid_conheight - eY * 0.5 * panel_size_y + eX * 0.7 * vid_conwidth;\ +panel_pos = (1 - autocvar__menu_alpha) * panel_pos + (autocvar__menu_alpha) * menu_enable_panelpos; + +// return smoothly faded size of given panel when a dialog is active +var vector menu_enable_maxsize; +var vector menu_enable_size; +#define HUD_Panel_GetMenuSize()\ +menu_enable_maxsize_x = 0.3 * vid_conwidth;\ +menu_enable_maxsize_y = 0.18 * vid_conheight;\ +if(panel_size_x > panel_size_y)\ +{\ + if(panel_size_y > menu_enable_maxsize_y)\ + {\ + menu_enable_size_y = menu_enable_maxsize_y;\ + menu_enable_size_x = panel_size_x * (menu_enable_maxsize_y/panel_size_y);\ + panel_size = (1 - autocvar__menu_alpha) * panel_size + (autocvar__menu_alpha) * menu_enable_size;\ + }\ +}\ +else\ +{\ + if(panel_size_x > menu_enable_maxsize_x)\ + {\ + menu_enable_size_x = menu_enable_maxsize_x;\ + menu_enable_size_y = panel_size_y * (menu_enable_maxsize_x/panel_size_x);\ + panel_size = (1 - autocvar__menu_alpha) * panel_size + (autocvar__menu_alpha) * menu_enable_size;\ + }\ +} + // Update all common cvars of given panel name #define HUD_Panel_UpdateCvars(name) \ panel_enabled = autocvar_hud_##name; \ @@ -213,7 +247,11 @@ panel_bg_color_team_str = autocvar_hud_##name##_bg_color_team; \ panel_bg_alpha_str = autocvar_hud_##name##_bg_alpha; \ panel_bg_border_str = autocvar_hud_##name##_bg_border; \ panel_bg_padding_str = autocvar_hud_##name##_bg_padding; \ -HUD_Panel_StringVars() +HUD_Panel_StringVars()\ +if(disable_menu_alphacheck == 2 && active_panel == highlightedPanel) {\ + HUD_Panel_GetMenuSize()\ + HUD_Panel_GetMenuPos()\ +} // Update all common cvars of given panel id #define HUD_Panel_UpdateCvarsForId(id) \ @@ -240,6 +278,10 @@ switch(id) { \ panel_pos = autocvar_hud_##name##_pos; \ panel_size = autocvar_hud_##name##_size; \ HUD_Panel_GetScaledVectors()\ +if(disable_menu_alphacheck == 2 && active_panel == highlightedPanel) {\ + HUD_Panel_GetMenuSize()\ + HUD_Panel_GetMenuPos()\ +}\ panel_bg_border_str = autocvar_hud_##name##_bg_border; \ HUD_Panel_GetBorder() -- 2.39.2