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.
if((previously_open & d) && istype(unsim, /turf/simulated))
var/turf/simulated/sim = unsim
if(sim.zone == zone)
if(zone && sim.zone == zone)
zone.rebuild()
return

View File

@@ -85,10 +85,10 @@ var/datum/controller/process/garbage_collector/garbage_collector
A.finalize_qdel()
/datum/proc/finalize_qdel()
del(src)
garbage_collector.AddTrash(src)
/turf/finalize_qdel()
garbage_collector.AddTrash(src)
del(src)
// Default implementation of clean-up code.
// 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>")
add_fingerprint(user)
return M
//Cleanup
/obj/Destroy()
. = ..()
unbuckle_mob()
/obj/Del()
. = ..()
unbuckle_mob()

View File

@@ -40,8 +40,7 @@
/obj/singularity_act()
ex_act(1)
if(src)
spawn(0)
qdel(src)
qdel(src)
return 2
/obj/singularity_pull(S, current_size)
@@ -72,6 +71,7 @@
return
/obj/machinery/power/supermatter/shard/singularity_act()
src.loc = null
qdel(src)
return 5000
@@ -83,8 +83,8 @@
SetUniversalState(/datum/universal_state/supermatter_cascade)
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].")
spawn(0)
qdel(src)
src.loc = null
qdel(src)
return 50000
/obj/item/projectile/beam/emitter/singularity_pull()