]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Re-wrote sv_fragmessage_information -- In preparation for new features to it.
authorSamual <samual@xonotic.org>
Mon, 3 Oct 2011 18:31:03 +0000 (14:31 -0400)
committerSamual <samual@xonotic.org>
Mon, 3 Oct 2011 18:31:03 +0000 (14:31 -0400)
qcsrc/server/g_damage.qc
qcsrc/server/miscfunctions.qc

index 994ee260baefb3384a4522de33f146b2d562bcdb..f49df6baefa4f557c150df5cf67d6aef6d985cd3 100644 (file)
@@ -221,6 +221,40 @@ void GiveFrags (entity attacker, entity targ, float f, float deathtype)
                UpdateFrags(attacker, f);
 }
 
+string Obituary_ExtraFragInfo(entity player) // Extra fragmessage information
+{
+       string health_output;
+       string ping_output;
+       string handicap_output;
+       string output;
+
+       // health/armor of attacker (person who killed you)
+       if(autocvar_sv_fragmessage_information_stats && (player.health >= 1))
+               health_output = strcat("^7(Health ^1", ftos(rint(player.health)), "^7 / Armor ^2", ftos(rint(player.armorvalue)), "^7)");
+               
+       // ping display
+       if(autocvar_sv_fragmessage_information_ping)
+               ping_output = ((clienttype(player) == CLIENTTYPE_BOT) ? "^2Bot" : strcat("Ping ", ((player.ping >= 150) ? "^1" : "^2"), ftos(player.ping), "ms"));
+               
+       // handicap display 
+       if(autocvar_sv_fragmessage_information_handicap) 
+       {
+               if(autocvar_sv_fragmessage_information_handicap == 2)   
+                       handicap_output = strcat(output, strcat("Handicap ^2", ((player.cvar_cl_handicap <= 1) ? "Off" : ftos(player.cvar_cl_handicap))));
+               else if(player.cvar_cl_handicap) // with _handicap 1, only show this if there actually is a handicap enabled.   
+                       handicap_output = strcat("Handicap ^2", ftos(player.cvar_cl_handicap));
+       }
+       
+       output = strcat(health_output, (health_output ? " ^7(" : ((ping_output || handicap_output) ? "^7(" : "")), 
+               ping_output, ((ping_output && handicap_output) ? "^7 / " : ""), 
+               handicap_output, ((ping_output || handicap_output) ? "^7)" : ""));
+       
+       // add new line to the beginning if there is a message
+       if(output) { output = strcat("\n", output); }
+               
+       return output;
+}
+
 string AppendItemcodes(string s, entity player)
 {
        float w;
@@ -368,11 +402,11 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype)
                                }
 
                                if((autocvar_sv_fragmessage_information_typefrag) && (targ.BUTTON_CHAT)) {
-                                       Send_CSQC_KillCenterprint(attacker, s, GetAdvancedDeathReports(targ), KILL_TYPEFRAG, MSG_KILL);
-                                       Send_CSQC_KillCenterprint(targ, a, GetAdvancedDeathReports(attacker), KILL_TYPEFRAGGED, MSG_KILL);
+                                       Send_CSQC_KillCenterprint(attacker, s, Obituary_ExtraFragInfo(targ), KILL_TYPEFRAG, MSG_KILL);
+                                       Send_CSQC_KillCenterprint(targ, a, Obituary_ExtraFragInfo(attacker), KILL_TYPEFRAGGED, MSG_KILL);
                                } else {
-                                       Send_CSQC_KillCenterprint(attacker, s, GetAdvancedDeathReports(targ), KILL_FRAG, MSG_KILL);
-                                       Send_CSQC_KillCenterprint(targ, a, GetAdvancedDeathReports(attacker), KILL_FRAGGED, MSG_KILL);
+                                       Send_CSQC_KillCenterprint(attacker, s, Obituary_ExtraFragInfo(targ), KILL_FRAG, MSG_KILL);
+                                       Send_CSQC_KillCenterprint(targ, a, Obituary_ExtraFragInfo(attacker), KILL_FRAGGED, MSG_KILL);
                                }
 
                                attacker.taunt_soundtime = time + 1;
index b0b1aa3e0dcb3afd67e17a60c685b59d32cb05da..6e12cded5619111440cd9e8966662f743dcc6f13 100644 (file)
@@ -79,53 +79,6 @@ string strcat1(string s) = #115; // FRIK_FILE
 float logfile_open;
 float logfile;
 
-string GetAdvancedDeathReports(entity enPlayer) // Extra fragmessage information
-{
-       float nPlayerHealth = rint(enPlayer.health);
-       float nPlayerArmor = rint(enPlayer.armorvalue);
-       float nPlayerHandicap = enPlayer.cvar_cl_handicap;
-       float nPlayerPing = rint(enPlayer.ping);
-       string strPlayerPingColor;
-       string strMessage;
-       
-       if(nPlayerPing >= 150)
-               strPlayerPingColor = "^1";
-       else
-               strPlayerPingColor = "^2";
-
-       if((autocvar_sv_fragmessage_information_stats) && (enPlayer.health >= 1))
-               strMessage = strcat(strMessage, "^7(Health ^1", ftos(nPlayerHealth), "^7 / Armor ^2", ftos(nPlayerArmor), "^7)");
-
-       if(autocvar_sv_fragmessage_information_ping) {
-               if(clienttype(enPlayer) == CLIENTTYPE_BOT) // Bots have no ping
-                       strMessage = strcat(strMessage, " ^7(^2Bot");
-               else
-                       strMessage = strcat(strMessage, " ^7(Ping ", strPlayerPingColor, ftos(nPlayerPing), "ms");
-               if(autocvar_sv_fragmessage_information_handicap)
-                       if(autocvar_sv_fragmessage_information_handicap == 2)
-                               if(nPlayerHandicap <= 1)
-                                       strMessage = strcat(strMessage, "^7 / Handicap ^2Off^7)");
-                               else
-                                       strMessage = strcat(strMessage, "^7 / Handicap ^2", ftos(nPlayerHandicap), "^7)");
-                       else if not(nPlayerHandicap <= 1)
-                               strMessage = strcat(strMessage, "^7 / Handicap ^2", ftos(nPlayerHandicap), "^7)");
-               else
-                       strMessage = strcat(strMessage, "^7)");
-       } else if(autocvar_sv_fragmessage_information_handicap) {
-               if(autocvar_sv_fragmessage_information_handicap == 2)
-                       if(nPlayerHandicap <= 1)
-                               strMessage = strcat(strMessage, "^7(Handicap ^2Off^7)");
-                       else
-                               strMessage = strcat(strMessage, "^7(Handicap ^2", ftos(nPlayerHandicap), "^7)");
-               else if(nPlayerHandicap > 1)
-                       strMessage = strcat(strMessage, "^7(Handicap ^2", ftos(nPlayerHandicap), "^7)");
-       }
-       
-       if(strMessage) // add new line to the beginning if there is a message
-               strMessage = strcat("\n", strMessage);
-               
-       return strMessage;
-}
 void bcenterprint(string s)
 {
     // TODO replace by MSG_ALL (would show it to spectators too, though)?