anchor.diff:  					update_icon()
   
   	else if (href_list["occupyapc"])
  -		malfoccupy(usr)
  +		if(get_malf_status(usr))
  +			malfoccupy(usr)
   
   	else if (href_list["deoccupyapc"])
  -		malfvacate()
  +		if(get_malf_status(usr))
  +			malfvacate()
   
   	else if (href_list["toggleaccess"])
   		if (istype(usr, /mob/living/silicon/ai) && !src.aidisabled)
  
positive.code: 	return ui_interact(user)
  
  
  /obj/machinery/power/apc/ui_interact(mob/user, ui_key = "main")
  	if(!user)
  		return
  
  	var/malfStatus
  	if (ticker && ticker.mode && (user.mind in ticker.mode.malf_ai) && istype(user, /mob/living/silicon/ai))
  		if (src.malfai == (user:parent ? user:parent : user))
  
negative.code: 	usr.set_machine(src)
  
  	if (href_list["lock"])
  		if(!locked || (istype(usr, /mob/living/silicon/ai) && !src.aidisabled))
  			coverlocked = !coverlocked
  
  	else if (href_list["breaker"])
  		if(!locked || (istype(usr, /mob/living/silicon/ai) && !src.aidisabled))
  			toggle_breaker()
  
  	else if (href_list["cmode"])
  		if(!locked || (istype(usr, /mob/living/silicon/ai) && !src.aidisabled))
  			chargemode = !chargemode
  			if(!chargemode)
  				charging = 0
  				update_icon()
  
  	else if (href_list["eqp"])
  		if(!locked || (istype(usr, /mob/living/silicon/ai) && !src.aidisabled))
  			var/val = text2num(href_list["eqp"])
  			equipment = setsubsystem(val)
  			update_icon()
  			update()
  
  	else if (href_list["lgt"])
  		if(!locked || (istype(usr, /mob/living/silicon/ai) && !src.aidisabled))
  			var/val = text2num(href_list["lgt"])
  			lighting = setsubsystem(val)
  			update_icon()
  			update()
  
  	else if (href_list["env"])
  		if(!locked || (istype(usr, /mob/living/silicon/ai) && !src.aidisabled))
  			var/val = text2num(href_list["env"])
  			environ = setsubsystem(val)
  			update_icon()
  			update()
  
  	else if( href_list["close"] )
  		usr << browse(null, "window=apc")
  