#include "modeleffects.qh"
-#ifdef IMPLEMENTATION
-
REGISTER_NET_LINKED(ENT_CLIENT_MODELEFFECT)
#ifdef SVQC
WriteShort(MSG_ENTITY, this.modelindex);
WriteByte(MSG_ENTITY, this.skin);
WriteByte(MSG_ENTITY, this.frame);
- WriteCoord(MSG_ENTITY, this.origin.x);
- WriteCoord(MSG_ENTITY, this.origin.y);
- WriteCoord(MSG_ENTITY, this.origin.z);
+ WriteVector(MSG_ENTITY, this.origin);
if(f & 1)
{
- WriteCoord(MSG_ENTITY, this.velocity.x);
- WriteCoord(MSG_ENTITY, this.velocity.y);
- WriteCoord(MSG_ENTITY, this.velocity.z);
+ WriteVector(MSG_ENTITY, this.velocity);
}
if(f & 2)
{
#ifdef CSQC
entityclass(ModelEffect);
-class(ModelEffect) .float frame1time;
-class(ModelEffect) .float lifetime, fadetime;
-class(ModelEffect) .float teleport_time;
-class(ModelEffect) .float scale1, scale2;
+classfield(ModelEffect) .float frame1time;
+classfield(ModelEffect) .float lifetime, fadetime;
+classfield(ModelEffect) .float teleport_time;
+classfield(ModelEffect) .float scale1, scale2;
.float cnt;
.float scale;
this.alpha = this.cnt * bound(0, 1 - (time - this.lifetime) / this.fadetime, 1);
if(this.alpha < ALPHA_MIN_VISIBLE)
{
- remove(this);
+ delete(this);
return;
}
this.drawmask = MASK_NORMAL;
e.skin = ReadByte();
e.frame = ReadByte();
e.frame1time = time;
- e.origin_x = ReadCoord();
- e.origin_y = ReadCoord();
- e.origin_z = ReadCoord();
+ e.origin = ReadVector();
setorigin(e, e.origin);
if(f & 1)
{
- e.velocity_x = ReadCoord();
- e.velocity_y = ReadCoord();
- e.velocity_z = ReadCoord();
+ e.velocity = ReadVector();
}
if(f & 2)
{
e.cnt = ReadByte() / 255.0; // actually alpha
e.draw = ModelEffect_Draw;
+ if (isnew) IL_PUSH(g_drawables, e);
- if (!isnew) remove(e); // yes, this IS stupid, but I don't need to duplicate all the read* stuff then
+ if (!isnew) delete(e); // yes, this IS stupid, but I don't need to duplicate all the read* stuff then
return true;
}
#endif
-
-#endif