511 compatibility horror.

This commit is contained in:
variableundefined
2018-09-09 17:27:09 +08:00
parent 4d924f7c97
commit c86bb17739
3 changed files with 29 additions and 7 deletions
+9 -2
View File
@@ -282,6 +282,8 @@ SUBSYSTEM_DEF(garbage)
qdel(D, force)
#endif
/proc/KillMeIn512(sendsignal)
return 1
// Should be treated as a replacement for the 'del' keyword.
// Datums passed to this will be given a chance to clean up references to allow the GC to collect them.
/proc/qdel(datum/D, force = FALSE, ...)
@@ -295,12 +297,17 @@ SUBSYSTEM_DEF(garbage)
if(isnull(D.gc_destroyed))
SEND_SIGNAL(D, COMSIG_PARENT_QDELETED, force) // Give the components a chance to prevent their parent from being deleted
#if DM_VERSION > 511
#warn Remove the garbage bypass code below
#endif
var/Removein512 = SEND_SIGNAL(D, COMSIG_PARENT_QDELETED, force) // Give the components a chance to prevent their parent from being deleted
KillMeIn512(Removein512)
D.gc_destroyed = GC_CURRENTLY_BEING_QDELETED
var/start_time = world.time
var/start_tick = world.tick_usage
var/hint = D.Destroy(arglist(args.Copy(2))) // Let our friend know they're about to get fucked up.
SEND_SIGNAL(D, COMSIG_PARENT_QDELETED, force, hint) // Let the (remaining) components know about the result of Destroy
var/Removein512too = SEND_SIGNAL(D, COMSIG_PARENT_QDELETED, force, hint) // Let the (remaining) components know about the result of Destroy
KillMeIn512(Removein512too)
if(world.time != start_time)
I.slept_destroy++
else