25 this.trail_oldorigin =
to;
26 this.trail_oldtime =
time;
31 vector from = this.trail_oldorigin;
33 this.trail_oldorigin =
to;
34 this.trail_oldtime =
time;
60 if (this.
count & 0x80)
81 if (this.
count & 0x80)
91 bool is_nade = Projectile_isnade(this.
cnt);
97 else switch (this.
cnt)
112 if (!rot.x && !rot.y)
132 trailorigin = this.
origin;
136 trailorigin +=
v_up * 4;
138 else switch (this.
cnt)
173 sound(e, ch, samp, vol, attn);
179 if (this.
count & 0x80)
203 this.
count = (f & 0x80);
204 this.
flags |= FL_PROJECTILE;
229 if (!(this.
count & 0x80))
234 this.
origin = ReadVector();
236 if (this.
count & 0x80)
247 this.trail_oldorigin = this.
origin;
248 if (!(this.
count & 0x80))
263 int proj_team = ReadByte();
264 this.
team = proj_team - 1;
287 this.
cnt = ReadByte();
289 this.silent = (this.
cnt & 0x80);
290 this.
cnt = (this.
cnt & 0x7F);
293 this.traileffect = 0;
296 #define HANDLE(id) case PROJECTILE_##id: setmodel(this, MDL_PROJECTILE_##id); 297 HANDLE(ELECTRO) this.traileffect = EFFECT_TR_NEXUIZPLASMA.m_id;
break;
298 HANDLE(ROCKET) this.traileffect = EFFECT_TR_ROCKET.m_id; this.
scale = 2;
break;
299 HANDLE(CRYLINK) this.traileffect = EFFECT_TR_CRYLINKPLASMA.m_id;
break;
300 HANDLE(CRYLINK_BOUNCING) this.traileffect = EFFECT_TR_CRYLINKPLASMA.m_id;
break;
301 HANDLE(ELECTRO_BEAM) this.traileffect = EFFECT_TR_NEXUIZPLASMA.m_id;
break;
302 HANDLE(GRENADE) this.traileffect = EFFECT_TR_GRENADE.m_id;
break;
303 HANDLE(GRENADE_BOUNCING) this.traileffect = EFFECT_TR_GRENADE.m_id;
break;
304 HANDLE(MINE) this.traileffect = EFFECT_TR_GRENADE.m_id;
break;
305 HANDLE(BLASTER) this.traileffect = EFFECT_Null.m_id;
break;
306 HANDLE(ARC_BOLT) this.traileffect = EFFECT_TR_WIZSPIKE.m_id;
break;
307 HANDLE(
HLAC) this.traileffect = EFFECT_Null.m_id;
break;
308 HANDLE(PORTO_RED) this.traileffect = EFFECT_TR_WIZSPIKE.m_id; this.
scale = 4;
break;
309 HANDLE(PORTO_BLUE) this.traileffect = EFFECT_TR_WIZSPIKE.m_id; this.
scale = 4;
break;
310 HANDLE(HOOKBOMB) this.traileffect = EFFECT_TR_KNIGHTSPIKE.m_id;
break;
311 HANDLE(HAGAR) this.traileffect = EFFECT_HAGAR_ROCKET.m_id; this.
scale = 0.75;
break;
312 HANDLE(HAGAR_BOUNCING) this.traileffect = EFFECT_HAGAR_ROCKET.m_id; this.
scale = 0.75;
break;
313 HANDLE(FIREBALL) this.
modelindex = 0; this.traileffect = EFFECT_FIREBALL.m_id;
break;
314 HANDLE(FIREMINE) this.
modelindex = 0; this.traileffect = EFFECT_FIREMINE.m_id;
break;
315 HANDLE(TAG) this.traileffect = EFFECT_TR_ROCKET.m_id;
break;
316 HANDLE(FLAC) this.
scale = 0.4; this.traileffect = EFFECT_FLAC_TRAIL.m_id;
break;
317 HANDLE(SEEKER) this.traileffect = EFFECT_SEEKER_TRAIL.m_id;
break;
319 HANDLE(MAGE_SPIKE) this.traileffect = EFFECT_TR_VORESPIKE.m_id;
break;
320 HANDLE(SHAMBLER_LIGHTNING) this.traileffect = EFFECT_TR_NEXUIZPLASMA.m_id;
break;
322 HANDLE(RAPTORBOMB) this.
gravity = 1; this.
avelocity =
'0 0 180'; this.traileffect = EFFECT_Null.m_id;
break;
323 HANDLE(RAPTORBOMBLET) this.
gravity = 1; this.
avelocity =
'0 0 180'; this.traileffect = EFFECT_Null.m_id;
break;
324 HANDLE(RAPTORCANNON) this.traileffect = EFFECT_TR_CRYLINKPLASMA.m_id;
break;
326 HANDLE(SPIDERROCKET) this.traileffect = EFFECT_SPIDERBOT_ROCKET_TRAIL.m_id;
break;
327 HANDLE(WAKIROCKET) this.traileffect = EFFECT_RACER_ROCKET_TRAIL.m_id;
break;
328 HANDLE(WAKICANNON) this.traileffect = EFFECT_Null.m_id;
break;
330 HANDLE(BUMBLE_GUN) this.traileffect = EFFECT_TR_NEXUIZPLASMA.m_id;
break;
331 HANDLE(BUMBLE_BEAM) this.traileffect = EFFECT_TR_NEXUIZPLASMA.m_id;
break;
333 HANDLE(RPC) this.traileffect = EFFECT_TR_ROCKET.m_id;
break;
341 error(
"Received invalid CSQC projectile, can't work with this!");
357 this.
mins =
'-4 -4 -4';
367 this.
mins =
'-3 -3 -3';
371 this.
mins =
'-3 -3 -3';
375 this.
mins =
'-3 -3 -3';
383 this.
mins =
'-8 -8 -8';
389 this.
mins =
'-4 -4 -4';
414 this.
mins =
'-16 -16 -16';
415 this.
maxs =
'16 16 16';
421 this.
mins =
'-4 -4 -4';
425 this.
mins =
'-2 -2 -2';
429 this.
mins =
'-2 -2 -2';
434 this.
mins =
'-4 -4 -4';
442 this.
mins =
'-3 -3 -3';
475 setsize(
this, this.
mins, this.
maxs);
495 if (!(this.
count & 0x80))
const int PROJECTILE_PORTO_RED
const int PROJECTILE_GRENADE
void InterpolateOrigin_Note(entity this)
#define WEP_CVAR_SEC(wepname, name)
void InterpolateOrigin_Undo(entity this)
snap origin to iorigin2 (actual origin)
const int PROJECTILE_SPIDERROCKET
bool autocvar_cl_projectiles_sloppy
const int IFLAG_INTERNALMASK
const int PROJECTILE_RAPTORBOMBLET
const int PROJECTILE_MINE
#define REGISTRY_GET(id, i)
float MOVETYPE_BOUNCEMISSILE
const int IFLAG_AUTOANGLES
#define WEP_CVAR(wepname, name)
void loopsound(entity e, int ch, Sound samp, float vol, float attn)
void Movetype_Physics_NoMatchServer(entity this)
entity EFFECT_ROCKETMINSTA_LASER(int teamid)
void Projectile_Draw(entity this)
#define UNSET_ONGROUND(s)
const int PROJECTILE_CRYLINK_BOUNCING
void Projectile_DrawTrail(entity this, vector to)
const int PROJECTILE_HAGAR_BOUNCING
const int PROJECTILE_PORTO_BLUE
void Projectile_ResetTrail(entity this, vector to)
const int PROJECTILE_FIREBALL
#define BIT(n)
Only ever assign into the first 24 bits in QC (so max is BIT(23)).
ERASEABLE entity IL_PUSH(IntrusiveList this, entity it)
Push to tail.
const int PROJECTILE_SHAMBLER_LIGHTNING
const int PROJECTILE_ARC_BOLT
void Movetype_Physics_MatchServer(entity this, bool sloppy)
const int PROJECTILE_ROCKET
const int PROJECTILE_WAKIROCKET
const int PROJECTILE_FIREMINE
void SUB_Stop(entity this, entity toucher)
vector(float skel, float bonenum) _skel_get_boneabs_hidden
const int PROJECTILE_RAPTORBOMB
const int PROJECTILE_ELECTRO
const int PROJECTILE_SEEKER
const int PROJECTILE_FLAC
float PARTICLES_DRAWASTRAIL
NET_HANDLE(ENT_CLIENT_PROJECTILE, bool isnew)
const float SOLID_TRIGGER
#define MUTATOR_CALLHOOK(id,...)
void InterpolateOrigin_Reset(entity this)
const int PROJECTILE_GRENADE_BOUNCING
const int PROJECTILE_RAPTORCANNON
const int CH_SHOTS_SINGLE
#define sound(e, c, s, v, a)
void Ent_RemoveProjectile(entity this)
void InterpolateOrigin_Do(entity this)
set origin based on iorigin1 (old pos), iorigin2 (desired pos), and time
IntrusiveList g_drawables
void set_movetype(entity this, int mt)
const int PROJECTILE_HOOKBOMB
#define colormapPaletteColor(c, isPants)
#define particleeffectnum(e)