anchor.diff:  		if(targetselected)
   			if(!target)
   				usr << "<font color='red'>Error: callproc(): owner of proc no longer exists.</font>"
  -				return
  -			if(!hascall(target,procname))
  -				usr << "<font color='red'>Error: callproc(): target has no such call [procname].</font>"
   				return
   			log_admin("[key_name(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].")
   			returnval = call(target,procname)(arglist(lst)) // Pass the lst as an argument list to the proc
  
positive.code: /client/proc/get_callproc_args()
  	var/argnum = input("Number of arguments","Number:",0) as num|null
  	if(!argnum && (argnum!=0))	return
  
  	var/list/lst = list()
  	//TODO: make a list to store whether each argument was initialised as null.
  	//Reason: So we can abort the proccall if say, one of our arguments was a mob which no longer exists
  	//this will protect us from a fair few errors ~Carn
  
  	while(argnum--)
  		// Make a list with each index containing one variable, to be given to the proc
  		var/class = input("What kind of variable?","Variable Type") in list("text","num","type","reference","mob reference","icon","file","client","mob's area","CANCEL")
  		switch(class)
  			if("CANCEL")
  				return null
  
negative.code: 			if("mob's area")
  				var/mob/temp = input("Select mob", "Selection", usr) as mob in world
  				lst += temp.loc
  			if("Marked datum")
  				lst += holder.marked_datum
  	return lst
  
  
  