Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/tell_room b/doc/efun/tell_room
new file mode 100644
index 0000000..77f302c
--- /dev/null
+++ b/doc/efun/tell_room
@@ -0,0 +1,79 @@
+FUNKTION:
+ void tell_room(string|object obj, string str);
+ void tell_room(string|object obj, string str, object *exclude);
+
+ void tell_room(string|object obj, mixed *|mapping|struct|object msg)
+ void tell_room(string|object obj, mixed *|mapping|struct|object msg
+ , object *exclude);
+
+BESCHREIBUNG:
+ Gibt einen Text <str> an den Raum <obj> aus. <obj> kann auch der
+ Objektname des Raumes als String sein.
+ Wenn das Raumobjekt mit seinem Namen angegeben ist, sucht der Driver
+ das Objekt unter diesem Namen und laedt es, falls notwendig.
+
+ Ist die Nachricht ein String, wird der Text an interaktive Objekte
+ direkt ausgegeben, fuer andere Objekte wird die lfun catch_tell()
+ in diesen aufgerufen.
+ Falls ein Lewebesen die Funktion catch_tell() definiert (-> shadow),
+ so wird der Text hier ausgewertet und nicht an den User ausgegeben.
+
+ Wenn das zweite Argument, die Nachricht, kein String ist, wird in
+ allen Lebewesen, die den Text erhalten, catch_msg() anstatt
+ catch_tell() aufgerufen.
+
+ Mit dem Array <*exclude> kann man verhindern, dass die Nachricht an
+ die darin enthaltenen Objekte gesendet wird.
+ Das ist sinnvoll, wenn zB ein Spieler Ausloeser einer Meldung ist
+ und diese selbst nicht erhalten soll.
+
+BEMERKUNGEN:
+ - der Eintrag von mehreren Anwesenden in *exclude ist moeglich
+ - wird in einem catch_msg() der Wert von <msg> veraendert, erhalten
+ alle nachfolgenden Objekte das veraenderte <msg> (Referenz!)
+
+ - say("str") ist verhaltensgleich zu
+ tell_room(environment(), "str", ({this_player()||this_object()}))
+
+BEISPIELE:
+ // Dies ist ein einfaches Beispiel fuer eine Meldung an alle An-
+ // wesenden im Raum.
+
+ tell_room(this_object(),"Ein leichter Wind kommt auf.\n");
+
+ // Diese Meldung wird im Raum /d/ebene/ark/raum.c ausgegeben, dieser
+ // Raum muss nicht derjenige sein, in dem das tell_room() ausgefuehrt
+ // wird.
+
+ tell_room("/d/ebene/ark/raum","Ein leichter Wind kommt auf.\n");
+
+
+ // Diese Meldung wird an alle Anwesenden im Raum AUSSER this_player()
+ // (der diese Meldung ausgeloest hat) ausgegeben. Der muss eine ge-
+ // sonderte Meldung ueber sein Stolpern per write() oder
+ // tell_object() bekommen.
+ tell_room(this_object(),
+ break_string(this_player()->Name()+" stolpert.", 78),
+ ({ this_player() }));
+ tell_object(this_player(), "Du stolperst.\n");
+
+ // Ein Beispiel mit zwei Objekten, das zeigt, wie das Zusammenspiel
+ // von catch_tell() und tell_room() ablaueft. Objekt1 ist ein
+ // Lebewesen mit Namen "Dummymonster", Objekt2 verteilt die Meldung:
+
+ Objekt1 (ein Lebewesen, steht im Env von this_player()):
+ void catch_tell(string str) {
+ write("Empfangen: "+str+"\n");
+ }
+
+ Objekt2:
+ void fun() {
+ tell_room(environment(this_player()), "Hallo Welt!\n");
+ }
+
+SIEHE AUCH
+ Aehnlich: tell_object(E), write(E), shout(E), say(E), printf(E)
+ Verwandt: catch_tell(E), catch_msg(A)
+ Sonstiges: object_name(E)
+
+7.Aug 2007 Gloinson