diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 552fe746cb2..0417f0ca1d0 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -222,8 +222,6 @@ var/list/mob/living/forced_ambiance_list = new if(!istype(A,/mob/living)) return var/mob/living/L = A - if(!L.ckey) return - if(!L.lastarea) L.lastarea = get_area(L.loc) var/area/newarea = get_area(L.loc) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 1b7c16a758d..9b87b564d0f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -50,7 +50,7 @@ if(has_gravity()) return 1 - if(length(pulledby)) + if(pulledby) return 1 if(throwing) diff --git a/code/modules/mechs/mech_movement.dm b/code/modules/mechs/mech_movement.dm index 30156988a36..db5229ae139 100644 --- a/code/modules/mechs/mech_movement.dm +++ b/code/modules/mechs/mech_movement.dm @@ -15,20 +15,6 @@ if(Process_Spacemove()) //Handle here return TRUE -/mob/living/exosuit/Process_Spacemove() - . = ..() - if(.) - return - - //Regardless of modules, emp prevents control - if(emp_damage >= EMP_MOVE_DISRUPT && prob(25)) - return FALSE - - var/obj/item/mech_equipment/ionjets/J = hardpoints[HARDPOINT_BACK] - if(istype(J)) - if(J.allowSpaceMove()) - return TRUE - //Inertia drift making us face direction makes exosuit flight a bit difficult, plus newtonian flight model yo /mob/living/exosuit/set_dir(ndir) if(inertia_dir && inertia_dir == ndir) @@ -142,16 +128,24 @@ return TRUE /mob/living/exosuit/Process_Spacemove() + //Regardless of modules, emp prevents control + if(emp_damage >= EMP_MOVE_DISRUPT && prob(25)) + return FALSE + if(has_gravity() || throwing || !isturf(loc) || length(grabbed_by) || check_space_footing() || locate(/obj/structure/lattice) in range(1, get_turf(src))) anchored = TRUE - return 1 + return TRUE + + var/obj/item/mech_equipment/ionjets/J = hardpoints[HARDPOINT_BACK] + if(istype(J)) + if(J.allowSpaceMove()) + return TRUE anchored = FALSE - return 0 + return FALSE /mob/living/exosuit/check_space_footing()//mechs can't push off things to move around in space, they stick to hull or float away - for(var/thing in trange(1,src)) - var/turf/T = thing + for(var/turf/T in trange(1, src)) if(T.density || T.is_wall() || T.is_floor()) return T