mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-17 01:53:35 +01:00
More GC and Performance Fixes (#7248)
This commit is contained in:
@@ -213,6 +213,10 @@
|
||||
radio_controller.remove_object(src, frequency)
|
||||
air_alarm_repository.update_cache(src)
|
||||
QDEL_NULL(wires)
|
||||
if(alarm_area && alarm_area.master_air_alarm == src)
|
||||
alarm_area.master_air_alarm = null
|
||||
elect_master(exclude_self = 1)
|
||||
alarm_area = null
|
||||
return ..()
|
||||
|
||||
/obj/machinery/alarm/proc/first_run()
|
||||
@@ -236,8 +240,10 @@
|
||||
return alarm_area.master_air_alarm && !(alarm_area.master_air_alarm.stat & (NOPOWER|BROKEN))
|
||||
|
||||
|
||||
/obj/machinery/alarm/proc/elect_master()
|
||||
/obj/machinery/alarm/proc/elect_master(exclude_self = 0) //Why is this an alarm and not area proc?
|
||||
for(var/obj/machinery/alarm/AA in alarm_area)
|
||||
if(exclude_self && AA == src)
|
||||
continue
|
||||
if(!(AA.stat & (NOPOWER|BROKEN)))
|
||||
alarm_area.master_air_alarm = AA
|
||||
return 1
|
||||
|
||||
@@ -19,13 +19,6 @@ FIRE ALARM
|
||||
var/last_process = 0
|
||||
var/wiresexposed = 0
|
||||
var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone
|
||||
var/area/master_area
|
||||
|
||||
/obj/machinery/firealarm/New()
|
||||
var/area/A = get_area_master(src)
|
||||
if(!istype(A, /area))
|
||||
return
|
||||
master_area = A
|
||||
|
||||
/obj/machinery/firealarm/update_icon()
|
||||
|
||||
@@ -294,14 +287,6 @@ Just a object used in constructing fire alarms
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 6
|
||||
|
||||
var/area/master_area
|
||||
|
||||
/obj/machinery/partyalarm/New()
|
||||
var/area/A = get_area_master(src)
|
||||
if(!( istype(A, /area) ))
|
||||
return
|
||||
master_area=A
|
||||
|
||||
/obj/machinery/partyalarm/attack_hand(mob/user)
|
||||
if((user.stat && !isobserver(user)) || stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
|
||||
@@ -34,9 +34,9 @@
|
||||
|
||||
post_status("alert", "outline")
|
||||
|
||||
for(var/obj/machinery/firealarm/FA in world)
|
||||
for(var/obj/machinery/firealarm/FA in machines)
|
||||
if(is_station_contact(FA.z))
|
||||
FA.overlays = list()
|
||||
FA.overlays.Cut()
|
||||
FA.overlays += image('icons/obj/monitors.dmi', "overlay_green")
|
||||
|
||||
if(SEC_LEVEL_BLUE)
|
||||
@@ -48,9 +48,9 @@
|
||||
|
||||
post_status("alert", "outline")
|
||||
|
||||
for(var/obj/machinery/firealarm/FA in world)
|
||||
for(var/obj/machinery/firealarm/FA in machines)
|
||||
if(is_station_contact(FA.z))
|
||||
FA.overlays = list()
|
||||
FA.overlays.Cut()
|
||||
FA.overlays += image('icons/obj/monitors.dmi', "overlay_blue")
|
||||
|
||||
if(SEC_LEVEL_RED)
|
||||
@@ -60,16 +60,16 @@
|
||||
security_announcement_down.Announce("The station's self-destruct mechanism has been deactivated, but there is still an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised.","Attention! Code Red!")
|
||||
security_level = SEC_LEVEL_RED
|
||||
|
||||
var/obj/machinery/door/airlock/highsecurity/red/R = locate(/obj/machinery/door/airlock/highsecurity/red) in world
|
||||
var/obj/machinery/door/airlock/highsecurity/red/R = locate(/obj/machinery/door/airlock/highsecurity/red) in airlocks
|
||||
if(R && is_station_level(R.z))
|
||||
R.locked = 0
|
||||
R.update_icon()
|
||||
|
||||
post_status("alert", "redalert")
|
||||
|
||||
for(var/obj/machinery/firealarm/FA in world)
|
||||
for(var/obj/machinery/firealarm/FA in machines)
|
||||
if(is_station_contact(FA.z))
|
||||
FA.overlays = list()
|
||||
FA.overlays.Cut()
|
||||
FA.overlays += image('icons/obj/monitors.dmi', "overlay_red")
|
||||
|
||||
if(SEC_LEVEL_GAMMA)
|
||||
@@ -91,9 +91,9 @@
|
||||
|
||||
post_status("alert", "gammaalert")
|
||||
|
||||
for(var/obj/machinery/firealarm/FA in world)
|
||||
for(var/obj/machinery/firealarm/FA in machines)
|
||||
if(is_station_contact(FA.z))
|
||||
FA.overlays = list()
|
||||
FA.overlays.Cut()
|
||||
FA.overlays += image('icons/obj/monitors.dmi', "overlay_gamma")
|
||||
FA.update_icon()
|
||||
|
||||
@@ -103,9 +103,9 @@
|
||||
|
||||
post_status("alert", "epsilonalert")
|
||||
|
||||
for(var/obj/machinery/firealarm/FA in world)
|
||||
for(var/obj/machinery/firealarm/FA in machines)
|
||||
if(is_station_contact(FA.z))
|
||||
FA.overlays = list()
|
||||
FA.overlays.Cut()
|
||||
FA.overlays += image('icons/obj/monitors.dmi', "overlay_epsilon")
|
||||
|
||||
if(SEC_LEVEL_DELTA)
|
||||
@@ -114,9 +114,9 @@
|
||||
|
||||
post_status("alert", "deltaalert")
|
||||
|
||||
for(var/obj/machinery/firealarm/FA in world)
|
||||
for(var/obj/machinery/firealarm/FA in machines)
|
||||
if(is_station_contact(FA.z))
|
||||
FA.overlays = list()
|
||||
FA.overlays.Cut()
|
||||
FA.overlays += image('icons/obj/monitors.dmi', "overlay_delta")
|
||||
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user