anchor.diff:  	else if(direction & WEST)
   		x_offset -= range
   
  -	var/list/siblings = source.canSmoothWith
  -	if(istype(source, /turf))
  -		if(siblings)
  -			for(var/a_type in siblings)
  -				if(ispath(a_type, /obj))
  -					var/atom/A = locate(a_type) in locate(source.x + x_offset, source.y + y_offset, source.z)
  -					if(A && A.type == a_type)
  -						return A
  -				else
  -					var/turf/T = locate(source.x + x_offset, source.y + y_offset, source.z)
  -					if(T.type == a_type)
  -						return T
  -			return null
  -		var/turf/T = locate(source.x + x_offset, source.y + y_offset, source.z)
  -		return T.type == source.type ? T : null
  -
  -	if(siblings)
  -		for(var/a_type in siblings)
  +	var/turf/target_turf = locate(source.x + x_offset, source.y + y_offset, source.z)
  +	if(source.canSmoothWith)
  +		var/atom/A
  +		for(var/a_type in source.canSmoothWith)
   			if(ispath(a_type, /turf))
  -				var/turf/T = locate(source.x + x_offset, source.y + y_offset, source.z)
  -				if(T.type == a_type)
  -					return T
  +				if(a_type == target_turf.type)
  +					return target_turf
   			else
  -				var/atom/A = locate(a_type) in locate(source.x + x_offset, source.y + y_offset, source.z)
  +				A = locate(a_type) in target_turf
   				if(A && A.type == a_type)
   					return A
   		return null
  -	var/atom/A = locate(source.type) in locate(source.x + x_offset, source.y + y_offset, source.z)
  -	return A && A.type == source.type ? A : null
  +	else
  +		if(isturf(source))
  +			return source.type == target_turf.type ? target_turf : null
  +		var/atom/A = locate(source.type) in target_turf
  +		return A && A.type == source.type ? A : null
   
   /proc/clear_overlays(atom/A)
   	A.overlays -= A.top_left_corner
  
positive.code: 
  /proc/smooth_icon(atom/A)
  	if(A && A.smooth)
  		clear_overlays(A)
  		var/adjacencies = calculate_adjacencies(A)
  
  		A.top_left_corner = make_nw_corner(adjacencies)
  		A.top_right_corner = make_ne_corner(adjacencies)
  
negative.code: 		if(SOUTHEAST)
  			return SOUTH_EAST
  		if(SOUTHWEST)
  			return SOUTH_WEST
  