Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/lfun/AddAction b/doc/lfun/AddAction
new file mode 100644
index 0000000..23183ca
--- /dev/null
+++ b/doc/lfun/AddAction
@@ -0,0 +1,76 @@
+AddAction(L)
+FUNKTION:
+     varargs void AddAction(mixed fun, mixed cmd, int flag, int lvl);
+
+DEFINIERT IN:
+     /std/player/command.c
+
+ARGUMENTE:
+     fun	zu rufende Methode im Spieler oder eine Closure
+     cmd	ausloesendes Kommandoverb
+     flag	unscharf ausfuehren
+     lvl	ab welchem (Magierlevel) funktioniert das Kommando
+
+BESCHREIBUNG:
+     Dem Spieler wird ein neues Kommando definiert. Dieses kann eine Methode
+     in ihm sein, so wie bei allen Spielerkommandos ueblich, kann aber auch
+     eine Closure (Lfun-Closure oder Lambda) enthalten.
+
+     Mittels "flag" kann man die Kommandoerkennung unscharf halten, d.h. wie
+     bei AddCmd(L) und add_action(E) wird ein 'cmd' bei 'flag = 1' auch
+     schon von Praefix-Strings (hier ohne Leerzeichen) getriggert:
+     AddAction([...], "muh", 1, 0) wird zB auch von 'muhtens' oder 'muh4'
+     ausgeloest.
+
+     Mit "lvl" begrenzt man die Ausfuehrbarkeit. Spieler haben ein
+     Magierlevel von 0, Seher von 1.
+
+     Das Kommando wird in P_LOCALCMDS eingetragen. Diese Property wird
+     nicht gespeichert! Effektiv kann man mit AddAction() ein kommando-
+     gebendes Objekt im Spieler einsparen.
+
+BEMERKUNGEN:
+     - es gibt _noch_ kein RemoveAction! Per Hand in P_LOCALCMDS editieren
+       kann zu ernsten Fehlern fuehren.
+     - echte Spielerkommandos kann man damit _nicht_ ueberschreiben,
+       ein AddAction(...,"sag",1,0); funktioniert nicht
+     - ein generelles AddAction(...,"",1,0); geht nicht
+
+BEISPIELE:
+     ...
+     this_player()->AddAction(symbol_function("zeige_mysterium",
+                                              find_object(".../mystzeiger")),
+			      "knorfula",0,0);
+     write(break_string("Wann immer du jetzt das Kommando \"knorfula\" "
+			"eingibst, werden dir Mysterien enthuellt!",78));
+     ...
+
+     // im Objekt "knorfula" ...
+     int zeige_mysterium(string str) {
+       string myst;
+       myst=environment(TP)->QueryMysterium(str);
+       if(myst) {
+         write("Du hast ein Mysterium entdeckt!\n");
+	 write(break_string(myst,78));
+	 say(break_string(
+		TP->Name(WER)+" scheint nach kurzer Konzentration etwas "
+		"entdeckt zu haben!",78));
+       } else {
+         write(break_string(
+		"Leider entdeckst du trotz deiner magischen Faehigkeit "
+		"kein Mysterium in deiner Umgebung.",78));
+	 say(break_string(
+		TP->Name(WER)+" konzentriert sich sichtbar, sieht dann "
+		"jedoch etwas enttaeuscht aus.",78));
+       }
+       return 1;
+     }
+
+SIEHE AUCH:
+			P_LOCALCMDS
+     Fehlermeldungen:	notify_fail(E), _notify_fail(E)
+     Argumentstring:	query_verb(E), _unparsed_args(L)
+     Sonstiges:		replace_personal(E), enable_commands(E)
+     Alternativen:	AddCmd(L), add_action(E)
+
+24. Maerz 2004 Gloinson