Switches around turf/datum garbage handling (my fault..). Adds null check for zone rebuilds.

This commit is contained in:
PsiOmega
2015-04-16 13:52:40 +02:00
parent d381eb6083
commit 1daf0abe3d
4 changed files with 270 additions and 261 deletions

View File

@@ -102,7 +102,7 @@
//This happens when windows move or are constructed. We need to rebuild. //This happens when windows move or are constructed. We need to rebuild.
if((previously_open & d) && istype(unsim, /turf/simulated)) if((previously_open & d) && istype(unsim, /turf/simulated))
var/turf/simulated/sim = unsim var/turf/simulated/sim = unsim
if(sim.zone == zone) if(zone && sim.zone == zone)
zone.rebuild() zone.rebuild()
return return

View File

@@ -85,10 +85,10 @@ var/datum/controller/process/garbage_collector/garbage_collector
A.finalize_qdel() A.finalize_qdel()
/datum/proc/finalize_qdel() /datum/proc/finalize_qdel()
del(src) garbage_collector.AddTrash(src)
/turf/finalize_qdel() /turf/finalize_qdel()
garbage_collector.AddTrash(src) del(src)
// Default implementation of clean-up code. // Default implementation of clean-up code.
// This should be overridden to remove all references pointing to the object being destroyed. // This should be overridden to remove all references pointing to the object being destroyed.

View File

@@ -84,3 +84,12 @@
"<span class='notice'>You hear metal clanking.</span>") "<span class='notice'>You hear metal clanking.</span>")
add_fingerprint(user) add_fingerprint(user)
return M return M
//Cleanup
/obj/Destroy()
. = ..()
unbuckle_mob()
/obj/Del()
. = ..()
unbuckle_mob()

View File

@@ -40,8 +40,7 @@
/obj/singularity_act() /obj/singularity_act()
ex_act(1) ex_act(1)
if(src) if(src)
spawn(0) qdel(src)
qdel(src)
return 2 return 2
/obj/singularity_pull(S, current_size) /obj/singularity_pull(S, current_size)
@@ -72,6 +71,7 @@
return return
/obj/machinery/power/supermatter/shard/singularity_act() /obj/machinery/power/supermatter/shard/singularity_act()
src.loc = null
qdel(src) qdel(src)
return 5000 return 5000
@@ -83,8 +83,8 @@
SetUniversalState(/datum/universal_state/supermatter_cascade) SetUniversalState(/datum/universal_state/supermatter_cascade)
log_admin("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].") log_admin("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
message_admins("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].") message_admins("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
spawn(0) src.loc = null
qdel(src) qdel(src)
return 50000 return 50000
/obj/item/projectile/beam/emitter/singularity_pull() /obj/item/projectile/beam/emitter/singularity_pull()