anchor.diff:  	usr.set_machine(src)
   
   	if (href_list["lock"])
  -		if(!locked || (istype(usr, /mob/living/silicon/ai) && !src.aidisabled))
  +		if(validation(usr))
   			coverlocked = !coverlocked
   
   	else if (href_list["breaker"])
  -		if(!locked || (istype(usr, /mob/living/silicon/ai) && !src.aidisabled))
  +		if(validation(usr))
   			toggle_breaker()
   
   	else if (href_list["cmode"])
  -		if(!locked || (istype(usr, /mob/living/silicon/ai) && !src.aidisabled))
  +		if(validation(usr))
   			chargemode = !chargemode
   			if(!chargemode)
   				charging = 0
   				update_icon()
   
   	else if (href_list["eqp"])
  -		if(!locked || (istype(usr, /mob/living/silicon/ai) && !src.aidisabled))
  +		if(validation(usr))
   			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))
  +		if(validation(usr))
   			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))
  +		if(validation(usr))
   			var/val = text2num(href_list["env"])
   			environ = setsubsystem(val)
   			update_icon()
  
positive.code: 
  	else if (href_list["malfhack"])
  		var/mob/living/silicon/ai/malfai = usr
  		if(get_malf_status(usr))
  			if (malfai.malfhacking)
  				malfai << "You are already hacking an APC."
  				return 1
  
negative.code: 			return 0
  	return 1
  
  /obj/machinery/power/apc/proc/validation(mob/user)
  	return (!locked && !istype(usr, /mob/living/silicon/ai)) || (istype(usr, /mob/living/silicon/ai) && !src.aidisabled)
  
  /obj/machinery/power/apc/Topic(href, href_list)
  	if(..())
  		return 0
  