mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 02:57:48 +01:00
Assorted atmos performance improvements. (#27966)
This commit is contained in:
@@ -61,8 +61,8 @@
|
||||
var/list/firealarms
|
||||
var/firedoors_last_closed_on = 0
|
||||
|
||||
/// The air alarm to use for atmos_alert consoles
|
||||
var/obj/machinery/alarm/master_air_alarm
|
||||
/// The air alarms present in this area.
|
||||
var/list/air_alarms = list()
|
||||
/// The list of vents in our area.
|
||||
var/list/obj/machinery/atmospherics/unary/vent_pump/vents = list()
|
||||
/// The list of scrubbers in our area.
|
||||
|
||||
@@ -19,26 +19,29 @@
|
||||
parent_area_type = machine_area.get_top_parent_type()
|
||||
|
||||
/obj/machinery/computer/atmos_alert/process()
|
||||
// This is relatively cheap because the areas list is pretty small
|
||||
for(var/obj/machinery/alarm/air_alarm as anything in GLOB.air_alarms)
|
||||
if(!((get_area(air_alarm)).type in typesof(parent_area_type)) || air_alarm.z != z)
|
||||
continue // Not an area we monitor, or outside our z-level
|
||||
if(!air_alarm.report_danger_level)
|
||||
alarm_cache = list()
|
||||
alarm_cache["priority"] = list()
|
||||
alarm_cache["minor"] = list()
|
||||
alarm_cache["mode"] = list()
|
||||
for(var/area/A in GLOB.all_areas)
|
||||
if(!istype(A, parent_area_type))
|
||||
continue
|
||||
switch(air_alarm.alarm_area.atmosalm)
|
||||
if(ATMOS_ALARM_DANGER)
|
||||
alarm_cache["priority"] |= air_alarm.alarm_area.name
|
||||
alarm_cache["minor"] -= air_alarm.alarm_area.name
|
||||
if(ATMOS_ALARM_WARNING)
|
||||
alarm_cache["priority"] -= air_alarm.alarm_area.name
|
||||
alarm_cache["minor"] |= air_alarm.alarm_area.name
|
||||
else
|
||||
alarm_cache["priority"] -= air_alarm.alarm_area.name
|
||||
alarm_cache["minor"] -= air_alarm.alarm_area.name
|
||||
if(air_alarm.mode == AALARM_MODE_FILTERING)
|
||||
alarm_cache["mode"] -= air_alarm.alarm_area.name
|
||||
else
|
||||
alarm_cache["mode"][air_alarm.alarm_area.name] = GLOB.aalarm_modes["[air_alarm.mode]"]
|
||||
var/alarm_level = null
|
||||
for(var/obj/machinery/alarm/air_alarm in A.air_alarms)
|
||||
if(!istype(air_alarm))
|
||||
continue
|
||||
if(!air_alarm.report_danger_level)
|
||||
continue
|
||||
switch(air_alarm.alarm_area.atmosalm)
|
||||
if(ATMOS_ALARM_DANGER)
|
||||
alarm_level = "priority"
|
||||
if(ATMOS_ALARM_WARNING)
|
||||
if(isnull(alarm_level))
|
||||
alarm_level = "minor"
|
||||
if(!isnull(alarm_level))
|
||||
alarm_cache[alarm_level] += A.name
|
||||
if(air_alarm.mode != AALARM_MODE_FILTERING)
|
||||
alarm_cache["mode"][A.name] = GLOB.aalarm_modes["[air_alarm.mode]"]
|
||||
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -85,13 +85,7 @@
|
||||
/// The effect used to render a pressure overlay from this tile.
|
||||
var/obj/effect/pressure_overlay/pressure_overlay
|
||||
|
||||
var/list/milla_atmos_airtight = list(FALSE, FALSE, FALSE, FALSE)
|
||||
var/list/milla_superconductivity = list(
|
||||
OPEN_HEAT_TRANSFER_COEFFICIENT,
|
||||
OPEN_HEAT_TRANSFER_COEFFICIENT,
|
||||
OPEN_HEAT_TRANSFER_COEFFICIENT,
|
||||
OPEN_HEAT_TRANSFER_COEFFICIENT)
|
||||
var/list/milla_data = list()
|
||||
var/list/milla_data = null
|
||||
|
||||
new_attack_chain = TRUE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user