Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/destruct b/doc/efun/destruct
new file mode 100644
index 0000000..f64de56
--- /dev/null
+++ b/doc/efun/destruct
@@ -0,0 +1,43 @@
+SYNOPSIS
+ void destruct(object ob)
+
+BESCHREIBUNG
+ Zerstoert und entfernt das Objekt ob. Ist ob == 0 (ob wurde schon
+ zerstoert), so passiert nichts. Nach dem Aufruf von destruct()
+ existieren keine globalen Variablen mehr, sondern nur noch lokale
+ Variablen und Argumente.
+
+ Wenn sich ein Objekt selbst zerstoert, wird die Ausfuehrung nicht
+ sofort abgebrochen. Wird die Efun this_object() aufgerufen, so
+ liefert diese 0 zurueck.
+
+ Die meisten Mudlibs moegen es nicht, wenn andere Objekte mittels
+ destruct() ins Daten-Nirwana geschickt werden. Stattdessen erwarten
+ sie den Aufruf einer speziellen Lfun im zu zerstoerenden Objekt,
+ welche normalerweise remove() heisst. Damit kann das zu
+ zerstoerende Objekt noch abschliessende Arbeiten im Zusammenhang
+ mit seinem Ableben erledigen, wie z. B. die Anpassung des Gewichtes
+ seiner Umgebung etc. pp.
+
+ Der Interpreter zerstoert das Objekt nicht sofort, sondern er
+ markiert es als zerstoert, entfernt es von der Liste, die alle
+ Objekte enthaelt, und fuegt es zu der Liste zu zerstoerenden
+ Objekte hinzu. Die tatsaechliche Zerstoerung geschieht erst dann,
+ wenn keine Referenzen mehr auf das Objekt existieren. Deshalb ist
+ es moeglich, dass ein Objekt noch lange nach seiner Zerstoerung
+ Speicher belegt, obwohl es von ausserhalb nicht mehr gefunden wird.
+
+BEISPIEL
+ ob->remove();
+ if(ob) // es existiert noch, vielleicht ist die Lfun
+ // remove() nicht definiert?
+ destruct(ob);
+
+ Dies ist die Standard-Methode, ein Objekt zu zerstoeren, ihm aber
+ vorher noch die Chance zu geben, es selber zu tun.
+
+AENDERUNGEN
+ LDMud 3.2.7: 0 (zerstoerte Objekt) als Argument annehmen.
+
+SIEHE AUCH
+ clone_object(E), remove(A)