Files
Aurora.3/code/datums/expansions/expansion.dm
Lohikar 27251ee9ee Remove the datum pool (#2873)
Removes the datum pool.

New-qdel is faster than pooling, and we didn't use it anyways.
2017-06-30 13:10:14 +03:00

41 lines
847 B
Plaintext

/datum/expansion
var/datum/holder = null // The holder
/datum/expansion/New(var/datum/holder)
if(!istype(holder))
CRASH("Invalid holder.")
src.holder = holder
..()
/datum/expansion/Destroy()
holder = null
return ..()
/datum/expansion/CanUseTopic(var/mob/user)
return holder && user ? STATUS_INTERACTIVE : STATUS_CLOSE
/datum/expansion/Topic()
if(..())
return 1
if(CanUseTopic(usr) != STATUS_INTERACTIVE)
return 1
return 0
/obj
var/list/datum/expansion/expansions
/obj/Destroy()
if (LAZYLEN(expansions))
for(var/expansion in expansions)
qdel(expansions[expansion])
LAZYCLEARLIST(expansions)
expansions = null
return ..()
/obj/proc/set_expansion(var/type, var/instance)
LAZYINITLIST(expansions)
if(expansions[type])
qdel(expansions[type])
expansions[type] = instance