diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index d1025993dee..6bb510ef884 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -28,10 +28,6 @@ if(M.environment_smash) deconstruct() -/obj/structure/chair/Move(atom/newloc, direct) - ..() - handle_rotation() - /obj/structure/chair/ex_act(severity, target) switch(severity) if(1) @@ -78,31 +74,24 @@ return /obj/structure/chair/proc/handle_rotation(direction) + handle_layer() if(has_buckled_mobs()) for(var/m in buckled_mobs) var/mob/living/buckled_mob = m - buckled_mob.buckled = null //Temporary, so Move() succeeds. - if(!direction || !buckled_mob.Move(get_step(src, direction), direction)) - buckled_mob.buckled = src - setDir(buckled_mob.dir) - return 0 - buckled_mob.buckled = src //Restoring - handle_layer() - return 1 + buckled_mob.setDir(direction) /obj/structure/chair/proc/handle_layer() if(dir == NORTH) - layer = FLY_LAYER + layer = ABOVE_ALL_MOB_LAYER else layer = OBJ_LAYER /obj/structure/chair/proc/spin() setDir(turn(dir, 90)) - handle_layer() - if(has_buckled_mobs()) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - buckled_mob.setDir(dir) + +/obj/structure/chair/setDir(newdir) + ..() + handle_rotation(newdir) /obj/structure/chair/verb/rotate() set name = "Rotate Chair"