anchor.diff:  
   /proc/smooth_icon(atom/A)
   	if(A && A.smooth)
  +		var/adjacencies = calculate_adjacencies(A)
  +
   		clear_overlays(A)
  -		var/adjacencies = calculate_adjacencies(A)
   
   		A.top_left_corner = make_nw_corner(adjacencies)
   		A.top_right_corner = make_ne_corner(adjacencies)
  
positive.code: 	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)
  			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
  			else
  				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
  		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
  
  /proc/clear_overlays(atom/A)
  	A.overlays -= A.top_left_corner
  
negative.code: 		if(SOUTHEAST)
  			return SOUTH_EAST
  		if(SOUTHWEST)
  			return SOUTH_WEST
  