Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/set_this_object b/doc/efun/set_this_object
new file mode 100644
index 0000000..2afda56
--- /dev/null
+++ b/doc/efun/set_this_object
@@ -0,0 +1,60 @@
+GESCHUETZT
+SYNOPSIS
+        void set_this_object(object objekt-an-stelle-von-originalobjekt);
+
+BESCHREIBUNG
+        Dies ist eine geschuetzte Funktion, die nur vom Master-Objekt und im
+        Simul-Efun-Objekt genutzt werden darf. Bei sonstiger Benutzung
+        erzeugt diese Funktion einen Fehler.
+
+        Die Funktion aendert das Resultat von this_object() in der laufenden
+        Funktion, ebenso das Resultat von previous_object() in Funktionen in
+        anderen Objekten, die einen call_other() Aufruf machen.
+
+        Der Effekt von set_this_object() bleibt bestehen, bis ein externer
+        Funktionsaufruf abgeschlossen ist oder bis zu einem erneuten
+        set_this_object(). Waehrend der Ausfuehrung von Code im Master-Objekt
+        oder im Simul-Efun-Objekt ist set_this_object() garantiert, auch wenn
+        this_object() durch set_this_object() veraendert wird. Die gilt
+        nicht fuer Funktionen, die aus anderen Programmen inheritet werden.
+
+        Diese Funktion darf nur mit hoechster Sorgfalt verwendet werden, um
+        Inkonsistenzen zu vermeiden. Nach einem Aufruf von set_this_object()
+        koennen sich gewisse LPC-Konstrukte merkwuerdig verhalten oder gar
+        das System zum Absturz bringen. Insbesondere die Verwendung von
+        globalen Variablen oder der Aufruf von lokalen Funktionen (ausser
+        durch call_other()) ist unzulaessig und wird aktiv verhindert.
+
+        Erlaubt sind call_other(), map(), der Zugriff auf lokale Variablen
+        (die auch Pointer auf globale Arrays enthalten duerfen), einfache
+        Arithmetik und der Zuweisungs-Operator.
+
+BUGS
+        Es ist momentan nicht moeglich, das originale gueltige Objekt wieder
+        herzustellen. Anstelle von:
+
+            object ich = this_object();
+            set_this_object(dings);
+            <irgendwelcher Code>
+            set_this_object(ich);
+            <mehr Code>
+
+        muss das ueber einen Umweg geloest werden:
+
+            private void tuwas(object dings)
+            {
+                set_this_object(dings);
+                <irgendwelcher code>
+            }
+
+            funcall(#'tuwas, dings);
+            <mehr Code>
+
+        Manche Leute bezeichnen das als Feature.
+
+AENDERUNGEN
+        LDMud 3.2.10 verhindert aktiv die Referenz auf globale Variablen und
+            Funktionsaufrufe nach Adresse, waehren set_this_object() gilt.
+
+SIEHE AUCH
+        this_object(E), set_this_player(E)