@@ -7850,6 +7850,12 @@ void weapon_hit( object* weapon_obj, object* impacted_obj, const vec3d* hitpos,
78507850 vec3d reverse_incoming = weapon_obj->orient .vec .fvec ;
78517851 vm_vec_negate (&reverse_incoming);
78527852
7853+ float radius_mult = 1 .f ;
7854+
7855+ if (wip->render_type == WRT_LASER) {
7856+ radius_mult = wip->weapon_curves .get_output (weapon_info::WeaponCurveOutputs::LASER_RADIUS_MULT, *wp, &wp->modular_curves_instance );
7857+ }
7858+
78537859 if (hitnormal) {
78547860 hit_angle = vm_vec_delta_ang (hitnormal, &reverse_incoming, nullptr );
78557861 }
@@ -7886,7 +7892,7 @@ void weapon_hit( object* weapon_obj, object* impacted_obj, const vec3d* hitpos,
78867892 ) {
78877893 auto particleSource = particle::ParticleManager::get ()->createSource (ci.effect );
78887894 particleSource->setHost (weapon_hit_make_effect_host (weapon_obj, impacted_obj, submodel, hitpos, local_hitpos));
7889- particleSource->setTriggerRadius (weapon_obj->radius );
7895+ particleSource->setTriggerRadius (weapon_obj->radius * radius_mult );
78907896 particleSource->setTriggerVelocity (vm_vec_mag_quick (&weapon_obj->phys_info .vel ));
78917897
78927898 if (hitnormal)
@@ -7906,7 +7912,7 @@ void weapon_hit( object* weapon_obj, object* impacted_obj, const vec3d* hitpos,
79067912 auto particleSource = particle::ParticleManager::get ()->createSource (wip->impact_weapon_expl_effect );
79077913
79087914 particleSource->setHost (weapon_hit_make_effect_host (weapon_obj, impacted_obj, submodel, hitpos, local_hitpos));
7909- particleSource->setTriggerRadius (weapon_obj->radius );
7915+ particleSource->setTriggerRadius (weapon_obj->radius * radius_mult );
79107916 particleSource->setTriggerVelocity (vm_vec_mag_quick (&weapon_obj->phys_info .vel ));
79117917
79127918 if (hitnormal)
@@ -7917,7 +7923,7 @@ void weapon_hit( object* weapon_obj, object* impacted_obj, const vec3d* hitpos,
79177923 } else if (!valid_conditional_impact && wip->dinky_impact_weapon_expl_effect .isValid () && !armed_weapon) {
79187924 auto particleSource = particle::ParticleManager::get ()->createSource (wip->dinky_impact_weapon_expl_effect );
79197925 particleSource->setHost (weapon_hit_make_effect_host (weapon_obj, impacted_obj, submodel, hitpos, local_hitpos));
7920- particleSource->setTriggerRadius (weapon_obj->radius );
7926+ particleSource->setTriggerRadius (weapon_obj->radius * radius_mult );
79217927 particleSource->setTriggerVelocity (vm_vec_mag_quick (&weapon_obj->phys_info .vel ));
79227928
79237929 if (hitnormal)
@@ -7960,7 +7966,7 @@ void weapon_hit( object* weapon_obj, object* impacted_obj, const vec3d* hitpos,
79607966
79617967 auto primarySource = ParticleManager::get ()->createSource (wip->piercing_impact_effect );
79627968 primarySource->setHost (weapon_hit_make_effect_host (weapon_obj, impacted_obj, submodel, hitpos, local_hitpos));
7963- primarySource->setTriggerRadius (weapon_obj->radius );
7969+ primarySource->setTriggerRadius (weapon_obj->radius * radius_mult );
79647970 primarySource->setTriggerVelocity (vm_vec_mag_quick (&weapon_obj->phys_info .vel ));
79657971
79667972 if (hitnormal)
@@ -7972,7 +7978,7 @@ void weapon_hit( object* weapon_obj, object* impacted_obj, const vec3d* hitpos,
79727978 if (wip->piercing_impact_secondary_effect .isValid ()) {
79737979 auto secondarySource = ParticleManager::get ()->createSource (wip->piercing_impact_secondary_effect );
79747980 secondarySource->setHost (weapon_hit_make_effect_host (weapon_obj, impacted_obj, submodel, hitpos, local_hitpos));
7975- secondarySource->setTriggerRadius (weapon_obj->radius );
7981+ secondarySource->setTriggerRadius (weapon_obj->radius * radius_mult );
79767982 secondarySource->setTriggerVelocity (vm_vec_mag_quick (&weapon_obj->phys_info .vel ));
79777983
79787984 if (hitnormal)
0 commit comments