// INPUT:
float get_cvars_f;
string get_cvars_s;
+
+MUTATOR_HOOKABLE(EditProjectile);
+ // can edit any "just fired" projectile
+ // INPUT:
+ entity self;
+ entity other;
proj.oldvelocity = proj.velocity;
+ other = proj; MUTATOR_CALLHOOK(EditProjectile);
+
if(cvar("g_antilag_bullets"))
if(pSpeed >= cvar("g_antilag_bullets"))
{
CSQCProjectile(proj, TRUE, (proj.cnt ? PROJECTILE_CRYLINK_BOUNCING : PROJECTILE_CRYLINK), TRUE);
+ other = proj; MUTATOR_CALLHOOK(EditProjectile);
+
counter = counter + 1;
}
}
CSQCProjectile(proj, TRUE, (proj.cnt ? PROJECTILE_CRYLINK_BOUNCING : PROJECTILE_CRYLINK), TRUE);
+ other = proj; MUTATOR_CALLHOOK(EditProjectile);
+
counter = counter + 1;
}
}
//sounds bad
CSQCProjectile(proj, TRUE, PROJECTILE_ELECTRO_BEAM, TRUE);
+
+ other = proj; MUTATOR_CALLHOOK(EditProjectile);
}
void W_Electro_Attack2()
#endif
CSQCProjectile(proj, TRUE, PROJECTILE_ELECTRO, FALSE); // no culling, it has sound
+
+ other = proj; MUTATOR_CALLHOOK(EditProjectile);
}
.vector hook_start, hook_end;
proj.flags = FL_PROJECTILE;
CSQCProjectile(proj, TRUE, PROJECTILE_FIREBALL, TRUE);
+
+ other = proj; MUTATOR_CALLHOOK(EditProjectile);
}
void W_Fireball_AttackEffect(float i, vector f_diff)
proj.flags = FL_PROJECTILE;
CSQCProjectile(proj, TRUE, PROJECTILE_FIREMINE, TRUE);
+
+ other = proj; MUTATOR_CALLHOOK(EditProjectile);
}
void spawnfunc_weapon_fireball (void)
CSQCProjectile(gren, TRUE, PROJECTILE_GRENADE, TRUE);
else
CSQCProjectile(gren, TRUE, PROJECTILE_GRENADE_BOUNCING, TRUE);
+
+ other = gren; MUTATOR_CALLHOOK(EditProjectile);
}
void W_Grenade_Attack2 (void)
CSQCProjectile(gren, TRUE, PROJECTILE_GRENADE, TRUE);
else
CSQCProjectile(gren, TRUE, PROJECTILE_GRENADE_BOUNCING, TRUE);
+
+ other = gren; MUTATOR_CALLHOOK(EditProjectile);
}
void spawnfunc_weapon_grenadelauncher (void)
missile.flags = FL_PROJECTILE;
CSQCProjectile(missile, TRUE, PROJECTILE_HAGAR, TRUE);
+
+ other = missile; MUTATOR_CALLHOOK(EditProjectile);
}
void W_Hagar_Attack2 (void)
missile.flags = FL_PROJECTILE;
CSQCProjectile(missile, TRUE, PROJECTILE_HAGAR_BOUNCING, TRUE);
+
+ other = missile; MUTATOR_CALLHOOK(EditProjectile);
}
void spawnfunc_weapon_hagar (void)
missile.projectiledeathtype = WEP_HLAC;
CSQCProjectile(missile, TRUE, PROJECTILE_HLAC, TRUE);
+
+ other = missile; MUTATOR_CALLHOOK(EditProjectile);
}
void W_HLAC_Attack2f (void)
missile.projectiledeathtype = WEP_HLAC | HITTYPE_SECONDARY;
CSQCProjectile(missile, TRUE, PROJECTILE_HLAC, TRUE);
+
+ other = missile; MUTATOR_CALLHOOK(EditProjectile);
}
void W_HLAC_Attack2 (void)
gren.flags = FL_PROJECTILE;
CSQCProjectile(gren, TRUE, PROJECTILE_HOOKBOMB, TRUE);
+
+ other = gren; MUTATOR_CALLHOOK(EditProjectile);
}
void spawnfunc_weapon_hook (void)
missile.think = W_Laser_Think;
missile.nextthink = time + cvar("g_balance_laser_primary_delay");
+
+ other = missile; MUTATOR_CALLHOOK(EditProjectile);
+
if(time >= missile.nextthink)
{
entity oldself;
W_AttachToShotorg(flash, '5 0 0');
// common properties
+
+ other = mine; MUTATOR_CALLHOOK(EditProjectile);
}
void spawnfunc_weapon_minelayer (void); // defined in t_items.qc
gren.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_PLAYERCLIP;
CSQCProjectile(gren, TRUE, PROJECTILE_PORTO_RED, TRUE);
+
+ other = gren; MUTATOR_CALLHOOK(EditProjectile);
}
void spawnfunc_weapon_porto (void)
W_AttachToShotorg(flash, '5 0 0');
// common properties
+ other = missile; MUTATOR_CALLHOOK(EditProjectile);
}
void spawnfunc_weapon_rocketlauncher (void); // defined in t_items.qc
missile.angles = vectoangles (missile.velocity);
CSQCProjectile(missile, FALSE, PROJECTILE_SEEKER, TRUE);
+
+ other = missile; MUTATOR_CALLHOOK(EditProjectile);
}
void Seeker_Vollycontroler_Think()
missile.angles = vectoangles (missile.velocity);
CSQCProjectile(missile, TRUE, PROJECTILE_TAG, FALSE); // has sound
+
+ other = missile; MUTATOR_CALLHOOK(EditProjectile);
}
missile.flags = FL_PROJECTILE;
CSQCProjectile(missile, TRUE, PROJECTILE_FLAC, TRUE);
+
+ other = missile; MUTATOR_CALLHOOK(EditProjectile);
}
void spawnfunc_weapon_seeker (void)