anchor.diff:  	set src in oview(1)
   
   	if(config.ghost_interaction)
  -		src.dir = turn(src.dir, 90)
  -		handle_rotation()
  -		return
  +		spin()
   	else
   		if(!usr || !isturf(usr.loc))
   			return
   		if(usr.stat || usr.restrained())
   			return
  -
  -		src.dir = turn(src.dir, 90)
  -		handle_rotation()
  -		return
  +		spin()
   
   /obj/structure/stool/bed/chair/MouseDrop_T(mob/M as mob, mob/user as mob)
   	if(!istype(M)) return
  
positive.code: 		rotate()
  	return
  
  /obj/structure/stool/bed/chair/proc/handle_rotation()	//making this into a seperate proc so office chairs can call it on Move()
  	if(src.dir == NORTH)
  		src.layer = FLY_LAYER
  	else
  		src.layer = OBJ_LAYER
  
  	if(buckled_mob)
  		if(buckled_mob.loc != src.loc)
  			buckled_mob.buckled = null //Temporary, so Move() succeeds.
  			if(!buckled_mob.Move(loc))
  				unbuckle()
  				buckled_mob = null
  			else
  				buckled_mob.buckled = src //Restoring
  		if(buckled_mob)
  			buckled_mob.dir = dir
  
  /obj/structure/stool/bed/chair/verb/rotate()
  	set name = "Rotate Chair"
  
negative.code: /obj/structure/stool/bed/chair/office
  	anchored = 0
  
  /obj/structure/stool/bed/chair/office/Move(direction)
  	if(handle_rotation(direction))
  		..()
  	handle_layer()
  
  /obj/structure/stool/bed/chair/office/light
  	icon_state = "officechair_white"
  