anchor.diff:  
   	if(href_list["ArrivalTopic"])
   		var/NewMessage = stripped_input(usr, "Enter in the arrivals announcement configuration.", "Arrivals Announcement Config", arrival)
  -		if(!in_range(src, usr) && src.loc != usr && (!isAI(usr) && !IsAdminGhost(usr)))
  +		if(!usr.canUseTopic(src, !issilicon(usr)))
   			return
   		if(NewMessage)
   			arrival = NewMessage
   	else if(href_list["NewheadTopic"])
   		var/NewMessage = stripped_input(usr, "Enter in the departmental head announcement configuration.", "Head Departmental Announcement Config", newhead)
  -		if(!in_range(src, usr) && src.loc != usr && (!isAI(usr) && !IsAdminGhost(usr)))
  +		if(!usr.canUseTopic(src, !issilicon(usr)))
   			return
   		if(NewMessage)
   			newhead = NewMessage
  
positive.code: 	popup.open()
  
  /obj/machinery/announcement_system/Topic(href, href_list)
  	if(stat & BROKEN)
  		visible_message("<span class='warning'>[src] buzzes.</span>", "<span class='italics'>You hear a faint buzz.</span>")
  		playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 1)
  
negative.code: //config stuff
  
  /obj/machinery/announcement_system/interact(mob/user)
  	if(!user.canUseTopic(src, !issilicon(user)))
  		return
  	if(stat & BROKEN)
  		visible_message("<span class='warning'>[src] buzzes.</span>", "<span class='italics'>You hear a faint buzz.</span>")
  		playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 1)
  