anchor.diff:  	var/d2 = in_dir&12			 // eg. west	  (1+8)&12 (0000 1100) = 8 (0000 1000)
   
   	for(var/d in list(d1,d2))
  -		if(!T0.ClickCross(d, border_only = 1, target_atom = target))
  +		if(!T0.ClickCross(d, border_only = 1, target_atom = target, mover = mover))
   			continue // could not leave T0 in that direction
   
   		var/turf/T1 = get_step(T0,d)
  -		if(!T1 || T1.density || !T1.ClickCross(get_dir(T1,T0) | get_dir(T1,src), border_only = 0, target_atom = target)) //let's check both directions at once
  +		if(!T1 || T1.density)
  +			continue
  +		if(!T1.ClickCross(get_dir(T1,src), border_only = 0, target_atom = target, mover = mover) || !T1.ClickCross(get_dir(T1,T0), border_only = 0, target_atom = target, mover = mover))
   			continue // couldn't enter or couldn't leave T1
   
  -		if(!src.ClickCross(get_dir(src,T1), border_only = 1, target_atom = target))
  +		if(!src.ClickCross(get_dir(src,T1), border_only = 1, target_atom = target, mover = mover))
   			continue // could not enter src
   
   		return 1 // we don't care about our own density
  
positive.code: 	* If you are diagonally adjacent, ensure you can pass through at least one of the mutually adjacent square.
  		* Passing through in this case ignores anything with the LETPASSTHROW pass flag, such as tables, racks, and morgue trays.
  */
  /turf/Adjacent(var/atom/neighbor, var/atom/target = null)
  	var/turf/T0 = get_turf(neighbor)
  
  	if(T0 == src) //same turf
  
negative.code: 	// Non diagonal case
  	if(T0.x == x || T0.y == y)
  		// Check for border blockages
  		return T0.ClickCross(get_dir(T0,src), border_only = 1, target_atom = target, mover = mover) && src.ClickCross(get_dir(src,T0), border_only = 1, target_atom = target, mover = mover)
  
  	// Diagonal case
  	var/in_dir = get_dir(T0,src) // eg. northwest (1+8) = 9 (00001001)
  