From 1c83211337121681a4d0095a0c778b4dc26824ce Mon Sep 17 00:00:00 2001 From: Heroman Date: Thu, 2 Dec 2021 17:25:54 +1000 Subject: [PATCH 1/2] Fixes vertical noise spread penetrating floors --- code/_helpers/game.dm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index ed4734f355e..6bd5c022dc2 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -249,13 +249,13 @@ /mob/living/silicon/robot/can_hear_radio(var/list/hearturfs) var/turf/T = get_turf(src) var/obj/item/device/radio/borg/R = hearturfs[T] // this should be an assoc list of turf-to-radio - + // We heard it on our own radio? We use power for that. if(istype(R) && R.myborg == src) var/datum/robot_component/CO = get_component("radio") if(!CO || !is_component_functioning("radio") || !cell_use_power(CO.active_usage)) return FALSE // Sorry, couldn't hear - + return R // radio, true, false, what's the difference /mob/observer/dead/can_hear_radio(var/list/hearturfs) @@ -272,14 +272,17 @@ var/list/hear = dview(range,T,INVISIBILITY_MAXIMUM) var/list/hearturfs = list() - + // Openspace visibility handling // Below turfs we can see for(var/turf/simulated/open/O in hear) var/turf/U = GetBelow(O) while(istype(U)) hearturfs |= U - U = GetBelow(U) + if(istype(U, /turf/simulated/open)) + U = GetBelow(U) + else + U = null // Above us var/above_range = range From ba2b78e112cca0b5a6227c4f7e213bc05b9cfd2e Mon Sep 17 00:00:00 2001 From: Heroman Date: Thu, 2 Dec 2021 17:53:39 +1000 Subject: [PATCH 2/2] isopenspace --- code/_helpers/game.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index 6bd5c022dc2..c9727a8a98b 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -279,7 +279,7 @@ var/turf/U = GetBelow(O) while(istype(U)) hearturfs |= U - if(istype(U, /turf/simulated/open)) + if(isopenspace(U)) U = GetBelow(U) else U = null