X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Feffects%2Fqc%2Fmodeleffects.qc;h=8fbef5b587e9c56a7ed1f7cbc20d445cd32dab4f;hb=4d9a40898926a8da83b788f9a862f35cdd4c8905;hp=41c5ba04f3f1f1d832e98350829652c0083d844b;hpb=e9f30b97435c6afe3d6911f21e1f4fd1b97e93da;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/effects/qc/modeleffects.qc b/qcsrc/common/effects/qc/modeleffects.qc index 41c5ba04f..8fbef5b58 100644 --- a/qcsrc/common/effects/qc/modeleffects.qc +++ b/qcsrc/common/effects/qc/modeleffects.qc @@ -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