#if defined(CSQC)
- #include "../../../lib/csqcmodel/interpolate.qh"
- #include "../../../client/main.qh"
- #include "../../../lib/csqcmodel/cl_model.qh"
+ #include <lib/csqcmodel/interpolate.qh>
+ #include <client/main.qh>
+ #include <lib/csqcmodel/cl_model.qh>
#elif defined(MENUQC)
#elif defined(SVQC)
#endif
#ifdef SVQC
.float modelscale;
-void misc_laser_aim()
-{SELFPARAM();
+void misc_laser_aim(entity this)
+{
vector a;
- if(self.enemy)
+ if(this.enemy)
{
- if(self.spawnflags & 2)
+ if(this.spawnflags & 2)
{
- if(self.enemy.origin != self.mangle)
+ if(this.enemy.origin != this.mangle)
{
- self.mangle = self.enemy.origin;
- self.SendFlags |= 2;
+ this.mangle = this.enemy.origin;
+ this.SendFlags |= 2;
}
}
else
{
- a = vectoangles(self.enemy.origin - self.origin);
+ a = vectoangles(this.enemy.origin - this.origin);
a_x = -a_x;
- if(a != self.mangle)
+ if(a != this.mangle)
{
- self.mangle = a;
- self.SendFlags |= 2;
+ this.mangle = a;
+ this.SendFlags |= 2;
}
}
}
else
{
- if(self.angles != self.mangle)
+ if(this.angles != this.mangle)
{
- self.mangle = self.angles;
- self.SendFlags |= 2;
+ this.mangle = this.angles;
+ this.SendFlags |= 2;
}
}
- if(self.origin != self.oldorigin)
+ if(this.origin != this.oldorigin)
{
- self.SendFlags |= 1;
- self.oldorigin = self.origin;
+ this.SendFlags |= 1;
+ this.oldorigin = this.origin;
}
}
-void misc_laser_init()
-{SELFPARAM();
+void misc_laser_init(entity this)
+{
if(self.target != "")
self.enemy = find(world, targetname, self.target);
}
if(!self.state)
return;
- misc_laser_aim();
+ misc_laser_aim(this);
if(self.enemy)
{
{
self.count = 1;
- activator = self.enemy.pusher;
- WITH(entity, self, self.enemy, SUB_UseTargets());
+ SUB_UseTargets(self.enemy, self.enemy.pusher, NULL);
}
}
else
{
self.count = 0;
- activator = self.enemy.pusher;
- WITH(entity, self, self.enemy, SUB_UseTargets());
+ SUB_UseTargets(self.enemy, self.enemy.pusher, NULL);
}
}
}
"dmg"
damage per second (-1 for a laser that kills immediately)
*/
-void laser_use()
-{SELFPARAM();
- self.state = !self.state;
- self.SendFlags |= 4;
- misc_laser_aim();
+void laser_use(entity this, entity actor, entity trigger)
+{
+ this.state = !this.state;
+ this.SendFlags |= 4;
+ misc_laser_aim(this);
}
void laser_reset(entity this)
void Draw_Laser(entity this)
{
- if(!self.state)
+ if(!this.state)
return;
- InterpolateOrigin_Do(self);
- if(self.count & 0x80)
+ InterpolateOrigin_Do(this);
+ if(this.count & 0x80)
{
- if(self.count & 0x10)
+ if(this.count & 0x10)
{
- trace_endpos = self.velocity;
+ trace_endpos = this.velocity;
trace_dphitq3surfaceflags = 0;
}
else
- traceline(self.origin, self.velocity, 0, self);
+ traceline(this.origin, this.velocity, 0, this);
}
else
{
- if(self.count & 0x10)
+ if(this.count & 0x10)
{
- makevectors(self.angles);
- trace_endpos = self.origin + v_forward * 1048576;
+ makevectors(this.angles);
+ trace_endpos = this.origin + v_forward * 1048576;
trace_dphitq3surfaceflags = Q3SURFACEFLAG_SKY;
}
else
{
- makevectors(self.angles);
- traceline(self.origin, self.origin + v_forward * 32768, 0, self);
+ makevectors(this.angles);
+ traceline(this.origin, this.origin + v_forward * 32768, 0, this);
if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_SKY)
- trace_endpos = self.origin + v_forward * 1048576;
+ trace_endpos = this.origin + v_forward * 1048576;
}
}
- if(self.scale != 0)
+ if(this.scale != 0)
{
- if(self.alpha)
+ if(this.alpha)
{
- Draw_CylindricLine(self.origin, trace_endpos, self.scale, "particles/laserbeam", 0, time * 3, self.colormod, self.alpha, DRAWFLAG_NORMAL, view_origin);
+ Draw_CylindricLine(this.origin, trace_endpos, this.scale, "particles/laserbeam", 0, time * 3, this.colormod, this.alpha, DRAWFLAG_NORMAL, view_origin);
}
else
{
- Draw_CylindricLine(self.origin, trace_endpos, self.scale, "particles/laserbeam", 0, time * 3, self.colormod, 0.5, DRAWFLAG_ADDITIVE, view_origin);
+ Draw_CylindricLine(this.origin, trace_endpos, this.scale, "particles/laserbeam", 0, time * 3, this.colormod, 0.5, DRAWFLAG_ADDITIVE, view_origin);
}
}
if (!(trace_dphitq3surfaceflags & (Q3SURFACEFLAG_SKY | Q3SURFACEFLAG_NOIMPACT)))
{
- if(self.cnt >= 0)
- __pointparticles(self.cnt, trace_endpos, trace_plane_normal, drawframetime * 1000);
- if(self.colormod != '0 0 0' && self.modelscale != 0)
- adddynamiclight(trace_endpos + trace_plane_normal * 1, self.modelscale, self.colormod * 5);
+ if(this.cnt >= 0)
+ __pointparticles(this.cnt, trace_endpos, trace_plane_normal, drawframetime * 1000);
+ if(this.colormod != '0 0 0' && this.modelscale != 0)
+ adddynamiclight(trace_endpos + trace_plane_normal * 1, this.modelscale, this.colormod * 5);
}
}