X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fhud.qh;h=90a17b80be91b500fc2a0f8006098fdd618a956e;hb=f1a11cabe78baaaa067fe22bbdf2ca1546d1e8fc;hp=f880a810f6eb2c6a7dc53b797f1b3f67ea1422e1;hpb=61a847dbaab291d205cc9684b6d1a6e9bdad6375;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/hud.qh b/qcsrc/client/hud.qh index f880a810f..90a17b80b 100644 --- a/qcsrc/client/hud.qh +++ b/qcsrc/client/hud.qh @@ -1,7 +1,7 @@ #ifndef HUD_H #define HUD_H -#include "../common/weapons/weapons.qh" +#include "../common/weapons/all.qh" const int HUD_PANEL_MAX = 24; entity hud_panel[HUD_PANEL_MAX]; @@ -155,7 +155,9 @@ int prev_p_health, prev_p_armor; HUD_PANEL(INFOMESSAGES , HUD_InfoMessages , infomessages) \ HUD_PANEL(PHYSICS , HUD_Physics , physics) \ HUD_PANEL(CENTERPRINT , HUD_CenterPrint , centerprint) \ - HUD_PANEL(BUFFS , HUD_Buffs , buffs) + HUD_PANEL(BUFFS , HUD_Buffs , buffs) \ + HUD_PANEL(ITEMSTIME , HUD_ItemsTime , itemstime) \ + // always add new panels to the end of list #define HUD_PANEL(NAME, draw_func, name) \ int HUD_PANEL_##NAME; \ @@ -227,9 +229,9 @@ HUD_PANELS(HUD_PANEL) panel_bg_color = autocvar_hud_panel_bg_color; \ } else { \ if (panel_bg_color_str == "shirt") { \ - panel_bg_color = colormapPaletteColor(floor(stof(getplayerkeyvalue(current_player - 1, "colors")) / 16), 0);\ + panel_bg_color = colormapPaletteColor(floor(stof(getplayerkeyvalue(current_player, "colors")) / 16), 0); \ } else if (panel_bg_color_str == "pants") { \ - panel_bg_color = colormapPaletteColor(stof(getplayerkeyvalue(current_player - 1, "colors")) % 16, 1);\ + panel_bg_color = colormapPaletteColor(stof(getplayerkeyvalue(current_player, "colors")) % 16, 1); \ } else { \ panel_bg_color = stov(panel_bg_color_str); \ } \ @@ -292,27 +294,18 @@ HUD_PANELS(HUD_PANEL) } while(0) // return smoothly faded pos and size of given panel when a dialog is active -#define HUD_Panel_UpdatePosSize_ForMenu() do { \ - vector menu_enable_pos; \ - vector menu_enable_size = '0 0 0'; \ - float menu_enable_maxsize_x = 0.3 * vid_conwidth; \ - float 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; \ - } \ - menu_enable_pos = eX * 0.5 * vid_conwidth - eX * 0.5 * panel_size.x + eY * (vid_conheight - menu_enable_maxsize_y);\ - } 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; \ - } \ - menu_enable_pos = eY * 0.5 * vid_conheight - eY * 0.5 * panel_size.y + eX * (vid_conwidth - menu_enable_maxsize_x);\ - } \ - panel_pos = (1 - autocvar__menu_alpha) * panel_pos + (autocvar__menu_alpha) * menu_enable_pos; \ +// don't center too wide panels, it doesn't work with different resolutions +#define HUD_Panel_UpdatePosSize_ForMenu() do { \ + vector menu_enable_size = panel_size; \ + float max_panel_width = 0.52 * vid_conwidth; \ + if(panel_size.x > max_panel_width) \ + { \ + menu_enable_size.x = max_panel_width; \ + menu_enable_size.y = panel_size.y * (menu_enable_size.x / panel_size.x); \ + } \ + vector menu_enable_pos = eX * (panel_bg_border + 0.5 * max_panel_width) + eY * 0.5 * vid_conheight - 0.5 * menu_enable_size; \ + panel_pos = (1 - autocvar__menu_alpha) * panel_pos + (autocvar__menu_alpha) * menu_enable_pos; \ + panel_size = (1 - autocvar__menu_alpha) * panel_size + (autocvar__menu_alpha) * menu_enable_size; \ } while(0) // Scale the pos and size vectors to absolute coordinates