diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 3aeb762aab7..382458e7a79 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -889,15 +889,17 @@ DEFINE_BITFIELD(turret_flags, list( if(!mapload) return - if(control_area) - control_area = get_area_instance_from_text(control_area) - if(control_area == null) - control_area = get_area(src) - stack_trace("Bad control_area path for [src], [src.control_area]") - else if(!control_area) - control_area = get_area(src) + // The actual area that control_area refers to + var/area/control_area_instance - for(var/obj/machinery/porta_turret/T in control_area) + if(control_area) + control_area_instance = get_area_instance_from_text(control_area) + if(!control_area_instance) + log_mapping("Bad control_area path for [src] at [AREACOORD(src)]: [control_area]") + if(!control_area_instance) + control_area_instance = get_area(src) + + for(var/obj/machinery/porta_turret/T in control_area_instance) turrets |= WEAKREF(T) /obj/machinery/turretid/examine(mob/user)