X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Feffects%2Fall.qc;h=9ee58f5fe1c07323097ca2c08ff2f9df091bf34f;hb=38f4a1731d66faca35562977b145f76e119f2887;hp=73f1fe65fb4f150da0a5d4108e101535339e9a4c;hpb=eac60648c4017e495060dd3ba9e50ac4bad5000a;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/effects/all.qc b/qcsrc/common/effects/all.qc index 73f1fe65f..9ee58f5fe 100644 --- a/qcsrc/common/effects/all.qc +++ b/qcsrc/common/effects/all.qc @@ -4,31 +4,24 @@ REGISTER_NET_TEMP(net_effect) #ifdef CSQC NET_HANDLE(net_effect, bool isNew) { - int net_name = (Effects_COUNT >= 255) ? ReadShort() : ReadByte(); + int net_name = (REGISTRY_COUNT(Effects) >= 255) ? ReadShort() : ReadByte(); - entity eff = Effects_from(net_name); + entity eff = REGISTRY_GET(Effects, net_name); vector vel = '0 0 0'; int eff_cnt = 1; bool eff_trail = eff.eent_eff_trail; - vector v; - v_x = ReadCoord(); - v_y = ReadCoord(); - v_z = ReadCoord(); + vector v = ReadVector(); bool use_vel = ReadByte(); if(use_vel) - { - vel_x = ReadCoord(); - vel_y = ReadCoord(); - vel_z = ReadCoord(); - } + vel = ReadVector(); if(!eff_trail) 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; @@ -41,20 +34,16 @@ bool Net_Write_Effect(entity this, entity client, int sf) int channel = MSG_ONE; msg_entity = client; WriteHeader(channel, net_effect); - (Effects_COUNT >= 255) + (REGISTRY_COUNT(Effects) >= 255) ? WriteShort(channel, this.m_id) : WriteByte(channel, this.m_id); - WriteCoord(channel, this.eent_net_location_x); - WriteCoord(channel, this.eent_net_location_y); - WriteCoord(channel, this.eent_net_location_z); + WriteVector(channel, this.eent_net_location); // attempt to save a tiny bit more bandwidth by not sending velocity if it isn't set if(this.eent_net_velocity) { WriteByte(channel, true); - WriteCoord(channel, this.eent_net_velocity_x); - WriteCoord(channel, this.eent_net_velocity_y); - WriteCoord(channel, this.eent_net_velocity_z); + WriteVector(channel, this.eent_net_velocity); } else { WriteByte(channel, false); } @@ -76,7 +65,7 @@ void Send_Effect(entity eff, vector eff_loc, vector eff_vel, int eff_cnt) net_eff.eent_eff_trail = eff.eent_eff_trail; FOREACH_CLIENT(IS_REAL_CLIENT(it), Net_Write_Effect(net_eff, it, 0)); - remove(net_eff); + delete(net_eff); } void Send_Effect_(string eff_name, vector eff_loc, vector eff_vel, int eff_cnt) @@ -86,9 +75,11 @@ void Send_Effect_(string eff_name, vector eff_loc, vector eff_vel, int eff_cnt) Send_Effect(it, eff_loc, eff_vel, eff_cnt); return; }); - // revert to engine handling + // revert to engine handling TODO: send the effect name and draw it on the client side? not as light on networking, but resolves the use of server side effects __pointparticles(_particleeffectnum(eff_name), eff_loc, eff_vel, eff_cnt); } #endif -#include "effectinfo.qc" +#if ENABLE_EFFECTINFO + #include "effectinfo.qc" +#endif