diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 7beccb38d8e..4818a02f6d8 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -712,22 +712,22 @@ SLIME SCANNER * Used in chat-based gas scans. */ /proc/atmos_scan(mob/user, atom/target, silent = FALSE, print = TRUE, milla_turf_details = FALSE, detailed = FALSE) - var/datum/gas_mixture/gasmix var/list/airs var/list/milla = null if(milla_turf_details && istype(target, /turf)) + // This is one of the few times when it's OK to call MILLA directly, as we need more information than we normally keep, aren't trying to modify it, and don't need it to be synchronized with anything. milla = new/list(MILLA_TILE_SIZE) get_tile_atmos(target, milla) - gasmix = new() - gasmix.copy_from_milla(milla) - airs += gasmix + + var/datum/gas_mixture/air = new() + air.copy_from_milla(milla) + airs = list(air) else - gasmix = target.return_analyzable_air() - if(!istype(gasmix, /list)) - gasmix = list(gasmix) - airs += gasmix - if(!gasmix) + airs = target.return_analyzable_air() + if(!airs) return FALSE + if(!islist(airs)) + airs = list(airs) var/list/message = list() if(!silent && isliving(user))