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