anchor.diff:  		QUEUE_FOR_COMPILE
   
   /atom/proc/add_overlay(list/overlays, priority = FALSE)
  -	var/static/image/appearance_bro = new()
   	if(!overlays)
   		return
   
  -	if (!islist(overlays))
  -		overlays = list(overlays)
  -	else
  -		listclearnulls(overlays)
  -	for (var/i in 1 to length(overlays))
  -		if (istext(overlays[i]))
  -			overlays[i] = iconstate2appearance(overlays[i])
  -		else
  -			var/image/I = overlays[i]
  -			appearance_bro.appearance = overlays[i]
  -			appearance_bro.dir = I.dir
  -			overlays[i] = appearance_bro.appearance
  +	overlays = build_appearance_list(overlays)
   
   	LAZYINITLIST(our_overlays)	//always initialized after this point
   	LAZYINITLIST(priority_overlays)
  
positive.code: 
  /datum/controller/subsystem/processing/overlays/Recover()
  	overlay_icon_state_caches = SSoverlays.overlay_icon_state_caches
  	processing = SSoverlays.processing
  
  /datum/controller/subsystem/processing/overlays/fire(resumed = FALSE, mc_check = TRUE)
  
negative.code: 	var/cached_appearance = stringbro.appearance
  	cached_icon["[iconstate]"] = cached_appearance
  	return cached_appearance
  
  /proc/icon2appearance(icon)
  	var/static/image/iconbro = new()
  	var/list/icon_cache = SSoverlays.overlay_icon_cache
  	. = icon_cache[icon]
  	if (!.)
  		iconbro.icon = icon
  		. = iconbro.appearance
  		icon_cache[icon] = .
  
  /atom/proc/build_appearance_list(new_overlays)
  	var/static/image/appearance_bro = new()
  	if (!islist(new_overlays))
  		new_overlays = list(new_overlays)
  	else
  		listclearnulls(new_overlays)
  	for (var/i in 1 to length(new_overlays))
  		var/image/cached_overlay = new_overlays[i]
  		if (istext(cached_overlay))
  			new_overlays[i] = iconstate2appearance(icon, cached_overlay)
  		else if(isicon(cached_overlay))
  			new_overlays[i] = icon2appearance(cached_overlay)
  		else	//image probable
  			appearance_bro.appearance = cached_overlay
  			appearance_bro.dir = cached_overlay.dir
  			new_overlays[i] = appearance_bro.appearance
  	return new_overlays
  
  #define NOT_QUEUED_ALREADY (!(flags & OVERLAY_QUEUED))
  #define QUEUE_FOR_COMPILE flags |= OVERLAY_QUEUED; SSoverlays.processing += src; 
  