diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm index 6e6cf9001ff..5b80b16e262 100644 --- a/code/datums/components/orbiter.dm +++ b/code/datums/components/orbiter.dm @@ -22,14 +22,14 @@ /datum/component/orbiter/RegisterWithParent() . = ..() var/atom/target = parent - while(ismovable(target)) + if(ismovable(target)) RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(move_react)) target = target.loc /datum/component/orbiter/UnregisterFromParent() . = ..() var/atom/target = parent - while(ismovable(target)) + if(ismovable(target)) UnregisterSignal(target, COMSIG_MOVABLE_MOVED) target = target.loc @@ -119,12 +119,12 @@ // These are prety rarely activated, how often are you following something in a bag? if(oldloc && !isturf(oldloc)) // We used to be registered to it, probably var/atom/target = oldloc - while(ismovable(target)) + if(ismovable(target)) UnregisterSignal(target, COMSIG_MOVABLE_MOVED) target = target.loc if(orbited?.loc && orbited.loc != newturf) // We want to know when anything holding us moves too var/atom/target = orbited.loc - while(ismovable(target)) + if(ismovable(target)) RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(move_react), TRUE) target = target.loc diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 66e23dee715..b6b38246bd7 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -645,7 +645,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp to_chat(src, span_filter_notice(span_red("You are dead! You have no mind to store memory!"))) /mob/observer/dead/Post_Incorpmove() - stop_following() + if(following) //This wasn't here before. It meant that we would do stop_following repeatedly every movement we made...Resulting in a DOS on our client. + stop_following() /mob/observer/dead/verb/analyze_air() set name = "Analyze Air"