Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/std/vererbungsbaeume b/doc/std/vererbungsbaeume
new file mode 100644
index 0000000..2df21cc
--- /dev/null
+++ b/doc/std/vererbungsbaeume
@@ -0,0 +1,293 @@
+
+  Vererbungsbaeume der Basis-MUDlib
+  =================================
+
+Einfache Gegenstaende
+---------------------
+
+Die einfachsten Objekte der Basis-MudLib. Die Module, die von thing.c
+geerbt werden, enthalten die wichtigsten Funktionen und treten auch in
+den anderen Standardobjekten immer wieder auf.
+
+Da die Ausgabe des Namens eines Objektes (dieser wird in den
+description-Modulen definiert) immer mit einer Deklination verbunden ist,
+findet man in jedem Objekt, welches ein description.c erbt, auch
+thing/language.
+
+thing
+  |- thing/properties    | Verwaltungsfunktionen des Property-Systems
+  |- thing/description   | Aussehen, Name, IDs des Objektes
+  |- thing/moving        | Bewegen und Zerstoeren des Objektes
+  |- thing/language      | Deklination von Namen, Adjektiven etc.; Pronomina
+  |- thing/commands      | vom Objekt definierte Kommandos
+  `- thing/restrictions  | Gewicht: standardmaessig 1Kg
+
+
+Ruestungen
+----------
+
+Bis auf thing/restrictions.c verfuegt armour.c ueber saemtliche Funktionalitaet
+die auch thing.c zur Verfuegung stellt. Zusaetzlich gibt es noch ein Modul,
+welches die Ruestung erst zur Ruestung macht: armour/combat.c
+
+armour                  | evtl. ein "(angezogen") an Kurzbeschreibung haengen
+  |- thing/properties   | Auch Ruestungen haben Eigenschaften
+  |- thing/description  | Aussehen, Name, IDs der Ruestung
+  |- thing/commands     | Kommandos sind auch moeglich
+  |- armour/moving      | Beim Bewegen/Zerstoeren: Ruestung ausziehen...
+  |    `- thing/moving  | ...und dann erst Bewegen/Zerstoeren
+  |- armour/combat      | Ruestungsklasse/-typ, Kampffunktion
+  `- thing/language     | und noch was zum deklinieren.
+
+
+Waffen
+------
+
+Wie Ruestungen, unterscheiden sich Waffen von einfachen Gegenstaenden im
+wesentlichen nur durch die Kampffunktionen.
+
+weapon                  | evtl. ein "(gezueckt)" an Kurzbeschreibung haengen
+  |- weapon/moving      | Waffe beim Bewegen/Zerstoeren erst wegstecken...
+  |    `- thing/moving  | ...und dann erst bewegen/zerstoeren
+  |- thing (s.o.)       | Ansonsten alle thing-Eigenschaften
+  `- weapon/combat      | Waffenklasse/-art, Schadenstyp, Kampffunktion
+
+
+Lichtquellen
+------------
+
+Lichtquellen sind (im Sinne der MudLib) normale Gegenstaende, die zusaetzlich
+die Eigenschaft haben, dass sie leuchten koennen (und auch verbrennen koennen).
+
+lightsource       | Alles, was zum Leuchten noetig ist
+  `- thing (s.o.) | ansonsten ein ganz normaler Gegenstand
+
+
+unit-Objekte
+------------
+
+unit-Objekte sind Gegenstaende, bei denen es sinnvoll ist, dass ein einzelnes
+Objekt eine gewisse Anzahl von gleichartigen Objekten repraesentiert. Das
+beste Beispiel hierfuer ist das liebe Geld: statt 1000 einzelner Muenzen im
+Inventory zu haben, hat man nur ein einziges Geldobjekt, das einer Menge von
+1000 Muenzen entspricht (die bei Kauf-/Verkaufsaktionen um eine entsprechende
+Menge erniedrigt oder erhoeht wird).
+Hierdurch wird a) die Uebersichtlichkeit erhoeht und b) natuerlich massig
+Speicher gespart.
+
+unit               | alle unit-Eigenschaften (Gewicht, Menge, Bewegen, ...)
+  `- thing (s.o.)  | ansonsten sind es normale Gegenstaende
+
+
+Spellbooks
+----------
+
+Fuer Gildenprogrammierer ist dies das Grundobjekt fuer das Zauberverzeichnis
+der Gilde.
+ACHTUNG: Obwohl thing.c geerbt wird, ist das Spellbook nicht zum clonen und
+"unter den Arm klemmen" gedacht! Vielmehr stellt thing.c hier im wesentlichen 
+nur das Property- und das Sprachmodul zur Verfuegung!
+
+spellbook                | Allgemeine Funktionen fuer Zaubersprueche
+  |- thing (s.o.)        | hier nur wg. Properties und Deklinationen
+  `- restriction_checker | fuer Einschraenkungen beim Zaubern
+
+
+Behaelter
+---------
+
+Die bisher beschriebenen Objekte kann man zwar mit sich herumtragen (ausser
+Spellbooks), aber man kann nichts hineinstecken. Hierzu sind einige weitere
+Funktionen noetig, die container.c zur Verfuegung stellt.
+Im wesentlichen sind das in container/restrictions.c Funktionen zum Aus-
+waehlen von Objekten im Behaelter, zum Testen, ob der Behaelter noch weitere
+Objekte aufnehmen kann (gewichtsabhaengig) und zur Ermittlung des Gesamt-
+gewichts des Behaelters.
+In container/description.c wird der Inhalt des Behaelters in eine Beschreibung
+umgewandelt.
+
+container
+  |- thing/properties        | DAS zentrale Modul...
+  |- thing/moving            | Bewegen/Zerstoeren des Behaelters
+  |- thing/commands          | Kommandos sind moeglich
+  |- container/description   | Beschreibung des Inhalts
+  |    `- thing/description  | Lang- und Kurzbeschreibung
+  |- thing/language          | Deklinationsmodul
+  `- container/restrictions  | Gesamtgewicht, Objektauswahl
+       `- thing/restrictions | Standardgewicht: 1Kg
+
+Leichen
+-------
+
+Leichen sind Behaelter mit der zusaetzlichen Eigenschaft, dass sie mit der
+Zeit zerfallen. Ausserdem geben sie ggf. noch eine Meldung ueber den
+Moerderkanal aus
+
+corpse                | Zerfallen, Moerdermeldung
+  `- container (s.o.) | sonst normaler Behaelter
+
+
+Raeume und ihre Abkoemmlinge
+----------------------------
+
+Raeume sind prinzipiell Behaelter mit Lang- und Kurzbeschreibung von INNEN
+und weiteren untersuchbaren Details (auch lesbare Details) sowie
+Ausgaengen und der Moeglichkeit vordefinierte Objekte im Raum zu plazieren.
+
+room
+  |- thing/properties     | Eigenschaften des Raumes
+  |- thing/language       | das obligatorische Sprachmodul
+  |- room/moving          | nur Zerstoeren; KEIN(!) Bewegen
+  |- room/restrictions    | Raeume werden nie voll
+  |    `- container/restrictions  | sonst die gleiche Funktionalitaet wie
+  |	    `- thing/restrictions | beim normalen Behaelter
+  |- room/description     | Raumbeschreibung, Details, etc.
+  |    `- container/description   | Beschreibung des Inhalts
+  |	    `- thing/description  | Beschreibung von aussen (selten sichtbar)
+  |- room/exits           | Verwaltung der Ausgaenge
+  |- room/commands        | notify_fail()s fuer "lies", "suche", "such"
+  |    `- thing/commands  | sonst normale Kommandobehandlung
+  |- room/items           | Verwaltung von Objekten, die im Raum sein sollen
+  `- room/doors           | Tueren (besondere Ausgaenge)
+
+
+Die Kneipe erweitert den Standardraum um Funktionen zur Definition der
+Speisen und Getraenke sowie um Befehle zum Bestellen und Ausgeben.
+
+pub
+  `- room (s.o.)
+
+
+Auch der Laden baut direkt auf dem Standardraum auf. Hier werden noch die
+ueblichen Ein- und Verkaufsbefehle zur Verfuegung gestellt.
+Jeder Laden benoetigt zusaetzlich einen Speicher, in dem verkaufte Objekte
+gelagert werden. Wenn der Laden schon beim ersten Betreten ueber ein
+gewisses Warensortiment verfuegen soll, kann man die mit AddItem()-Aufrufen
+im Speicher bewerkstelligen.
+
+laden
+  `- room (s.o.)
+
+store
+  |- thing/properties  | noetig fuer room/items.c
+  `- room/items        | vordefinierte Objekte im Speicher
+
+
+Die Post ist von der Programmierung her genau so zu behandeln wie ein
+normaler Raum. Die Postkabinen werden automatisch zur Verfuegung gestellt;
+man braucht sich in der Hinsicht um nichts zu kuemmern.
+
+post
+  `- (...) room
+
+
+Schiffe und aehnliche Transporter werden durch "bewegliche" Raeume realisiert.
+So hat man alle Beschreibungsmoeglichkeiten eines Raumes zur Verfuegung und
+kann (wie bei der Jolle geschehen) Ausgaenge in weitere Raume des Transporters
+legen (diese sind normale Raeume, KEINE Transporter!).
+Desweiteren sind Transporter die einzigen (Standard-)Raume, bei denen man
+auch die aeussere Lang- und Kurzbeschreibung zu sehen bekommt, weil man
+nicht nur in einem Transporter sein kann, sondern auch daneben stehen kann.
+
+transport         | Funktionen zur Festlegung der Route, An- und Ablegen
+  |- room (s.o.)  | die normalen Raumfunktionen
+  `- thing/moving | und hier steckt die Beweglichkeit
+
+
+Gilden
+------
+
+Gilden gibt es in zwei Ausfuehrungen: einmal als einfaches Gildenobjekt, dann
+aber auch als Gildenraum (wie zB. die Abenteurergilde).
+Waehrend das Gildenobjekt (gilden_ob) Funktionen zum Lernen von Faehigkeiten
+und Zauberspruechen, dem Gildenein- und -austritt sowie zum gildeninternen
+Aufstieg zur Verfuegung stellt (was zB. auch von einem NPC ausgeuebt werden
+koennte), verfuegt der Gildenraum zusaetzlich noch ueber Funktionen zum
+normalen Stufenaufstieg aufgrund von Abenteuer- und Erfahrungspunkten, die
+Questliste und die Kostenabfrage.
+
+gilden_ob                | Ein-/Austritt, Lernen, Gildenaufstieg
+  `- restriction_checker | Beschraenkungen bei obigen Aktionen
+
+gilden_room
+  |- gilde               | Stufenaufstieg, Questliste, Kosten
+  |    `- room (s.o.)    | normale Raumfunktionen
+  `- gilden_ob (s.o.)    | Gildenaufstieg etc.
+
+NPCs
+----
+
+Das Opfer. Zumindest meistens...
+
+npc
+  |- thing/properties            | Eigenschaften des NPC
+  |- living/description          | Ausgabe des Gesundheitszustandes...
+  |    `- container/description  | ...zusaetzlich zu seinem Inhalt...
+  |	    `- thing/description | ...und seiner Beschreibung
+  |- living/life                 | Die Lebensfunktionen, Essen, Trinken, Gift
+  |- living/attributes           | Die Verwaltung der Stats
+  |- living/moving               | Bewegen von Lebewesen
+  |- living/skills               | Funktionen fuer Faehigkeiten und Sprueche
+  |    `- living/std_skills      | und einige Standardfaehigkeiten
+  |- npc/combat                  | NPC-spezifische Kampffunktionen
+  |    `- living/combat          | der Kampf an sich
+  |- npc/chat                    | Sprueche a la Andy
+  |- npc/comm                    | Basiskommunikation: "sag", "echo", "emote"
+  |- container/restrictions      | wie bei Behaeltern
+  |    `- thing/restrictions
+  |- thing/language              | obligatorisch...
+  |- npc/info                    | Antworten auf Fragen
+  |- npc/put_and_get             | Reaktion auf erhaltene Gegenstaende
+  |    `- living/put_and_get     | Geben und Nehmen von Objekten
+  `- npc/guard                   | fuer Wach-NPCs
+
+Der intelligente NPC befindet sich noch in der Entwicklung.
+
+inpc
+  |- npc (s.o.)  | Erst mal ein ganz normaler NPC...
+  |- inpc/nobank | ...der gegen Bankzweitis vorgehen kann...
+  |    `- player/moneyhandler | ...und selbst Geld mitschleppt; ...
+  |- select      | ...die beste Ausruestung erkennt und auch benutzt...
+  `- boozing     | ...und in der Kneipe die beste Heilmoeglichkeit findet!
+
+
+Spieler- und Magiershell
+------------------------
+
+shells/magier                  | Hier auch noch Spielershells:
+  |- player/base               | Einloggen, Grundfunktionen
+  |    |- player/restrictions  | Maximale Zuladung (Staerke), InsertHooks
+  |    |    `- container/restrictions   | Maximalgewicht, Zuladungstest
+  |    |	 `- thing/restrictions  | Defaultgewicht
+  |    |- living/attributes    | Stats
+  |    |- living/combat        | Kampffunktionen
+  |    |- living/put_and_get   | Nehmen und Geben von Objekten
+  |    |- thing/properties     | DAS zentrale Modul...
+  |    |- thing/language       | Deklinationen
+  |    |- player/description   | Waffe/Ruestungen ausgeben
+  |    |    `- living/description           | Gesundheitszustand anzeigen
+  |    |	 `- container/description   | Ermittlung des Inhalts
+  |    |	      `- thing/description  | Kurz- und Langbeschreibung; IDs
+  |    |- player/moving        | Bewegen/Zerstoeren: Zusatzchecks
+  |    |    `- living/moving   | Bewegen/Zerstoeren von Lebewesen
+  |    |- player/life          | Zusatzchecks bei Lebensfunktionen
+  |    |    `- living/life     | allgemeine Lebensfunktionen
+  |    |- player/comm          | allgemeine Kommunikation
+  |    |    `- player/channel  | Kommunikation ueber die Kanaele
+  |    |- player/moneyhandler  | Geldverwaltung (auch fuer NPCs geeignet)
+  |    |- player/command       | Aliase, History, Parser
+  |    |- living/skills        | allg. Faehigkeitsfunktionen
+  |    |    `- living/std_skills | Standardfaehigkeiten
+  |    |- player/quests        | Verwaltung geloester Abenteuer
+  |    |- player/potion        | Verwaltung gefundener Zaubertraenke
+  |    |- player/soul          | Seelenkommandos (hilfe verben ;)
+  |    |- player/viewcmd       | Untersuchen etc.
+  |    |- more                 | More() fuer lange Texte
+  |    `- user_filter          | Hilfsmodul fuer "kwer in muenster" etc.
+  |                               | Ab hier: Magiershell
+  |- shells/filesys/filesys         | allgemeines Modul zur Dateibehandlung
+  |    |- shells/filesys/manual     | der "hilfe"-Befehl der Magier
+  |    |- shells/filesys/primitives | low-level-Routinen
+  |    |- shells/filesys/asynchron  | zur Vermeidung von Lags
+  |    `- shells/filesys/make       | komfortables updaten von Objekten
+  `- player/objects                 | Objekte clonen, updaten, zerstoeren