diff --git a/code/datums/cinematic.dm b/code/datums/cinematic.dm index 7b5556ac02..7b3081cb33 100644 --- a/code/datums/cinematic.dm +++ b/code/datums/cinematic.dm @@ -63,14 +63,6 @@ if(SEND_GLOBAL_SIGNAL(COMSIG_GLOB_PLAY_CINEMATIC, src) & COMPONENT_GLOB_BLOCK_CINEMATIC) return - //Check if you can actually play it (stop mob cinematics for global ones) and create screen objects - for(var/A in GLOB.cinematics) - var/datum/cinematic/C = A - if(C == src) - continue - if(C.is_global || !is_global) - return //Can't play two global or local cinematics at the same time - //We are now playing this cinematic //Handle what happens when a different cinematic tries to play over us diff --git a/code/datums/position_point_vector.dm b/code/datums/position_point_vector.dm index 482e15c57d..b4e483ae2b 100644 --- a/code/datums/position_point_vector.dm +++ b/code/datums/position_point_vector.dm @@ -214,6 +214,7 @@ /datum/point/vector/processed/Destroy() STOP_PROCESSING(SSprojectiles, src) + return ..() /datum/point/vector/processed/proc/start() last_process = world.time diff --git a/code/datums/weakrefs.dm b/code/datums/weakrefs.dm index fbe9036ea7..31e0c3501b 100644 --- a/code/datums/weakrefs.dm +++ b/code/datums/weakrefs.dm @@ -16,8 +16,12 @@ /datum/weakref/New(datum/thing) reference = REF(thing) -/datum/weakref/Destroy() - return QDEL_HINT_LETMELIVE //Let BYOND autoGC thiswhen nothing is using it anymore. +/datum/weakref/Destroy(force) + if(!force) + return QDEL_HINT_LETMELIVE //Let BYOND autoGC thiswhen nothing is using it anymore. + var/datum/target = resolve() + target?.weak_reference = null + return ..() /datum/weakref/proc/resolve() var/datum/D = locate(reference) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm index 5c4b1f2b9f..26c8bd5949 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm @@ -180,10 +180,12 @@ button.screen_loc = DEFAULT_BLOODSPELLS button.moved = DEFAULT_BLOODSPELLS button.ordered = FALSE + /datum/action/bloodsucker/passive/Destroy() if(owner) Remove(owner) target = null + return ..() /////////////////////////////////// TARGETTED POWERS /////////////////////////////////// diff --git a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm index 536c07cd62..e8fb82a5d1 100644 --- a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm +++ b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm @@ -456,6 +456,7 @@ /obj/structure/bloodsucker/candelabrum/Destroy() STOP_PROCESSING(SSobj, src) + return ..() //return a hint /obj/structure/bloodsucker/candelabrum/update_icon_state() icon_state = "candelabrum[lit ? "_lit" : ""]" diff --git a/code/modules/vore/eating/vorepanel.dm b/code/modules/vore/eating/vorepanel.dm index 1adf5ef6e7..9cb46d011d 100644 --- a/code/modules/vore/eating/vorepanel.dm +++ b/code/modules/vore/eating/vorepanel.dm @@ -46,6 +46,7 @@ /datum/vore_look/Destroy() loop = null selected = null + ..() //this is a must return QDEL_HINT_HARDDEL /datum/vore_look/Topic(href,href_list[])