]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/g_damage.qc
rename teamplay_default to teamplay_mode, stop using the "teamplay" cvar (more cleanu...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / g_damage.qc
index 387514be45194dabb3d9337de29da5a30f45f295..8998c6afbc16c9771c894a30f776e35e8a6bc3b9 100644 (file)
@@ -120,12 +120,14 @@ void GiveFrags (entity attacker, entity targ, float f)
                {
                        // teamkill
                        PlayerScore_Add(attacker, SP_KILLS, -1); // or maybe add a teamkills field?
+                       PlayerStats_Event(attacker, PLAYERSTATS_KILLS, -1);
                }
        }
        else
        {
                // regular frag
                PlayerScore_Add(attacker, SP_KILLS, 1);
+               PlayerStats_Event(attacker, PLAYERSTATS_KILLS, 1);
        }
 
        PlayerScore_Add(targ, SP_DEATHS, 1);
@@ -535,15 +537,15 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
                                damage = 0;
                                force = '0 0 0';
                        }
-                       else if(attacker.team == targ.team)
+                       else if(teams_matter && attacker.team == targ.team)
                        {
-                               if(teamplay == 1)
+                               if(autocvar_teamplay_mode == 1)
                                        damage = 0;
                                else if(attacker != targ)
                                {
-                                       if(teamplay == 3)
+                                       if(autocvar_teamplay_mode == 3)
                                                damage = 0;
-                                       else if(teamplay == 4)
+                                       else if(autocvar_teamplay_mode == 4)
                                        {
                                                if(targ.classname == "player" && targ.deadflag == DEAD_NO)
                                                {
@@ -623,7 +625,17 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
                        force = force * g_weaponforcefactor;
                        mirrorforce *= g_weaponforcefactor;
                }
-
+               
+               // should this be changed at all? If so, in what way?
+               frag_attacker = attacker;
+               frag_target = targ;
+               frag_damage = damage;
+               frag_force = force;
+        frag_deathtype = deathtype;
+               MUTATOR_CALLHOOK(PlayerDamage_Calculate);
+               damage = frag_damage;
+               force = frag_force;
+               
                // apply strength multiplier
                if ((attacker.items & IT_STRENGTH) && !g_minstagib)
                {
@@ -865,14 +877,7 @@ float RadiusDamage (entity inflictor, entity attacker, float coredamage, float e
 
        if(RadiusDamage_running)
        {
-               string save;
-               print("RadiusDamage called recursively!\n");
-               print("Expect stuff to go HORRIBLY wrong.\n");
-               print("Causing a stack trace...\n");
-               save = cvar_string("prvm_backtraceforwarnings");
-               cvar_set("prvm_backtraceforwarnings", "1");
-               fclose(-1); // calls VM_Warning
-               cvar_set("prvm_backtraceforwarnings", save);
+               backtrace("RadiusDamage called recursively! Expect stuff to go HORRIBLY wrong.");
                return 0;
        }