concepts/
efun/
SYNOPSIS
	unknown call_other(object ob, string str, mixed arg, ...)
	ob->fun(mixed arg, ...)

DESCRIPTION
	Call a member function in another object with an argument. The
	return value is returned from the other object. The object can
	be given directly or via a string (i.e. its file_name). If it
	is given by a string and the object does not exist yet, it
	will be loaded.
	
	ob->fun(args) and "ob_name"->fun(args) is equivalent to
	call_other(ob, "fun", args). Nowadays the ob_name string can
	also be a variable.

	If ob does not define a publicly accessible function of the
	specified name, call_other() will return 0, which
	indistinguishable from a function returning 0.

	Since the type of the returned value is unknown by the
	compiler, you must cast it, if you're LPC code uses
	prototypes.

EXAMPLES
	string str;
	str = (string)this_player()->QueryProp(P_SHORT);
	
	You have to do explicit type casting because of the unknown
	return type.
	
	call_other("/players/wizard/thing", "???", 0);
	
	This looks a bit weird but it is used very often to just load
	the object by calling a not existing function like "???".
	(Thus there is no efun load(string ob_name)).

SEE ALSO
	function_exists(E), call_resolved(E), create(E)