]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/turrets/sv_turrets.qc
Transifex autosync
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / turrets / sv_turrets.qc
index 1b5e7cdb84ed9e098cd0f0dfff71931bbbb48ec0..4c7ce5ab418a7bb6567ee2b6bcaeef2da5fc5f50 100644 (file)
@@ -304,6 +304,8 @@ void turret_respawn(entity this)
 
        Turret tur = get_turretinfo(this.m_id);
        tur.tr_setup(tur, this);
+
+       setorigin(this, this.origin); // make sure it's linked to the area grid
 }
 
 
@@ -693,7 +695,8 @@ float turret_validate_target(entity e_turret, entity e_target, float validate_fl
        if(!e_target)
                return -2;
 
-       if(e_target.owner == e_turret)
+       // Don't attack against owner
+       if(e_target.owner == e_turret || e_target == e_turret.realowner)
                return -0.5;
 
        if(!checkpvs(e_target.origin, e_turret))
@@ -1245,9 +1248,9 @@ void turret_initparams(entity tur)
        #undef TRY
 }
 
-bool turret_closetotarget(entity this, vector targ)
+bool turret_closetotarget(entity this, vector targ, float range)
 {
-       vector path_extra_size = '64 64 64';
+       vector path_extra_size = '1 1 1' * range;
        return boxesoverlap(targ - path_extra_size, targ + path_extra_size, this.absmin - path_extra_size, this.absmax + path_extra_size);
 }
 
@@ -1296,7 +1299,7 @@ bool turret_initialize(entity this, Turret tur)
        }
 
        if(!(this.spawnflags & TSF_SUSPENDED))
-               droptofloor(this);
+               DropToFloor_QC_DelayedInit(this);
 
        this.netname = tur.netname;
        load_unit_settings(this, 0);