]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/gamemode_tdm.qc
Merge branch 'master' into Mario/vaporizer_damage
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / gamemode_tdm.qc
index 59f0927e80c98e6d6307772a1425623a7ac7f626..fda2161a6b99f48cefaf9e5d6de25af927a6ecdd 100644 (file)
@@ -1,3 +1,7 @@
+#include "../_all.qh"
+
+#include "gamemode.qh"
+
 /*QUAKED spawnfunc_tdm_team (0 .5 .8) (-16 -16 -24) (16 16 32)
 Team declaration for TDM gameplay, this allows you to decide what team names and control point models are used in your map.
 Note: If you use spawnfunc_tdm_team entities you must define at least 2!  However, unlike domination, you don't need to make a blank one too.
@@ -6,7 +10,7 @@ Keys:
 "cnt" Scoreboard color of the team (for example 4 is red and 13 is blue)... */
 void spawnfunc_tdm_team()
 {
-       if(!g_tdm) { remove(self); return; }
+       if(!g_tdm || !self.cnt) { remove(self); return; }
 
        self.classname = "tdm_team";
        self.team = self.cnt + 1;
@@ -32,9 +36,9 @@ void tdm_DelayedInit()
        // if no teams are found, spawn defaults
        if(find(world, classname, "tdm_team") == world)
        {
-               print("No ""tdm_team"" entities found on this map, creating them anyway.\n");
+               LOG_INFO("No ""tdm_team"" entities found on this map, creating them anyway.\n");
 
-               float numteams = min(4, autocvar_g_tdm_teams_override);
+               int numteams = min(4, autocvar_g_tdm_teams_override);
 
                if(numteams < 2) { numteams = autocvar_g_tdm_teams; }
                numteams = bound(2, numteams, 4);
@@ -48,12 +52,19 @@ void tdm_DelayedInit()
 MUTATOR_HOOKFUNCTION(tdm_GetTeamCount)
 {
        ret_string = "tdm_team";
-       return TRUE;
+       return true;
+}
+
+MUTATOR_HOOKFUNCTION(tdm_CountFrags)
+{
+       // announce remaining frags
+       return true;
 }
 
 MUTATOR_DEFINITION(gamemode_tdm)
 {
        MUTATOR_HOOK(GetTeamCount, tdm_GetTeamCount, CBC_ORDER_ANY);
+       MUTATOR_HOOK(Scores_CountFragsRemaining, tdm_CountFrags, CBC_ORDER_ANY);
 
        MUTATOR_ONADD
        {
@@ -71,7 +82,7 @@ MUTATOR_DEFINITION(gamemode_tdm)
 
        MUTATOR_ONREMOVE
        {
-               print("This is a game type and it cannot be removed at runtime.");
+               LOG_INFO("This is a game type and it cannot be removed at runtime.");
                return -1;
        }