]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Showing alive players in CA/FT in scores panel instead
authorz411 <z411@omaera.org>
Sat, 7 Nov 2020 21:48:17 +0000 (18:48 -0300)
committerz411 <z411@omaera.org>
Sat, 7 Nov 2020 21:48:17 +0000 (18:48 -0300)
qcsrc/client/autocvars.qh
qcsrc/client/hud/panel/modicons.qc
qcsrc/client/hud/panel/score.qc
qcsrc/common/gamemodes/gamemode/clanarena/cl_clanarena.qc
qcsrc/common/gamemodes/gamemode/clanarena/cl_clanarena.qh
qcsrc/common/gamemodes/gamemode/clanarena/clanarena.qh
qcsrc/common/gamemodes/gamemode/freezetag/cl_freezetag.qc
qcsrc/common/gamemodes/gamemode/freezetag/cl_freezetag.qh
qcsrc/common/gamemodes/gamemode/freezetag/freezetag.qh
qcsrc/common/mapinfo.qh

index 2568cd4b62996088dbe4747b63cac5b571db35f8..2dc4686b681eb196b43fe5b685c6a96bde4837e7 100644 (file)
@@ -271,8 +271,8 @@ bool autocvar_hud_panel_infomessages;
 bool autocvar_hud_panel_infomessages_flip;
 float autocvar_hud_panel_mapvote_highlight_border = 1;
 bool autocvar_hud_panel_modicons;
-int autocvar_hud_panel_modicons_ca_layout;
-int autocvar_hud_panel_modicons_freezetag_layout;
+//int autocvar_hud_panel_modicons_ca_layout;
+//int autocvar_hud_panel_modicons_freezetag_layout;
 bool autocvar_hud_panel_notify;
 float autocvar_hud_panel_notify_fadetime;
 float autocvar_hud_panel_notify_flip;
index ff8f5bf654c96187571f1db3a6c6eb643ecfafe9..29c4bfcaafacae90126d5b7f0d79d938e28cb1fc 100644 (file)
@@ -32,8 +32,6 @@ void HUD_ModIcons()
                if(!HUD_ModIcons_GameType) return;
        }
        
-       if(spectatee_status && teamplay) return; // z411
-       
        if(mod_active || autocvar__hud_configure)
                mod_alpha = min(mod_alpha + frametime * 2, 1);
        else
index 4dbb69ceee2bf2ca6e07a23d91a2ba11ef644be1..b4d6095e8c26af0e83b274d3a3c7692ac331f633 100644 (file)
@@ -100,7 +100,7 @@ void HUD_Score_Rankings(vector pos, vector mySize, entity me)
        }*/
        
        
-       // Basic team stats
+       // z411 Basic team stats
        if (team_count)
        {
                i = 0;
@@ -123,10 +123,34 @@ void HUD_Score_Rankings(vector pos, vector mySize, entity me)
                                drawfill(pos, eX * mySize.x + eY * fontsize.y, rgb, highlight_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
                        }
                        
-                       s = Team_CustomName(tm.team);
-                       //s = textShortenToWidth(Team_ColorName(tm.team), name_size, fontsize, stringwidth_colors);
                        score_color = Team_ColorRGB(tm.team) * 0.8;
                        
+                       // TODO secondary scores test, remove
+                       if(gametype.m_modscores)
+                       {
+                               string icon;
+                               if(tm.team == NUM_TEAM_1)
+                                       icon = "gfx/hud/luma/player_red";
+                               else if(tm.team == NUM_TEAM_2)
+                                       icon = "gfx/hud/luma/player_blue";
+                               else
+                                       icon = "gfx/hud/luma/player_neutral";
+                               
+                               vector icon_sz = draw_getimagesize(icon);
+                               vector icon_sz_new = vec2(fontsize.y*(icon_sz.x/icon_sz.y), fontsize.y);
+                               
+                               s = ftos(gametype.m_modscores(tm.team));
+                               float s_width = stringwidth(s, false, fontsize) + icon_sz_new.x;
+                               
+                               //drawfill(pos, eX * s_width + eY * fontsize.y, score_color, panel_fg_alpha * 0.3, DRAWFLAG_NORMAL);
+                               drawpic(pos, icon, icon_sz_new, '1 1 1', panel_fg_alpha * 0.7, DRAWFLAG_NORMAL);
+                               drawstring(pos + eX * icon_sz_new.x, s, fontsize, '1 1 1', panel_fg_alpha * 0.7, DRAWFLAG_NORMAL);
+                               
+                               s = textShortenToWidth(Team_CustomName(tm.team), name_size - s_width, fontsize, stringwidth_colors);
+                       } else
+                               s = textShortenToWidth(Team_CustomName(tm.team), name_size, fontsize, stringwidth_colors);
+                       // TODO end
+                       
                        drawcolorcodedstring(pos + eX * (name_size - stringwidth(s, true, fontsize)), s, fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
                        
                        draw_beginBoldFont();
index 65f21fdd24c388eba082130f86c999aeb4ca23fd..771f4ebcdf7a98dc37e26dd312d969c08e9ee9f4 100644 (file)
@@ -1,6 +1,6 @@
 #include "cl_clanarena.qh"
 
-#include <client/draw.qh>
+/*#include <client/draw.qh>
 
 void HUD_Mod_CA_Export(int fh)
 {
@@ -79,3 +79,18 @@ void HUD_Mod_CA(vector myPos, vector mySize)
 
        HUD_Mod_CA_Draw(myPos, mySize, autocvar_hud_panel_modicons_ca_layout);
 }
+*/
+// Clan Arena and Freeze Tag scores
+int HUD_Scores_CA(int team)
+{
+       switch(team)
+       {
+               case NUM_TEAM_1: return STAT(REDALIVE);
+               case NUM_TEAM_2: return STAT(BLUEALIVE);
+               case NUM_TEAM_3: return STAT(YELLOWALIVE);
+               default:
+               case NUM_TEAM_4: return STAT(PINKALIVE);
+       }
+       
+       return 0;
+}
\ No newline at end of file
index 7ccd5bbb2fa4a7cb86f43f8eec14643680310471..6e7027de748f63dd45ef8d4f7569a154428612ce 100644 (file)
@@ -1,5 +1,6 @@
 #pragma once
 
-void HUD_Mod_CA(vector myPos, vector mySize);
-void HUD_Mod_CA_Draw(vector myPos, vector mySize, int layout);
-void HUD_Mod_CA_Export(int fh);
+//void HUD_Mod_CA(vector myPos, vector mySize);
+//void HUD_Mod_CA_Draw(vector myPos, vector mySize, int layout);
+//void HUD_Mod_CA_Export(int fh);
+int HUD_Scores_CA(int team);
index 3b3dace64e30be13fad4c5ded3be8ba2b5a264ad..27846b3ca4df7e10d831b27aebfe807f122985a1 100644 (file)
@@ -3,8 +3,9 @@
 #include <common/mapinfo.qh>
 
 #ifdef CSQC
-void HUD_Mod_CA(vector pos, vector mySize);
-void HUD_Mod_CA_Export(int fh);
+//void HUD_Mod_CA(vector pos, vector mySize);
+//void HUD_Mod_CA_Export(int fh);
+int HUD_Scores_CA(int team);
 #endif
 CLASS(ClanArena, Gametype)
     INIT(ClanArena)
@@ -40,8 +41,9 @@ CLASS(ClanArena, Gametype)
         returns(menu, _("Frag limit:"),      5,  100,  5, "fraglimit_override",        "g_ca_teams_override",          _("The amount of frags needed before the match will end"));
     }
 #ifdef CSQC
-    ATTRIB(ClanArena, m_modicons, void(vector pos, vector mySize), HUD_Mod_CA);
-    ATTRIB(ClanArena, m_modicons_export, void(int fh), HUD_Mod_CA_Export);
+    //ATTRIB(ClanArena, m_modicons, void(vector pos, vector mySize), HUD_Mod_CA);
+    //ATTRIB(ClanArena, m_modicons_export, void(int fh), HUD_Mod_CA_Export);
+    ATTRIB(ClanArena, m_modscores, int(int team), HUD_Scores_CA);
 #endif
     ATTRIB(ClanArena, m_legacydefaults, string, "10 20 0");
 ENDCLASS(ClanArena)
index df4931a37133793b69a021ed28d66d106b70beee..85dbd463424fee4a177abee36088c62da47abb65 100644 (file)
@@ -1,8 +1,8 @@
 #include "cl_freezetag.qh"
 
-#include <common/gamemodes/gamemode/clanarena/cl_clanarena.qh>
+//#include <common/gamemodes/gamemode/clanarena/cl_clanarena.qh>
 
-void HUD_Mod_FreezeTag_Export(int fh)
+/*void HUD_Mod_FreezeTag_Export(int fh)
 {
        HUD_Write_Cvar("hud_panel_modicons_freezetag_layout");
 }
@@ -12,4 +12,5 @@ void HUD_Mod_FreezeTag(vector myPos, vector mySize)
        mod_active = 1; // required in each mod function that always shows something
 
        HUD_Mod_CA_Draw(myPos, mySize, autocvar_hud_panel_modicons_freezetag_layout);
-}
+}*/
+
index 0d2f4407bebb46174bcc5f22d8859f429a6849f0..b464e50573eb77b93531bf01b05d2dbaad504fce 100644 (file)
@@ -1,3 +1,3 @@
 #pragma once
 
-void HUD_Mod_FreezeTag_Export(int fh);
+//void HUD_Mod_FreezeTag_Export(int fh);
index 61d3b91e9416c0653b4d4ebe04a60456dee064b6..f9270bdecddf6a99e6b61a8f51f2fc4ec990f8ea 100644 (file)
@@ -5,10 +5,10 @@
        #include <common/gamemodes/gamemode/clanarena/cl_clanarena.qh>
 #endif
 
-#ifdef CSQC
-void HUD_Mod_FreezeTag(vector myPos, vector mySize);
-void HUD_Mod_FreezeTag_Export(int fh);
-#endif
+//#ifdef CSQC
+//void HUD_Mod_FreezeTag(vector myPos, vector mySize);
+//void HUD_Mod_FreezeTag_Export(int fh);
+//#endif
 CLASS(FreezeTag, Gametype)
     INIT(FreezeTag)
     {
@@ -43,8 +43,9 @@ CLASS(FreezeTag, Gametype)
         returns(menu, _("Frag limit:"),      5,  100,  5, "fraglimit_override",        "g_freezetag_teams_override",   _("The amount of frags needed before the match will end"));
     }
 #ifdef CSQC
-    ATTRIB(FreezeTag, m_modicons, void(vector pos, vector mySize), HUD_Mod_FreezeTag);
-    ATTRIB(FreezeTag, m_modicons_export, void(int fh), HUD_Mod_FreezeTag_Export);
+    //ATTRIB(FreezeTag, m_modicons, void(vector pos, vector mySize), HUD_Mod_FreezeTag);
+    //ATTRIB(FreezeTag, m_modicons_export, void(int fh), HUD_Mod_FreezeTag_Export);
+    ATTRIB(FreezeTag, m_modscores, int(int team), HUD_Scores_CA);
 #endif
     ATTRIB(FreezeTag, m_legacydefaults, string, "10 20 0");
 ENDCLASS(FreezeTag)
index 2d350b2fed3c1b26c46cab2e3c58bcb598ce1436..2f0fc1be093dd1c819023e5983caf93b98363981 100644 (file)
@@ -48,9 +48,10 @@ CLASS(Gametype, Object)
     /** game type priority in random selections */
     ATTRIB(Gametype, m_priority, int, 0);
 #ifdef CSQC
-    ATTRIB(Gametype, m_modicons, void(vector pos, vector mySize));
-    ATTRIB(Gametype, m_modicons_reset, void());
-    ATTRIB(Gametype, m_modicons_export, void(int fh));
+    //ATTRIB(Gametype, m_modicons, void(vector pos, vector mySize));
+    //ATTRIB(Gametype, m_modicons_reset, void());
+    //ATTRIB(Gametype, m_modicons_export, void(int fh));
+       ATTRIB(Gametype, m_modscores, int(int team));
 #endif
 
     /** DO NOT USE, this is compatibility for legacy maps! */