diff --git a/code/modules/atmospherics/machinery/atmospherics.dm b/code/modules/atmospherics/machinery/atmospherics.dm index 5aa4714744a..6790f3a8c54 100644 --- a/code/modules/atmospherics/machinery/atmospherics.dm +++ b/code/modules/atmospherics/machinery/atmospherics.dm @@ -157,6 +157,13 @@ Pipelines + Other Objects -> Pipe network /obj/machinery/atmospherics/proc/returnPipenet() return +/** + * Whether or not this atmos machine has multiple pipenets attached to it + * Used to determine if a ventcrawler should update their vision or not + */ +/obj/machinery/atmospherics/proc/is_pipenet_split() + return FALSE + /obj/machinery/atmospherics/proc/returnPipenetAir() return @@ -317,7 +324,7 @@ Pipelines + Other Objects -> Pipe network user.forceMove(target_move.loc) //handles entering and so on user.visible_message("You hear something squeezing through the ducts.", "You climb out of the ventilation system.") else if(target_move.can_crawl_through()) - if(returnPipenet(target_move) != target_move.returnPipenet()) + if(is_pipenet_split()) // Going away from a split means we want to update the view of the pipenet user.update_pipe_vision(target_move) user.forceMove(target_move) if(world.time - user.last_played_vent > VENT_SOUND_DELAY) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/binary_atmos_base.dm b/code/modules/atmospherics/machinery/components/binary_devices/binary_atmos_base.dm index b0ca5531af1..b28a9ded640 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/binary_atmos_base.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/binary_atmos_base.dm @@ -128,6 +128,9 @@ else if(A == node2) return parent2 +/obj/machinery/atmospherics/binary/is_pipenet_split() + return TRUE + /obj/machinery/atmospherics/binary/replacePipenet(datum/pipeline/Old, datum/pipeline/New) if(Old == parent1) parent1 = New diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/trinary_base.dm b/code/modules/atmospherics/machinery/components/trinary_devices/trinary_base.dm index 7a6f32261b3..aa2914a7343 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/trinary_base.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/trinary_base.dm @@ -181,6 +181,9 @@ else if(A == node3) return parent3 +/obj/machinery/atmospherics/trinary/is_pipenet_split() + return FALSE + /obj/machinery/atmospherics/trinary/replacePipenet(datum/pipeline/Old, datum/pipeline/New) if(Old == parent1) parent1 = New diff --git a/code/modules/atmospherics/machinery/pipes/pipe.dm b/code/modules/atmospherics/machinery/pipes/pipe.dm index cf8ec102506..ad4b975766c 100644 --- a/code/modules/atmospherics/machinery/pipes/pipe.dm +++ b/code/modules/atmospherics/machinery/pipes/pipe.dm @@ -39,8 +39,6 @@ parent = null /obj/machinery/atmospherics/pipe/returnPipenet(obj/machinery/atmospherics/A) - if(A) - return // It's called by a moving mob that's already in the pipenet return parent /obj/machinery/atmospherics/pipe/detailed_examine() diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index d8e27df91fe..deae1e417da 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -19,6 +19,6 @@ ranged_ability.add_ranged_ability(src, "You currently have [ranged_ability] active!") //Should update regardless of if we can ventcrawl, since we can end up in pipes in other ways. - update_pipe_vision() + update_pipe_vision(loc) return .