]> de.git.xonotic.org Git - voretournament/voretournament.git/blobdiff - data/qcsrc/client/radar.qc
Adapt predator entry to customizable HUD. Also stup using sbar_fontsize for the HUD...
[voretournament/voretournament.git] / data / qcsrc / client / radar.qc
index 97ea2444574695e3536c07a7f2b48ed146da883c..4350b0cb83c2c67f7d83ac42b3d980a25f6178ab 100644 (file)
@@ -53,58 +53,71 @@ vector yinvert(vector v)
        return v;\r
 }\r
 \r
-void draw_radar_background(float ca, float bg, float fg)\r
+void draw_radar_background(float ca, float bg)\r
 {\r
-       vector cgc;\r
+       vector col;\r
+       vector pos1, pos2, pos3, pos4;\r
+       pos1 = '1 0 0' * (radar_origin2d_x - radar_size2d_x * 0.5 + radar_extraclip_mins_x) + '0 1 0' * (radar_origin2d_y - radar_size2d_y * 0.5 + radar_extraclip_mins_y);\r
+       pos2 = '1 0 0' * (radar_origin2d_x + radar_size2d_x * 0.5 + radar_extraclip_maxs_x) + '0 1 0' * (radar_origin2d_y - radar_size2d_y * 0.5 + radar_extraclip_mins_y);\r
+       pos3 = '1 0 0' * (radar_origin2d_x + radar_size2d_x * 0.5 + radar_extraclip_maxs_x) + '0 1 0' * (radar_origin2d_y + radar_size2d_y * 0.5 + radar_extraclip_maxs_y);\r
+       pos4 = '1 0 0' * (radar_origin2d_x - radar_size2d_x * 0.5 + radar_extraclip_mins_x) + '0 1 0' * (radar_origin2d_y + radar_size2d_y * 0.5 + radar_extraclip_maxs_y);\r
+\r
        if(bg > 0)\r
        {\r
-               R_BeginPolygon("gfx/hud/bg_radar.tga", DRAWFLAG_NORMAL);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x - radar_size2d_x * 0.5 + radar_extraclip_mins_x) + '0 1 0' * (radar_origin2d_y - radar_size2d_y * 0.5 + radar_extraclip_mins_y), yinvert(mi_pictexcoord1), '1 1 1', bg);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x + radar_size2d_x * 0.5 + radar_extraclip_maxs_x) + '0 1 0' * (radar_origin2d_y - radar_size2d_y * 0.5 + radar_extraclip_mins_y), yinvert(mi_pictexcoord2), '1 1 1', bg);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x + radar_size2d_x * 0.5 + radar_extraclip_maxs_x) + '0 1 0' * (radar_origin2d_y + radar_size2d_y * 0.5 + radar_extraclip_maxs_y), yinvert(mi_pictexcoord3), '1 1 1', bg);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x - radar_size2d_x * 0.5 + radar_extraclip_mins_x) + '0 1 0' * (radar_origin2d_y + radar_size2d_y * 0.5 + radar_extraclip_maxs_y), yinvert(mi_pictexcoord0), '1 1 1', bg);\r
+               R_BeginPolygon("gfx/hud/bg_radar.tga", 0);\r
+               R_PolygonVertex(pos1, yinvert('0 1 0'), '1 1 1', bg);\r
+               R_PolygonVertex(pos2, yinvert('1 1 0'), '1 1 1', bg);\r
+               R_PolygonVertex(pos3, yinvert('1 0 0'), '1 1 1', bg);\r
+               R_PolygonVertex(pos4, yinvert('0 0 0'), '1 1 1', bg);\r
                R_EndPolygon();\r
        }\r
 \r
        if(ca > 0 && minimapname != "")\r
        {\r
-               cgc = '1 1 1' * ca;\r
+               col = '1 1 1' * ca;\r
                R_BeginPolygon(minimapname, DRAWFLAG_SCREEN | DRAWFLAG_MIPMAP);\r
                if(v_flipped)\r
                {\r
-                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord3), yinvert(mi_pictexcoord3), cgc, 1);\r
-                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord2), yinvert(mi_pictexcoord2), cgc, 1);\r
-                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord1), yinvert(mi_pictexcoord1), cgc, 1);\r
-                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord0), yinvert(mi_pictexcoord0), cgc, 1);\r
+                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord3), yinvert(mi_pictexcoord3), col, 1);\r
+                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord2), yinvert(mi_pictexcoord2), col, 1);\r
+                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord1), yinvert(mi_pictexcoord1), col, 1);\r
+                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord0), yinvert(mi_pictexcoord0), col, 1);\r
                }\r
                else\r
                {\r
-                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord0), yinvert(mi_pictexcoord0), cgc, 1);\r
-                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord1), yinvert(mi_pictexcoord1), cgc, 1);\r
-                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord2), yinvert(mi_pictexcoord2), cgc, 1);\r
-                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord3), yinvert(mi_pictexcoord3), cgc, 1);\r
+                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord0), yinvert(mi_pictexcoord0), col, 1);\r
+                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord1), yinvert(mi_pictexcoord1), col, 1);\r
+                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord2), yinvert(mi_pictexcoord2), col, 1);\r
+                       R_PolygonVertex(radar_texcoord_to_2dcoord(mi_pictexcoord3), yinvert(mi_pictexcoord3), col, 1);\r
                }\r
                R_EndPolygon();\r
        }\r
+}\r
 \r
-       if(fg > 0)\r
-       {\r
-               R_BeginPolygon("gfx/hud/fg_radar.tga", DRAWFLAG_NORMAL);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x - radar_size2d_x * 0.5 + radar_extraclip_mins_x) + '0 1 0' * (radar_origin2d_y - radar_size2d_y * 0.5 + radar_extraclip_mins_y), yinvert(mi_pictexcoord1), '1 1 1', fg);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x + radar_size2d_x * 0.5 + radar_extraclip_maxs_x) + '0 1 0' * (radar_origin2d_y - radar_size2d_y * 0.5 + radar_extraclip_mins_y), yinvert(mi_pictexcoord2), '1 1 1', fg);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x + radar_size2d_x * 0.5 + radar_extraclip_maxs_x) + '0 1 0' * (radar_origin2d_y + radar_size2d_y * 0.5 + radar_extraclip_maxs_y), yinvert(mi_pictexcoord3), '1 1 1', fg);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x - radar_size2d_x * 0.5 + radar_extraclip_mins_x) + '0 1 0' * (radar_origin2d_y + radar_size2d_y * 0.5 + radar_extraclip_maxs_y), yinvert(mi_pictexcoord0), '1 1 1', fg);\r
-               R_EndPolygon();\r
-       }\r
+void draw_radar_foreground(float fg)\r
+{\r
        vector rgb;\r
+       vector pos1, pos2, pos3, pos4;\r
+       pos1 = '1 0 0' * (radar_origin2d_x - radar_size2d_x * 0.5 + radar_extraclip_mins_x) + '0 1 0' * (radar_origin2d_y - radar_size2d_y * 0.5 + radar_extraclip_mins_y);\r
+       pos2 = '1 0 0' * (radar_origin2d_x + radar_size2d_x * 0.5 + radar_extraclip_maxs_x) + '0 1 0' * (radar_origin2d_y - radar_size2d_y * 0.5 + radar_extraclip_mins_y);\r
+       pos3 = '1 0 0' * (radar_origin2d_x + radar_size2d_x * 0.5 + radar_extraclip_maxs_x) + '0 1 0' * (radar_origin2d_y + radar_size2d_y * 0.5 + radar_extraclip_maxs_y);\r
+       pos4 = '1 0 0' * (radar_origin2d_x - radar_size2d_x * 0.5 + radar_extraclip_mins_x) + '0 1 0' * (radar_origin2d_y + radar_size2d_y * 0.5 + radar_extraclip_maxs_y);\r
        rgb = GetTeamRGB(GetPlayerColor(player_localentnum - 1));\r
+\r
        if(fg > 0)\r
        {\r
-               R_BeginPolygon("gfx/hud/fg_radar_team.tga", DRAWFLAG_NORMAL);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x - radar_size2d_x * 0.5 + radar_extraclip_mins_x) + '0 1 0' * (radar_origin2d_y - radar_size2d_y * 0.5 + radar_extraclip_mins_y), yinvert(mi_pictexcoord1), rgb, fg);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x + radar_size2d_x * 0.5 + radar_extraclip_maxs_x) + '0 1 0' * (radar_origin2d_y - radar_size2d_y * 0.5 + radar_extraclip_mins_y), yinvert(mi_pictexcoord2), rgb, fg);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x + radar_size2d_x * 0.5 + radar_extraclip_maxs_x) + '0 1 0' * (radar_origin2d_y + radar_size2d_y * 0.5 + radar_extraclip_maxs_y), yinvert(mi_pictexcoord3), rgb, fg);\r
-               R_PolygonVertex('1 0 0' * (radar_origin2d_x - radar_size2d_x * 0.5 + radar_extraclip_mins_x) + '0 1 0' * (radar_origin2d_y + radar_size2d_y * 0.5 + radar_extraclip_maxs_y), yinvert(mi_pictexcoord0), rgb, fg);\r
+               R_BeginPolygon("gfx/hud/fg_radar.tga", 0);\r
+               R_PolygonVertex(pos1, yinvert('0 1 0'), '1 1 1', fg);\r
+               R_PolygonVertex(pos2, yinvert('1 1 0'), '1 1 1', fg);\r
+               R_PolygonVertex(pos3, yinvert('1 0 0'), '1 1 1', fg);\r
+               R_PolygonVertex(pos4, yinvert('0 0 0'), '1 1 1', fg);\r
+               R_EndPolygon();\r
+\r
+               R_BeginPolygon("gfx/hud/fg_radar_team.tga", 0);\r
+               R_PolygonVertex(pos1, yinvert('0 1 0'), rgb, fg);\r
+               R_PolygonVertex(pos2, yinvert('1 1 0'), rgb, fg);\r
+               R_PolygonVertex(pos3, yinvert('1 0 0'), rgb, fg);\r
+               R_PolygonVertex(pos4, yinvert('0 0 0'), rgb, fg);\r
                R_EndPolygon();\r
        }\r
 }\r
@@ -208,7 +221,7 @@ float cl_radar_zoommode;
 void radar_loadcvars()\r
 {\r
        v_flipped = cvar("v_flipped");\r
-       if(ons_showmap)\r
+       if(showmap)\r
        {\r
                cl_radar_scale = 42; // dummy, not used (see zoommode)\r
                cl_radar_content_alpha = 1 * (1 - cvar("_menu_alpha"));\r
@@ -250,12 +263,12 @@ void radar_loadcvars()
 \r
 void() radar_view =\r
 {\r
-       local float color1; // color already declared as a global in hud.qc\r
+       local float col; // color already declared as a global in hud.qc\r
        local entity tm;\r
        float scale2d, normalsize, bigsize;\r
        float f;\r
 \r
-       if(minimapname == "" && !ons_showmap)\r
+       if(minimapname == "" && !showmap)\r
                return;\r
 \r
        radar_loadcvars();\r
@@ -352,9 +365,9 @@ void() radar_view =
                radar_size2d_y + radar_extraclip_maxs_y - radar_extraclip_mins_y\r
        );\r
 \r
-       draw_radar_background(cl_radar_content_alpha, cl_radar_background_alpha, cl_radar_foreground_alpha);\r
+       draw_radar_background(cl_radar_content_alpha, cl_radar_background_alpha);\r
 \r
-       if(ons_showmap)\r
+       if(showmap)\r
        {\r
                drawresetcliparea();\r
                drawsetcliparea(\r
@@ -371,13 +384,18 @@ void() radar_view =
                draw_radar_icon(tm.origin, tm.radar_icon, tm, tm.radar_color, tm.alpha * sbar_alpha_fg);\r
        for(tm = world; (tm = find(tm, classname, "entcs_receiver")); )\r
        {\r
-               color1 = GetPlayerColor(tm.sv_entnum);\r
-               //if(color == COLOR_SPECTATOR || color == color1)\r
-                       draw_radar_player(tm.origin, tm.angles, GetTeamRGB(color1));\r
+               col = GetPlayerColor(tm.sv_entnum);\r
+               if(cvar("cl_radar_players") > 1 || (cvar("cl_radar_players") > 0 && teamplay && GetPlayerColor(player_localentnum - 1) == col))\r
+               if not(tm.sv_entnum == spectatee_status - 1) // don't show the player we are spectating, since we also draw ourself separately\r
+               if not(tm.sv_entnum == getstati(STAT_VORE_EATEN) - 1) // don't show the player who ate us, since we also draw ourself separately\r
+               if not(tm.eaten) // don't show prey on the radar\r
+                       draw_radar_player(tm.origin, tm.angles, GetTeamRGB(col));\r
        }\r
        draw_radar_player(view_origin, view_angles, '1 1 1');\r
 \r
        drawresetcliparea();\r
+\r
+       draw_radar_foreground(cl_radar_foreground_alpha);\r
 };\r
 \r
 \r