Converts area.all_doors list to be lazily instantiated as a simple example of using the lazy list macros.

This commit is contained in:
Leshana
2017-06-08 16:54:42 -04:00
parent 96a9527d0b
commit 3e84cbbbfd
3 changed files with 8 additions and 4 deletions

View File

@@ -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/no_air = null
// 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/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

View File

@@ -75,6 +75,8 @@
/area/proc/firedoors_close()
if(!firedoors_closed)
firedoors_closed = TRUE
if(!all_doors)
return
for(var/obj/machinery/door/firedoor/E in all_doors)
if(!E.blocked)
if(E.operating)
@@ -87,6 +89,8 @@
/area/proc/firedoors_open()
if(firedoors_closed)
firedoors_closed = FALSE
if(!all_doors)
return
for(var/obj/machinery/door/firedoor/E in all_doors)
if(!E.blocked)
if(E.operating)

View File

@@ -60,18 +60,18 @@
var/area/A = get_area(src)
ASSERT(istype(A))
A.all_doors.Add(src)
LAZYADD(A.all_doors, src)
areas_added = list(A)
for(var/direction in cardinal)
A = get_area(get_step(src,direction))
if(istype(A) && !(A in areas_added))
A.all_doors.Add(src)
LAZYADD(A.all_doors, src)
areas_added += A
/obj/machinery/door/firedoor/Destroy()
for(var/area/A in areas_added)
A.all_doors.Remove(src)
LAZYREMOVE(A.all_doors, src)
. = ..()
/obj/machinery/door/firedoor/get_material()