]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/hud/hud.qh
Add a team color setting for team tables so that accuracy and rankings can be display...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / hud / hud.qh
index 4a3c1f4e3a88b136486ce27912252b4206b23689..5dfd2391c012c5562197df397de87cfe47dbb13f 100644 (file)
@@ -1,5 +1,4 @@
-#ifndef CLIENT_HUD_H
-#define CLIENT_HUD_H
+#pragma once
 
 #include <common/weapons/all.qh>
 
@@ -23,9 +22,16 @@ REGISTER_REGISTRY(hud_panels)
 #define HUD_PANEL(NAME) HUD_PANEL_##NAME
 
 // draw the background/borders
-#define HUD_Panel_DrawBg(theAlpha) MACRO_BEGIN {                                                                                                                                                               \
-       if(panel.current_panel_bg != "0" && panel.current_panel_bg != "")                                                                                               \
-               draw_BorderPicture(panel_pos - '1 1 0' * panel_bg_border, panel.current_panel_bg, panel_size + '1 1 0' * 2 * panel_bg_border, panel_bg_color, panel_bg_alpha * theAlpha, '1 1 0' * (panel_bg_border/BORDER_MULTIPLIER));\
+#define HUD_Panel_DrawBg(theAlpha) MACRO_BEGIN { \
+       if(panel.current_panel_bg != "0" && panel.current_panel_bg != "") \
+               draw_BorderPicture( \
+                       HUD_Shift(panel_pos - '1 1 0' * panel_bg_border), \
+                       panel.current_panel_bg, \
+                       HUD_Scale(panel_size + '1 1 0' * 2 * panel_bg_border), \
+                       panel_bg_color, \
+                       panel_bg_alpha * theAlpha, \
+                       HUD_Scale('1 1 0' * (panel_bg_border/BORDER_MULTIPLIER)) \
+               ); \
 } MACRO_END
 
 int panel_order[hud_panels_MAX];
@@ -42,9 +48,19 @@ bool radar_panel_modified;
 float HUD_Radar_InputEvent(float bInputType, float nPrimary, float nSecondary);
 void HUD_Radar_Hide_Maximized();
 
+float HUD_GetRowCount(int item_count, vector size, float item_aspect);
+vector HUD_Get_Num_Color (float x, float maxvalue);
+void DrawNumIcon(vector myPos, vector mySize, float x, string icon, bool vertical, bool icon_right_align, vector color, float theAlpha);
+void DrawNumIcon_expanding(vector myPos, vector mySize, float x, string icon, bool vertical, int icon_right_align, vector color, float theAlpha, float fadelerp);
+void HUD_Panel_DrawHighlight(vector pos, vector mySize, vector color, float theAlpha, int drawflag);
+vector HUD_GetTableSize_BestItemAR(int item_count, vector psize, float item_aspect);
+
 void HUD_Reset ();
 void HUD_Main ();
 
+int race_CheckName(string net_name);
+string MakeRaceString(int cp, float mytime, float theirtime, float lapdelta, string theirname);
+
 int vote_yescount;
 int vote_nocount;
 int vote_needed;
@@ -148,8 +164,9 @@ float current_player;
 
 float autocvar_hud_dynamic_follow;
 float autocvar_hud_dynamic_follow_scale;
+vector autocvar_hud_dynamic_follow_scale_xyz;
 
-vector hud_dynamic_shake_ofs;
+vector hud_dynamic_shake_realofs;
 float hud_dynamic_shake_factor;
 float hud_dynamic_shake_time;
 
@@ -157,7 +174,11 @@ float hud_dynamic_shake_time;
 vector cl_followmodel_ofs;
 float cl_followmodel_time;
 
-vector hud_dynamic_ofs;
+vector hud_scale;
+vector hud_scale_current;
+vector hud_shift;
+vector hud_shift_current;
+vector hud_scale_center;
 
 float stringwidth_colors(string s, vector theSize);
 float stringwidth_nocolors(string s, vector theSize);
@@ -214,6 +235,7 @@ REGISTER_HUD_PANEL(MINIGAME_MENU,   HUD_MinigameMenu,   minigamemenu,   PANEL_CO
 REGISTER_HUD_PANEL(MAPVOTE,         MapVote_Draw,       mapvote,        PANEL_CONFIG_NO  , PANEL_SHOW_MAPVOTE )
 REGISTER_HUD_PANEL(ITEMSTIME,       HUD_ItemsTime,      itemstime,      PANEL_CONFIG_MAIN, PANEL_SHOW_MAINGAME)
 REGISTER_HUD_PANEL(QUICKMENU,       HUD_QuickMenu,      quickmenu,      PANEL_CONFIG_MAIN, PANEL_SHOW_MAINGAME)
+REGISTER_HUD_PANEL(SCOREBOARD,      Scoreboard_Draw,    scoreboard,     PANEL_CONFIG_NO  , PANEL_SHOW_ALWAYS  )
 // always add new panels to the end of list
 
 // Because calling lots of functions in QC apparently cuts fps in half on many machines:
@@ -253,12 +275,12 @@ REGISTER_HUD_PANEL(QUICKMENU,       HUD_QuickMenu,      quickmenu,      PANEL_CO
 
 // Get value for panel_bg_color: if "" fetch default, else use panel_bg_color. Convert pants, shirt or teamcolor into a vector.
 #define HUD_Panel_GetColor() MACRO_BEGIN {                                                                          \
-       if ((teamplay) && panel_bg_color_team) {                                                                        \
+       if ((teamplay) && panel_bg_color_team > 0) {                                                                        \
                if (autocvar__hud_configure && myteam == NUM_SPECTATOR)                                                     \
                        panel_bg_color = '1 0 0' * panel_bg_color_team;                                                         \
                else                                                                                                        \
                        panel_bg_color = myteamcolors * panel_bg_color_team;                                                    \
-       } else if (autocvar_hud_configure_teamcolorforced && autocvar__hud_configure && panel_bg_color_team) {          \
+       } else if (autocvar_hud_configure_teamcolorforced && autocvar__hud_configure && panel_bg_color_team > 0) {          \
                panel_bg_color = '1 0 0' * panel_bg_color_team;                                                             \
        } else {                                                                                                        \
                if (panel_bg_color_str == "") {                                                                             \
@@ -365,11 +387,11 @@ REGISTER_HUD_PANEL(QUICKMENU,       HUD_QuickMenu,      quickmenu,      PANEL_CO
                panel_bg_padding_str = cvar_string(strcat("hud_panel_", panel.panel_name, "_bg_padding"));                  \
                HUD_Panel_GetBg();                                                                                          \
                if (panel.current_panel_bg != "0") {                                                                        \
-                       HUD_Panel_GetColorTeam();                                                                               \
-                       HUD_Panel_GetColor();                                                                                   \
                        HUD_Panel_GetBgAlpha();                                                                                 \
                        HUD_Panel_GetBorder();                                                                                  \
                }                                                                                                           \
+               HUD_Panel_GetColorTeam();                                                                               \
+               HUD_Panel_GetColor();                                                                                   \
                HUD_Panel_GetFgAlpha();                                                                                     \
                HUD_Panel_GetPadding();                                                                                     \
                panel.current_panel_bg_alpha = panel_bg_alpha;                                                              \
@@ -397,15 +419,6 @@ REGISTER_HUD_PANEL(QUICKMENU,       HUD_QuickMenu,      quickmenu,      PANEL_CO
                panel_bg_padding = panel.current_panel_bg_padding;                                                          \
                panel_fg_alpha = panel.current_panel_fg_alpha * hud_fade_alpha;                                             \
        }                                                                                                               \
-       if(hud_dynamic_shake_factor > 0) panel_pos += hud_dynamic_shake_ofs; \
-       if(hud_dynamic_ofs.y) panel_pos.x += hud_dynamic_ofs.y * vid_conwidth; \
-       if(hud_dynamic_ofs.z) panel_pos.y += hud_dynamic_ofs.z * vid_conheight; \
-       if(hud_dynamic_ofs.x) { \
-               panel_size.x += hud_dynamic_ofs.x * panel_size.x; \
-               panel_size.y += hud_dynamic_ofs.x * panel_size.y; \
-               panel_pos.x += hud_dynamic_ofs.x * (panel_pos.x - vid_conwidth * 0.5); \
-               panel_pos.y += hud_dynamic_ofs.x * (panel_pos.y - vid_conheight * 0.5); \
-       } \
 } MACRO_END
 
 #define HUD_Panel_UpdatePosSize() MACRO_BEGIN {                                                                     \
@@ -434,4 +447,3 @@ void HUD_Notify_Push(string icon, string attacker, string victim);
 
 var void HUD_ModIcons_GameType(vector pos, vector size);
 void HUD_ModIcons_SetFunc();
-#endif