mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 19:22:56 +00:00
Converts area.all_doors list to be lazily instantiated as a simple example of using the lazy list macros.
This commit is contained in:
@@ -48,7 +48,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
|||||||
var/obj/machinery/power/apc/apc = null
|
var/obj/machinery/power/apc/apc = null
|
||||||
var/no_air = null
|
var/no_air = null
|
||||||
// var/list/lights // list of all lights on this area
|
// var/list/lights // list of all lights on this area
|
||||||
var/list/all_doors = list() //Added by Strumpetplaya - Alarm Change - Contains a list of doors adjacent to this area
|
var/list/all_doors = null //Added by Strumpetplaya - Alarm Change - Contains a list of doors adjacent to this area
|
||||||
var/firedoors_closed = 0
|
var/firedoors_closed = 0
|
||||||
var/list/ambience = list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg')
|
var/list/ambience = list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg')
|
||||||
var/list/forced_ambience = null
|
var/list/forced_ambience = null
|
||||||
|
|||||||
@@ -75,6 +75,8 @@
|
|||||||
/area/proc/firedoors_close()
|
/area/proc/firedoors_close()
|
||||||
if(!firedoors_closed)
|
if(!firedoors_closed)
|
||||||
firedoors_closed = TRUE
|
firedoors_closed = TRUE
|
||||||
|
if(!all_doors)
|
||||||
|
return
|
||||||
for(var/obj/machinery/door/firedoor/E in all_doors)
|
for(var/obj/machinery/door/firedoor/E in all_doors)
|
||||||
if(!E.blocked)
|
if(!E.blocked)
|
||||||
if(E.operating)
|
if(E.operating)
|
||||||
@@ -87,6 +89,8 @@
|
|||||||
/area/proc/firedoors_open()
|
/area/proc/firedoors_open()
|
||||||
if(firedoors_closed)
|
if(firedoors_closed)
|
||||||
firedoors_closed = FALSE
|
firedoors_closed = FALSE
|
||||||
|
if(!all_doors)
|
||||||
|
return
|
||||||
for(var/obj/machinery/door/firedoor/E in all_doors)
|
for(var/obj/machinery/door/firedoor/E in all_doors)
|
||||||
if(!E.blocked)
|
if(!E.blocked)
|
||||||
if(E.operating)
|
if(E.operating)
|
||||||
|
|||||||
@@ -60,18 +60,18 @@
|
|||||||
var/area/A = get_area(src)
|
var/area/A = get_area(src)
|
||||||
ASSERT(istype(A))
|
ASSERT(istype(A))
|
||||||
|
|
||||||
A.all_doors.Add(src)
|
LAZYADD(A.all_doors, src)
|
||||||
areas_added = list(A)
|
areas_added = list(A)
|
||||||
|
|
||||||
for(var/direction in cardinal)
|
for(var/direction in cardinal)
|
||||||
A = get_area(get_step(src,direction))
|
A = get_area(get_step(src,direction))
|
||||||
if(istype(A) && !(A in areas_added))
|
if(istype(A) && !(A in areas_added))
|
||||||
A.all_doors.Add(src)
|
LAZYADD(A.all_doors, src)
|
||||||
areas_added += A
|
areas_added += A
|
||||||
|
|
||||||
/obj/machinery/door/firedoor/Destroy()
|
/obj/machinery/door/firedoor/Destroy()
|
||||||
for(var/area/A in areas_added)
|
for(var/area/A in areas_added)
|
||||||
A.all_doors.Remove(src)
|
LAZYREMOVE(A.all_doors, src)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
/obj/machinery/door/firedoor/get_material()
|
/obj/machinery/door/firedoor/get_material()
|
||||||
|
|||||||
Reference in New Issue
Block a user