2 #include "../dpdefs/csprogsdefs.qh"
4 #include "../csqcmodellib/cl_model.qh"
11 .float lifetime, fadetime;
13 .float scale1, scale2;
15 void ModelEffect_Draw()
17 self.angles = self.angles + frametime * self.avelocity;
18 setorigin(self, self.origin + frametime * self.velocity);
19 self.scale = self.scale1 + (self.scale2 - self.scale1) * (time - self.teleport_time) / (self.lifetime + self.fadetime - self.teleport_time);
20 self.alpha = self.cnt * bound(0, 1 - (time - self.lifetime) / self.fadetime, 1);
21 if(self.alpha < ALPHA_MIN_VISIBLE)
26 self.drawmask = MASK_NORMAL;
34 void Ent_ModelEffect(bool isNew)
36 self.classname = "modeleffect_spawner";
41 e.classname = "modeleffect";
42 e.model = "from network";
43 e.modelindex = ReadShort();
47 e.origin_x = ReadCoord();
48 e.origin_y = ReadCoord();
49 e.origin_z = ReadCoord();
50 setorigin(e, e.origin);
53 e.velocity_x = ReadCoord();
54 e.velocity_y = ReadCoord();
55 e.velocity_z = ReadCoord();
59 e.angles_x = ReadAngle();
60 e.angles_y = ReadAngle();
61 e.angles_z = ReadAngle();
65 e.avelocity_x = ReadAngle();
66 e.avelocity_y = ReadAngle();
67 e.avelocity_z = ReadAngle();
69 e.scale1 = ReadShort() / 256.0;
70 e.scale2 = ReadShort() / 256.0;
71 e.lifetime = time + ReadByte() * 0.01;
72 e.fadetime = ReadByte() * 0.01;
73 e.teleport_time = time;
74 e.cnt = ReadByte() / 255.0; // actually alpha
76 e.draw = ModelEffect_Draw;
79 remove(e); // yes, this IS stupid, but I don't need to duplicate all the read* stuff then