Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/lfun/UseSpell b/doc/lfun/UseSpell
new file mode 100644
index 0000000..ddf1c4d
--- /dev/null
+++ b/doc/lfun/UseSpell
@@ -0,0 +1,77 @@
+UseSpell()
+FUNKTION:
+    public varargs int UseSpell(string str, string spell)
+
+DEFINIERT IN:
+    /std/living/skills.c
+
+ARGUMENTE:
+    string str       Spell-Optionen
+    string spell     optionaler Spellname
+
+BESCHREIBUNG:
+    Benutzt einen Spell, dessen Spellname 'spell' ggf ueber query_verb()
+    ermittelt wird. Dieser Spell sollte (als kleingeschriebener
+    Skill/Spell) im Living vorliegen.
+    
+    Die Argumente 'str' werden als SI_SKILLARG temporaer in das
+    Skillmapping eingetragen (also nur fuer diesen Aufruf gueltig).
+    
+    Eine ausfuehrbare Spell-Funktion zum Spell wird in folgender
+    Reihenfolge bestimmt:
+    - eine gesetzte SI_CLOSURE nutzen
+    - "UseSpell" an einem gesetzten SI_SPELLBOOK nutzen
+    - "UseSpell" an der gesetzten P_GUILD nutzen
+      - [UseSpell der Gilde sucht iA ebenfalls nur den Spell am Spellbook]
+    - eine Closure mit Rueckgabewert 0 erstellen
+    Die so bestimmte Spell-Funktion wird dann als SI_CLOSURE im Spieler
+    gesetzt und ist bis zur Zerstoerung der entsprechenden Objekte gueltig.
+    Die Methode wird dann gerufen (der Spell also angewandt).
+
+    Standardmaessig gibt ein UseSpell() also 0 zurueck, es sei denn, eine
+    Funktion wurde fuer den Spell an einer der oben genannten Stellen
+    implementiert.
+
+    SI_INHERIT ist fuer Spells beim Aufruf wirkungslos (gilt aber bei
+    LearnSkill normal).
+
+    Ein Durchlauf von UseSpell durch den Spieler sieht in etwa so aus:
+      1) Die Methode wird als Empfaenger fuer Kommandos bekannt gemacht.
+         Das passiert mit der Anweisung
+         'add_action("UseSpell", "", 1);' in den Dateien player/base.c und
+         in living/npc.c.
+
+      2) /std/living/skills::UseSpell wird durch Kommando oder Heartbeat
+         gerufen.
+      
+      3) UseSpell() ermittelt eine SI_CLOSURE oder delegiert diesen Aufruf
+         an die gueltige Gilde/das Spellbook weiter.
+      
+      4) Eine gueltige Closure wird ausgefuehrt. UseSpell() uebergibt dabei
+         die Spell/Skill-Informationen und SI_SKILLARG.
+      
+      4.1.) Im Normalfall einer Gilde/Spellbook landet der Aufruf ueber
+            /std/gilden_ob::UseSpell() in /std/spellbook::UseSpell() und
+            dieses ruft eine Spellfunktion im Spellbook auf.
+            Die Spellfunktion arbeitet mit den Spell-Informationen und
+            gibt ein ERFOLG, MISSERFOLG oder 0 dafuer zurueck, ob das
+            Spellbook Lernen/Fehlermeldung oder nichts machen soll.
+            Dementsprechend werden P_SP, P_ATTACK_BUSY und
+            P_NEXT_SPELL_TIME im Spellbook geaendert.
+
+      5.) Der Aufruf der Closure kehrt zurueck und wird zurueckgegeben.
+          Damit ist der 0-Rueckgabewert der Spellfunktion im Spellbook
+          aequivalent einem nicht ausgefuehrten Kommando.
+
+SIEHE AUCH:
+    Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
+    * Nutzung:      UseSkill
+    * Abfragen:     QuerySkill, QuerySkillAbility
+    * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
+                    QuerySkillAttributeModifier, RemoveSkillAttributeModifier
+      * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
+    * sonstig:      spruchermuedung, skill_info_liste
+    * Properties:   P_NEWSKILLS
+    Spellbook:      UseSpell (spellbook), Learn, SpellSuccess
+
+5. Okt 2011 Gloinson
\ No newline at end of file