Skip to content

Commit 2211945

Browse files
authored
Merge pull request #7281 from Kestrellius/det-range-optimization
Optimize detonation range and detonation radius checks
2 parents ce31a33 + df7413a commit 2211945

1 file changed

Lines changed: 3 additions & 5 deletions

File tree

code/weapon/weapons.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6022,9 +6022,7 @@ void weapon_process_pre( object *obj, float frame_time)
60226022
//WMC - Originally flak_maybe_detonate, moved here.
60236023
if(wp->det_range > 0.0f)
60246024
{
6025-
vec3d temp;
6026-
vm_vec_sub(&temp, &obj->pos, &wp->start_pos);
6027-
if(vm_vec_mag(&temp) >= wp->det_range){
6025+
if (vm_vec_dist_squared(&obj->pos, &wp->start_pos) >= wp->det_range * wp->det_range) {
60286026
weapon_detonate(obj);
60296027
}
60306028
}
@@ -6040,13 +6038,13 @@ void weapon_process_pre( object *obj, float frame_time)
60406038

60416039
if((weapon_has_homing_object(wp)) && (wp->homing_object->type != 0))
60426040
{
6043-
if(!IS_VEC_NULL(&wp->homing_pos) && vm_vec_dist(&wp->homing_pos, &obj->pos) <= det_radius_adjusted)
6041+
if(!IS_VEC_NULL(&wp->homing_pos) && vm_vec_dist_squared(&wp->homing_pos, &obj->pos) <= det_radius_adjusted * det_radius_adjusted)
60446042
{
60456043
weapon_detonate(obj);
60466044
}
60476045
} else if(wp->target_num > -1)
60486046
{
6049-
if(vm_vec_dist(&obj->pos, &Objects[wp->target_num].pos) <= det_radius_adjusted)
6047+
if(vm_vec_dist_squared(&obj->pos, &Objects[wp->target_num].pos) <= det_radius_adjusted * det_radius_adjusted)
60506048
{
60516049
weapon_detonate(obj);
60526050
}

0 commit comments

Comments
 (0)