Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/lfun/check_restrictions b/doc/lfun/check_restrictions
new file mode 100644
index 0000000..2c815cd
--- /dev/null
+++ b/doc/lfun/check_restrictions
@@ -0,0 +1,149 @@
+check_restrictions()
+FUNKTION:
+    string check_restrictions(object pl, mapping restr)
+
+DEFINIERT IN:
+    /std/restriction_checker.c
+
+ARGUMENTE:
+    object pl        geprueftes Lebewesen
+    mapping restr    Mapping mit Restriktionen, s.u.
+
+BESCHREIBUNG:
+    Die Methode wird verwendet, um Restriktionen (zum Beispiel fuer das
+    Casten eines Spells) zu pruefen. Sie wird von Spellbook und
+    Gildenobjekt direkt genutzt.
+
+    Ihr wird dabei ein Spielerobjekt sowie ein Mapping mit den jeweiligen
+    Restriktionen uebergeben. Die aktuell moeglichen Keys des Mappings sind
+    weiter unten gelistet.
+
+BEMERKUNGEN:
+    Es wird bei der Rasse P_REAL_RACE geprueft. Der Tarnhelm funktioniert
+    also nicht.
+
+    Bei Erweiterungsvorschlaegen wendet euch bitte an einen EM oder
+    inheritet im Zweifelsfall nach Absprache.
+    NIEMALS solchen Code einfach KOPIEREN. Spaeter muss nur irgendwer
+    eurem alten Code hinterherraeumen.
+
+Aktuelle Liste der pruefbaren Parameter:
+    P_LEVEL
+      Mindeststufe, die das Lebewesen besitzen muss, um die Aktion
+      auszufuehren.
+    P_GUILD_LEVEL
+      Gildenlevel, das das Lebewesen mindestens erreicht haben muss, um die
+      Aktion auszufuehren.
+    SR_SEER
+      Ist gesetzt, wenn das Lebewesen Seher sein muss.
+      Auswertung nur fuer Interactives, NSC ignorieren das Flag.
+    P_XP
+      Mindestmenge an Erfahrungspunkten, die ein Lebewesen besitzen muss,
+      um die Aktion auszufuehren.
+    P_QP
+      Mindestmenge an Abenteuerpunkten, die das Lebewesen haben muss.
+    P_ALCOHOL
+      Menge an Alkohol, unter der der Alkoholspiegel des Lebewesen liegen
+      muss, um die Aktion noch ausfuehren zu koennen.
+    P_DRINK
+      Menge an Fluessigkeit, unter der der Fluessigkeitsspiegel des
+      Lebewesen liegen muss, um die Aktion noch ausfuehren zu koennen.
+    P_FOOD
+      Beinhaltet die Menge an Nahrung, unter der der Nahrungsspiegel des
+      Spielers liegen muss, um die Aktion noch ausfuehren zu koennen.
+    P_DEAF
+      Ist gesetzt, falls der Spieler nicht taub sein darf.
+    P_FROG
+      Ist gesetzt, falls der Spieler kein Frosch sein darf.
+    P_BLIND
+      Ist gesetzt, falls der Spieler nicht blind sein darf.
+      Achtung: das ist nicht gleichbedeutend mit dem Umstand, dass er evtl.
+      nichts mehr sehen kann. Auch andere Gruende (zum Beispiel Dunkelheit)
+      koennen bewirken, dass ein Spieler nichts mehr sieht.
+    A_INT, A_DEX, A_CON, A_STR
+      Jeweilige Mindesthoehe eines Attribut, um eine Aktion ausfuehren zu
+      koennen.
+    SR_BAD, SR_GOOD
+      Gibt an, wie [minimal] boese bzw. wie [maximal] gut ein Charakter sein
+      darf, um eine Aktion ausfuehren zu koennen.
+    SR_MIN_SIZE, SR_MAX_SIZE
+      Gibt die minimale, bzw. die maximale Groesse an, die ein Charakter
+      maximal haben darf, um eine Aktion ausfuehren zu koennen.
+    SR_FREE_HANDS
+      Gibt an, wieviele freie Haende ein Charakter fuer diese Aktion
+      besitzen muss.
+    SR_EXCLUDE_RACE
+      Mitglieder aller in dieser Liste aufgefuehrten Rassen koennen
+      diese Aktion nicht ausfuehren.
+    SR_INCLUDE_RACE
+      Mitglieder aller NICHT in dieser Liste aufgefuehrten Rassen koennen
+      diese Aktion nicht ausfuehren.
+    SM_RACE
+      Hier kann pro Rasse ein Mapping mit besonderen (nur) fuer diese Rasse
+      geltenden Einschraenkungen vorgenommen werden. Als Keys sind die
+      in dieser Manpage beschriebenen Keys erlaubt, wobei SM_RACE nicht
+      rekursiv ausgewertet wird.
+      Der Rassenname ist gross geschrieben und "*" steht fuer alle Rassen.
+    SR_EXCLUDE_GUILD
+    SR_INCLUDE_GUILD
+      Diese beiden Keys verhalten sich wie SR_*_RACE, nur dass hier Gilden
+      genannt werden.
+    SR_FUN
+      Hier kann eine Funktion in verschiedenen Formen zum Pruefen der
+      Restriktionen angegeben werden, siehe execute_anything().
+      Das kann nuetzlich sein, um andere Restriktionen zu pruefen,
+      wie das Bestehen von Miniquests oder andere Faehigkeiten/Flags.
+      Ist der Test nicht bestanden, gibt die Funktion einen String zurueck.
+    SR_PROP
+      Hier kann ein Mapping mit Properties und zugehoerigen Werten angegeben
+      werden, die jeweils auf Identitaet geprueft werden. Zusaetzlich sollte
+      eine Meldung angegeben werden, die als Fehlermeldung ausgegeben wird,
+      wenn der Spieler die Bedingung nicht erfuellt. Es sollte immer eine
+      passende Meldung fuer den Spieler eingebaut werden. Beispiel:
+      ([ SR_PROP: ([P_AUSGANG_ENTDECKT: 1; "Dein Schwert fluestert "
+          "veraergert: Ich werde Dir erst dann zu Diensten sein, wenn Du "
+          "Dich als wuerdig erwiesen hast!"]) ])
+      Aufgrund der Meldung wird empfohlen, SR_PROP nicht in Restriktionen
+      einzusetzen, die massenweise in Savefiles landen (z.B.
+      Spielersavefiles).
+    SR_QUEST
+      Hier kann ein String-Array mit den Namen (Keys) der Quest(s) angegeben
+      werden, die der Spieler bestanden haben muss, um die Aktion ausfuehren
+      zu koennen.
+    SQ_MINIQUEST
+      Hier kann entweder ein String-Array mit den Ladenamen der vergebenden
+      Objekte oder ein Int-Array mit den Index-Nummern (IDs) der
+      Miniquest(s) (empfohlen!) angegeben werden, die der Spieler bestanden
+      haben muss, um die Aktion ausfuehren zu koennen.
+
+BEISPIELE:
+    // #1 Levelbeschraenkung in der Abenteurergilde
+    AddSpell("feuerball",20,
+             ([SI_SKILLRESTR_LEARN:([P_LEVEL:15]), ...
+
+    // #2 Glaubenstest im Klerus
+    AddSpell("bete",
+             ([SI_SKILLRESTR_LEARN: ([P_GUILD_LEVEL : LVL_NOVIZE,
+                                      SR_FUN : #'glaubensTest ]), ...
+    // mit
+    static string glaubensTest(object pl) {
+      if (pl->QueryProp(K_STRENGTH) < 8000)
+        return ("Deine Glaubensstaerke laesst zu wuenschen uebrig!\n");
+      return 0;
+    }
+
+    // #3 SM_RACE-Modifikation der Restriktionen:
+    //    haertere Restriktionen fuer Zwerge
+    //    - hoeheres Level
+    //    - zusaetzlich A_STR pruefen
+    ([P_LEVEL:15,
+      A_INT:10,
+      SM_RACE: (["Zwerg": ([P_LEVEL:17, A_STR:20])])])
+    // ist identisch zu
+    ([SM_RACE: (["*":     ([P_LEVEL:15, A_INT:10]),
+                 "Zwerg": ([P_LEVEL:17, A_INT:10, A_STR:20])])])
+
+SIEHE AUCH:
+    execute_anything(L), AddSpell (Gilde), P_RESTRICTIONS
+
+03. Januar 2014, Arathorn