]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/g_damage.qc
Merge branch 'TimePath/entitydebugger' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / g_damage.qc
index b005da47a24e48e7a5b70eaa7cd143273eb03f30..efd59e940ba9dbf2a38064aacbba42cd9863a2d3 100644 (file)
@@ -2,7 +2,7 @@
 
 #include "bot/bot.qh"
 #include "g_hook.qh"
-#include "mutators/mutators_include.qh"
+#include "mutators/all.qh"
 #include "scores.qh"
 #include "spawnpoints.qh"
 #include "t_items.qh"
@@ -49,7 +49,8 @@ void Damage_DamageInfo(vector org, float coredamage, float edgedamage, float rad
        if(!sound_allowed(MSG_BROADCAST, dmgowner))
                deathtype |= 0x8000;
 
-       e = spawn();
+       e = new(damageinfo);
+       make_pure(e);
        setorigin(e, org);
        e.projectiledeathtype = deathtype;
        e.dmg = coredamage;
@@ -114,8 +115,7 @@ void GiveFrags (entity attacker, entity targ, float f, int deathtype)
                {
                        if(!GiveFrags_randomweapons)
                        {
-                               GiveFrags_randomweapons = spawn();
-                               GiveFrags_randomweapons.classname = "GiveFrags_randomweapons";
+                               GiveFrags_randomweapons = new(GiveFrags_randomweapons);
                        }
 
                        if(warmup_stage)
@@ -204,7 +204,7 @@ void Obituary_SpecialDeath(
 {
        if(DEATH_ISSPECIAL(deathtype))
        {
-               entity deathent = Deathtypes[deathtype - DT_FIRST];
+               entity deathent = Deathtypes_from(deathtype - DT_FIRST);
                if (!deathent) { backtrace("Obituary_SpecialDeath: Could not find deathtype entity!\n"); return; }
 
                if(murder)
@@ -563,10 +563,8 @@ void Freeze (entity targ, float freeze_time, float frozen_type, float show_waypo
        targ.revive_speed = freeze_time;
        self.bot_attack = false;
 
-       entity ice, head;
-       ice = spawn();
+       entity ice = new(ice);
        ice.owner = targ;
-       ice.classname = "ice";
        ice.scale = targ.scale;
        ice.think = Ice_Think;
        ice.nextthink = time;
@@ -582,6 +580,7 @@ void Freeze (entity targ, float freeze_time, float frozen_type, float show_waypo
 
        RemoveGrapplingHook(targ);
 
+       entity head;
        FOR_EACH_PLAYER(head)
        if(head.hook.aiment == targ)
                RemoveGrapplingHook(head);
@@ -626,7 +625,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d
        mirrordamage = 0;
        mirrorforce = 0;
 
-       if (gameover || targ.killcount == -666)
+       if (gameover || targ.killcount == FRAGS_SPECTATOR)
                return;
 
        setself(targ);
@@ -748,22 +747,22 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d
                if(targ.frozen)
                if(deathtype != DEATH_HURTTRIGGER.m_id && deathtype != DEATH_TEAMCHANGE.m_id && deathtype != DEATH_AUTOTEAMCHANGE.m_id)
                {
-                       if(autocvar_g_freezetag_revive_falldamage > 0)
+                       if(autocvar_g_frozen_revive_falldamage > 0)
                        if(deathtype == DEATH_FALL.m_id)
-                       if(damage >= autocvar_g_freezetag_revive_falldamage)
+                       if(damage >= autocvar_g_frozen_revive_falldamage)
                        {
                                Unfreeze(targ);
-                               targ.health = autocvar_g_freezetag_revive_falldamage_health;
+                               targ.health = autocvar_g_frozen_revive_falldamage_health;
                                Send_Effect(EFFECT_ICEORGLASS, targ.origin, '0 0 0', 3);
                                Send_Notification(NOTIF_ALL, world, MSG_INFO, INFO_FREEZETAG_REVIVED_FALL, targ.netname);
                                Send_Notification(NOTIF_ONE, targ, MSG_CENTER, CENTER_FREEZETAG_REVIVE_SELF);
                        }
 
                        damage = 0;
-                       force *= autocvar_g_freezetag_frozen_force;
+                       force *= autocvar_g_frozen_force;
                }
 
-               if(targ.frozen && deathtype == DEATH_HURTTRIGGER.m_id && !autocvar_g_freezetag_frozen_damage_trigger)
+               if(targ.frozen && deathtype == DEATH_HURTTRIGGER.m_id && !autocvar_g_frozen_damage_trigger)
                {
                        Send_Effect(EFFECT_TELEPORT, targ.origin, '0 0 0', 1);
 
@@ -889,9 +888,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d
                vector farce = damage_explosion_calcpush(self.damageforcescale * force, self.velocity, autocvar_g_balance_damagepush_speedfactor);
                if(self.movetype == MOVETYPE_PHYSICS)
                {
-                       entity farcent;
-                       farcent = spawn();
-                       farcent.classname = "farce";
+                       entity farcent = new(farce);
                        farcent.enemy = self;
                        farcent.movedir = farce * 10;
                        if(self.mass)
@@ -1140,8 +1137,7 @@ float Fire_AddDamage(entity e, entity o, float d, float t, float dt)
                if(!e.fire_burner)
                {
                        // print("adding a fire burner to ", e.classname, "\n");
-                       e.fire_burner = spawn();
-                       e.fire_burner.classname = "fireburner";
+                       e.fire_burner = new(fireburner);
                        e.fire_burner.think = fireburner_think;
                        e.fire_burner.nextthink = time;
                        e.fire_burner.owner = e;