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
+15 -3
View File
@@ -56,7 +56,11 @@
if(!force)
_RemoveFromParent()
if(!silent)
SEND_SIGNAL(P, COMSIG_COMPONENT_REMOVING, src)
#if DM_VERSION > 511
#warn Remove the garbage bypass code below
#endif
var/Removein512 = SEND_SIGNAL(P, COMSIG_COMPONENT_REMOVING, src)
KillMeIn512(Removein512)
parent = null
for(var/target in signal_procs)
UnregisterSignal(target, signal_procs[target])
@@ -258,7 +262,11 @@
new_comp = new nt(arglist(args)) // Dupes are allowed, act like normal
if(!old_comp && !QDELETED(new_comp)) // Nothing related to duplicate components happened and the new component is healthy
SEND_SIGNAL(src, COMSIG_COMPONENT_ADDED, new_comp)
#if DM_VERSION > 511
#warn Remove the garbage bypass code below
#endif
var/Removein512 = SEND_SIGNAL(src, COMSIG_COMPONENT_ADDED, new_comp)
KillMeIn512(Removein512)
return new_comp
return old_comp
@@ -278,7 +286,11 @@
qdel(C)
return
C._RemoveFromParent()
SEND_SIGNAL(helicopter, COMSIG_COMPONENT_REMOVING, C)
#if DM_VERSION > 511
#warn Remove the garbage bypass code below
#endif
var/Removein512 = SEND_SIGNAL(helicopter, COMSIG_COMPONENT_REMOVING, C)
KillMeIn512(Removein512)
C.parent = src
if(C == AddComponent(C))
C._JoinParent()
+5 -2
View File
@@ -282,8 +282,11 @@
to_chat(user, "[reagents.total_volume] units of various reagents.")
else
to_chat(user, "Nothing.")
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user)
#if DM_VERSION > 511
#warn Remove the garbage bypass code below
#endif
var/Removein512 = SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user)
KillMeIn512(Removein512)
return distance == -1 || (get_dist(src, user) <= distance) || isobserver(user) //observers do not have a range limit