]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/effects/all.qc
Merge branch 'martin-t/units' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / effects / all.qc
index bc739192245ce8beadc88a30fec8a04d3811bc19..af41054e31c1c40c462ce041a2cc540fa1c570be 100644 (file)
@@ -1,7 +1,8 @@
 #include "all.qh"
 
-REGISTER_NET_TEMP(net_effect, bool isNew)
+REGISTER_NET_TEMP(net_effect)
 #ifdef CSQC
+NET_HANDLE(net_effect, bool isNew)
 {
        int net_name = (Effects_COUNT >= 255) ? ReadShort() : ReadByte();
 
@@ -27,9 +28,10 @@ REGISTER_NET_TEMP(net_effect, bool isNew)
                eff_cnt = ReadByte();
 
        if(eff_trail)
-               WarpZone_TrailParticles(world, particleeffectnum(eff), v, vel);
+               WarpZone_TrailParticles(NULL, particleeffectnum(eff), v, vel);
        else
                pointparticles(eff, v, vel, eff_cnt);
+       return true;
 }
 #endif
 
@@ -64,8 +66,7 @@ void Send_Effect(entity eff, vector eff_loc, vector eff_vel, int eff_cnt)
 {
        if(!eff) { return; }
        if(!eff.eent_eff_trail && !eff_cnt) { return; } // effect has no count!
-       entity net_eff = new(net_effect);
-       make_pure(net_eff);
+       entity net_eff = new_pure(net_effect);
        net_eff.owner = eff;
        //net_eff.eent_broadcast = broadcast;
        net_eff.m_id = eff.m_id;
@@ -74,18 +75,22 @@ void Send_Effect(entity eff, vector eff_loc, vector eff_vel, int eff_cnt)
        net_eff.eent_net_count = eff_cnt;
        net_eff.eent_eff_trail = eff.eent_eff_trail;
 
-       entity e; FOR_EACH_REALCLIENT(e) Net_Write_Effect(net_eff, e, 0);
-       remove(net_eff);
+       FOREACH_CLIENT(IS_REAL_CLIENT(it), Net_Write_Effect(net_eff, it, 0));
+       delete(net_eff);
 }
 
 void Send_Effect_(string eff_name, vector eff_loc, vector eff_vel, int eff_cnt)
 {
        // problem with this is, we might not have all the available effects for it
-       FOREACH(Effects, it.eent_eff_name == eff_name, LAMBDA(
+       FOREACH(Effects, it.eent_eff_name == eff_name, {
                Send_Effect(it, eff_loc, eff_vel, eff_cnt);
                return;
-       ));
+       });
        // revert to engine handling
        __pointparticles(_particleeffectnum(eff_name), eff_loc, eff_vel, eff_cnt);
 }
 #endif
+
+#if ENABLE_EFFECTINFO
+       #include "effectinfo.qc"
+#endif