Skip to content

Commit a6f821d

Browse files
authored
Merge pull request #3592 from Baezon/type-5-targetless-turrets
Handle turret fired type 5 beams without targets properly
2 parents 7fe62aa + 360198b commit a6f821d

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

code/weapon/beam.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2368,8 +2368,14 @@ void beam_get_binfo(beam *b, float accuracy, int num_shots, int burst_seed, floa
23682368
if (b->flags & BF_IS_FIGHTER_BEAM) {
23692369
orient = b->objp->orient;
23702370
} else if (b->subsys) {
2371-
vec3d fvec, uvec;
2372-
vm_vec_sub(&fvec, &b->target->pos, &turret_point);
2371+
vec3d fvec, uvec, target_pos;
2372+
if (b->target)
2373+
target_pos = b->target->pos;
2374+
else if (b->flags & BF_TARGETING_COORDS)
2375+
target_pos = b->target_pos1;
2376+
else
2377+
UNREACHABLE("Turret beam fired without a target or target coordinates?");
2378+
vm_vec_sub(&fvec, &target_pos, &turret_point);
23732379
vm_vec_unrotate(&uvec, &b->subsys->system_info->turret_norm, &b->objp->orient);
23742380
vm_vector_2_matrix(&orient, &fvec, &uvec);
23752381
} else if (b->flags & BF_TARGETING_COORDS) {

0 commit comments

Comments
 (0)