diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index e677e7c33ba..80c9e10c44f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -668,12 +668,12 @@ //If no destination, move the atom into nullspace (don't do this unless you know what you're doing) else . = TRUE - if (loc) + loc = null + if (oldloc) var/area/old_area = get_area(oldloc) oldloc.Exited(src, null) if(old_area) old_area.Exited(src, null) - loc = null Moved(oldloc, NONE, TRUE) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 7cc1a87c7ca..9a4561f0d47 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -293,6 +293,8 @@ /obj/structure/table/rolling/Moved(atom/OldLoc, Dir) . = ..() + if(!loc) + return for(var/mob/living/living_mob in OldLoc.contents)//Kidnap everyone on top living_mob.forceMove(loc) for(var/x in attached_items) diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index 926c248d396..1467af22dbf 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -128,7 +128,9 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 Bump(atom_entered) /obj/effect/immovablerod/Moved() - + if(!loc) + return ..() + for(var/atom/movable/to_bump in loc) if((to_bump != src) && !QDELETED(to_bump) && (to_bump.density || isliving(to_bump))) Bump(to_bump) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index b8964bb4602..1f3e8a46d1f 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -148,6 +148,8 @@ GLOBAL_LIST_INIT(hallucination_list, list( /obj/effect/hallucination/simple/Moved(atom/OldLoc, Dir) . = ..() + if(!loc) + return Show() /obj/effect/hallucination/simple/Destroy() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 0a5cb689b62..3430df11b90 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -70,6 +70,9 @@ small_action.Grant(src) /mob/living/simple_animal/hostile/megafauna/Moved() + //Safety check + if(!loc) + return ..() if(nest && nest.parent && get_dist(nest.parent, src) > nest_range) var/turf/closest = get_turf(nest.parent) for(var/i = 1 to nest_range) diff --git a/code/modules/recycling/disposal/holder.dm b/code/modules/recycling/disposal/holder.dm index 9832a7dff82..0295ef4feb8 100644 --- a/code/modules/recycling/disposal/holder.dm +++ b/code/modules/recycling/disposal/holder.dm @@ -84,6 +84,9 @@ /obj/structure/disposalholder/Moved(atom/oldLoc, dir) . = ..() var/static/list/pipes_typecache = typecacheof(/obj/structure/disposalpipe) + //Moved to nullspace gang + if(!loc) + return if(!pipes_typecache[loc.type]) var/turf/T = get_turf(loc) if(T)