anchor.diff:  		update()
   	else if (last_ch != charging)
   		queue_icon_update()
  +	src.updateDialog()
   
   // val 0=off, 1=off(auto) 2=on 3=on(auto)
   // on 0=off, 1=on, 2=autooff
  
positive.code: 			else
  				usr << "The cover is closed."
  
  /*
   * return 0 (reached the proc code end)
   *        1 (wires is exposed)
   *        2 (something is wrong)
   *        3 (broken)
   *        4 (opened)
   */
  /obj/machinery/power/apc/update_icon()
  	var/L[0]
  	overlays = L
  
  	if (opened)
  		// 2 = has cell, 1 = no cell
  		var/basestate = "apc[cell ? "2" : "1"]"
  
  		if (opened == 1)
  			if (stat & (BROKEN | MAINT))
  				//disassembled APC cannot hold cell
  				icon_state = "apcmaint"
  			else
  				icon_state = basestate
  		else if (opened == 2)
  			icon_state = "[basestate]-nocover"
  
  		basestate = null
  		return 4
  	else if (stat & BROKEN)
  		icon_state = "apc-b"
  		return 3
  	else if (emagged || malfai || spooky)
  		icon_state = "apcemag"
  		return 2
  	else if (wiresexposed)
  		icon_state = "apcewires"
  		return 1
  
  	icon_state = "apc0"
  
  	if(!(stat & (BROKEN|MAINT)))
  		// 0 = green, 1 = red
  		L += "apcox-[locked]"
  		// 0 = red, 1 = blue, 2 = green
  		L += "apco3-[charging]"
  
  		if (operating)
  			// 0 = red, 1 = yellow, 2 = green, 3 = blue
  			L += "apco0-[equipment]"
  			L += "apco1-[lighting]"
  			L += "apco2-[environ]"
  
  		overlays = L
  		L = null
  	return 0
  
  // Used in process so it doesn't update the icon too much
  /obj/machinery/power/apc/proc/queue_icon_update()
  
  	if(!updating_icon)
  
negative.code: 	spawn(10)
  		spooky=0
  		update_icon()
  
  
  //attack with an item - open/close cover, insert cell, or (un)lock interface
  /obj/machinery/power/apc/attackby(obj/item/W, mob/user)
  