diff --git a/code/datums/components/force_move.dm b/code/datums/components/force_move.dm index 62fe26d71f7..c69fa0d6c5e 100644 --- a/code/datums/components/force_move.dm +++ b/code/datums/components/force_move.dm @@ -10,6 +10,8 @@ var/mob/mob_parent = parent var/dist = get_dist(mob_parent, target) var/datum/move_loop/loop = GLOB.move_manager.move_towards(mob_parent, target, delay = 1, timeout = dist) + if(!loop) + return COMPONENT_INCOMPATIBLE RegisterSignal(mob_parent, COMSIG_MOB_CLIENT_PRE_LIVING_MOVE, PROC_REF(stop_move)) RegisterSignal(mob_parent, COMSIG_ATOM_PRE_PRESSURE_PUSH, PROC_REF(stop_pressure)) if(spin) diff --git a/code/datums/move_manager.dm b/code/datums/move_manager.dm index 23ddcbecdb7..8b74eb1fe14 100644 --- a/code/datums/move_manager.dm +++ b/code/datums/move_manager.dm @@ -88,7 +88,7 @@ GLOBAL_DATUM_INIT(move_manager, /datum/move_manager, new) return //Give up if(existing_loop?.compare_loops(arglist(args.Copy(2)))) - return //it already exists stop trying to make the same moveloop + return existing_loop //it already exists stop trying to make the same moveloop var/datum/move_loop/new_loop = new loop_type(src, subsystem, parent, priority, flags, extra_info) //Pass the mob to move and ourselves in via new var/list/arguments = args.Copy(6) //Just send the args we've not already dealt with