Manpage in rst ueberfuehrt.

Change-Id: Ie97258bfe2047f7878c136f635c27a05652aca25
diff --git a/doc/lfun/AddMaterial b/doc/lfun/AddMaterial
new file mode 100644
index 0000000..7f90d82
--- /dev/null
+++ b/doc/lfun/AddMaterial
@@ -0,0 +1,100 @@
+
+AddMaterial()
+*************
+
+
+FUNKTION
+========
+
+   private static varargs void AddMaterial(string mat, int gender,
+                                           mixed names, mixed groups,
+                                           mixed dif) {
+
+
+DEFINIERT IN
+============
+
+   /p/daemon/materialdb.c (MATERIALDB)
+
+
+ARGUMENTE
+=========
+
+   string mat
+     Materialstring, definiert in <thing/material.h>
+
+   int gender
+     Geschlecht des einzutragenden Materials
+
+   mixed names
+     Name des Materials:
+     - "<Nominativ>" oder (meist nur Nom. und Gen. noetig)
+     - ({"<Nominativ>","<Genitiv>","<Dativ>","<Akkusativ>"})
+
+   mixed groups
+     Eingruppierung des Materials:
+     - MATGROUP_XXX oder ({MATGROUP_XXX,...})
+     - ([MAT_GROUP_XXX:xx,MATGROUP_YYY:yy,...])
+
+   mixed dif
+     Schwierigkeiten bei der Erkennbarkeit:
+     - int x oder ({MINMAT,x1,MATPOS1,x2,MATPOS2 ...})
+     - xn: Erkennbarkeitsschwierigkeit (100=100%) -100..100
+     - MINMAT: Erkennung zumindest als _dieses_ Material
+               moeglich
+     - MATPOSn: moegliches Material, erkennbar, wenn
+                Erkennbarkeitfaehigkeit>=xn
+                -> das letzte MATPOS muss natuerlich
+                   string mat entsprechen
+
+
+BESCHREIBUNG
+============
+
+   Es wird in die Materialiendatenbank eine neues Material aufgenommen,
+   die Stringkonstante dafuer wird vorher in <thing/material.h> fest-
+   gelegt. Falls der Genitiv nicht Nominativ+"s" entspricht (z.B. "Seide"),
+   sollte dieser explizit angegeben werden.
+   Nach Neuladen der Datenbank ist dieses Material auch per MaterialName(),
+   'erkennbar' (siehe mixed dif, siehe Beispiel) bzw. seinen einzelnen
+   Gruppen zuordnbar.
+
+
+BEISPIELE
+=========
+
+   AddMaterial(MAT_NITROGLYCERINE,NEUTER,"Nitroglycerin",
+               ({MATGROUP_EXPLOSIVE,MATGROUP_FLUID}),
+               ({MAT_OIL,25,MAT_MISC_EXPLOSIVE,50,MAT_NITROGLYCERINE}));
+
+   Damit wird das Material Nytroglycerin aufgenommen, ein explosiver
+   (damit entflammbarer) sowie fluessiger Stoff. Liegt die Erkennungs-
+   faehigkeit (MaterialName()) unter 25, wird es nur als Oel erkannt,
+   liegt sie unter 50, wird es zumindest als explosives Material erkannt,
+   liegt sie ueber 49, so wird es korrekt erkannt (wie schade :) ).
+
+
+BEMERKUNGEN
+===========
+
+   Wird in der create() der Datenbank aufgerufen. Zu beachten:
+   - vor Eintrag eines _neuen_ Materials die Datenbank durchsuchen!
+   - bei den Materialiengruppen die automatischen Abhaengigkeiten in
+     AddMaterial() durchsehen!
+   - bitte Datenbank neu laden
+
+
+SIEHE AUCH
+==========
+
+   Konzepte:    material, materialerkennung
+   Grundlegend: P_MATERIAL, /sys/thing/material.h
+   Methoden:    QueryMaterial(), QueryMaterialGroup(), MaterialList(),
+   Listen:      AllMaterials(), AllGroups(), Dump()
+                materialliste, materialgruppen
+   Master:      ConvMaterialList(), MaterialGroup(),
+                GroupName(), MaterialName(),
+                GetGroupMembers(), GetMatMembership()
+   Sonstiges:   P_MATERIAL_KNOWLEDGE
+
+7. Mai 2004 Gloinson
diff --git a/doc/lfun/PreventMove b/doc/lfun/PreventMove
index 920372d..ec8c1da 100644
--- a/doc/lfun/PreventMove
+++ b/doc/lfun/PreventMove
@@ -3,8 +3,8 @@
 *************
 
 
-PreventInsert()
-===============
+PreventMove()
+=============
 
 
 FUNKTION
@@ -16,63 +16,69 @@
 DEFINIERT IN
 ============
 
-   /std/thing/moving.c
-   /std/living/moving.c
-   /std/player/moving.c
+   /std/thing/moving.c /std/living/moving.c /std/player/moving.c
 
 
 ARGUMENTE
 =========
 
    dest
-        Das Ziel des Moves
+      Das Ziel des Moves
+
    oldenv
-        Das (Noch-)Environment des Objekts
+      Das (Noch-)Environment des Objekts
+
    method
-        Die Move-Methode(n), mit der/denen bewegt werden soll
+      Die Move-Methode(n), mit der/denen bewegt werden soll
 
 
 BESCHREIBUNG
 ============
 
-   Mit dieser Funktion prueft ein Objekt, ob es von 'oldenv' nach 'dest'
-   bewegt werden mag. Dabei wird 'method' beruecksichtigt (z.B. schaltet
-   M_NOCHECK die meisten Pruefungen ab).
-   Bei Gegenstaenden wird z.B. P_NODROP, P_NOGET, das Gewicht, ob das Ziel
-   das Objekt aufnehmen will (MayAddWeight(), PreventInsert) oder auch
-   PreventLeave() geprueft.
-   Bei Lebewesen wird z.B. P_NO_TPORT in 'dest' und 'oldenv' und
-   PreventLeaveLiving/PreventInsertLiving() ausgewertet.
-   Bei Spielern wird auch noch getestet, ob method M_GO oder M_TPORT
-   enthaelt und ob das Ziel nur von Testspielern betreten werden kann.
+   Mit dieser Funktion prueft ein Objekt, ob es von 'oldenv' nach
+   'dest' bewegt werden mag. Dabei wird 'method' beruecksichtigt (z.B.
+   schaltet M_NOCHECK die meisten Pruefungen ab). Bei Gegenstaenden
+   wird z.B. P_NODROP, P_NOGET, das Gewicht, ob das Ziel das Objekt
+   aufnehmen will (MayAddWeight(), PreventInsert) oder auch
+   PreventLeave() geprueft. Bei Lebewesen wird z.B. P_NO_TPORT in
+   'dest' und 'oldenv' und PreventLeaveLiving/PreventInsertLiving()
+   ausgewertet. Bei Spielern wird auch noch getestet, ob method M_GO
+   oder M_TPORT enthaelt und ob das Ziel nur von Testspielern betreten
+   werden kann.
 
 
 RUeCKGABEWERT
 =============
 
-   0, wenn das Objekt bewegt werden darf.
-   Wenn es nicht bewegt werden darf, sind als Rueckgabewerte die in
-   /sys/moving.h definierten Move-Fehlerwerte zulaessig (s. move()). Sollte
-   hier ein ungueltiger Fehlerwert zurueckgegeben werden, wird das move()
-   ebenfalls abgebrochen und ME_DONT_WANT_TO_BE_MOVED zurueckgeben.
+   0, wenn das Objekt bewegt werden darf. Wenn es nicht bewegt werden
+   darf, sind als Rueckgabewerte die in /sys/moving.h definierten
+   Move-Fehlerwerte zulaessig (s. move()). Sollte hier ein ungueltiger
+   Fehlerwert zurueckgegeben werden, wird das move() ebenfalls
+   abgebrochen und ME_DONT_WANT_TO_BE_MOVED zurueckgeben.
 
 
 BEMERKUNGEN
 ===========
 
    Diese Funktion kann ueberschrieben, um feinere Kontrolle ueber die
-   Bewegungen des Objekt zu haben. Dabei aber bitte einige Dinge beachten:
+   Bewegungen des Objekt zu haben. Dabei aber bitte einige Dinge
+   beachten:
+
    1. Denkt daran, ggf. M_NOCHECK zu beruecksichtigen und und eure
    Pruefungen nur zu machen, wenn es nicht in method vorkommt.
-   2. GANZ WICHTIG: Wenn ihr mit euren Pruefungen fertig sein und das Objekt
-   bewegt werden duerfte, die geerbten Pruefungen noch testen, also _IMMER_
-   das geerbte PreventMove() noch aufrufen und dessen Wert
-   zurueckgeben/beruecksichtigen, da sonst Pruefungen des Gewichts etc.
-   nicht funktionieren oder bei Lebewesen die Prevent*() im Environment
-   nicht gerufen werden!
-   3. Die Funktion ist nur objektintern zu verwenden, Call-Other von aussen
-   sind nicht moeglich, beim Ueberschreiben 'protected' nicht vergessen.
-   4. Nochmal: Geerbtes PreventMove() _NICHT VERGESSEN_!
+
+   2. *GANZ WICHTIG*: Wenn ihr mit euren Pruefungen fertig sein und
+   das Objekt bewegt werden duerfte, die geerbten Pruefungen noch
+   testen, also *IMMER* das geerbte PreventMove() noch aufrufen und
+   dessen Wert zurueckgeben/beruecksichtigen, da sonst Pruefungen des
+   Gewichts etc. nicht funktionieren oder bei Lebewesen die Prevent*()
+   im Environment nicht gerufen werden!
+
+   3. Die Funktion ist nur objektintern zu verwenden, Call-Other von
+   aussen sind nicht moeglich, beim Ueberschreiben 'protected' nicht
+   vergessen.
+
+   4. Nochmal: Geerbtes PreventMove() *NICHT VERGESSEN*!
 
 
 BEISPIELE
@@ -104,6 +110,6 @@
 
    PreventLeave(), NotifyInsert(), NotifyLeave(), MayAddObject(),
    PreventInsertLiving(), PreventLeaveLiving(), NotifyMove(),
-   PreventMove(), MayAddWeight(), move(), /std/container/restrictions.c
+   PreventMove(), MayAddWeight(), move()
 
-Last modified: 04.08.2007, Zesstra
+Last modified: 09.01.2020, Zesstra