]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/effects/qc/modeleffects.qc
Merge branch 'Mario/showspecs' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / effects / qc / modeleffects.qc
index 41c5ba04f3f1f1d832e98350829652c0083d844b..8fbef5b587e9c56a7ed1f7cbc20d445cd32dab4f 100644 (file)
@@ -1,3 +1,5 @@
+#include "modeleffects.qh"
+
 #ifdef IMPLEMENTATION
 
 REGISTER_NET_LINKED(ENT_CLIENT_MODELEFFECT)
@@ -12,43 +14,43 @@ bool modeleffect_SendEntity(entity this, entity to, int sf)
        WriteHeader(MSG_ENTITY, ENT_CLIENT_MODELEFFECT);
 
        f = 0;
-       if(self.velocity != '0 0 0')
+       if(this.velocity != '0 0 0')
                f |= 1;
-       if(self.angles != '0 0 0')
+       if(this.angles != '0 0 0')
                f |= 2;
-       if(self.avelocity != '0 0 0')
+       if(this.avelocity != '0 0 0')
                f |= 4;
 
        WriteByte(MSG_ENTITY, f);
-       WriteShort(MSG_ENTITY, self.modelindex);
-       WriteByte(MSG_ENTITY, self.skin);
-       WriteByte(MSG_ENTITY, self.frame);
-       WriteCoord(MSG_ENTITY, self.origin.x);
-       WriteCoord(MSG_ENTITY, self.origin.y);
-       WriteCoord(MSG_ENTITY, self.origin.z);
+       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);
        if(f & 1)
        {
-               WriteCoord(MSG_ENTITY, self.velocity.x);
-               WriteCoord(MSG_ENTITY, self.velocity.y);
-               WriteCoord(MSG_ENTITY, self.velocity.z);
+               WriteCoord(MSG_ENTITY, this.velocity.x);
+               WriteCoord(MSG_ENTITY, this.velocity.y);
+               WriteCoord(MSG_ENTITY, this.velocity.z);
        }
        if(f & 2)
        {
-               WriteCoord(MSG_ENTITY, self.angles.x);
-               WriteCoord(MSG_ENTITY, self.angles.y);
-               WriteCoord(MSG_ENTITY, self.angles.z);
+               WriteCoord(MSG_ENTITY, this.angles.x);
+               WriteCoord(MSG_ENTITY, this.angles.y);
+               WriteCoord(MSG_ENTITY, this.angles.z);
        }
        if(f & 4)
        {
-               WriteCoord(MSG_ENTITY, self.avelocity.x);
-               WriteCoord(MSG_ENTITY, self.avelocity.y);
-               WriteCoord(MSG_ENTITY, self.avelocity.z);
+               WriteCoord(MSG_ENTITY, this.avelocity.x);
+               WriteCoord(MSG_ENTITY, this.avelocity.y);
+               WriteCoord(MSG_ENTITY, this.avelocity.z);
        }
-       WriteShort(MSG_ENTITY, self.scale * 256.0);
-       WriteShort(MSG_ENTITY, self.scale2 * 256.0);
-       WriteByte(MSG_ENTITY, self.teleport_time * 100.0);
-       WriteByte(MSG_ENTITY, self.fade_time * 100.0);
-       WriteByte(MSG_ENTITY, self.alpha * 255.0);
+       WriteShort(MSG_ENTITY, this.scale * 256.0);
+       WriteShort(MSG_ENTITY, this.scale2 * 256.0);
+       WriteByte(MSG_ENTITY, this.teleport_time * 100.0);
+       WriteByte(MSG_ENTITY, this.fade_time * 100.0);
+       WriteByte(MSG_ENTITY, this.alpha * 255.0);
 
        return true;
 }
@@ -95,26 +97,26 @@ class(ModelEffect) .float scale1, scale2;
 
 void ModelEffect_Draw(entity this)
 {
-       self.angles = self.angles + frametime * self.avelocity;
-       setorigin(self, self.origin + frametime * self.velocity);
-       self.scale = self.scale1 + (self.scale2 - self.scale1) * (time - self.teleport_time) / (self.lifetime + self.fadetime - self.teleport_time);
-       self.alpha = self.cnt * bound(0, 1 - (time - self.lifetime) / self.fadetime, 1);
-       if(self.alpha < ALPHA_MIN_VISIBLE)
+       this.angles = this.angles + frametime * this.avelocity;
+       setorigin(this, this.origin + frametime * this.velocity);
+       this.scale = this.scale1 + (this.scale2 - this.scale1) * (time - this.teleport_time) / (this.lifetime + this.fadetime - this.teleport_time);
+       this.alpha = this.cnt * bound(0, 1 - (time - this.lifetime) / this.fadetime, 1);
+       if(this.alpha < ALPHA_MIN_VISIBLE)
        {
-               remove(self);
+               delete(this);
                return;
        }
-       self.drawmask = MASK_NORMAL;
-       if(self.scale <= 0)
+       this.drawmask = MASK_NORMAL;
+       if(this.scale <= 0)
        {
-               self.drawmask = 0;
+               this.drawmask = 0;
                return;
        }
 }
 
 NET_HANDLE(ENT_CLIENT_MODELEFFECT, bool isnew)
 {
-       make_pure(self);
+       make_pure(this);
 
        int f = ReadByte();
 
@@ -154,8 +156,9 @@ NET_HANDLE(ENT_CLIENT_MODELEFFECT, bool isnew)
        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