Gesammelte Update von autogenerierter Doku.

Change-Id: If453f1dd933c092c12ca0b5b2667dbd64ca246f8
diff --git a/doc/lfun/AddAction b/doc/lfun/AddAction
index 967a01b..fd0bfb7 100644
--- a/doc/lfun/AddAction
+++ b/doc/lfun/AddAction
@@ -1,4 +1,3 @@
-
 AddAction()
 ***********
 
@@ -63,8 +62,8 @@
    * 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
+   * echte Spielerkommandos kann man damit _nicht_ ueberschreiben, ein
+     AddAction(...,"sag",1,0); funktioniert nicht
 
    * ein generelles AddAction(...,"",1,0); geht nicht
 
diff --git a/doc/lfun/AddAdjective b/doc/lfun/AddAdjective
index a96a5e5..b2dd263 100644
--- a/doc/lfun/AddAdjective
+++ b/doc/lfun/AddAdjective
@@ -1,4 +1,3 @@
-
 AddAdjective()
 **************
 
diff --git a/doc/lfun/AddAmount b/doc/lfun/AddAmount
index 6edb374..e08631b 100644
--- a/doc/lfun/AddAmount
+++ b/doc/lfun/AddAmount
@@ -1,4 +1,3 @@
-
 AddAmount()
 ***********
 
diff --git a/doc/lfun/AddClass b/doc/lfun/AddClass
index fee72e3..42cfc8e 100644
--- a/doc/lfun/AddClass
+++ b/doc/lfun/AddClass
@@ -1,4 +1,3 @@
-
 AddClass()
 **********
 
diff --git a/doc/lfun/AddCmd b/doc/lfun/AddCmd
index ae02194..f2e1f99 100644
--- a/doc/lfun/AddCmd
+++ b/doc/lfun/AddCmd
@@ -1,4 +1,3 @@
-
 AddCmd()
 ********
 
@@ -53,9 +52,9 @@
      zurueckgeben (sonst werden evtl. weitere Funktionen mit diesem
      Kommandoverb gerufen)
 
-   * innerhalb der Funktionen koennen Fehlermeldungen fuer den
-     totalen Misserfolg des Kommandos mit notify_fail gesetzt werden
-     (anstatt "Wie bitte?")
+   * innerhalb der Funktionen koennen Fehlermeldungen fuer den totalen
+     Misserfolg des Kommandos mit notify_fail gesetzt werden (anstatt
+     "Wie bitte?")
 
    AddCmd ist ein dynamischer Ersatz fuer add_action - im Gegensatz zu
    add_action koennen auch ohne erneuten Aufruf der init() neue
@@ -178,8 +177,8 @@
    * Methoden der put_and_get (nimm/nehme) sollten so nicht versucht
      werden zu ueberschreiben - dazu sind invis Container da
 
-   * benutzt man fuer <function> eine Closure, kann man die Fkt.
-     auch protected oder private deklarieren _und_ sie kann in einem
+   * benutzt man fuer <function> eine Closure, kann man die Fkt. auch
+     protected oder private deklarieren _und_ sie kann in einem
      anderen Objekt sein
 
    * bei Regeln wird an die ggf. gerufene Methode als zweiter
diff --git a/doc/lfun/AddCmd_bsp b/doc/lfun/AddCmd_bsp
index 4f382c8..f3d5e03 100644
--- a/doc/lfun/AddCmd_bsp
+++ b/doc/lfun/AddCmd_bsp
@@ -1,4 +1,3 @@
-
 ADDCMD() - BEISPIELE
 ********************
 
@@ -58,8 +57,7 @@
           #'action_huepfe,
           "Willst du von etwas @verben?|Von wo willst du @verben?");
 
-5. SCHLECHT: eine unscharfe Regel - sie sollten eine Ausnahme sein
-   (!)
+5. SCHLECHT: eine unscharfe Regel - sie sollten eine Ausnahme sein (!)
 
    AddCmd("kletter","fun_klettern",1);
 
diff --git a/doc/lfun/AddDefender b/doc/lfun/AddDefender
index f0e2c22..556f2e8 100644
--- a/doc/lfun/AddDefender
+++ b/doc/lfun/AddDefender
@@ -1,4 +1,3 @@
-
 AddDefender()
 *************
 
@@ -39,7 +38,7 @@
 ==========
 
    RemoveDefender(), QueryDefenders(), QueryPresentDefenders(),
-   QueryNearDefenders(), InformDefend(), DefendOther(),
-   *../props/P_DEFENDER*, /std/living/combat.c
+   QueryNearDefenders(), InformDefend(), DefendOther(), P_DEFENDERS,
+   /std/living/combat.c
 
 Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/AddDetail b/doc/lfun/AddDetail
index 5236703..3ce78d9 100644
--- a/doc/lfun/AddDetail
+++ b/doc/lfun/AddDetail
@@ -1,4 +1,3 @@
-
 AddDetail()
 ***********
 
diff --git a/doc/lfun/AddExit b/doc/lfun/AddExit
index 384975f..ca0af0e 100644
--- a/doc/lfun/AddExit
+++ b/doc/lfun/AddExit
@@ -1,4 +1,3 @@
-
 AddExit()
 *********
 
diff --git a/doc/lfun/AddExp b/doc/lfun/AddExp
index a8bf488..1f70770 100644
--- a/doc/lfun/AddExp
+++ b/doc/lfun/AddExp
@@ -1,4 +1,3 @@
-
 AddExp()
 ********
 
diff --git a/doc/lfun/AddExtraLook b/doc/lfun/AddExtraLook
index c283ba5..906bc4e 100644
--- a/doc/lfun/AddExtraLook
+++ b/doc/lfun/AddExtraLook
@@ -1,4 +1,3 @@
-
 AddExtraLook()
 **************
 
@@ -21,8 +20,8 @@
 
    string look:
 
-      * String, der in der Langbeschreibung des Lebewesens
-        zusaetzlich ausgegeben wird.
+      * String, der in der Langbeschreibung des Lebewesens zusaetzlich
+        ausgegeben wird.
 
       * zu rufender Funktionsname, wenn 'ob' angegeben ist
 
@@ -78,9 +77,9 @@
 BEMERKUNGEN
 ===========
 
-   * Die Endemeldung wird nicht genau mit Ablauf der angegebenen
-     Zeit ausgegeben, sondern beim ersten Abruf der Langbeschreibung
-     *nach* Ablauf der Zeit.
+   * Die Endemeldung wird nicht genau mit Ablauf der angegebenen Zeit
+     ausgegeben, sondern beim ersten Abruf der Langbeschreibung *nach*
+     Ablauf der Zeit.
 
    * Im Fall von permanenten Eintraegen muss das uebergbene Objekt
      eine Blueprint sein, da Clones irgendwann (spaetestens mit
diff --git a/doc/lfun/AddFixedObject b/doc/lfun/AddFixedObject
index 5875ee2..36ed550 100644
--- a/doc/lfun/AddFixedObject
+++ b/doc/lfun/AddFixedObject
@@ -1,4 +1,3 @@
-
 AddFixedObject()
 ****************
 
diff --git a/doc/lfun/AddFuel b/doc/lfun/AddFuel
index cd0b25e..6ed1df1 100644
--- a/doc/lfun/AddFuel
+++ b/doc/lfun/AddFuel
@@ -1,4 +1,3 @@
-
 AddFuel()
 *********
 
diff --git a/doc/lfun/AddFun b/doc/lfun/AddFun
index 4a56755..a3efbe4 100644
--- a/doc/lfun/AddFun
+++ b/doc/lfun/AddFun
@@ -1,4 +1,3 @@
-
 AddFun()
 ********
 
diff --git a/doc/lfun/AddId b/doc/lfun/AddId
index 8c2aa4e..8e7b9f7 100644
--- a/doc/lfun/AddId
+++ b/doc/lfun/AddId
@@ -1,4 +1,3 @@
-
 AddId()
 *******
 
diff --git a/doc/lfun/AddInfo b/doc/lfun/AddInfo
index 730c26f..0d22b50 100644
--- a/doc/lfun/AddInfo
+++ b/doc/lfun/AddInfo
@@ -1,4 +1,3 @@
-
 AddInfo()
 *********
 
diff --git a/doc/lfun/AddItem b/doc/lfun/AddItem
index 97bd0a8..275f4df 100644
--- a/doc/lfun/AddItem
+++ b/doc/lfun/AddItem
@@ -1,4 +1,3 @@
-
 AddItem()
 *********
 
diff --git a/doc/lfun/AddKnownPotion b/doc/lfun/AddKnownPotion
index 874e55c..30d46bd 100644
--- a/doc/lfun/AddKnownPotion
+++ b/doc/lfun/AddKnownPotion
@@ -1,4 +1,3 @@
-
 AddKnownPotion()
 ****************
 
diff --git a/doc/lfun/AddMiniQuest b/doc/lfun/AddMiniQuest
index 787e718..8ddf1ef 100644
--- a/doc/lfun/AddMiniQuest
+++ b/doc/lfun/AddMiniQuest
@@ -1,4 +1,3 @@
-
 AddMiniQuest()
 **************
 
diff --git a/doc/lfun/AddMoney b/doc/lfun/AddMoney
index 6518215..1b0b903 100644
--- a/doc/lfun/AddMoney
+++ b/doc/lfun/AddMoney
@@ -1,4 +1,3 @@
-
 AddMoney()
 **********
 
diff --git a/doc/lfun/AddMsg b/doc/lfun/AddMsg
index 9faad47..2805918 100644
--- a/doc/lfun/AddMsg
+++ b/doc/lfun/AddMsg
@@ -1,4 +1,3 @@
-
 AddMsg()
 ********
 
diff --git a/doc/lfun/AddPlant b/doc/lfun/AddPlant
index ae2df8b..9af4c88 100644
--- a/doc/lfun/AddPlant
+++ b/doc/lfun/AddPlant
@@ -1,4 +1,3 @@
-
 AddPlant()
 **********
 
diff --git a/doc/lfun/AddPluralId b/doc/lfun/AddPluralId
index 8d6d249..4edca8b 100644
--- a/doc/lfun/AddPluralId
+++ b/doc/lfun/AddPluralId
@@ -1,4 +1,3 @@
-
 AddPluralId()
 *************
 
diff --git a/doc/lfun/AddPursuer b/doc/lfun/AddPursuer
index 5e8b2f8..8a2d63e 100644
--- a/doc/lfun/AddPursuer
+++ b/doc/lfun/AddPursuer
@@ -1,4 +1,3 @@
-
 AddPursuer()
 ************
 
diff --git a/doc/lfun/AddReadDetail b/doc/lfun/AddReadDetail
index 7f36aa4..9304908 100644
--- a/doc/lfun/AddReadDetail
+++ b/doc/lfun/AddReadDetail
@@ -1,4 +1,3 @@
-
 AddReadDetail()
 ***************
 
diff --git a/doc/lfun/AddResistanceModifier b/doc/lfun/AddResistanceModifier
index b8a5ad8..aea81c4 100644
--- a/doc/lfun/AddResistanceModifier
+++ b/doc/lfun/AddResistanceModifier
@@ -1,4 +1,3 @@
-
 AddResistanceModifier()
 ***********************
 
diff --git a/doc/lfun/AddRoomMessage b/doc/lfun/AddRoomMessage
index 47e2b60..4fc2a2b 100644
--- a/doc/lfun/AddRoomMessage
+++ b/doc/lfun/AddRoomMessage
@@ -1,4 +1,3 @@
-
 AddRoomMessage()
 ****************
 
@@ -55,18 +54,18 @@
 
    * falls time < 15 Sekunden ist, wird auf 15 Sekunden aufgerundet
 
-   * der Praefix Add... taeuscht hier. Ein Aufruf von
-     AddRoomMessage() ueberschreibt alle vorherigen Werte
+   * der Praefix Add... taeuscht hier. Ein Aufruf von AddRoomMessage()
+     ueberschreibt alle vorherigen Werte
 
    * this_player() NICHT VERWENDEN!
 
    * Abschalten der Raumnachrichten:
 
-     * passiert automatisch nur, wenn alle Spieler den Raum
-       verlassen haben
+     * passiert automatisch nur, wenn alle Spieler den Raum verlassen
+       haben
 
-     * ist manuell nur ueber Loeschen der Nachrichten umsetzbar,
-       also mit "AddRoomMessage(0, 0, 0);"
+     * ist manuell nur ueber Loeschen der Nachrichten umsetzbar, also
+       mit "AddRoomMessage(0, 0, 0);"
 
    In Funktionen, die durch AddRoomMessage() ausgeloest werden, darf
    this_player() nicht verwendet werden, da die call_out()-Kette den
diff --git a/doc/lfun/AddRoute b/doc/lfun/AddRoute
index 265fa8a..46f2ed0 100644
--- a/doc/lfun/AddRoute
+++ b/doc/lfun/AddRoute
@@ -1,4 +1,3 @@
-
 AddRoute()
 **********
 
diff --git a/doc/lfun/AddSingularId b/doc/lfun/AddSingularId
index c45199e..1c4d8db 100644
--- a/doc/lfun/AddSingularId
+++ b/doc/lfun/AddSingularId
@@ -1,4 +1,3 @@
-
 AddSingularId()
 ***************
 
diff --git a/doc/lfun/AddSmells b/doc/lfun/AddSmells
index 2623f98..66094fe 100644
--- a/doc/lfun/AddSmells
+++ b/doc/lfun/AddSmells
@@ -1,4 +1,3 @@
-
 AddSmells()
 ***********
 
diff --git a/doc/lfun/AddSounds b/doc/lfun/AddSounds
index b14b976..501da94 100644
--- a/doc/lfun/AddSounds
+++ b/doc/lfun/AddSounds
@@ -1,4 +1,3 @@
-
 AddSounds()
 ***********
 
diff --git a/doc/lfun/AddSpecialDetail b/doc/lfun/AddSpecialDetail
index 3405eec..2d3e698 100644
--- a/doc/lfun/AddSpecialDetail
+++ b/doc/lfun/AddSpecialDetail
@@ -1,4 +1,3 @@
-
 AddSpecialDetail()
 ******************
 
diff --git a/doc/lfun/AddSpecialExit b/doc/lfun/AddSpecialExit
index 2f16c17..7b458a5 100644
--- a/doc/lfun/AddSpecialExit
+++ b/doc/lfun/AddSpecialExit
@@ -1,4 +1,3 @@
-
 AddSpecialExit()
 ****************
 
diff --git a/doc/lfun/AddSpecialInfo b/doc/lfun/AddSpecialInfo
index 3c164fd..2ade5b4 100644
--- a/doc/lfun/AddSpecialInfo
+++ b/doc/lfun/AddSpecialInfo
@@ -1,4 +1,3 @@
-
 AddSpecialInfo()
 ****************
 
diff --git a/doc/lfun/AddSpell b/doc/lfun/AddSpell
index a8623e0..bb9fd15 100644
--- a/doc/lfun/AddSpell
+++ b/doc/lfun/AddSpell
@@ -1,4 +1,3 @@
-
 AddSpell()
 **********
 
@@ -70,8 +69,8 @@
 
    1. Die Texte werden an die Beteiligten ausgegeben.
 
-   2. Es wird ggf. SpellDefend gerufen (wenn kein
-      SP_PHYSICAL_ATTACK). Abbruch bei Schutz.
+   2. Es wird ggf. SpellDefend gerufen (wenn kein SP_PHYSICAL_ATTACK).
+      Abbruch bei Schutz.
 
    3. Im Opfer wird Defend() mit den angegebenen Werten aufgerufen.
       Abbruch bei Tod/Zerstoerung des Opfers.
diff --git a/doc/lfun/AddToMenu b/doc/lfun/AddToMenu
index 01d0364..0f48d7c 100644
--- a/doc/lfun/AddToMenu
+++ b/doc/lfun/AddToMenu
@@ -1,4 +1,3 @@
-
 AddToMenu()
 ***********
 
diff --git a/doc/lfun/AddToProp b/doc/lfun/AddToProp
new file mode 100644
index 0000000..2137fdb
--- /dev/null
+++ b/doc/lfun/AddToProp
@@ -0,0 +1,60 @@
+AddToProp()
+***********
+
+
+FUNKTION
+========
+
+public varargs int AddToProp(string propname,
+<int|float|string|mixed*|mapping|bytes> summand)
+
+
+DEFINIERT IN
+============
+
+   /std/thing/properties.c /sys/thing/properties.h (Prototyp)
+
+
+ARGUMENTE
+=========
+
+   * propname: Die Property, die veraendert wird
+
+   * summand: Was auf den aktuellen Wert "aufaddiert" werden soll
+
+
+BESCHREIBUNG
+============
+
+   Die Funktion ruft den aktuellen Wert der Property mittels
+   QueryProp() ab, addiert <summand> drauf und setzt den neuen Wert
+   mit SetProp() wieder. Damit ist sie einfach eine Abkuerzung fuer
+   SetProp(pname, QueryProp(pname)+ summand).
+
+   Erlaubte Typen fuer <summand> sind nur solche, mit denen += etwas
+   anfangen kann und welche zum aktuellen Wert der Property passen.
+   Alles andere loest ggf. einen (Laufzeit-)Fehler auf.
+
+
+RUeCKGABEWERT
+=============
+
+   Der Wert der Property nach der Aenderung.
+
+
+BEISPIELE
+=========
+
+   // einen Int aufaddieren AddToProp(P_WC, 42); // ein Element an ein
+   Array in der Property anhaengen AddToProp(P_WAITFOR,
+   ({"zesstra"})); // Ein Mappingkey in ein Mapping in einer Property
+   anhaengen (sollte der Key bereits existieren, wird dessen Wert
+   damit ueberschrieben) AddToProp(P_M_HEALTH_MOD, ([P_HP:5]))
+
+
+SIEHE AUCH
+==========
+
+   QueryProp(), SetProp() Konzept: properties, /std/thing/properties.c
+
+19.06.2025, Zesstra
diff --git a/doc/lfun/AddTouchDetail b/doc/lfun/AddTouchDetail
index 6ca61e8..104c0cd 100644
--- a/doc/lfun/AddTouchDetail
+++ b/doc/lfun/AddTouchDetail
@@ -1,4 +1,3 @@
-
 AddTouchDetail()
 ****************
 
diff --git a/doc/lfun/AddVItem b/doc/lfun/AddVItem
index 6128e24..16bacf5 100644
--- a/doc/lfun/AddVItem
+++ b/doc/lfun/AddVItem
@@ -1,4 +1,3 @@
-
 AddVItem()
 **********
 
@@ -112,9 +111,9 @@
      haben. Es bringt nichts, jedes Detail gegen ein vItem zu
      ersetzen.
 
-   * Es kann aber praktisch sein, komplexe Detailbaeume an einem
-     vItem zu verankern, wenn man diesen Detailbaum ein- oder
-     ausblenden will.
+   * Es kann aber praktisch sein, komplexe Detailbaeume an einem vItem
+     zu verankern, wenn man diesen Detailbaum ein- oder ausblenden
+     will.
 
 
 BEISPIELE
diff --git a/doc/lfun/AllGroups b/doc/lfun/AllGroups
index 6511189..47891ba 100644
--- a/doc/lfun/AllGroups
+++ b/doc/lfun/AllGroups
@@ -1,4 +1,3 @@
-
 AllGroups()
 ***********
 
diff --git a/doc/lfun/AllMaterials b/doc/lfun/AllMaterials
index 57d1f6d..cd8855d 100644
--- a/doc/lfun/AllMaterials
+++ b/doc/lfun/AllMaterials
@@ -1,4 +1,3 @@
-
 AllMaterials()
 **************
 
diff --git a/doc/lfun/AssocMember b/doc/lfun/AssocMember
index 139a670..7c9c43b 100644
--- a/doc/lfun/AssocMember
+++ b/doc/lfun/AssocMember
@@ -1,4 +1,3 @@
-
 AssocMember()
 *************
 
diff --git a/doc/lfun/Attack b/doc/lfun/Attack
index 1e958de..94fa471 100644
--- a/doc/lfun/Attack
+++ b/doc/lfun/Attack
@@ -1,4 +1,3 @@
-
 Attack()
 ********
 
diff --git a/doc/lfun/AutoAttack b/doc/lfun/AutoAttack
index 2e94201..5f89294 100644
--- a/doc/lfun/AutoAttack
+++ b/doc/lfun/AutoAttack
@@ -1,4 +1,3 @@
-
 AutoAttack()
 ************
 
diff --git a/doc/lfun/BecomesNetAlive b/doc/lfun/BecomesNetAlive
index a64f328..1febaab 100644
--- a/doc/lfun/BecomesNetAlive
+++ b/doc/lfun/BecomesNetAlive
@@ -1,4 +1,3 @@
-
 BecomesNetAlive()
 *****************
 
diff --git a/doc/lfun/BecomesNetDead b/doc/lfun/BecomesNetDead
index 8938d13..aa59a4b 100644
--- a/doc/lfun/BecomesNetDead
+++ b/doc/lfun/BecomesNetDead
@@ -1,4 +1,3 @@
-
 BecomesNetDead()
 ****************
 
diff --git a/doc/lfun/CannotSee b/doc/lfun/CannotSee
index 50c43eb..04685af 100644
--- a/doc/lfun/CannotSee
+++ b/doc/lfun/CannotSee
@@ -1,4 +1,3 @@
-
 CannotSee()
 ***********
 
diff --git a/doc/lfun/ChangeMiniQuest b/doc/lfun/ChangeMiniQuest
index 507bd68..3a6d4d8 100644
--- a/doc/lfun/ChangeMiniQuest
+++ b/doc/lfun/ChangeMiniQuest
@@ -1,4 +1,3 @@
-
 ChangeMiniQuest()
 *****************
 
diff --git a/doc/lfun/ChangeReputation b/doc/lfun/ChangeReputation
index c3d010e..068e46a 100644
--- a/doc/lfun/ChangeReputation
+++ b/doc/lfun/ChangeReputation
@@ -1,4 +1,3 @@
-
 ChangeReputation()
 ******************
 
diff --git a/doc/lfun/CheckFindRestrictions b/doc/lfun/CheckFindRestrictions
index a021a58..a2555df 100644
--- a/doc/lfun/CheckFindRestrictions
+++ b/doc/lfun/CheckFindRestrictions
@@ -1,4 +1,3 @@
-
 CheckFindRestrictions()
 ***********************
 
diff --git a/doc/lfun/CheckLightType b/doc/lfun/CheckLightType
index 2296ab8..91caa68 100644
--- a/doc/lfun/CheckLightType
+++ b/doc/lfun/CheckLightType
@@ -1,4 +1,3 @@
-
 CheckLightType()
 ****************
 
diff --git a/doc/lfun/CheckResistance b/doc/lfun/CheckResistance
index 52bfe23..bd7284b 100644
--- a/doc/lfun/CheckResistance
+++ b/doc/lfun/CheckResistance
@@ -1,4 +1,3 @@
-
 CheckResistance()
 *****************
 
diff --git a/doc/lfun/CheckSensitiveAttack b/doc/lfun/CheckSensitiveAttack
index 74f6220..44d2bd6 100644
--- a/doc/lfun/CheckSensitiveAttack
+++ b/doc/lfun/CheckSensitiveAttack
@@ -1,4 +1,3 @@
-
 CheckSensitiveAttack()
 **********************
 
diff --git a/doc/lfun/CheckSpellFatigue b/doc/lfun/CheckSpellFatigue
index ac9d3fe..729ef2b 100644
--- a/doc/lfun/CheckSpellFatigue
+++ b/doc/lfun/CheckSpellFatigue
@@ -1,4 +1,3 @@
-
 CheckSpellFatigue()
 *******************
 
diff --git a/doc/lfun/ClearRingBuffer b/doc/lfun/ClearRingBuffer
index 869d298..738cc96 100644
--- a/doc/lfun/ClearRingBuffer
+++ b/doc/lfun/ClearRingBuffer
@@ -1,4 +1,3 @@
-
 ClearRingBuffer()
 *****************
 
diff --git a/doc/lfun/Configure b/doc/lfun/Configure
index 5a919ce..a3b52bc 100644
--- a/doc/lfun/Configure
+++ b/doc/lfun/Configure
@@ -1,4 +1,3 @@
-
 Configure()
 ***********
 
diff --git a/doc/lfun/ConvMaterialList b/doc/lfun/ConvMaterialList
index 874753b..fed2d7c 100644
--- a/doc/lfun/ConvMaterialList
+++ b/doc/lfun/ConvMaterialList
@@ -1,4 +1,3 @@
-
 ConvMaterialList()
 ******************
 
diff --git a/doc/lfun/CreateRingBuffer b/doc/lfun/CreateRingBuffer
index e10b671..11709af 100644
--- a/doc/lfun/CreateRingBuffer
+++ b/doc/lfun/CreateRingBuffer
@@ -1,4 +1,3 @@
-
 CreateRingBuffer()
 ******************
 
diff --git a/doc/lfun/CustomizeObject b/doc/lfun/CustomizeObject
index 2c7736a..198f000 100644
--- a/doc/lfun/CustomizeObject
+++ b/doc/lfun/CustomizeObject
@@ -1,4 +1,3 @@
-
 CustomizeObject()
 *****************
 
diff --git a/doc/lfun/Damage b/doc/lfun/Damage
index b36061b..43f7a4d 100644
--- a/doc/lfun/Damage
+++ b/doc/lfun/Damage
@@ -1,4 +1,3 @@
-
 Damage()
 ********
 
diff --git a/doc/lfun/DeAssocMember b/doc/lfun/DeAssocMember
index f47d548..cdaa303 100644
--- a/doc/lfun/DeAssocMember
+++ b/doc/lfun/DeAssocMember
@@ -1,4 +1,3 @@
-
 DeAssocMember()
 ***************
 
diff --git a/doc/lfun/DeclAdj b/doc/lfun/DeclAdj
index b5ae10b..5cab60b 100644
--- a/doc/lfun/DeclAdj
+++ b/doc/lfun/DeclAdj
@@ -1,4 +1,3 @@
-
 DeclAdj()
 *********
 
diff --git a/doc/lfun/Defend b/doc/lfun/Defend
index 83f493b..d145605 100644
--- a/doc/lfun/Defend
+++ b/doc/lfun/Defend
@@ -1,4 +1,3 @@
-
 Defend()
 ********
 
@@ -61,45 +60,42 @@
    new_skills.h enthalten). Nichtangabe eines Flags gilt als 0.
 
    * SP_PHYSICAL_ATTACK (int)
-
         1, wenn es ein physischer Angriff ist, d.h. Ruestungen wirken
         sollen, 0 sonst. Dies entspricht dem alten !spell (wenn Spell
         kein Mapping ist).
 
    * SP_NO_ENEMY (int)
-
         1, falls der Angriff nicht toedlich ist, es also keinen echten
         Gegner gibt. Es wird dann reduce_hit_points() gerufen statt
         do_damage()
 
    * SP_NO_ACTIVE_DEFENSE (int)
-
         1, falls aktive Abwehren (wie zurueckschlagende Amulette,
         Karateabwehren oder Ausweichmanoever) unterbleiben sollen, zB
         bei Kratzen durch Dornen oder Fall aus grosser Hoehe ist
         aktive Abwehr oder Ausweichen unlogisch
 
    * SP_RECURSIVE (int)
-
         1, falls der Spell aus einem Defend gerufen wurde (oder einer
         DefendFunc). Dies ist sehr wichtig, um unendliche Rekursionen
         zu vermeiden, wenn zwei zurueckschlagende Verteidigungen
         zusammentreffen.
 
    * SP_NAME (string)
-
         Name des Spells
 
    * SP_GLOBAL_ATTACK (int)
-
         1 bei Flaechenspells (die mehrere Ziele treffen koennen)
 
    * SP_REDUCE_ARMOUR (mapping) ------------
-
-        Mapping: keys AT_X/P_BODY, values int>=0 Die Schutzwirkung
-        durch P_AC/Magie einer Ruestung wird typabhaengig reduziert.
-        Als Keys sind P_BODY und die AT_* erlaubt, die Werte muessen
-        ints > 0 sein. Aufbau eines Mappings im Beispiel:
+        Mapping: keys AT_X/P_BODY/P_PARRY_WEAPON, values int>=0 Die
+        Schutzwirkung durch P_AC/Magie einer Ruestung wird
+        typabhaengig reduziert. Als Keys sind P_BODY, P_PARRY_WEAPON
+        und die AT_* erlaubt, die Werte muessen ints >= 0 sein. Mit
+        AT_DEFAULT_REDUCE laesst sich ein Standardwert fuer alle nicht
+        gesetzten Eintraege setzen. Diese wirken dann nicht normal,
+        sondern mit der hier angegebenen Staerke. Aufbau eines
+        Mappings im Beispiel:
 
            ([AT_BOOTS: 0,  // Stiefel schuetzen gar nicht
              P_BODY:  50,  // Koerper zu 50%
@@ -108,7 +104,6 @@
            -> alle 'fehlenden' Eintraege wirken normal
 
    * SP_SHOW_DAMAGE (int or Array von Array)
-
         0 fuer keine Treffermeldung, 1 fuer Standardtreffermeldungen.
         Falls individuelle Treffermeldungen geschwuenscht sind,
         koennen aber auch in einem Array Ersatz-Treffermeldungen
@@ -135,7 +130,6 @@
            @WER2/@WESSEN2/@WEM2/@WEN2 - name(casus) des Feindes (enemy)
 
    * EINFO_DEFEND (mapping)
-
         Dieses Mapping liefert erweiterte Informationen zu dem
         bisherigen Ablauf des aktiven Attacks. Die verfuegbaren
         Informationen sind in der Manpage zu DefendInfo festgehalten.
@@ -227,4 +221,4 @@
       CheckSensitiveAttack(), InternalModifyDefend(),
       normalize_defend_args(), UseSkill(), DefendInfo()
 
-Letzte Aenderung: 20.01.2019, Zesstra
+Letzte Aenderung: 08.07.2025, Bugfix
diff --git a/doc/lfun/DefendFunc b/doc/lfun/DefendFunc
index 00bfc91..40171ab 100644
--- a/doc/lfun/DefendFunc
+++ b/doc/lfun/DefendFunc
@@ -1,4 +1,3 @@
-
 DefendFunc()
 ************
 
diff --git a/doc/lfun/DefendInfo b/doc/lfun/DefendInfo
index 21d41ac..6c4381f 100644
--- a/doc/lfun/DefendInfo
+++ b/doc/lfun/DefendInfo
@@ -1,4 +1,3 @@
-
 DefendInfo()
 ************
 
diff --git a/doc/lfun/DefendOther b/doc/lfun/DefendOther
index feefcc1..4739fd5 100644
--- a/doc/lfun/DefendOther
+++ b/doc/lfun/DefendOther
@@ -1,4 +1,3 @@
-
 DefendOther()
 *************
 
diff --git a/doc/lfun/Defend_bsp b/doc/lfun/Defend_bsp
index e3e4261..5b411ab 100644
--- a/doc/lfun/Defend_bsp
+++ b/doc/lfun/Defend_bsp
@@ -1,4 +1,3 @@
-
 Defend_bsp()
 ************
 
diff --git a/doc/lfun/DeleteSpellFatigue b/doc/lfun/DeleteSpellFatigue
index f01755b..67bc7cc 100644
--- a/doc/lfun/DeleteSpellFatigue
+++ b/doc/lfun/DeleteSpellFatigue
@@ -1,4 +1,3 @@
-
 DeleteSpellFatigue()
 ********************
 
diff --git a/doc/lfun/DeleteTimedAttrModifier b/doc/lfun/DeleteTimedAttrModifier
index 2d1bd1e..99f5a78 100644
--- a/doc/lfun/DeleteTimedAttrModifier
+++ b/doc/lfun/DeleteTimedAttrModifier
@@ -1,4 +1,3 @@
-
 DeleteTimedAttrModifier()
 *************************
 
diff --git a/doc/lfun/DiscoverDoor b/doc/lfun/DiscoverDoor
index 9046a0e..404fbfd 100644
--- a/doc/lfun/DiscoverDoor
+++ b/doc/lfun/DiscoverDoor
@@ -1,4 +1,3 @@
-
 DiscoverDoor()
 **************
 
diff --git a/doc/lfun/DistributeExp b/doc/lfun/DistributeExp
index e29427d..7d8269b 100644
--- a/doc/lfun/DistributeExp
+++ b/doc/lfun/DistributeExp
@@ -1,4 +1,3 @@
-
 DistributeExp()
 ***************
 
diff --git a/doc/lfun/DoDecay b/doc/lfun/DoDecay
index 695856a..6ffbe5d 100644
--- a/doc/lfun/DoDecay
+++ b/doc/lfun/DoDecay
@@ -1,4 +1,3 @@
-
 DoDecay()
 *********
 
diff --git a/doc/lfun/DoDecayMessage b/doc/lfun/DoDecayMessage
index 671f9c7..727a7ca 100644
--- a/doc/lfun/DoDecayMessage
+++ b/doc/lfun/DoDecayMessage
@@ -1,4 +1,3 @@
-
 DoDecayMessage()
 ****************
 
diff --git a/doc/lfun/DoUnwear b/doc/lfun/DoUnwear
index 56e53d3..60c959d 100644
--- a/doc/lfun/DoUnwear
+++ b/doc/lfun/DoUnwear
@@ -1,4 +1,3 @@
-
 DoUnwear()
 **********
 
diff --git a/doc/lfun/DoUnwield b/doc/lfun/DoUnwield
index d003bfc..b70f51a 100644
--- a/doc/lfun/DoUnwield
+++ b/doc/lfun/DoUnwield
@@ -1,4 +1,3 @@
-
 DoUnwield()
 ***********
 
diff --git a/doc/lfun/DoWear b/doc/lfun/DoWear
index e253290..e675c4e 100644
--- a/doc/lfun/DoWear
+++ b/doc/lfun/DoWear
@@ -1,4 +1,3 @@
-
 DoWear()
 ********
 
diff --git a/doc/lfun/DoWield b/doc/lfun/DoWield
index 6e6c06c..a6d1e62 100644
--- a/doc/lfun/DoWield
+++ b/doc/lfun/DoWield
@@ -1,4 +1,3 @@
-
 DoWield()
 *********
 
diff --git a/doc/lfun/DoorIsKnown b/doc/lfun/DoorIsKnown
index b799698..3a48c6e 100644
--- a/doc/lfun/DoorIsKnown
+++ b/doc/lfun/DoorIsKnown
@@ -1,4 +1,3 @@
-
 DoorIsKnown()
 *************
 
diff --git a/doc/lfun/Dump b/doc/lfun/Dump
index 9d8d7e0..bd0e1dc 100644
--- a/doc/lfun/Dump
+++ b/doc/lfun/Dump
@@ -1,4 +1,3 @@
-
 Dump()
 ******
 
diff --git a/doc/lfun/EnemyPresent b/doc/lfun/EnemyPresent
index bf3853c..0d7fa02 100644
--- a/doc/lfun/EnemyPresent
+++ b/doc/lfun/EnemyPresent
@@ -1,4 +1,3 @@
-
 EnemyPresent()
 **************
 
diff --git a/doc/lfun/Enter b/doc/lfun/Enter
index 0ebc7f0..452facd 100644
--- a/doc/lfun/Enter
+++ b/doc/lfun/Enter
@@ -1,4 +1,3 @@
-
 Enter()
 *******
 
diff --git a/doc/lfun/EvalArmour b/doc/lfun/EvalArmour
index 7daf07c..30b5aae 100644
--- a/doc/lfun/EvalArmour
+++ b/doc/lfun/EvalArmour
@@ -1,4 +1,3 @@
-
 EvalArmour()
 ************
 
diff --git a/doc/lfun/EvalWeapon b/doc/lfun/EvalWeapon
index 395a0a1..42f64bc 100644
--- a/doc/lfun/EvalWeapon
+++ b/doc/lfun/EvalWeapon
@@ -1,4 +1,3 @@
-
 EvalWeapon()
 ************
 
diff --git a/doc/lfun/ExtraAttack b/doc/lfun/ExtraAttack
index cc0b109..e89a590 100644
--- a/doc/lfun/ExtraAttack
+++ b/doc/lfun/ExtraAttack
@@ -1,4 +1,3 @@
-
 ExtraAttack()
 *************
 
diff --git a/doc/lfun/FilterArmours b/doc/lfun/FilterArmours
index 32a7f2b..09643f2 100644
--- a/doc/lfun/FilterArmours
+++ b/doc/lfun/FilterArmours
@@ -1,4 +1,3 @@
-
 FilterArmours()
 ***************
 
diff --git a/doc/lfun/FilterClothing b/doc/lfun/FilterClothing
index a7e1d01..f23ea38 100644
--- a/doc/lfun/FilterClothing
+++ b/doc/lfun/FilterClothing
@@ -1,4 +1,3 @@
-
 FilterClothing()
 ****************
 
diff --git a/doc/lfun/FindBestArmours b/doc/lfun/FindBestArmours
index 10a5d80..4642c53 100644
--- a/doc/lfun/FindBestArmours
+++ b/doc/lfun/FindBestArmours
@@ -1,4 +1,3 @@
-
 FindBestArmours()
 *****************
 
diff --git a/doc/lfun/FindBestWeapon b/doc/lfun/FindBestWeapon
index 1aaeb0d..a3935f5 100644
--- a/doc/lfun/FindBestWeapon
+++ b/doc/lfun/FindBestWeapon
@@ -1,4 +1,3 @@
-
 FindBestWeapon()
 ****************
 
diff --git a/doc/lfun/FindDistantEnemyVictim b/doc/lfun/FindDistantEnemyVictim
index 5ea712d..7022d0c 100644
--- a/doc/lfun/FindDistantEnemyVictim
+++ b/doc/lfun/FindDistantEnemyVictim
@@ -1,4 +1,3 @@
-
 FindDistantEnemyVictim()
 ************************
 
diff --git a/doc/lfun/FindDistantGroup b/doc/lfun/FindDistantGroup
index b94e048..926bca6 100644
--- a/doc/lfun/FindDistantGroup
+++ b/doc/lfun/FindDistantGroup
@@ -1,4 +1,3 @@
-
 FindDistantGroup()
 ******************
 
diff --git a/doc/lfun/FindDistantGroups b/doc/lfun/FindDistantGroups
index efb3354..75d571d 100644
--- a/doc/lfun/FindDistantGroups
+++ b/doc/lfun/FindDistantGroups
@@ -1,4 +1,3 @@
-
 FindDistantGroups()
 *******************
 
diff --git a/doc/lfun/FindEnemyVictim b/doc/lfun/FindEnemyVictim
index c5a81a6..5391655 100644
--- a/doc/lfun/FindEnemyVictim
+++ b/doc/lfun/FindEnemyVictim
@@ -1,4 +1,3 @@
-
 FindEnemyVictim()
 *****************
 
diff --git a/doc/lfun/FindFarEnemyVictim b/doc/lfun/FindFarEnemyVictim
index 455cf89..29315b0 100644
--- a/doc/lfun/FindFarEnemyVictim
+++ b/doc/lfun/FindFarEnemyVictim
@@ -1,4 +1,3 @@
-
 FindFarEnemyVictim()
 ********************
 
diff --git a/doc/lfun/FindGroup b/doc/lfun/FindGroup
index 112c76f..19cabea 100644
--- a/doc/lfun/FindGroup
+++ b/doc/lfun/FindGroup
@@ -1,4 +1,3 @@
-
 FindGroup()
 ***********
 
diff --git a/doc/lfun/FindGroupN b/doc/lfun/FindGroupN
index b0104ee..56555be 100644
--- a/doc/lfun/FindGroupN
+++ b/doc/lfun/FindGroupN
@@ -1,4 +1,3 @@
-
 FindGroupN()
 ************
 
diff --git a/doc/lfun/FindGroupP b/doc/lfun/FindGroupP
index e4c297b..6a7311e 100644
--- a/doc/lfun/FindGroupP
+++ b/doc/lfun/FindGroupP
@@ -1,4 +1,3 @@
-
 FindGroupP()
 ************
 
diff --git a/doc/lfun/FindLivingVictim b/doc/lfun/FindLivingVictim
index b4b2de9..c110545 100644
--- a/doc/lfun/FindLivingVictim
+++ b/doc/lfun/FindLivingVictim
@@ -1,4 +1,3 @@
-
 FindLivingVictim()
 ******************
 
diff --git a/doc/lfun/FindNearEnemyVictim b/doc/lfun/FindNearEnemyVictim
index 4bd0458..f8fbd51 100644
--- a/doc/lfun/FindNearEnemyVictim
+++ b/doc/lfun/FindNearEnemyVictim
@@ -1,4 +1,3 @@
-
 FindNearEnemyVictim()
 *********************
 
diff --git a/doc/lfun/FindPotion b/doc/lfun/FindPotion
index 41647da..d63d953 100644
--- a/doc/lfun/FindPotion
+++ b/doc/lfun/FindPotion
@@ -1,4 +1,3 @@
-
 FindPotion()
 ************
 
diff --git a/doc/lfun/FindRangedTarget b/doc/lfun/FindRangedTarget
index 5fa6776..580d9de 100644
--- a/doc/lfun/FindRangedTarget
+++ b/doc/lfun/FindRangedTarget
@@ -1,4 +1,3 @@
-
 FindRangedTarget()
 ******************
 
diff --git a/doc/lfun/FindVictim b/doc/lfun/FindVictim
index ecfa80a..4f6ca5f 100644
--- a/doc/lfun/FindVictim
+++ b/doc/lfun/FindVictim
@@ -1,4 +1,3 @@
-
 FindVictim()
 ************
 
diff --git a/doc/lfun/Flee b/doc/lfun/Flee
index 995cf26..d209923 100644
--- a/doc/lfun/Flee
+++ b/doc/lfun/Flee
@@ -1,4 +1,3 @@
-
 Flee()
 ******
 
diff --git a/doc/lfun/FreeHands b/doc/lfun/FreeHands
index c876b21..a9e27b6 100644
--- a/doc/lfun/FreeHands
+++ b/doc/lfun/FreeHands
@@ -1,4 +1,3 @@
-
 FreeHands()
 ***********
 
diff --git a/doc/lfun/GetAquarium b/doc/lfun/GetAquarium
index 3896ac5..b8d3403 100644
--- a/doc/lfun/GetAquarium
+++ b/doc/lfun/GetAquarium
@@ -1,4 +1,3 @@
-
 GetAquarium()
 *************
 
diff --git a/doc/lfun/GetDetail b/doc/lfun/GetDetail
index 4a2bd71..fdb1e1e 100644
--- a/doc/lfun/GetDetail
+++ b/doc/lfun/GetDetail
@@ -1,4 +1,3 @@
-
 GetDetail()
 ***********
 
diff --git a/doc/lfun/GetDoorsMapping b/doc/lfun/GetDoorsMapping
index 68beb0d..031b44f 100644
--- a/doc/lfun/GetDoorsMapping
+++ b/doc/lfun/GetDoorsMapping
@@ -1,4 +1,3 @@
-
 GetDoorsMapping()
 *****************
 
diff --git a/doc/lfun/GetEnemies b/doc/lfun/GetEnemies
index e288250..b4f5daa 100644
--- a/doc/lfun/GetEnemies
+++ b/doc/lfun/GetEnemies
@@ -1,4 +1,3 @@
-
 GetEnemies()
 ************
 
diff --git a/doc/lfun/GetExits b/doc/lfun/GetExits
index a235b1f..3588a9c 100644
--- a/doc/lfun/GetExits
+++ b/doc/lfun/GetExits
@@ -1,4 +1,3 @@
-
 GetExits()
 **********
 
diff --git a/doc/lfun/GetFValue b/doc/lfun/GetFValue
index 30db195..5d60fe4 100644
--- a/doc/lfun/GetFValue
+++ b/doc/lfun/GetFValue
@@ -1,4 +1,3 @@
-
 GetFValue()
 ***********
 
diff --git a/doc/lfun/GetFValueO b/doc/lfun/GetFValueO
index 25650fb..226c128 100644
--- a/doc/lfun/GetFValueO
+++ b/doc/lfun/GetFValueO
@@ -1,4 +1,3 @@
-
 GetFValueO()
 ************
 
diff --git a/doc/lfun/GetFactor b/doc/lfun/GetFactor
index adc6a19..8a5d2e5 100644
--- a/doc/lfun/GetFactor
+++ b/doc/lfun/GetFactor
@@ -1,4 +1,3 @@
-
 GetFactor()
 ***********
 
diff --git a/doc/lfun/GetGroupMembers b/doc/lfun/GetGroupMembers
index 8c765d7..b3ab25a 100644
--- a/doc/lfun/GetGroupMembers
+++ b/doc/lfun/GetGroupMembers
@@ -1,4 +1,3 @@
-
 GetGroupMembers()
 *****************
 
diff --git a/doc/lfun/GetHelperObject b/doc/lfun/GetHelperObject
index 87b1b8a..360ebcc 100644
--- a/doc/lfun/GetHelperObject
+++ b/doc/lfun/GetHelperObject
@@ -1,4 +1,3 @@
-
 GetHelperObject()
 *****************
 
diff --git a/doc/lfun/GetInfoArr b/doc/lfun/GetInfoArr
index ba6c4c4..71f50bd 100644
--- a/doc/lfun/GetInfoArr
+++ b/doc/lfun/GetInfoArr
@@ -1,4 +1,3 @@
-
 GetInfoArr()
 ************
 
diff --git a/doc/lfun/GetMatMembership b/doc/lfun/GetMatMembership
index e25e991..dc04680 100644
--- a/doc/lfun/GetMatMembership
+++ b/doc/lfun/GetMatMembership
@@ -1,4 +1,3 @@
-
 GetMatMembership()
 ******************
 
diff --git a/doc/lfun/GetOffset b/doc/lfun/GetOffset
index ee982b7..6bb2f60 100644
--- a/doc/lfun/GetOffset
+++ b/doc/lfun/GetOffset
@@ -1,4 +1,3 @@
-
 GetOffset()
 ***********
 
diff --git a/doc/lfun/GetOwner b/doc/lfun/GetOwner
index 92543f0..cd54792 100644
--- a/doc/lfun/GetOwner
+++ b/doc/lfun/GetOwner
@@ -1,4 +1,3 @@
-
 GetOwner()
 **********
 
diff --git a/doc/lfun/GetPhiolenInfos b/doc/lfun/GetPhiolenInfos
index ccd0f68..6211b34 100644
--- a/doc/lfun/GetPhiolenInfos
+++ b/doc/lfun/GetPhiolenInfos
@@ -1,4 +1,3 @@
-
 GetPhiolenInfos()
 *****************
 
diff --git a/doc/lfun/GetReputation b/doc/lfun/GetReputation
index b27d053..1b95310 100644
--- a/doc/lfun/GetReputation
+++ b/doc/lfun/GetReputation
@@ -1,4 +1,3 @@
-
 GetReputation()
 ***************
 
diff --git a/doc/lfun/GetReputations b/doc/lfun/GetReputations
index 134bd2c..23bb4b8 100644
--- a/doc/lfun/GetReputations
+++ b/doc/lfun/GetReputations
@@ -1,4 +1,3 @@
-
 GetReputations()
 ****************
 
diff --git a/doc/lfun/GetShopItems b/doc/lfun/GetShopItems
index 1b8cfa5..b4d3ea6 100644
--- a/doc/lfun/GetShopItems
+++ b/doc/lfun/GetShopItems
@@ -1,4 +1,3 @@
-
 GetShopItems()
 **************
 
diff --git a/doc/lfun/GetVItemClones b/doc/lfun/GetVItemClones
index f483ef8..809c8ff 100644
--- a/doc/lfun/GetVItemClones
+++ b/doc/lfun/GetVItemClones
@@ -1,4 +1,3 @@
-
 GetVItemClones()
 ****************
 
diff --git a/doc/lfun/GetValue b/doc/lfun/GetValue
index 29eea03..a174d6d 100644
--- a/doc/lfun/GetValue
+++ b/doc/lfun/GetValue
@@ -1,4 +1,3 @@
-
 GetValue()
 **********
 
diff --git a/doc/lfun/GetValueO b/doc/lfun/GetValueO
index e9a7522..a50c3b5 100644
--- a/doc/lfun/GetValueO
+++ b/doc/lfun/GetValueO
@@ -1,4 +1,3 @@
-
 GetValueO()
 ***********
 
diff --git a/doc/lfun/Gildenproperties b/doc/lfun/Gildenproperties
index dd5676f..30449d1 100644
--- a/doc/lfun/Gildenproperties
+++ b/doc/lfun/Gildenproperties
@@ -1,4 +1,3 @@
-
 Gildenproperties()
 ******************
 
diff --git a/doc/lfun/GiveMiniQuest b/doc/lfun/GiveMiniQuest
index 7daaef6..1e0d1a0 100644
--- a/doc/lfun/GiveMiniQuest
+++ b/doc/lfun/GiveMiniQuest
@@ -1,4 +1,3 @@
-
 GiveMiniQuest()
 ***************
 
diff --git a/doc/lfun/GiveQuest b/doc/lfun/GiveQuest
index daedc6c..e193b96 100644
--- a/doc/lfun/GiveQuest
+++ b/doc/lfun/GiveQuest
@@ -1,4 +1,3 @@
-
 GiveQuest()
 ***********
 
diff --git a/doc/lfun/GroupName b/doc/lfun/GroupName
index 7b819be..83d063c 100644
--- a/doc/lfun/GroupName
+++ b/doc/lfun/GroupName
@@ -1,4 +1,3 @@
-
 GroupName()
 ***********
 
diff --git a/doc/lfun/GuardExit b/doc/lfun/GuardExit
index 88da3c9..ead144c 100644
--- a/doc/lfun/GuardExit
+++ b/doc/lfun/GuardExit
@@ -1,4 +1,3 @@
-
 GuardExit()
 ***********
 
diff --git a/doc/lfun/GuildName b/doc/lfun/GuildName
index 080fcf9..e51460e 100644
--- a/doc/lfun/GuildName
+++ b/doc/lfun/GuildName
@@ -1,4 +1,3 @@
-
 GuildName()
 ***********
 
diff --git a/doc/lfun/HIsHookConsumer b/doc/lfun/HIsHookConsumer
index b45b816..704ae71 100644
--- a/doc/lfun/HIsHookConsumer
+++ b/doc/lfun/HIsHookConsumer
@@ -1,4 +1,3 @@
-
 HIsHookConsumer()
 *****************
 
diff --git a/doc/lfun/HListHooks b/doc/lfun/HListHooks
index 6578c94..24541c0 100644
--- a/doc/lfun/HListHooks
+++ b/doc/lfun/HListHooks
@@ -1,4 +1,3 @@
-
 HListHooks()
 ************
 
diff --git a/doc/lfun/HRegisterToHook b/doc/lfun/HRegisterToHook
index 7864d62..3ab3320 100644
--- a/doc/lfun/HRegisterToHook
+++ b/doc/lfun/HRegisterToHook
@@ -1,4 +1,3 @@
-
 HRegisterToHook()
 *****************
 
diff --git a/doc/lfun/HUnregisterFromHook b/doc/lfun/HUnregisterFromHook
index 7933312..2a92618 100644
--- a/doc/lfun/HUnregisterFromHook
+++ b/doc/lfun/HUnregisterFromHook
@@ -1,4 +1,3 @@
-
 HUnregisterFromHook()
 *********************
 
diff --git a/doc/lfun/Halt b/doc/lfun/Halt
index 2fb45e8..6dcc989 100644
--- a/doc/lfun/Halt
+++ b/doc/lfun/Halt
@@ -1,4 +1,3 @@
-
 Halt()
 ******
 
diff --git a/doc/lfun/HasAutoloader b/doc/lfun/HasAutoloader
index 0a58f2d..1770564 100644
--- a/doc/lfun/HasAutoloader
+++ b/doc/lfun/HasAutoloader
@@ -1,4 +1,3 @@
-
 HasAutoloader()
 ***************
 
diff --git a/doc/lfun/HasExtraLook b/doc/lfun/HasExtraLook
index 3d52f5a..1592f9f 100644
--- a/doc/lfun/HasExtraLook
+++ b/doc/lfun/HasExtraLook
@@ -1,4 +1,3 @@
-
 HasExtraLook()
 **************
 
diff --git a/doc/lfun/HasMiniQuest b/doc/lfun/HasMiniQuest
index a557bee..0003a4e 100644
--- a/doc/lfun/HasMiniQuest
+++ b/doc/lfun/HasMiniQuest
@@ -1,4 +1,3 @@
-
 HasMiniQuest()
 **************
 
diff --git a/doc/lfun/HitFunc b/doc/lfun/HitFunc
index 2fb9b79..e18fe68 100644
--- a/doc/lfun/HitFunc
+++ b/doc/lfun/HitFunc
@@ -1,4 +1,3 @@
-
 HitFunc()
 *********
 
diff --git a/doc/lfun/HookCallback b/doc/lfun/HookCallback
index b6204b6..953add1 100644
--- a/doc/lfun/HookCallback
+++ b/doc/lfun/HookCallback
@@ -1,4 +1,3 @@
-
 HookCallback()
 **************
 
diff --git a/doc/lfun/Identify b/doc/lfun/Identify
index 9f55541..5722fa1 100644
--- a/doc/lfun/Identify
+++ b/doc/lfun/Identify
@@ -1,4 +1,3 @@
-
 Identify()
 **********
 
diff --git a/doc/lfun/InFight b/doc/lfun/InFight
index df311ce..7df7492 100644
--- a/doc/lfun/InFight
+++ b/doc/lfun/InFight
@@ -1,4 +1,3 @@
-
 InFight()
 *********
 
diff --git a/doc/lfun/InList b/doc/lfun/InList
index 82de3c9..00a280b 100644
--- a/doc/lfun/InList
+++ b/doc/lfun/InList
@@ -1,4 +1,3 @@
-
 InList()
 ********
 
diff --git a/doc/lfun/InformAlcoholEffect b/doc/lfun/InformAlcoholEffect
index 4967510..3db985e 100644
--- a/doc/lfun/InformAlcoholEffect
+++ b/doc/lfun/InformAlcoholEffect
@@ -1,4 +1,3 @@
-
 InformAlcoholEffect()
 *********************
 
diff --git a/doc/lfun/InformDefend b/doc/lfun/InformDefend
index 7fa975d..3b725f8 100644
--- a/doc/lfun/InformDefend
+++ b/doc/lfun/InformDefend
@@ -1,4 +1,3 @@
-
 InformDefend()
 **************
 
@@ -88,6 +87,6 @@
 
    AddDefender(), RemoveDefender(), QueryDefenders(),
    QueryPresentDefenders(), QueryNearDefenders(), DefendOther(),
-   *../props/P_DEFENDER*, /std/living/combat.c
+   P_DEFENDERS, /std/living/combat.c
 
 Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/InformRowChange b/doc/lfun/InformRowChange
index 7e7b804..113f365 100644
--- a/doc/lfun/InformRowChange
+++ b/doc/lfun/InformRowChange
@@ -1,4 +1,3 @@
-
 InformRowChange()
 *****************
 
diff --git a/doc/lfun/InformUnwear b/doc/lfun/InformUnwear
index 01e9886..0b39829 100644
--- a/doc/lfun/InformUnwear
+++ b/doc/lfun/InformUnwear
@@ -1,4 +1,3 @@
-
 InformUnwear()
 **************
 
diff --git a/doc/lfun/InformUnwield b/doc/lfun/InformUnwield
index 1f10e72..1ab1314 100644
--- a/doc/lfun/InformUnwield
+++ b/doc/lfun/InformUnwield
@@ -1,4 +1,3 @@
-
 InformUnwield()
 ***************
 
diff --git a/doc/lfun/InformWear b/doc/lfun/InformWear
index 6860633..4312ba5 100644
--- a/doc/lfun/InformWear
+++ b/doc/lfun/InformWear
@@ -1,4 +1,3 @@
-
 InformWear()
 ************
 
diff --git a/doc/lfun/InformWield b/doc/lfun/InformWield
index 0c14c2a..692673a 100644
--- a/doc/lfun/InformWield
+++ b/doc/lfun/InformWield
@@ -1,4 +1,3 @@
-
 InformWield()
 *************
 
diff --git a/doc/lfun/InsertEnemy b/doc/lfun/InsertEnemy
index 84885db..a15e52d 100644
--- a/doc/lfun/InsertEnemy
+++ b/doc/lfun/InsertEnemy
@@ -1,4 +1,3 @@
-
 InsertEnemy()
 *************
 
diff --git a/doc/lfun/InsertEnemyTeam b/doc/lfun/InsertEnemyTeam
index b25843d..b264c7c 100644
--- a/doc/lfun/InsertEnemyTeam
+++ b/doc/lfun/InsertEnemyTeam
@@ -1,4 +1,3 @@
-
 InsertEnemyTeam()
 *****************
 
diff --git a/doc/lfun/InsertSensitiveObject b/doc/lfun/InsertSensitiveObject
index 534db19..e71bb19 100644
--- a/doc/lfun/InsertSensitiveObject
+++ b/doc/lfun/InsertSensitiveObject
@@ -1,4 +1,3 @@
-
 InsertSensitiveObject()
 ***********************
 
diff --git a/doc/lfun/InternalModifyAttack b/doc/lfun/InternalModifyAttack
index 2d9f3eb..d286c97 100644
--- a/doc/lfun/InternalModifyAttack
+++ b/doc/lfun/InternalModifyAttack
@@ -1,4 +1,3 @@
-
 InternalModifyAttack()
 **********************
 
diff --git a/doc/lfun/InternalModifyDefend b/doc/lfun/InternalModifyDefend
index 7fbfae5..0ab6f8c 100644
--- a/doc/lfun/InternalModifyDefend
+++ b/doc/lfun/InternalModifyDefend
@@ -1,4 +1,3 @@
-
 InternalModifyDefend()
 **********************
 
diff --git a/doc/lfun/IsArmour b/doc/lfun/IsArmour
index a7e5daf..796fb57 100644
--- a/doc/lfun/IsArmour
+++ b/doc/lfun/IsArmour
@@ -1,4 +1,3 @@
-
 IsArmour()
 **********
 
diff --git a/doc/lfun/IsBottle b/doc/lfun/IsBottle
index 08f0125..90f65c9 100644
--- a/doc/lfun/IsBottle
+++ b/doc/lfun/IsBottle
@@ -1,4 +1,3 @@
-
 IsBottle()
 **********
 
diff --git a/doc/lfun/IsClothing b/doc/lfun/IsClothing
index c51f3f6..5e245c7 100644
--- a/doc/lfun/IsClothing
+++ b/doc/lfun/IsClothing
@@ -1,4 +1,3 @@
-
 IsClothing()
 ************
 
diff --git a/doc/lfun/IsEnemy b/doc/lfun/IsEnemy
index 45fb1fc..4c856dc 100644
--- a/doc/lfun/IsEnemy
+++ b/doc/lfun/IsEnemy
@@ -1,4 +1,3 @@
-
 IsEnemy()
 *********
 
diff --git a/doc/lfun/IsEqual b/doc/lfun/IsEqual
index 34d142f..41aa8e0 100644
--- a/doc/lfun/IsEqual
+++ b/doc/lfun/IsEqual
@@ -1,4 +1,3 @@
-
 IsEqual()
 *********
 
diff --git a/doc/lfun/IsGuildMember b/doc/lfun/IsGuildMember
index 20074d9..d57d7fd 100644
--- a/doc/lfun/IsGuildMember
+++ b/doc/lfun/IsGuildMember
@@ -1,4 +1,3 @@
-
 IsGuildMember()
 ***************
 
diff --git a/doc/lfun/IsPlayerCorpse b/doc/lfun/IsPlayerCorpse
index 3cccc05..0e01d80 100644
--- a/doc/lfun/IsPlayerCorpse
+++ b/doc/lfun/IsPlayerCorpse
@@ -1,4 +1,3 @@
-
 IsPlayerCorpse()
 ****************
 
diff --git a/doc/lfun/IsRoom b/doc/lfun/IsRoom
index 61ce904..d5ad48c 100644
--- a/doc/lfun/IsRoom
+++ b/doc/lfun/IsRoom
@@ -1,4 +1,3 @@
-
 IsRoom()
 ********
 
diff --git a/doc/lfun/IsTeamLeader b/doc/lfun/IsTeamLeader
index 1880cc9..74248b9 100644
--- a/doc/lfun/IsTeamLeader
+++ b/doc/lfun/IsTeamLeader
@@ -1,4 +1,3 @@
-
 IsTeamLeader()
 **************
 
diff --git a/doc/lfun/IsTeamMove b/doc/lfun/IsTeamMove
index 584dc13..620eeec 100644
--- a/doc/lfun/IsTeamMove
+++ b/doc/lfun/IsTeamMove
@@ -1,4 +1,3 @@
-
 IsTeamMove()
 ************
 
diff --git a/doc/lfun/IsUnit b/doc/lfun/IsUnit
index 230f09e..38a6d94 100644
--- a/doc/lfun/IsUnit
+++ b/doc/lfun/IsUnit
@@ -1,4 +1,3 @@
-
 IsUnit()
 ********
 
diff --git a/doc/lfun/Kill b/doc/lfun/Kill
index 1125345..7d5c7c9 100644
--- a/doc/lfun/Kill
+++ b/doc/lfun/Kill
@@ -1,4 +1,3 @@
-
 Kill()
 ******
 
diff --git a/doc/lfun/LearnSkill b/doc/lfun/LearnSkill
index caab276..5916918 100644
--- a/doc/lfun/LearnSkill
+++ b/doc/lfun/LearnSkill
@@ -1,4 +1,3 @@
-
 LearnSkill()
 ************
 
diff --git a/doc/lfun/Leave b/doc/lfun/Leave
index fef5e6f..1c9800c 100644
--- a/doc/lfun/Leave
+++ b/doc/lfun/Leave
@@ -1,4 +1,3 @@
-
 Leave()
 *******
 
diff --git a/doc/lfun/LimitAbility b/doc/lfun/LimitAbility
index 6c31eed..1edb51a 100644
--- a/doc/lfun/LimitAbility
+++ b/doc/lfun/LimitAbility
@@ -1,4 +1,3 @@
-
 LimitAbility()
 **************
 
diff --git a/doc/lfun/MaterialGroup b/doc/lfun/MaterialGroup
index 1b4e61e..4152587 100644
--- a/doc/lfun/MaterialGroup
+++ b/doc/lfun/MaterialGroup
@@ -1,4 +1,3 @@
-
 MaterialGroup()
 ***************
 
diff --git a/doc/lfun/MaterialList b/doc/lfun/MaterialList
index 228f7a8..74e5170 100644
--- a/doc/lfun/MaterialList
+++ b/doc/lfun/MaterialList
@@ -1,4 +1,3 @@
-
 MaterialList()
 **************
 
diff --git a/doc/lfun/MaterialName b/doc/lfun/MaterialName
index 782a9f7..91cb2bd 100644
--- a/doc/lfun/MaterialName
+++ b/doc/lfun/MaterialName
@@ -1,4 +1,3 @@
-
 MaterialName()
 **************
 
diff --git a/doc/lfun/MayAddObject b/doc/lfun/MayAddObject
index 1df06ea..5ce6833 100644
--- a/doc/lfun/MayAddObject
+++ b/doc/lfun/MayAddObject
@@ -1,4 +1,3 @@
-
 MayAddObject()
 **************
 
diff --git a/doc/lfun/MayAddWeight b/doc/lfun/MayAddWeight
index bc8e06d..6ca4681 100644
--- a/doc/lfun/MayAddWeight
+++ b/doc/lfun/MayAddWeight
@@ -1,4 +1,3 @@
-
 MayAddWeight()
 **************
 
diff --git a/doc/lfun/Message b/doc/lfun/Message
index bee1d46..ebb89dd 100644
--- a/doc/lfun/Message
+++ b/doc/lfun/Message
@@ -1,4 +1,3 @@
-
 Message()
 *********
 
diff --git a/doc/lfun/ModifyQuestTime b/doc/lfun/ModifyQuestTime
index 432a362..3d4e90c 100644
--- a/doc/lfun/ModifyQuestTime
+++ b/doc/lfun/ModifyQuestTime
@@ -1,4 +1,3 @@
-
 ModifyQuestTime()
 *****************
 
diff --git a/doc/lfun/ModifySkill b/doc/lfun/ModifySkill
index 70c33ba..5575b28 100644
--- a/doc/lfun/ModifySkill
+++ b/doc/lfun/ModifySkill
@@ -1,4 +1,3 @@
-
 ModifySkill()
 *************
 
diff --git a/doc/lfun/ModifySkillAttribute b/doc/lfun/ModifySkillAttribute
index 1b4fe40..ec19054 100644
--- a/doc/lfun/ModifySkillAttribute
+++ b/doc/lfun/ModifySkillAttribute
@@ -1,4 +1,3 @@
-
 ModifySkillAttribute()
 **********************
 
diff --git a/doc/lfun/More b/doc/lfun/More
index c504209..93d2692 100644
--- a/doc/lfun/More
+++ b/doc/lfun/More
@@ -1,4 +1,3 @@
-
 More()
 ******
 
diff --git a/doc/lfun/NPC_Killed_by b/doc/lfun/NPC_Killed_by
index 3b8801d..5a8c06d 100644
--- a/doc/lfun/NPC_Killed_by
+++ b/doc/lfun/NPC_Killed_by
@@ -1,4 +1,3 @@
-
 NPC_Killed_by()
 ***************
 
diff --git a/doc/lfun/NewDoor b/doc/lfun/NewDoor
index 6048d53..603a226 100644
--- a/doc/lfun/NewDoor
+++ b/doc/lfun/NewDoor
@@ -1,4 +1,3 @@
-
 NewDoor()
 *********
 
diff --git a/doc/lfun/NoParaObjects b/doc/lfun/NoParaObjects
index 4b6013a..94d8cdf 100644
--- a/doc/lfun/NoParaObjects
+++ b/doc/lfun/NoParaObjects
@@ -1,4 +1,3 @@
-
 NoParaObjects()
 ***************
 
diff --git a/doc/lfun/NotifyDestruct b/doc/lfun/NotifyDestruct
index 31e02e9..a73288a 100644
--- a/doc/lfun/NotifyDestruct
+++ b/doc/lfun/NotifyDestruct
@@ -1,4 +1,3 @@
-
 NotifyDestruct()
 ****************
 
diff --git a/doc/lfun/NotifyInsert b/doc/lfun/NotifyInsert
index 5ae2070..59fe355 100644
--- a/doc/lfun/NotifyInsert
+++ b/doc/lfun/NotifyInsert
@@ -1,4 +1,3 @@
-
 NotifyInsert()
 **************
 
diff --git a/doc/lfun/NotifyLeave b/doc/lfun/NotifyLeave
index fbfc1c3..e1875e6 100644
--- a/doc/lfun/NotifyLeave
+++ b/doc/lfun/NotifyLeave
@@ -1,4 +1,3 @@
-
 NotifyLeave()
 *************
 
diff --git a/doc/lfun/NotifyMove b/doc/lfun/NotifyMove
index 18261f8..0090c3c 100644
--- a/doc/lfun/NotifyMove
+++ b/doc/lfun/NotifyMove
@@ -1,4 +1,3 @@
-
 NotifyMove()
 ************
 
diff --git a/doc/lfun/NotifyPlayerDeath b/doc/lfun/NotifyPlayerDeath
index 4cf3af0..439a67e 100644
--- a/doc/lfun/NotifyPlayerDeath
+++ b/doc/lfun/NotifyPlayerDeath
@@ -1,4 +1,3 @@
-
 NotifyPlayerDeath()
 *******************
 
diff --git a/doc/lfun/NotifyRemove b/doc/lfun/NotifyRemove
index 2604b77..6509042 100644
--- a/doc/lfun/NotifyRemove
+++ b/doc/lfun/NotifyRemove
@@ -1,4 +1,3 @@
-
 NotifyRemove()
 **************
 
diff --git a/doc/lfun/NotifyTimedAttrModExpired b/doc/lfun/NotifyTimedAttrModExpired
index 09dc168..0d0b449 100644
--- a/doc/lfun/NotifyTimedAttrModExpired
+++ b/doc/lfun/NotifyTimedAttrModExpired
@@ -1,4 +1,3 @@
-
 NotifyTimedAttrModExpired()
 ***************************
 
diff --git a/doc/lfun/NotifyXMAttrModLimitViolation b/doc/lfun/NotifyXMAttrModLimitViolation
index f3c54a4..7c9881b 100644
--- a/doc/lfun/NotifyXMAttrModLimitViolation
+++ b/doc/lfun/NotifyXMAttrModLimitViolation
@@ -1,4 +1,3 @@
-
 NotifyXMAttrModLimitViolation()
 *******************************
 
diff --git a/doc/lfun/Pacify b/doc/lfun/Pacify
index 8b94854..6296c4f 100644
--- a/doc/lfun/Pacify
+++ b/doc/lfun/Pacify
@@ -1,4 +1,3 @@
-
 Pacify()
 ********
 
diff --git a/doc/lfun/PayIn b/doc/lfun/PayIn
index 35616de..be7e3a4 100644
--- a/doc/lfun/PayIn
+++ b/doc/lfun/PayIn
@@ -1,4 +1,3 @@
-
 PayIn()
 *******
 
diff --git a/doc/lfun/PlayerQuit b/doc/lfun/PlayerQuit
index 0eb8fbf..e690c2a 100644
--- a/doc/lfun/PlayerQuit
+++ b/doc/lfun/PlayerQuit
@@ -1,4 +1,3 @@
-
 PlayerQuit()
 ************
 
diff --git a/doc/lfun/PresentEnemies b/doc/lfun/PresentEnemies
index d306a78..cd5029f 100644
--- a/doc/lfun/PresentEnemies
+++ b/doc/lfun/PresentEnemies
@@ -1,4 +1,3 @@
-
 PresentEnemies()
 ****************
 
diff --git a/doc/lfun/PresentEnemyRows b/doc/lfun/PresentEnemyRows
index 003d6c3..2f3e36f 100644
--- a/doc/lfun/PresentEnemyRows
+++ b/doc/lfun/PresentEnemyRows
@@ -1,4 +1,3 @@
-
 PresentEnemyRows()
 ******************
 
diff --git a/doc/lfun/PresentPosition b/doc/lfun/PresentPosition
index c94d129..df38df4 100644
--- a/doc/lfun/PresentPosition
+++ b/doc/lfun/PresentPosition
@@ -1,4 +1,3 @@
-
 PresentPosition()
 *****************
 
diff --git a/doc/lfun/PresentTeamPositions b/doc/lfun/PresentTeamPositions
index 3af354b..ef13404 100644
--- a/doc/lfun/PresentTeamPositions
+++ b/doc/lfun/PresentTeamPositions
@@ -1,4 +1,3 @@
-
 PresentTeamPositions()
 **********************
 
diff --git a/doc/lfun/PresentTeamRows b/doc/lfun/PresentTeamRows
index 7875918..c598645 100644
--- a/doc/lfun/PresentTeamRows
+++ b/doc/lfun/PresentTeamRows
@@ -1,4 +1,3 @@
-
 PresentTeamRows()
 *****************
 
diff --git a/doc/lfun/PreventFollow b/doc/lfun/PreventFollow
index f8b0343..2092e0c 100644
--- a/doc/lfun/PreventFollow
+++ b/doc/lfun/PreventFollow
@@ -1,4 +1,3 @@
-
 PreventFollow()
 ***************
 
diff --git a/doc/lfun/PreventInsert b/doc/lfun/PreventInsert
index e58e827..5d639fe 100644
--- a/doc/lfun/PreventInsert
+++ b/doc/lfun/PreventInsert
@@ -1,4 +1,3 @@
-
 PreventInsert()
 ***************
 
diff --git a/doc/lfun/PreventInsertLiving b/doc/lfun/PreventInsertLiving
index fbde29f..1c262b8 100644
--- a/doc/lfun/PreventInsertLiving
+++ b/doc/lfun/PreventInsertLiving
@@ -1,4 +1,3 @@
-
 PreventInsertLiving()
 *********************
 
diff --git a/doc/lfun/PreventLeave b/doc/lfun/PreventLeave
index 24c33d2..36a621e 100644
--- a/doc/lfun/PreventLeave
+++ b/doc/lfun/PreventLeave
@@ -1,4 +1,3 @@
-
 PreventLeave()
 **************
 
diff --git a/doc/lfun/PreventLeaveLiving b/doc/lfun/PreventLeaveLiving
index 20a5844..64f614f 100644
--- a/doc/lfun/PreventLeaveLiving
+++ b/doc/lfun/PreventLeaveLiving
@@ -1,4 +1,3 @@
-
 PreventLeaveLiving()
 ********************
 
diff --git a/doc/lfun/PreventMove b/doc/lfun/PreventMove
index ec8c1da..e6092f0 100644
--- a/doc/lfun/PreventMove
+++ b/doc/lfun/PreventMove
@@ -1,4 +1,3 @@
-
 PreventMove()
 *************
 
diff --git a/doc/lfun/PrintList b/doc/lfun/PrintList
index d4caffc..0bf93d2 100644
--- a/doc/lfun/PrintList
+++ b/doc/lfun/PrintList
@@ -1,4 +1,3 @@
-
 PrintList()
 ***********
 
diff --git a/doc/lfun/Query b/doc/lfun/Query
index 27c2d9e..88eb459 100644
--- a/doc/lfun/Query
+++ b/doc/lfun/Query
@@ -1,4 +1,3 @@
-
 Query()
 *******
 
@@ -6,7 +5,7 @@
 FUNKTION
 ========
 
-   public varargs mixed Query(string name, int Type);
+   public mixed Query(string name, int Type = F_VALUE);
 
 
 DEFINIERT IN
diff --git a/doc/lfun/QueryAllDoors b/doc/lfun/QueryAllDoors
index cdf7140..f8b9b03 100644
--- a/doc/lfun/QueryAllDoors
+++ b/doc/lfun/QueryAllDoors
@@ -1,4 +1,3 @@
-
 QueryAllDoors()
 ***************
 
diff --git a/doc/lfun/QueryArmourByType b/doc/lfun/QueryArmourByType
index 5c9da6f..b1c9057 100644
--- a/doc/lfun/QueryArmourByType
+++ b/doc/lfun/QueryArmourByType
@@ -1,4 +1,3 @@
-
 QueryArmourByType()
 *******************
 
diff --git a/doc/lfun/QueryArrived b/doc/lfun/QueryArrived
index 9c4de60..492d88b 100644
--- a/doc/lfun/QueryArrived
+++ b/doc/lfun/QueryArrived
@@ -1,4 +1,3 @@
-
 QueryArrived()
 **************
 
diff --git a/doc/lfun/QueryArticle b/doc/lfun/QueryArticle
index 17a06ff..cd1e73e 100644
--- a/doc/lfun/QueryArticle
+++ b/doc/lfun/QueryArticle
@@ -1,4 +1,3 @@
-
 QueryArticle()
 **************
 
diff --git a/doc/lfun/QueryAttribute b/doc/lfun/QueryAttribute
index 978c6c0..8a2362e 100644
--- a/doc/lfun/QueryAttribute
+++ b/doc/lfun/QueryAttribute
@@ -1,4 +1,3 @@
-
 QueryAttribute()
 ****************
 
diff --git a/doc/lfun/QueryAttributeOffset b/doc/lfun/QueryAttributeOffset
index b16d10c..2197d21 100644
--- a/doc/lfun/QueryAttributeOffset
+++ b/doc/lfun/QueryAttributeOffset
@@ -1,4 +1,3 @@
-
 QueryAttributeOffset()
 **********************
 
diff --git a/doc/lfun/QueryBuyFact b/doc/lfun/QueryBuyFact
index 3f728c3..65c5b37 100644
--- a/doc/lfun/QueryBuyFact
+++ b/doc/lfun/QueryBuyFact
@@ -1,4 +1,3 @@
-
 QueryBuyFact()
 **************
 
diff --git a/doc/lfun/QueryBuyValue b/doc/lfun/QueryBuyValue
index cecc57c..0ef0612 100644
--- a/doc/lfun/QueryBuyValue
+++ b/doc/lfun/QueryBuyValue
@@ -1,4 +1,3 @@
-
 QueryBuyValue()
 ***************
 
diff --git a/doc/lfun/QueryCoinsPerUnits b/doc/lfun/QueryCoinsPerUnits
index 7261758..1a30735 100644
--- a/doc/lfun/QueryCoinsPerUnits
+++ b/doc/lfun/QueryCoinsPerUnits
@@ -1,4 +1,3 @@
-
 QueryCoinsPerUnits()
 ********************
 
diff --git a/doc/lfun/QueryDamage b/doc/lfun/QueryDamage
index 812636a..bcb566e 100644
--- a/doc/lfun/QueryDamage
+++ b/doc/lfun/QueryDamage
@@ -1,4 +1,3 @@
-
 QueryDamage()
 *************
 
diff --git a/doc/lfun/QueryDefaultHome b/doc/lfun/QueryDefaultHome
index aee35e8..63d87ea 100644
--- a/doc/lfun/QueryDefaultHome
+++ b/doc/lfun/QueryDefaultHome
@@ -1,4 +1,3 @@
-
 QueryDefaultHome()
 ******************
 
diff --git a/doc/lfun/QueryDefend b/doc/lfun/QueryDefend
index fa3fb11..5a7b981 100644
--- a/doc/lfun/QueryDefend
+++ b/doc/lfun/QueryDefend
@@ -1,4 +1,3 @@
-
 QueryDefend()
 *************
 
diff --git a/doc/lfun/QueryDefenders b/doc/lfun/QueryDefenders
index 1c1bae8..11bede8 100644
--- a/doc/lfun/QueryDefenders
+++ b/doc/lfun/QueryDefenders
@@ -1,4 +1,3 @@
-
 QueryDefenders()
 ****************
 
@@ -32,7 +31,7 @@
 ==========
 
    AddDefender(), RemoveDefender(), QueryPresentDefenders(),
-   QueryNearDefenders(), InformDefend(), DefendOther(),
-   *../props/P_DEFENDER*, /std/living/combat.c
+   QueryNearDefenders(), InformDefend(), DefendOther(), P_DEFENDERS,
+   /std/living/combat.c
 
 Letzte Aenderung: 29.10.2022, Bugfix
diff --git a/doc/lfun/QueryDisguise b/doc/lfun/QueryDisguise
index 3cf4b8d..413579b 100644
--- a/doc/lfun/QueryDisguise
+++ b/doc/lfun/QueryDisguise
@@ -1,4 +1,3 @@
-
 QueryDisguise()
 ***************
 
diff --git a/doc/lfun/QueryDoorKey b/doc/lfun/QueryDoorKey
index f606c52..3362923 100644
--- a/doc/lfun/QueryDoorKey
+++ b/doc/lfun/QueryDoorKey
@@ -1,4 +1,3 @@
-
 QueryDoorKey()
 **************
 
diff --git a/doc/lfun/QueryDoorStatus b/doc/lfun/QueryDoorStatus
index 74f7034..40de3a2 100644
--- a/doc/lfun/QueryDoorStatus
+++ b/doc/lfun/QueryDoorStatus
@@ -1,4 +1,3 @@
-
 QueryDoorStatus()
 *****************
 
diff --git a/doc/lfun/QueryDu b/doc/lfun/QueryDu
index aa184cc..149ba98 100644
--- a/doc/lfun/QueryDu
+++ b/doc/lfun/QueryDu
@@ -1,4 +1,3 @@
-
 QueryDu()
 *********
 
diff --git a/doc/lfun/QueryEnemies b/doc/lfun/QueryEnemies
index fc00c0e..23f0778 100644
--- a/doc/lfun/QueryEnemies
+++ b/doc/lfun/QueryEnemies
@@ -1,4 +1,3 @@
-
 QueryEnemies()
 **************
 
diff --git a/doc/lfun/QueryFlaw b/doc/lfun/QueryFlaw
index e12a119..185b974 100644
--- a/doc/lfun/QueryFlaw
+++ b/doc/lfun/QueryFlaw
@@ -1,4 +1,3 @@
-
 QueryFlaw()
 ***********
 
diff --git a/doc/lfun/QueryGenderString b/doc/lfun/QueryGenderString
index 845758f..771d9e5 100644
--- a/doc/lfun/QueryGenderString
+++ b/doc/lfun/QueryGenderString
@@ -1,4 +1,3 @@
-
 QueryGenderString()
 *******************
 
diff --git a/doc/lfun/QueryGramsPerUnits b/doc/lfun/QueryGramsPerUnits
index 62d5580..776d767 100644
--- a/doc/lfun/QueryGramsPerUnits
+++ b/doc/lfun/QueryGramsPerUnits
@@ -1,4 +1,3 @@
-
 QueryGramsPerUnits()
 ********************
 
diff --git a/doc/lfun/QueryGroupedKeys b/doc/lfun/QueryGroupedKeys
index 5101e8d..9451c30 100644
--- a/doc/lfun/QueryGroupedKeys
+++ b/doc/lfun/QueryGroupedKeys
@@ -1,4 +1,3 @@
-
 QueryGroupedKeys()
 ******************
 
diff --git a/doc/lfun/QueryGuest b/doc/lfun/QueryGuest
index 61cfb04..188a23c 100644
--- a/doc/lfun/QueryGuest
+++ b/doc/lfun/QueryGuest
@@ -1,4 +1,3 @@
-
 QueryGuest()
 ************
 
diff --git a/doc/lfun/QueryHealInfo b/doc/lfun/QueryHealInfo
index cc42fbc..958b2a2 100644
--- a/doc/lfun/QueryHealInfo
+++ b/doc/lfun/QueryHealInfo
@@ -1,4 +1,3 @@
-
 QueryHealInfo()
 ***************
 
diff --git a/doc/lfun/QueryMaterial b/doc/lfun/QueryMaterial
index 94a5367..e1016dc 100644
--- a/doc/lfun/QueryMaterial
+++ b/doc/lfun/QueryMaterial
@@ -1,4 +1,3 @@
-
 QueryMaterial()
 ***************
 
diff --git a/doc/lfun/QueryMaterialGroup b/doc/lfun/QueryMaterialGroup
index 3365f73..5eb3b80 100644
--- a/doc/lfun/QueryMaterialGroup
+++ b/doc/lfun/QueryMaterialGroup
@@ -1,4 +1,3 @@
-
 QueryMaterialGroup()
 ********************
 
diff --git a/doc/lfun/QueryMaxQP b/doc/lfun/QueryMaxQP
index 7b5aba2..0e66805 100644
--- a/doc/lfun/QueryMaxQP
+++ b/doc/lfun/QueryMaxQP
@@ -1,4 +1,3 @@
-
 QueryMaxQP()
 ************
 
diff --git a/doc/lfun/QueryMoney b/doc/lfun/QueryMoney
index b0b4aa8..aa4b378 100644
--- a/doc/lfun/QueryMoney
+++ b/doc/lfun/QueryMoney
@@ -1,4 +1,3 @@
-
 QueryMoney()
 ************
 
diff --git a/doc/lfun/QueryName b/doc/lfun/QueryName
index 71e65e3..0678a01 100644
--- a/doc/lfun/QueryName
+++ b/doc/lfun/QueryName
@@ -1,4 +1,3 @@
-
 QueryName()
 ***********
 
diff --git a/doc/lfun/QueryNearDefenders b/doc/lfun/QueryNearDefenders
index 2526ebd..31a343e 100644
--- a/doc/lfun/QueryNearDefenders
+++ b/doc/lfun/QueryNearDefenders
@@ -1,4 +1,3 @@
-
 QueryNearDefenders()
 ********************
 
@@ -43,6 +42,6 @@
 
    AddDefender(), RemoveDefender(), QueryDefenders(),
    QueryPresentDefenders(), InformDefend(), DefendOther(),
-   *../props/P_DEFENDER*, /std/living/combat.c
+   P_DEFENDERS, /std/living/combat.c
 
 Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/QueryOpenMiniQuestsForPlayer b/doc/lfun/QueryOpenMiniQuestsForPlayer
index f43d7cc..3b17d2b 100644
--- a/doc/lfun/QueryOpenMiniQuestsForPlayer
+++ b/doc/lfun/QueryOpenMiniQuestsForPlayer
@@ -1,4 +1,3 @@
-
 QueryOpenMiniQuestsForPlayer()
 ******************************
 
diff --git a/doc/lfun/QueryOwn b/doc/lfun/QueryOwn
index 6179f38..3225260 100644
--- a/doc/lfun/QueryOwn
+++ b/doc/lfun/QueryOwn
@@ -1,4 +1,3 @@
-
 QueryOwn()
 **********
 
diff --git a/doc/lfun/QueryPassengers b/doc/lfun/QueryPassengers
index d6f9331..021b2b4 100644
--- a/doc/lfun/QueryPassengers
+++ b/doc/lfun/QueryPassengers
@@ -1,4 +1,3 @@
-
 QueryPassengers()
 *****************
 
diff --git a/doc/lfun/QueryPosition b/doc/lfun/QueryPosition
index 08af6fe..4460b53 100644
--- a/doc/lfun/QueryPosition
+++ b/doc/lfun/QueryPosition
@@ -1,4 +1,3 @@
-
 QueryPosition()
 ***************
 
diff --git a/doc/lfun/QueryPossPronoun b/doc/lfun/QueryPossPronoun
index 90af78a..7a69a1b 100644
--- a/doc/lfun/QueryPossPronoun
+++ b/doc/lfun/QueryPossPronoun
@@ -1,4 +1,3 @@
-
 QueryPossPronoun()
 ******************
 
diff --git a/doc/lfun/QueryPrayRoom b/doc/lfun/QueryPrayRoom
index b783174..65cca23 100644
--- a/doc/lfun/QueryPrayRoom
+++ b/doc/lfun/QueryPrayRoom
@@ -1,4 +1,3 @@
-
 QueryPrayRoom()
 ***************
 
diff --git a/doc/lfun/QueryPreferedEnemy b/doc/lfun/QueryPreferedEnemy
index 10a8ae0..5e2e6b2 100644
--- a/doc/lfun/QueryPreferedEnemy
+++ b/doc/lfun/QueryPreferedEnemy
@@ -1,4 +1,3 @@
-
 QueryPreferedEnemy()
 ********************
 
diff --git a/doc/lfun/QueryPresentDefenders b/doc/lfun/QueryPresentDefenders
index 37e0d6c..1be3550 100644
--- a/doc/lfun/QueryPresentDefenders
+++ b/doc/lfun/QueryPresentDefenders
@@ -1,4 +1,3 @@
-
 QueryPresentDefenders()
 ***********************
 
@@ -42,7 +41,7 @@
 ==========
 
    AddDefender(), RemoveDefender(), QueryDefenders(),
-   QueryNearDefenders(), InformDefend(), DefendOther(),
-   *../props/P_DEFENDER*, /std/living/combat.c
+   QueryNearDefenders(), InformDefend(), DefendOther(), P_DEFENDERS,
+   /std/living/combat.c
 
 Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/QueryPronoun b/doc/lfun/QueryPronoun
index 39088f9..e23ea3b 100644
--- a/doc/lfun/QueryPronoun
+++ b/doc/lfun/QueryPronoun
@@ -1,4 +1,3 @@
-
 QueryPronoun()
 **************
 
diff --git a/doc/lfun/QueryProp b/doc/lfun/QueryProp
index 71c4fdf..1ce4ff6 100644
--- a/doc/lfun/QueryProp
+++ b/doc/lfun/QueryProp
@@ -1,4 +1,3 @@
-
 QueryProp()
 ***********
 
diff --git a/doc/lfun/QueryProperties b/doc/lfun/QueryProperties
index 6949e0f..ea34a8b 100644
--- a/doc/lfun/QueryProperties
+++ b/doc/lfun/QueryProperties
@@ -1,4 +1,3 @@
-
 QueryProperties()
 *****************
 
diff --git a/doc/lfun/QueryQuest b/doc/lfun/QueryQuest
index 496af27..ae80c68 100644
--- a/doc/lfun/QueryQuest
+++ b/doc/lfun/QueryQuest
@@ -1,4 +1,3 @@
-
 QueryQuest()
 ************
 
diff --git a/doc/lfun/QueryQuestTime b/doc/lfun/QueryQuestTime
index 9b93c8d..ceae037 100644
--- a/doc/lfun/QueryQuestTime
+++ b/doc/lfun/QueryQuestTime
@@ -1,4 +1,3 @@
-
 QueryQuestTime()
 ****************
 
diff --git a/doc/lfun/QueryRealAttribute b/doc/lfun/QueryRealAttribute
index 246008f..5e64ea4 100644
--- a/doc/lfun/QueryRealAttribute
+++ b/doc/lfun/QueryRealAttribute
@@ -1,4 +1,3 @@
-
 QueryRealAttribute()
 ********************
 
diff --git a/doc/lfun/QuerySellValue b/doc/lfun/QuerySellValue
index 4d5a518..99059c6 100644
--- a/doc/lfun/QuerySellValue
+++ b/doc/lfun/QuerySellValue
@@ -1,4 +1,3 @@
-
 QuerySellValue()
 ****************
 
diff --git a/doc/lfun/QuerySkill b/doc/lfun/QuerySkill
index 0978df1..9606872 100644
--- a/doc/lfun/QuerySkill
+++ b/doc/lfun/QuerySkill
@@ -1,4 +1,3 @@
-
 QuerySkill()
 ************
 
diff --git a/doc/lfun/QuerySkillAbility b/doc/lfun/QuerySkillAbility
index fd8666f..9785f0e 100644
--- a/doc/lfun/QuerySkillAbility
+++ b/doc/lfun/QuerySkillAbility
@@ -1,4 +1,3 @@
-
 QuerySkillAbility()
 *******************
 
diff --git a/doc/lfun/QuerySkillAttribute b/doc/lfun/QuerySkillAttribute
index 1b3a71e..57c75ef 100644
--- a/doc/lfun/QuerySkillAttribute
+++ b/doc/lfun/QuerySkillAttribute
@@ -1,4 +1,3 @@
-
 QuerySkillAttribute()
 *********************
 
diff --git a/doc/lfun/QuerySkillAttributeModifier b/doc/lfun/QuerySkillAttributeModifier
index 055815e..05edc06 100644
--- a/doc/lfun/QuerySkillAttributeModifier
+++ b/doc/lfun/QuerySkillAttributeModifier
@@ -1,4 +1,3 @@
-
 QuerySkillAttributeModifier()
 *****************************
 
diff --git a/doc/lfun/QuerySkillBonus b/doc/lfun/QuerySkillBonus
index 1cb82e8..939a314 100644
--- a/doc/lfun/QuerySkillBonus
+++ b/doc/lfun/QuerySkillBonus
@@ -1,4 +1,3 @@
-
 QuerySkillBonus()
 *****************
 
diff --git a/doc/lfun/QueryStorageRoom b/doc/lfun/QueryStorageRoom
index 4442237..085053e 100644
--- a/doc/lfun/QueryStorageRoom
+++ b/doc/lfun/QueryStorageRoom
@@ -1,4 +1,3 @@
-
 QueryStorageRoom()
 ******************
 
diff --git a/doc/lfun/QueryTimedAttrModifier b/doc/lfun/QueryTimedAttrModifier
index 4d858a8..5abdfba 100644
--- a/doc/lfun/QueryTimedAttrModifier
+++ b/doc/lfun/QueryTimedAttrModifier
@@ -1,4 +1,3 @@
-
 QueryTimedAttrModifier()
 ************************
 
diff --git a/doc/lfun/QueryTotalQP b/doc/lfun/QueryTotalQP
index 1471010..7acc775 100644
--- a/doc/lfun/QueryTotalQP
+++ b/doc/lfun/QueryTotalQP
@@ -1,4 +1,3 @@
-
 QueryTotalQP()
 **************
 
diff --git a/doc/lfun/QueryUser b/doc/lfun/QueryUser
index ad1e4fa..2e6303c 100644
--- a/doc/lfun/QueryUser
+++ b/doc/lfun/QueryUser
@@ -1,4 +1,3 @@
-
 QueryUser()
 ***********
 
diff --git a/doc/lfun/QueryValidObject b/doc/lfun/QueryValidObject
index 649a0b2..ee0aed2 100644
--- a/doc/lfun/QueryValidObject
+++ b/doc/lfun/QueryValidObject
@@ -1,4 +1,3 @@
-
 QueryValidObject()
 ******************
 
diff --git a/doc/lfun/ReceiveMsg b/doc/lfun/ReceiveMsg
index 96d01a6..33a51ea 100644
--- a/doc/lfun/ReceiveMsg
+++ b/doc/lfun/ReceiveMsg
@@ -1,4 +1,3 @@
-
 ReceiveMsg()
 ************
 
@@ -49,6 +48,8 @@
       MT_LOOK nur an Nichtblinde
       MT_LISTEN nur an Nichttaube
       MT_DEBUG nur an Magier/Testspieler
+      Bei gesetztem MSG_ALL_SENSES muessen alle fuer die angegebenen Typen
+      relevanten Sinne des Empfaengers benutzbar sein, nicht nur einer.
    2) Pruefen auf Ignorieren von
       - Aktion ('msg_action')
         - mit 'msg_action' || query_verb()
@@ -59,11 +60,17 @@
    4) Speicherung im Kobold (Typ MT_COMM + aktiver Kobold)
    5) Umbrechen unter Beruecksichtigung von indent, 'msg_typ'-Flags
       fuer Umbruch und P_PREPEND_BS
+   6) Ersetzen von Farbtags entsprechendes Terminaltyps des Clients.
 
    Raeume definieren standardmaessig ebenfalls ein ReceiveMsg(), welches in
    jedem Objekt im Raum ReceiveMsg() mit den uebergebenen Argumenten aufruft.
-   In diesem Fall ist der Rueckgabe der kleinste von allen gerufenen
-   ReceiveMsg() zurueckgelieferte Wert.
+   In diesem Fall ist der Rueckgabe 'void'. Ein einfacher 'int' waere hier
+   nicht hilfreich und einen komplexer Rueckgabewert wuerde niemand auswerten
+   wollen.
+
+   Zur einfacheren Verwendung gibt es einige Wrapper-Funktionen, siehe
+   :doc:`ReceiveMultisense`, :doc:`ReceiveNotify`, :doc:`ReceiveSay` und
+   :doc:`ReceiveTeilemit`, :doc:`ReceiveWave`.
 
 
 RUeCKGABEWERT
@@ -225,6 +232,10 @@
      MSG_DONT_STORE  Nachricht darf nicht in die Comm-History
      MSG_DONT_WRAP   Nachricht nicht per break_string umbrechen
      MSG_DONT_IGNORE Nachricht kann nicht ignoriert werden
+     MSG_ALL_TYPES   alle relevanten Sinne fuer die angegebenen Nachrichten-
+                     typen muessen benutzbar sein (UND statt ODER).
+     MSG_ALERT       Nachricht loest eine vom Spieler konfigurierte
+                     Benachrichtigung aus (z.B. Piepston)
 
      MSG_BS_LEAVE_LFS    wie BS_LEAVE_MY_LFS fuer break_string()
      MSG_BS_SINGLE_SPACE wie BS_SINGLE_SPACE fuer break_string()
@@ -269,9 +280,10 @@
 SIEHE AUCH
 ==========
 
+   Wrapper-Funktionen: :doc:`ReceiveMultisense`, :doc:`ReceiveNotify`, :doc:`ReceiveSay`, :doc:`ReceiveTeilemit`
    Verwandt: send_room(SE)
    Lfuns:    TestIgnore(L)
    Efuns:    tell_object(E), catch_tell(L), catch_msg(L)
              query_verb(E), query_once_interactive(E), break_string(SE)
 
-13.03.2016, Zesstra
+Letzte Aenderung: 22.01.2022
diff --git a/doc/lfun/ReceiveMultisense b/doc/lfun/ReceiveMultisense
new file mode 100644
index 0000000..db97f64
--- /dev/null
+++ b/doc/lfun/ReceiveMultisense
@@ -0,0 +1,109 @@
+ReceiveMultisense()
+*******************
+
+
+FUNKTION
+========
+
+   public void ReceiveMultisense(struct wave_s* msgs, string action =
+   0, int commontypes = 0)
+
+
+DEFINIERT IN
+============
+
+   /std/living/comm.c /std/room/comm.c
+
+
+ARGUMENTE
+=========
+
+   struct wave_s* msgs
+      Die auszugebenden Nachrichten mit Zusatzinformationen. (s.u.)
+
+   string action
+      action wird als <action> an ReceiveMsg() weitergegeben.
+
+   int commontypes
+      Muss einen oder mehrere veroderte messagetypes aus ReceiveMsg()
+      enthalten. Diese werden bei jedem Aufruf von ReceiveMsg() mit
+      dem jeweiligen Messagetyp aus <msgs> verodert.
+
+
+BESCHREIBUNG
+============
+
+   Versucht, eine der in <msgs> angegebenen Nachrichten an den
+   Empfaenger zuzustellen.
+
+   Das Array <msgs> wird der Reihe nach abgearbeitet, bis eine
+   Nachricht zugestellt werden konnte, das Ende von <msgs> erreicht
+   wurde oder eine Nachricht *aus anderen Gruenden* als einem
+   blockierten Sinn abgelehnt wurde. Der Grund fuer letzteres ist,
+   dass andere Fehler von ReceiveMsg() (fast) immer auch bei allen
+   (weiteren) Alternativen auftreten werden.
+
+   <msgs> ist ein Array von struct wave_s. Diese ist in
+   /secure/simul_efun/comm.c definiert (und steht allen Programmen
+   automatisch zur Verfuegung). Sie hat die Eintraege string msg, int
+   type, string prefix. wave_s.msg wird vor der Ausgabe von
+   replace_personal() verarbeitet. Als erstes Objekt wird das
+   aufrufende Objekt uebergeben, als zweites this_player(), sofern
+   vorhanden. wave_s.msg wird automatisch auf 78 Zeichen umgebrochen,
+   vorhandene Zeilenumbrueche werden dabei beibehalten. Fuer
+   wave_s.prefix findet keine Ersetzung statt.
+
+
+RUECKGABEWERT
+=============
+
+
+in Lebewesen
+------------
+
+   Der Rueckgabe ist der Rueckgabewert von ReceiveMsg() fuer die
+   zuletzt versuchte Meldung.
+
+   Wenn dies einen Erfolg (MSG_DELIVERED, MSG_BUFFERED) darstellt,
+   wurde irgendeine Meldung erfolgreich zugestellt. Falls es
+   MSG_SENSE_BLOCK ist, sind alle versuchten Sinne blockiert und keine
+   Nachricht wurde zugestellt. Ist es ein anderer Fehler ist, wurde
+   keine Nachricht zugestellt (und ggf. nicht alle versucht).
+
+
+in Containern/Raeumen
+---------------------
+
+   Die Funktion hat keinen Rueckgabewert. Der Grund hierfuer ist, dass
+   dieser ein ggf. tief verschachteltes Mapping waere, was keiner mehr
+   prueft.
+
+
+BEISPIEL
+========
+
+   this_player().ReceiveMultisense(
+      ({
+         (<wave_s>
+            msg: "Ein Drache landet neben Dir.", type: MT_LOOK),
+
+         (<wave_s>
+            message: "Du hoerst ein Rumpeln, als waere gerade etwas
+            Grosses "
+               "neben Dir eingeschlagen.",
+
+            type: MT_LISTEN),
+
+         (<wave_s>
+            msg: "Du spuerst einen heftigen Luftzug.", type:
+            MT_FEEL)})
+
+      MA_MOVE_IN);
+
+
+SIEHE AUCH
+==========
+
+   ReceiveMsg(), replace_personal()
+
+Letzte Aenderung: 21.09.2022, Zesstra
diff --git a/doc/lfun/ReceiveNotify b/doc/lfun/ReceiveNotify
new file mode 100644
index 0000000..a904af8
--- /dev/null
+++ b/doc/lfun/ReceiveNotify
@@ -0,0 +1,64 @@
+ReceiveNotify()
+***************
+
+
+FUNKTION
+========
+
+   public int ReceiveNotify(string msg, string action = 0)
+
+
+DEFINIERT IN
+============
+
+   /std/living/comm.c /sys/living/comm.h
+
+
+ARGUMENTE
+=========
+
+   string msg
+      Die auszugebende Meldung. Sie wird automatisch auf 78 Zeichen
+      umgebrochen, vorhandene Zeilenumbrueche werden dabei
+      beibehalten.
+
+   string action
+      action wird als action an ReceiveMsg() weitergegeben.
+
+
+BESCHREIBUNG
+============
+
+   Sendet msg via ReceiveMsg() mit MT_NOTIFICATION | MSG_BS_LEAVE_LFS
+   und den uebergebenen bzw. voreingestellten Werten fuer prefix und
+   action an den Empfaenger.
+
+
+BEMERKUNGEN
+===========
+
+   Bitte beachten: MT_NOTIFICATION ist fuer Kommandobestaetigungen,
+   Statusmeldungen o.ae., d.h. out-of-character Meldungen vorgesehen.
+   Es soll nicht als Sammeltyp fuer nicht-ignorierbare Meldungen
+   verwendet werden, dafuer gibt es MSG_DONT_IGNORE in Kombination mit
+   den anderen Typen.
+
+
+RUECKGABEWERT
+=============
+
+   Der Rueckgabewert von ReceiveMsg().
+
+
+BEISPIEL
+========
+
+   this_player().ReceiveNotify("Dazu reicht dein Level nicht aus.");
+
+
+SIEHE AUCH
+==========
+
+   ReceiveMsg()
+
+Letzte Aenderung: 07.10.2021, Bugfix
diff --git a/doc/lfun/ReceiveSay b/doc/lfun/ReceiveSay
new file mode 100644
index 0000000..41eee81
--- /dev/null
+++ b/doc/lfun/ReceiveSay
@@ -0,0 +1,118 @@
+ReceiveSay()
+************
+
+
+FUNKTION
+========
+
+   public void ReceiveSay(string msg, string prefix =
+   previous_object().Name(WER, 1) + " sagt: ",
+      struct msg_s sense_blocked =
+         ({(<wave_s>
+            msg: "@WER1 bewegt die Lippen, Du hoerst jedoch nichts.",
+            type: MT_LOOK)}))
+
+
+DEFINIERT IN
+============
+
+   /std/living/comm.c /std/room/comm.c
+
+
+ARGUMENTE
+=========
+
+   string msg
+      Die auszugebende Meldung.
+
+   string prefix
+      prefix wird als prefix an ReceiveMsg() weitergegeben. Wird kein
+      Wert uebergeben, wird "previous_object().Name(WER, 1) + " sagt:
+      "" verwendet.
+
+   struct wave_s *alt
+      Ersatzmeldungen, falls das Lebewesen die Meldung aufgrund eines
+      blockierten Sinns nicht wahrnehmen kann. Details siehe unten.
+
+
+BESCHREIBUNG
+============
+
+   Sendet msg per ReceiveMsg() mit den ueblichen Argumenten von "sage"
+   an den Empfaenger, d.h.: "MT_LISTEN", "MA_SAY", "Name(WER, 1) + "
+   sagt: "". Hierzu muss das aufrufende Objekt *Name* definiert haben
+   und dort etwas sinnvolles zurueckgeben. Falls ein anderer Praefix
+   gewaehlt wurde, wird dieser statt "Name(WER, 1)  " sagt: ""
+   verwendet.
+
+   <msg> wird vor der Ausgabe an replace_personal() uebergeben, als
+   erstes Objekt wird das aufrufende Objekt uebergeben, als zweites
+   this_player(), sofern vorhanden. msg wird automatisch auf 78
+   Zeichen umgebrochen, vorhandene Zeilenumbrueche werden dabei
+   beibehalten.
+
+   Falls der Empfaenger eine Nachricht aufgrund eines blockierten
+   Sinns nicht empfangen kann (und **nur** dann), wird versucht,
+   alternative Nachrichten aus dem Array <alt> zuzustellen. Dieses
+   Array enthaelt structs vom Typ wave_s. Das Array wird von vorne
+   nach hinten abgearbeitet, bis eine Nachricht erfolgreich zugestellt
+   werden konnte, das Ende erreicht ist oder eine Nachricht *aus
+   anderen Gruenden* als einem blockierten Sinn abgelehnt wurde. Der
+   Grund fuer letzteres ist, dass andere Fehler von ReceiveMsg()
+   (fast) immer auch bei allen (weiteren) Alternativen auftreten
+   werden. wave_s ist in /secure/simul_efun/comm.c definiert und
+   enthaelt die Eintraege string msg, int type, string prefix. In
+   <alt> ist der Default fuer wave_s.prefix 0! Auch hier findet fuer
+   wave_s.msg eine Ersetzung mittels replace_personal() statt, fuer
+   wave_s.prefix nicht.
+
+
+RUECKGABEWERT
+=============
+
+
+in Lebewesen
+------------
+
+   Der Rueckgabe ist der Rueckgabewert von ReceiveMsg() fuer die
+   zuletzt versuchte Meldung.
+
+   Wenn dies einen Erfolg (MSG_DELIVERED, MSG_BUFFERED) darstellt,
+   wurde irgendeine Meldung erfolgreich zugestellt. Falls es
+   MSG_SENSE_BLOCK ist, sind alle versuchten Sinne blockiert und keine
+   Nachricht wurde zugestellt. Ist es ein anderer Fehler ist, wurde
+   keine Nachricht zugestellt (und ggf. nicht alle aus <alt>
+   versucht).
+
+
+in Containern/Raeumen
+---------------------
+
+   Die Funktion hat keinen Rueckgabewert. Der Grund hierfuer ist, dass
+   dieser ein ggf. tief verschachteltes Mapping waere, was keiner mehr
+   prueft.
+
+
+BEISPIEL
+========
+
+   SetProp(P_NAME, "Questgeber"); SetProp(P_GENDER, MALE);
+   this_player().ReceiveSay(
+
+      "Das hast Du prima gemacht, @WER2!", Name(WER, 1) + " lobt Dich:
+      ", ({
+
+         (<wave_s>
+            msg: "@WER1 nickt Dir laechelnd zu.", type: MT_LOOK),
+
+         (<wave_s>
+            msg: "Jemand klopft Dir lobend auf die Schulter.", type:
+            MT_FEEL)}));
+
+
+SIEHE AUCH
+==========
+
+   ReceiveMsg(), replace_personal(), *Name*
+
+Letzte Aenderung: 21.09.2022, Zesstra
diff --git a/doc/lfun/ReceiveTeilemit b/doc/lfun/ReceiveTeilemit
new file mode 100644
index 0000000..3f37373
--- /dev/null
+++ b/doc/lfun/ReceiveTeilemit
@@ -0,0 +1,59 @@
+ReceiveTeilemit()
+*****************
+
+
+FUNKTION
+========
+
+   public int ReceiveTeilemit(string msg)
+
+
+DEFINIERT IN
+============
+
+   /std/living/comm.c
+
+
+ARGUMENTE
+=========
+
+   string msg
+      Die auszugebende Meldung. Sie wird vor der Ausgabe an
+      replace_personal() uebergeben, als erstes Objekt wird das
+      aufrufende Objekt uebergeben, als zweites this_player(), sofern
+      vorhanden. msg wird automatisch auf 78 Zeichen umgebrochen,
+      vorhandene Zeilenumbrueche werden dabei beibehalten.
+
+
+BESCHREIBUNG
+============
+
+   Sendet msg per ReceiveMsg() mit den ueblichen Argumenten von "teile
+   mit" an pl. D.h.: MT_COMM | MT_FAR, MA_TELL, Name(WER, 1) + " teilt
+   Dir mit: ". Hierzu muss das aufrufende Objekt name() definiert
+   haben und dort etwas sinnvolles zurueckgeben. Der einzige
+   Unterschied zum normalen "teile mit" ist, dass zusaetzlich
+   MSG_DONT_STORE uebergeben wird. Da es sich hier ueblicherweise
+   nicht um Kommunikation zwischen Spielern handelt, muss die
+   Nachricht nicht in die tmhist.
+
+
+RUECKGABEWERT
+=============
+
+   Der Rueckgabewert von ReceiveMsg().
+
+
+BEISPIEL
+========
+
+   SetProp(P_NAME, "Questgeber"); SetProp(P_GENDER, MALE);
+   this_player().ReceiveTeilemit("Das hast Du prima gemacht, @WER2!");
+
+
+SIEHE AUCH
+==========
+
+   ReceiveMsg(), replace_personal(), name()
+
+Letzte Aenderung: 07.10.2021, Bugfix
diff --git a/doc/lfun/RegisterEvent b/doc/lfun/RegisterEvent
index a664b3b..c7157ae 100644
--- a/doc/lfun/RegisterEvent
+++ b/doc/lfun/RegisterEvent
@@ -1,4 +1,3 @@
-
 RegisterEvent()
 ***************
 
diff --git a/doc/lfun/RegisterHelperNPC b/doc/lfun/RegisterHelperNPC
index f8b6a2e..f93828d 100644
--- a/doc/lfun/RegisterHelperNPC
+++ b/doc/lfun/RegisterHelperNPC
@@ -1,4 +1,3 @@
-
 RegisterHelperNPC()
 *******************
 
diff --git a/doc/lfun/RegisterHelperObject b/doc/lfun/RegisterHelperObject
index 21b75f4..df5c01b 100644
--- a/doc/lfun/RegisterHelperObject
+++ b/doc/lfun/RegisterHelperObject
@@ -1,4 +1,3 @@
-
 RegisterHelperObject()
 **********************
 
diff --git a/doc/lfun/RemoveAdjective b/doc/lfun/RemoveAdjective
index bd1796f..0ff3a26 100644
--- a/doc/lfun/RemoveAdjective
+++ b/doc/lfun/RemoveAdjective
@@ -1,4 +1,3 @@
-
 RemoveAdjective()
 *****************
 
diff --git a/doc/lfun/RemoveClass b/doc/lfun/RemoveClass
index 26b0b79..dfaf29e 100644
--- a/doc/lfun/RemoveClass
+++ b/doc/lfun/RemoveClass
@@ -1,4 +1,3 @@
-
 RemoveClass()
 *************
 
diff --git a/doc/lfun/RemoveCmd b/doc/lfun/RemoveCmd
index 6adffbf..a2707a6 100644
--- a/doc/lfun/RemoveCmd
+++ b/doc/lfun/RemoveCmd
@@ -1,4 +1,3 @@
-
 RemoveCmd()
 ***********
 
diff --git a/doc/lfun/RemoveDefender b/doc/lfun/RemoveDefender
index a8b6863..3ba4193 100644
--- a/doc/lfun/RemoveDefender
+++ b/doc/lfun/RemoveDefender
@@ -1,4 +1,3 @@
-
 RemoveDefender()
 ****************
 
@@ -42,7 +41,7 @@
 ==========
 
    AddDefender(), QueryDefenders(), QueryPresentDefenders(),
-   QueryNearDefenders(), InformDefend(), DefendOther(),
-   *../props/P_DEFENDER*, /std/living/combat.c
+   QueryNearDefenders(), InformDefend(), DefendOther(), P_DEFENDERS,
+   /std/living/combat.c
 
 Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/RemoveDetail b/doc/lfun/RemoveDetail
index 48a0330..76f7b5a 100644
--- a/doc/lfun/RemoveDetail
+++ b/doc/lfun/RemoveDetail
@@ -1,4 +1,3 @@
-
 RemoveDetail()
 **************
 
diff --git a/doc/lfun/RemoveExit b/doc/lfun/RemoveExit
index 6854229..22ea81d 100644
--- a/doc/lfun/RemoveExit
+++ b/doc/lfun/RemoveExit
@@ -1,4 +1,3 @@
-
 RemoveExit()
 ************
 
diff --git a/doc/lfun/RemoveExtraLook b/doc/lfun/RemoveExtraLook
index 617e0b4..42cf363 100644
--- a/doc/lfun/RemoveExtraLook
+++ b/doc/lfun/RemoveExtraLook
@@ -1,4 +1,3 @@
-
 RemoveExtraLook()
 *****************
 
@@ -18,8 +17,8 @@
 ARGUMENTE
 =========
 
-   * string key: Schluessel, unter dem der Extralook registriert
-     wurde ODER Objektname des registrierenden Objektes
+   * string key: Schluessel, unter dem der Extralook registriert wurde
+     ODER Objektname des registrierenden Objektes
 
 
 BESCHREIBUNG
diff --git a/doc/lfun/RemoveFixedObject b/doc/lfun/RemoveFixedObject
index 22179de..c187fcd 100644
--- a/doc/lfun/RemoveFixedObject
+++ b/doc/lfun/RemoveFixedObject
@@ -1,4 +1,3 @@
-
 RemoveFixedObject()
 *******************
 
diff --git a/doc/lfun/RemoveFromMenu b/doc/lfun/RemoveFromMenu
index fdcb916..d3412a6 100644
--- a/doc/lfun/RemoveFromMenu
+++ b/doc/lfun/RemoveFromMenu
@@ -1,4 +1,3 @@
-
 RemoveFromMenu()
 ****************
 
diff --git a/doc/lfun/RemoveFunc b/doc/lfun/RemoveFunc
index bf01ae9..64e156b 100644
--- a/doc/lfun/RemoveFunc
+++ b/doc/lfun/RemoveFunc
@@ -1,4 +1,3 @@
-
 RemoveFunc()
 ************
 
diff --git a/doc/lfun/RemoveId b/doc/lfun/RemoveId
index efd709d..ed9cc4e 100644
--- a/doc/lfun/RemoveId
+++ b/doc/lfun/RemoveId
@@ -1,4 +1,3 @@
-
 RemoveId()
 **********
 
diff --git a/doc/lfun/RemoveInfo b/doc/lfun/RemoveInfo
index 75485c6..c7ee81e 100644
--- a/doc/lfun/RemoveInfo
+++ b/doc/lfun/RemoveInfo
@@ -1,4 +1,3 @@
-
 RemoveInfo()
 ************
 
diff --git a/doc/lfun/RemoveItem b/doc/lfun/RemoveItem
index 6efa9e6..525e457 100644
--- a/doc/lfun/RemoveItem
+++ b/doc/lfun/RemoveItem
@@ -1,4 +1,3 @@
-
 RemoveItem()
 ************
 
diff --git a/doc/lfun/RemoveKnownPotion b/doc/lfun/RemoveKnownPotion
index f7af610..b82fd3b 100644
--- a/doc/lfun/RemoveKnownPotion
+++ b/doc/lfun/RemoveKnownPotion
@@ -1,4 +1,3 @@
-
 RemoveKnownPotion()
 *******************
 
diff --git a/doc/lfun/RemovePluralId b/doc/lfun/RemovePluralId
index 23f394a..71b644f 100644
--- a/doc/lfun/RemovePluralId
+++ b/doc/lfun/RemovePluralId
@@ -1,4 +1,3 @@
-
 RemovePluralId()
 ****************
 
diff --git a/doc/lfun/RemovePursuer b/doc/lfun/RemovePursuer
index e371096..849c790 100644
--- a/doc/lfun/RemovePursuer
+++ b/doc/lfun/RemovePursuer
@@ -1,4 +1,3 @@
-
 RemovePursuer()
 ***************
 
diff --git a/doc/lfun/RemoveReadDetail b/doc/lfun/RemoveReadDetail
index 495dfe3..f367d2b 100644
--- a/doc/lfun/RemoveReadDetail
+++ b/doc/lfun/RemoveReadDetail
@@ -1,4 +1,3 @@
-
 RemoveReadDetail()
 ******************
 
diff --git a/doc/lfun/RemoveResistanceModifier b/doc/lfun/RemoveResistanceModifier
index ca14c74..b8d1e76 100644
--- a/doc/lfun/RemoveResistanceModifier
+++ b/doc/lfun/RemoveResistanceModifier
@@ -1,4 +1,3 @@
-
 RemoveResistanceModifier()
 **************************
 
diff --git a/doc/lfun/RemoveRoute b/doc/lfun/RemoveRoute
index 61fb082..f3d1d00 100644
--- a/doc/lfun/RemoveRoute
+++ b/doc/lfun/RemoveRoute
@@ -1,4 +1,3 @@
-
 RemoveRoute()
 *************
 
diff --git a/doc/lfun/RemoveSensitiveObject b/doc/lfun/RemoveSensitiveObject
index 0678e70..e26456d 100644
--- a/doc/lfun/RemoveSensitiveObject
+++ b/doc/lfun/RemoveSensitiveObject
@@ -1,4 +1,3 @@
-
 RemoveSensitiveObject()
 ***********************
 
diff --git a/doc/lfun/RemoveSingularId b/doc/lfun/RemoveSingularId
index fcf0c3d..b50a25e 100644
--- a/doc/lfun/RemoveSingularId
+++ b/doc/lfun/RemoveSingularId
@@ -1,4 +1,3 @@
-
 RemoveSingularId()
 ******************
 
diff --git a/doc/lfun/RemoveSkillAttributeModifier b/doc/lfun/RemoveSkillAttributeModifier
index 5fa69b2..4e661fb 100644
--- a/doc/lfun/RemoveSkillAttributeModifier
+++ b/doc/lfun/RemoveSkillAttributeModifier
@@ -1,4 +1,3 @@
-
 RemoveSkillAttributeModifier()
 ******************************
 
diff --git a/doc/lfun/RemoveSmells b/doc/lfun/RemoveSmells
index b56fe27..2b0d724 100644
--- a/doc/lfun/RemoveSmells
+++ b/doc/lfun/RemoveSmells
@@ -1,4 +1,3 @@
-
 RemoveSmells()
 **************
 
diff --git a/doc/lfun/RemoveSounds b/doc/lfun/RemoveSounds
index 4ef4263..e8824a2 100644
--- a/doc/lfun/RemoveSounds
+++ b/doc/lfun/RemoveSounds
@@ -1,4 +1,3 @@
-
 RemoveSounds()
 **************
 
diff --git a/doc/lfun/RemoveSpecialDetail b/doc/lfun/RemoveSpecialDetail
index 96a7a39..3395b6a 100644
--- a/doc/lfun/RemoveSpecialDetail
+++ b/doc/lfun/RemoveSpecialDetail
@@ -1,4 +1,3 @@
-
 RemoveSpecialDetail()
 *********************
 
diff --git a/doc/lfun/RemoveSpecialExit b/doc/lfun/RemoveSpecialExit
index ee2e8e8..f267565 100644
--- a/doc/lfun/RemoveSpecialExit
+++ b/doc/lfun/RemoveSpecialExit
@@ -1,4 +1,3 @@
-
 RemoveSpecialExit()
 *******************
 
diff --git a/doc/lfun/RemoveTouchDetail b/doc/lfun/RemoveTouchDetail
index 4f6ace3..2537be2 100644
--- a/doc/lfun/RemoveTouchDetail
+++ b/doc/lfun/RemoveTouchDetail
@@ -1,4 +1,3 @@
-
 RemoveTouchDetail()
 *******************
 
diff --git a/doc/lfun/RemoveVItem b/doc/lfun/RemoveVItem
index c1f7c10..b1f9a18 100644
--- a/doc/lfun/RemoveVItem
+++ b/doc/lfun/RemoveVItem
@@ -1,4 +1,3 @@
-
 RemoveVItem()
 *************
 
diff --git a/doc/lfun/ResizeRingBuffer b/doc/lfun/ResizeRingBuffer
index 17c3332..d623973 100644
--- a/doc/lfun/ResizeRingBuffer
+++ b/doc/lfun/ResizeRingBuffer
@@ -1,4 +1,3 @@
-
 ResizeRingBuffer()
 ******************
 
diff --git a/doc/lfun/RingBufferGet b/doc/lfun/RingBufferGet
index 128807f..e6a528f 100644
--- a/doc/lfun/RingBufferGet
+++ b/doc/lfun/RingBufferGet
@@ -1,4 +1,3 @@
-
 RingBufferGet()
 ***************
 
diff --git a/doc/lfun/RingBufferPut b/doc/lfun/RingBufferPut
index 00c046c..e89b7fb 100644
--- a/doc/lfun/RingBufferPut
+++ b/doc/lfun/RingBufferPut
@@ -1,4 +1,3 @@
-
 RingBufferPut()
 ***************
 
diff --git a/doc/lfun/SearchPath b/doc/lfun/SearchPath
index ec15b5f..cbf359e 100644
--- a/doc/lfun/SearchPath
+++ b/doc/lfun/SearchPath
@@ -1,4 +1,3 @@
-
 SearchPath()
 ************
 
diff --git a/doc/lfun/SelectEnemy b/doc/lfun/SelectEnemy
index 5a05eab..5e55cb3 100644
--- a/doc/lfun/SelectEnemy
+++ b/doc/lfun/SelectEnemy
@@ -1,4 +1,3 @@
-
 SelectEnemy()
 *************
 
diff --git a/doc/lfun/SelectFarEnemy b/doc/lfun/SelectFarEnemy
index c390d42..066fa08 100644
--- a/doc/lfun/SelectFarEnemy
+++ b/doc/lfun/SelectFarEnemy
@@ -1,4 +1,3 @@
-
 SelectFarEnemy()
 ****************
 
diff --git a/doc/lfun/SelectNearEnemy b/doc/lfun/SelectNearEnemy
index 43ba033..b9a6e55 100644
--- a/doc/lfun/SelectNearEnemy
+++ b/doc/lfun/SelectNearEnemy
@@ -1,4 +1,3 @@
-
 SelectNearEnemy()
 *****************
 
diff --git a/doc/lfun/Set b/doc/lfun/Set
index bef7161..7667eba 100644
--- a/doc/lfun/Set
+++ b/doc/lfun/Set
@@ -1,4 +1,3 @@
-
 Set()
 *****
 
@@ -6,7 +5,8 @@
 FUNKTION
 ========
 
-   public varargs mixed Set(string name, mixed Value, int Type, int extern);
+   public mixed Set(string name, mixed Value,
+               int Type = F_VALUE, int drop_priv = extern_call())
 
 
 DEFINIERT IN
@@ -19,11 +19,11 @@
 ARGUMENTE
 =========
 
-    name - Property, die manipuliert werden soll
-    Value - der zu setzende/aendernde Wert
-    Type - die Eigenschaft der Property, die manipuliert werden soll
-    extern - Interne Verwendung:
-   Wurde Set ueber SetProp von aussen gerufen.
+   name - Property, die manipuliert werden soll
+   Value - der zu setzende/aendernde Wert
+   Type - die Eigenschaft der Property, die manipuliert werden soll
+   drop_priv - Interne Verwendung, wenn Aufrufer Privilegien abgibt,
+               z.B. objekt-interner Aufruf extern zaehlen soll.
 
 
 BESCHREIBUNG
@@ -67,29 +67,14 @@
 
          Property nicht mehr ueber SetProp() aenderbar
          (damit entfallen auch SET_METHOD, _set_'name')
-
-       SETMAPPED
-
-         Die Set-Methode speichert den Werte nicht selber, sondern gibt
-         ihn zurueck, das Property-System speichert ihn dann.
-         WARNUNG: Dieses Flag nicht per Hand manipulieren.
-  
    F_SET_METHOD
      Aendert den Eintrag fuer eine SetMethod - eine Closure, die anstatt
      des Setzens der Property beim Aufruf von SetProp mit 'Value'
      aufgerufen wird.
-   F_SET_MAPPER
-     Setzt wie F_SET_METHOD eine Set-Methode (Closure), welche aber den Wert
-     der Property beim Aufruf nicht selber (durch Aufruf von Set()) setzt,
-     sondern den Wert zurueckgeben muss, der gesetzt werden soll.
-     Bsp. #'copy um vor dem Speichern eine Kopie zu erstellen
    F_QUERY_METHOD
      Aendert den Eintrag fuer eine QueryMethod - eine Closure, die anstatt
      des Lesens der Property beim Aufruf von QueryProp aufgerufen wird.
-     Diese bekommt den gespeicherten Wert der Property uebergeben und muss
-     den an den Aufrufer von QueryProp() zurueckzugebenden Wert
-     zurueckgeben.
-     Bsp: #'copy, um eine Kopie des gespeicherten Wertes zurueckzugeben
+
 
 RUeCKGABEWERT
 =============
@@ -142,7 +127,9 @@
    // Loeschen des SAVE-Flags
    Set(P_XYZ, SAVE, F_MODE_AD);
 
-   // Negieren (Umschalten) des bisherigen SAVE-Flags
+
+
+   // Negieren des bisherigen SAVE-Flags
    Set(P_XYZ, SAVE, F_MODE);
    // Hinweis: das Setzen des Flags funktioniert mittels F_MODE nur dann,
    // wenn sichergestellt ist, dass es vorher nicht gesetzt war. Die
@@ -170,12 +157,6 @@
    other->Set(P_XYZ, #'bar, F_QUERY_METHOD);
    ...
 
-   // Setzen/Nutzen eines Mappers (F_SET_MAPPER) zum Skalieren
-   int scale(int val) {return val * 100;}
-   Set(P_XYZ, #'scale, F_SET_MAPPER);
-   int unscale(int val) {return val / 100;}
-   Set(P_XYZ, #'unscale, F_QUERY_METHOD);
-
    // Der Vollstaendigkeit halber sei das Aendern einer Property unter
    // Umgehung von Set-Methoden angegeben. Es ist aber aus o.g. Gruenden
    // zu empfehlen, diese Variante nicht zu verwenden.
@@ -190,4 +171,4 @@
    Konzept:  properties, /std/thing/properties.c
    Sonstiges:  P_AUTOLOADOBJ
 
-6. Jan 2008 Arathorn
+8.9.2021, Zesstra
diff --git a/doc/lfun/SetAttackChats b/doc/lfun/SetAttackChats
index d796171..2e7f575 100644
--- a/doc/lfun/SetAttackChats
+++ b/doc/lfun/SetAttackChats
@@ -1,4 +1,3 @@
-
 SetAttackChats()
 ****************
 
@@ -68,8 +67,7 @@
      NPC voruebergehend 'stillzulegen', kann man P_CHAT_CHANCE auf 0
      setzen
 
-   * Spieler koennen P_CHAT_CHANCE temporaer auf 0 setzen
-     ('stillen')
+   * Spieler koennen P_CHAT_CHANCE temporaer auf 0 setzen ('stillen')
 
    * NPC haben bei Abwesenheit von Spielern in der Regel keinen
      Heartbeat, weswegen dann auch die Chats ausgeschaltet sind
diff --git a/doc/lfun/SetAttr b/doc/lfun/SetAttr
index fe5d97b..ca92239 100644
--- a/doc/lfun/SetAttr
+++ b/doc/lfun/SetAttr
@@ -1,4 +1,3 @@
-
 SetAttr()
 *********
 
diff --git a/doc/lfun/SetAttribute b/doc/lfun/SetAttribute
index 139fc99..5c25a68 100644
--- a/doc/lfun/SetAttribute
+++ b/doc/lfun/SetAttribute
@@ -1,4 +1,3 @@
-
 SetAttribute()
 **************
 
diff --git a/doc/lfun/SetBuyFact b/doc/lfun/SetBuyFact
index 8994bd3..95f799e 100644
--- a/doc/lfun/SetBuyFact
+++ b/doc/lfun/SetBuyFact
@@ -1,4 +1,3 @@
-
 SetBuyFact()
 ************
 
diff --git a/doc/lfun/SetChats b/doc/lfun/SetChats
index c4fe633..5e92c4a 100644
--- a/doc/lfun/SetChats
+++ b/doc/lfun/SetChats
@@ -1,4 +1,3 @@
-
 SetChats()
 **********
 
@@ -42,9 +41,9 @@
 
       * Strings
 
-      * Closures, deren Rueckgabe ausgegeben wird und die
-        zusaetzlich einen aenderbaren und in send_room() verwendeten
-        'msg_typ' per Referenz uebergeben bekommen
+      * Closures, deren Rueckgabe ausgegeben wird und die zusaetzlich
+        einen aenderbaren und in send_room() verwendeten 'msg_typ' per
+        Referenz uebergeben bekommen
 
       * Arrays mit der Struktur *({<string|closure msg >, <int
         msg_typ>})*, fuer die obige Regeln auf 'msg' angewendet werden
@@ -72,8 +71,7 @@
      NPC voruebergehend 'stillzulegen', kann man P_CHAT_CHANCE auf 0
      setzen
 
-   * Spieler koennen P_CHAT_CHANCE temporaer auf 0 setzen
-     ('stillen')
+   * Spieler koennen P_CHAT_CHANCE temporaer auf 0 setzen ('stillen')
 
    * NPC haben bei Abwesenheit von Spielern in der Regel keinen
      Heartbeat, weswegen dann auch die Chats ausgeschaltet sind
diff --git a/doc/lfun/SetCoinsPerUnits b/doc/lfun/SetCoinsPerUnits
index 0533275..85d61dc 100644
--- a/doc/lfun/SetCoinsPerUnits
+++ b/doc/lfun/SetCoinsPerUnits
@@ -1,4 +1,3 @@
-
 SetCoinsPerUnits()
 ******************
 
diff --git a/doc/lfun/SetDefaultHome b/doc/lfun/SetDefaultHome
index 2b9de88..a39dab6 100644
--- a/doc/lfun/SetDefaultHome
+++ b/doc/lfun/SetDefaultHome
@@ -1,4 +1,3 @@
-
 SetDefaultHome()
 ****************
 
diff --git a/doc/lfun/SetDoorStatus b/doc/lfun/SetDoorStatus
index c433c40..332ccc4 100644
--- a/doc/lfun/SetDoorStatus
+++ b/doc/lfun/SetDoorStatus
@@ -1,4 +1,3 @@
-
 SetDoorStatus()
 ***************
 
diff --git a/doc/lfun/SetEnemies b/doc/lfun/SetEnemies
index 2c92035..58faa06 100644
--- a/doc/lfun/SetEnemies
+++ b/doc/lfun/SetEnemies
@@ -1,4 +1,3 @@
-
 SetEnemies()
 ************
 
diff --git a/doc/lfun/SetGramsPerUnits b/doc/lfun/SetGramsPerUnits
index 66c1934..bd7ce21 100644
--- a/doc/lfun/SetGramsPerUnits
+++ b/doc/lfun/SetGramsPerUnits
@@ -1,4 +1,3 @@
-
 SetGramsPerUnits()
 ******************
 
diff --git a/doc/lfun/SetProp b/doc/lfun/SetProp
index 9664be8..8958f62 100644
--- a/doc/lfun/SetProp
+++ b/doc/lfun/SetProp
@@ -1,4 +1,3 @@
-
 SetProp()
 *********
 
@@ -6,7 +5,8 @@
 FUNKTION
 ========
 
-   public mixed SetProp(string name, mixed Value);
+   public mixed SetProp(string name, mixed Value,
+                        int drop_priv = extern_call());
 
 
 DEFINIERT IN
@@ -21,6 +21,8 @@
 
    name       - Property, deren Wert veraendert werden soll.
    Value      - Wert, auf den der Inhalt der Property gesetzt werden soll
+   drop_priv  - Interne Verwendung, wenn Aufrufer Privilegien abgibt,
+                z.B. objekt-interner Aufruf extern zaehlen soll.
 
 
 BESCHREIBUNG
diff --git a/doc/lfun/SetProperties b/doc/lfun/SetProperties
index a4ac72a..6203f00 100644
--- a/doc/lfun/SetProperties
+++ b/doc/lfun/SetProperties
@@ -1,4 +1,3 @@
-
 SetProperties()
 ***************
 
diff --git a/doc/lfun/SetRealAttribute b/doc/lfun/SetRealAttribute
index fc72d9b..3db5f6a 100644
--- a/doc/lfun/SetRealAttribute
+++ b/doc/lfun/SetRealAttribute
@@ -1,4 +1,3 @@
-
 SetRealAttribute()
 ******************
 
diff --git a/doc/lfun/SetSpellFatigue b/doc/lfun/SetSpellFatigue
index f2c5861..67c7165 100644
--- a/doc/lfun/SetSpellFatigue
+++ b/doc/lfun/SetSpellFatigue
@@ -1,4 +1,3 @@
-
 SetSpellFatigue()
 *****************
 
diff --git a/doc/lfun/SetStorageRoom b/doc/lfun/SetStorageRoom
index f1d66a5..6636b14 100644
--- a/doc/lfun/SetStorageRoom
+++ b/doc/lfun/SetStorageRoom
@@ -1,4 +1,3 @@
-
 SetStorageRoom()
 ****************
 
diff --git a/doc/lfun/SetTimedAttrModifier b/doc/lfun/SetTimedAttrModifier
index 5ab39dd..b8c4062 100644
--- a/doc/lfun/SetTimedAttrModifier
+++ b/doc/lfun/SetTimedAttrModifier
@@ -1,4 +1,3 @@
-
 SetTimedAttrModifier()
 **********************
 
diff --git a/doc/lfun/ShowDoors b/doc/lfun/ShowDoors
index c315632..1bb0b50 100644
--- a/doc/lfun/ShowDoors
+++ b/doc/lfun/ShowDoors
@@ -1,4 +1,3 @@
-
 ShowDoors()
 ***********
 
diff --git a/doc/lfun/ShowPropList b/doc/lfun/ShowPropList
index 41599d7..d3d0241 100644
--- a/doc/lfun/ShowPropList
+++ b/doc/lfun/ShowPropList
@@ -1,4 +1,3 @@
-
 ShowPropList()
 **************
 
diff --git a/doc/lfun/SkillResTransfer b/doc/lfun/SkillResTransfer
index 128cea7..471be36 100644
--- a/doc/lfun/SkillResTransfer
+++ b/doc/lfun/SkillResTransfer
@@ -1,4 +1,3 @@
-
 SkillResTransfer()
 ******************
 
diff --git a/doc/lfun/SpellAttack b/doc/lfun/SpellAttack
index ba00347..dfb6d08 100644
--- a/doc/lfun/SpellAttack
+++ b/doc/lfun/SpellAttack
@@ -1,4 +1,3 @@
-
 SpellAttack()
 *************
 
diff --git a/doc/lfun/SpellDefend b/doc/lfun/SpellDefend
index 22b038c..a8eb8df 100644
--- a/doc/lfun/SpellDefend
+++ b/doc/lfun/SpellDefend
@@ -1,4 +1,3 @@
-
 SpellDefend()
 *************
 
diff --git a/doc/lfun/SpellInform b/doc/lfun/SpellInform
index ce8fdbd..ac62262 100644
--- a/doc/lfun/SpellInform
+++ b/doc/lfun/SpellInform
@@ -1,4 +1,3 @@
-
 SpellInform()
 *************
 
diff --git a/doc/lfun/Start b/doc/lfun/Start
index e0b1070..ca5b23c 100644
--- a/doc/lfun/Start
+++ b/doc/lfun/Start
@@ -1,4 +1,3 @@
-
 Start()
 *******
 
diff --git a/doc/lfun/StopHuntFor b/doc/lfun/StopHuntFor
index e09d9fa..358baf4 100644
--- a/doc/lfun/StopHuntFor
+++ b/doc/lfun/StopHuntFor
@@ -1,4 +1,3 @@
-
 StopHuntFor()
 *************
 
diff --git a/doc/lfun/StopHuntText b/doc/lfun/StopHuntText
index fca271b..6c17aee 100644
--- a/doc/lfun/StopHuntText
+++ b/doc/lfun/StopHuntText
@@ -1,4 +1,3 @@
-
 StopHuntText()
 **************
 
diff --git a/doc/lfun/SubFromProp b/doc/lfun/SubFromProp
new file mode 100644
index 0000000..82d2fc8
--- /dev/null
+++ b/doc/lfun/SubFromProp
@@ -0,0 +1,60 @@
+SubFromProp()
+*************
+
+
+FUNKTION
+========
+
+public varargs int SubFromProp(string propname,
+<int|float|string|mixed*|mapping|bytes> subtrahend)
+
+
+DEFINIERT IN
+============
+
+   /std/thing/properties.c /sys/thing/properties.h (Prototyp)
+
+
+ARGUMENTE
+=========
+
+   * propname: Die Property, die veraendert wird
+
+   * subtrahend: Was auf den aktuellen Wert "substrahiert" werden soll
+
+
+BESCHREIBUNG
+============
+
+   Die Funktion ruft den aktuellen Wert der Property mittels
+   QueryProp() ab, "subtrahiert" <subtrahend> davon und setzt den
+   neuen Wert mit SetProp() wieder. Damit ist sie einfach eine
+   Abkuerzung fuer SetProp(pname, QueryProp(pname) - subtrahend).
+
+   Erlaubte Typen fuer <subtrahend> sind nur solche, mit denen +-
+   etwas anfangen kann und welche zum aktuellen Wert der Property
+   passen. Alles andere loest ggf. einen (Laufzeit-)Fehler auf.
+
+
+RUeCKGABEWERT
+=============
+
+   Der Wert der Property nach der Aenderung.
+
+
+BEISPIELE
+=========
+
+   // einen Int subtrahieren SubFromProp(P_WC, 42); // alle
+   entsprechenden Elemente aus einem Array in der Property loeschen //
+   Achtung: erzeugt ein neues Array! SubFromProp(P_WAITFOR,
+   ({"zesstra"})); // Ein Mappingkey aus einem Mapping in einer
+   Property loeschen SubFromProp(P_M_HEALTH_MOD, ([P_HP]))
+
+
+SIEHE AUCH
+==========
+
+   QueryProp(), *AddProp* Konzept: properties, /std/thing/properties.c
+
+19.06.2025, Zesstra
diff --git a/doc/lfun/SuggestArticle b/doc/lfun/SuggestArticle
index c9311b6..10cc344 100644
--- a/doc/lfun/SuggestArticle
+++ b/doc/lfun/SuggestArticle
@@ -1,4 +1,3 @@
-
 SuggestArticle()
 ****************
 
diff --git a/doc/lfun/SwapRows b/doc/lfun/SwapRows
index aa18364..fc08b5c 100644
--- a/doc/lfun/SwapRows
+++ b/doc/lfun/SwapRows
@@ -1,4 +1,3 @@
-
 SwapRows()
 **********
 
diff --git a/doc/lfun/TakeFlaw b/doc/lfun/TakeFlaw
index 594c164..498519b 100644
--- a/doc/lfun/TakeFlaw
+++ b/doc/lfun/TakeFlaw
@@ -1,4 +1,3 @@
-
 TakeFlaw()
 **********
 
diff --git a/doc/lfun/TeamFlee b/doc/lfun/TeamFlee
index 216fbbf..6ab3600 100644
--- a/doc/lfun/TeamFlee
+++ b/doc/lfun/TeamFlee
@@ -1,4 +1,3 @@
-
 TeamFlee()
 **********
 
diff --git a/doc/lfun/TeamMembers b/doc/lfun/TeamMembers
index 5971bfb..baa446c 100644
--- a/doc/lfun/TeamMembers
+++ b/doc/lfun/TeamMembers
@@ -1,4 +1,3 @@
-
 TeamMembers()
 *************
 
diff --git a/doc/lfun/TeamPrefix b/doc/lfun/TeamPrefix
index 2cf1582..ea18731 100644
--- a/doc/lfun/TeamPrefix
+++ b/doc/lfun/TeamPrefix
@@ -1,4 +1,3 @@
-
 TeamPrefix()
 ************
 
diff --git a/doc/lfun/Teleport b/doc/lfun/Teleport
index ddddb89..c7674f2 100644
--- a/doc/lfun/Teleport
+++ b/doc/lfun/Teleport
@@ -1,4 +1,3 @@
-
 Teleport()
 **********
 
diff --git a/doc/lfun/TestIgnore b/doc/lfun/TestIgnore
index d1d2b95..ab3f39f 100644
--- a/doc/lfun/TestIgnore
+++ b/doc/lfun/TestIgnore
@@ -1,4 +1,3 @@
-
 TestIgnore()
 ************
 
diff --git a/doc/lfun/TestIgnoreSimple b/doc/lfun/TestIgnoreSimple
index c0ec76e..211b872 100644
--- a/doc/lfun/TestIgnoreSimple
+++ b/doc/lfun/TestIgnoreSimple
@@ -1,4 +1,3 @@
-
 TestIgnoreSimple()
 ******************
 
diff --git a/doc/lfun/TestLimitViolation b/doc/lfun/TestLimitViolation
index df9f7b2..0d75f31 100644
--- a/doc/lfun/TestLimitViolation
+++ b/doc/lfun/TestLimitViolation
@@ -1,4 +1,3 @@
-
 TestLimitViolation()
 ********************
 
diff --git a/doc/lfun/TriggerEvent b/doc/lfun/TriggerEvent
index 44dd2e4..e6ec976 100644
--- a/doc/lfun/TriggerEvent
+++ b/doc/lfun/TriggerEvent
@@ -1,4 +1,3 @@
-
 TriggerEvent()
 **************
 
diff --git a/doc/lfun/UnregisterEvent b/doc/lfun/UnregisterEvent
index 6d9bfb7..0917d1c 100644
--- a/doc/lfun/UnregisterEvent
+++ b/doc/lfun/UnregisterEvent
@@ -1,4 +1,3 @@
-
 UnregisterEvent()
 *****************
 
diff --git a/doc/lfun/UnregisterHelperNPC b/doc/lfun/UnregisterHelperNPC
index 79c18f6..bf61df3 100644
--- a/doc/lfun/UnregisterHelperNPC
+++ b/doc/lfun/UnregisterHelperNPC
@@ -1,4 +1,3 @@
-
 UnregisterHelperNPC()
 *********************
 
diff --git a/doc/lfun/UnregisterHelperObject b/doc/lfun/UnregisterHelperObject
index d6242c9..f65afbc 100644
--- a/doc/lfun/UnregisterHelperObject
+++ b/doc/lfun/UnregisterHelperObject
@@ -1,4 +1,3 @@
-
 UnregisterHelperObject()
 ************************
 
diff --git a/doc/lfun/Unwear b/doc/lfun/Unwear
index 0ef0a2a..99fe4e0 100644
--- a/doc/lfun/Unwear
+++ b/doc/lfun/Unwear
@@ -1,4 +1,3 @@
-
 Unwear()
 ********
 
diff --git a/doc/lfun/UnwearArmour b/doc/lfun/UnwearArmour
index b3c7d77..9e4fbc4 100644
--- a/doc/lfun/UnwearArmour
+++ b/doc/lfun/UnwearArmour
@@ -1,4 +1,3 @@
-
 UnwearArmour()
 **************
 
diff --git a/doc/lfun/UnwearClothing b/doc/lfun/UnwearClothing
index fe0372b..dfd2453 100644
--- a/doc/lfun/UnwearClothing
+++ b/doc/lfun/UnwearClothing
@@ -1,4 +1,3 @@
-
 UnwearClothing()
 ****************
 
diff --git a/doc/lfun/UnwieldFunc b/doc/lfun/UnwieldFunc
index 0301182..74530af 100644
--- a/doc/lfun/UnwieldFunc
+++ b/doc/lfun/UnwieldFunc
@@ -1,4 +1,3 @@
-
 UnwieldFunc()
 *************
 
diff --git a/doc/lfun/UpdateAttributes b/doc/lfun/UpdateAttributes
index cdebaa7..f3e7595 100644
--- a/doc/lfun/UpdateAttributes
+++ b/doc/lfun/UpdateAttributes
@@ -1,4 +1,3 @@
-
 UpdateAttributes()
 ******************
 
diff --git a/doc/lfun/UpdateResistanceStrengths b/doc/lfun/UpdateResistanceStrengths
index 8ae9198..f64d6e7 100644
--- a/doc/lfun/UpdateResistanceStrengths
+++ b/doc/lfun/UpdateResistanceStrengths
@@ -1,4 +1,3 @@
-
 UpdateResistanceStrengths()
 ***************************
 
diff --git a/doc/lfun/UseHands b/doc/lfun/UseHands
index d11723c..39772d4 100644
--- a/doc/lfun/UseHands
+++ b/doc/lfun/UseHands
@@ -1,4 +1,3 @@
-
 UseHands()
 **********
 
diff --git a/doc/lfun/UseSkill b/doc/lfun/UseSkill
index 4f3398d..2c279ed 100644
--- a/doc/lfun/UseSkill
+++ b/doc/lfun/UseSkill
@@ -1,4 +1,3 @@
-
 UseSkill()
 **********
 
diff --git a/doc/lfun/UseSpell b/doc/lfun/UseSpell
index b5cfbf7..12060f0 100644
--- a/doc/lfun/UseSpell
+++ b/doc/lfun/UseSpell
@@ -1,4 +1,3 @@
-
 UseSpell()
 **********
 
diff --git a/doc/lfun/Validate b/doc/lfun/Validate
index ddfceef..5f15d96 100644
--- a/doc/lfun/Validate
+++ b/doc/lfun/Validate
@@ -1,4 +1,3 @@
-
 Validate()
 **********
 
diff --git a/doc/lfun/Wear b/doc/lfun/Wear
index 6a46903..934f632 100644
--- a/doc/lfun/Wear
+++ b/doc/lfun/Wear
@@ -1,4 +1,3 @@
-
 Wear()
 ******
 
diff --git a/doc/lfun/WearArmour b/doc/lfun/WearArmour
index a6961b2..6892120 100644
--- a/doc/lfun/WearArmour
+++ b/doc/lfun/WearArmour
@@ -1,4 +1,3 @@
-
 WearArmour()
 ************
 
diff --git a/doc/lfun/WearClothing b/doc/lfun/WearClothing
index 51cc015..0f1be24 100644
--- a/doc/lfun/WearClothing
+++ b/doc/lfun/WearClothing
@@ -1,4 +1,3 @@
-
 WearClothing()
 **************
 
diff --git a/doc/lfun/WearFunc b/doc/lfun/WearFunc
index d1d0121..01789dc 100644
--- a/doc/lfun/WearFunc
+++ b/doc/lfun/WearFunc
@@ -1,4 +1,3 @@
-
 WearFunc()
 **********
 
diff --git a/doc/lfun/WieldFunc b/doc/lfun/WieldFunc
index 7c607e4..5a013a2 100644
--- a/doc/lfun/WieldFunc
+++ b/doc/lfun/WieldFunc
@@ -1,4 +1,3 @@
-
 WieldFunc()
 ***********
 
diff --git a/doc/lfun/WithDraw b/doc/lfun/WithDraw
index 1bff547..0967f7b 100644
--- a/doc/lfun/WithDraw
+++ b/doc/lfun/WithDraw
@@ -1,4 +1,3 @@
-
 WithDraw()
 **********
 
diff --git a/doc/lfun/__INIT b/doc/lfun/__INIT
index 3ba4793..d5f5212 100644
--- a/doc/lfun/__INIT
+++ b/doc/lfun/__INIT
@@ -1,4 +1,3 @@
-
 __INIT()
 ********
 
diff --git a/doc/lfun/_query_current_money b/doc/lfun/_query_current_money
index db3663f..19d480d 100644
--- a/doc/lfun/_query_current_money
+++ b/doc/lfun/_query_current_money
@@ -1,4 +1,3 @@
-
 _query_current_money()
 **********************
 
diff --git a/doc/lfun/_unparsed_args b/doc/lfun/_unparsed_args
index caf3653..51d18ee 100644
--- a/doc/lfun/_unparsed_args
+++ b/doc/lfun/_unparsed_args
@@ -1,4 +1,3 @@
-
 _unparsed_args()
 ****************
 
diff --git a/doc/lfun/access_rights b/doc/lfun/access_rights
index 7a99a99..2c9d232 100644
--- a/doc/lfun/access_rights
+++ b/doc/lfun/access_rights
@@ -1,4 +1,3 @@
-
 access_rights()
 ***************
 
diff --git a/doc/lfun/buffer_hp b/doc/lfun/buffer_hp
index db9ba79..90be49b 100644
--- a/doc/lfun/buffer_hp
+++ b/doc/lfun/buffer_hp
@@ -1,4 +1,3 @@
-
 buffer_hp()
 ***********
 
diff --git a/doc/lfun/buffer_sp b/doc/lfun/buffer_sp
index 09cad72..687a698 100644
--- a/doc/lfun/buffer_sp
+++ b/doc/lfun/buffer_sp
@@ -1,4 +1,3 @@
-
 buffer_sp()
 ***********
 
diff --git a/doc/lfun/buy_obj b/doc/lfun/buy_obj
index 0f0b965..2e53ab2 100644
--- a/doc/lfun/buy_obj
+++ b/doc/lfun/buy_obj
@@ -1,4 +1,3 @@
-
 buy_obj()
 *********
 
diff --git a/doc/lfun/catch_msg b/doc/lfun/catch_msg
index 42d1950..9b5df2e 100644
--- a/doc/lfun/catch_msg
+++ b/doc/lfun/catch_msg
@@ -1,4 +1,3 @@
-
 catch_msg()
 ***********
 
diff --git a/doc/lfun/catch_tell b/doc/lfun/catch_tell
index ff4e030..a45d0af 100644
--- a/doc/lfun/catch_tell
+++ b/doc/lfun/catch_tell
@@ -1,4 +1,3 @@
-
 catch_tell()
 ************
 
diff --git a/doc/lfun/check_and_update_timed_key b/doc/lfun/check_and_update_timed_key
index aa96667..4996bc0 100644
--- a/doc/lfun/check_and_update_timed_key
+++ b/doc/lfun/check_and_update_timed_key
@@ -1,4 +1,3 @@
-
 check_and_update_timed_key()
 ****************************
 
diff --git a/doc/lfun/check_restrictions b/doc/lfun/check_restrictions
index 3fa432b..11a43bc 100644
--- a/doc/lfun/check_restrictions
+++ b/doc/lfun/check_restrictions
@@ -1,4 +1,3 @@
-
 check_restrictions()
 ********************
 
diff --git a/doc/lfun/check_timed_key b/doc/lfun/check_timed_key
index 58c70ab..37a0ace 100644
--- a/doc/lfun/check_timed_key
+++ b/doc/lfun/check_timed_key
@@ -1,4 +1,3 @@
-
 check_timed_key()
 *****************
 
diff --git a/doc/lfun/clean_up b/doc/lfun/clean_up
index c1bf14e..c3d8feb 100644
--- a/doc/lfun/clean_up
+++ b/doc/lfun/clean_up
@@ -1,4 +1,3 @@
-
 clean_up()
 **********
 
diff --git a/doc/lfun/cmd_shoot b/doc/lfun/cmd_shoot
index 9cbc9b9..77611a5 100644
--- a/doc/lfun/cmd_shoot
+++ b/doc/lfun/cmd_shoot
@@ -1,4 +1,3 @@
-
 cmd_shoot()
 ***********
 
diff --git a/doc/lfun/command_me b/doc/lfun/command_me
index 00100f4..a5fbb9f 100644
--- a/doc/lfun/command_me
+++ b/doc/lfun/command_me
@@ -1,4 +1,3 @@
-
 command_me()
 ************
 
diff --git a/doc/lfun/consume b/doc/lfun/consume
index 48926d8..7e122fd 100644
--- a/doc/lfun/consume
+++ b/doc/lfun/consume
@@ -1,4 +1,3 @@
-
 consume()
 *********
 
diff --git a/doc/lfun/create b/doc/lfun/create
index 066ee55..fb74764 100644
--- a/doc/lfun/create
+++ b/doc/lfun/create
@@ -1,4 +1,3 @@
-
 create()
 ********
 
diff --git a/doc/lfun/create_default_npc b/doc/lfun/create_default_npc
index f2294ed..b3d3fe5 100644
--- a/doc/lfun/create_default_npc
+++ b/doc/lfun/create_default_npc
@@ -1,4 +1,3 @@
-
 create_default_npc()
 ********************
 
diff --git a/doc/lfun/create_super b/doc/lfun/create_super
index 101531f..8bb7775 100644
--- a/doc/lfun/create_super
+++ b/doc/lfun/create_super
@@ -1,4 +1,3 @@
-
 create_super()
 **************
 
diff --git a/doc/lfun/defuel_drink b/doc/lfun/defuel_drink
index 266907e..90fec8e 100644
--- a/doc/lfun/defuel_drink
+++ b/doc/lfun/defuel_drink
@@ -1,4 +1,3 @@
-
 defuel_drink()
 **************
 
diff --git a/doc/lfun/defuel_food b/doc/lfun/defuel_food
index 380c2bc..1100e7c 100644
--- a/doc/lfun/defuel_food
+++ b/doc/lfun/defuel_food
@@ -1,4 +1,3 @@
-
 defuel_food()
 *************
 
diff --git a/doc/lfun/depointer_adj b/doc/lfun/depointer_adj
index a95ec12..68f4609 100644
--- a/doc/lfun/depointer_adj
+++ b/doc/lfun/depointer_adj
@@ -1,4 +1,3 @@
-
 depointer_adj()
 ***************
 
diff --git a/doc/lfun/deregister_modifier b/doc/lfun/deregister_modifier
index eb0c160..2503ed7 100644
--- a/doc/lfun/deregister_modifier
+++ b/doc/lfun/deregister_modifier
@@ -1,4 +1,3 @@
-
 deregister_modifier()
 *********************
 
diff --git a/doc/lfun/die b/doc/lfun/die
index b8ee872..859a316 100644
--- a/doc/lfun/die
+++ b/doc/lfun/die
@@ -1,4 +1,3 @@
-
 die()
 *****
 
diff --git a/doc/lfun/doUnwearMessage b/doc/lfun/doUnwearMessage
index b6128ce..a1dd113 100644
--- a/doc/lfun/doUnwearMessage
+++ b/doc/lfun/doUnwearMessage
@@ -1,4 +1,3 @@
-
 doUnwearMessage()
 *****************
 
diff --git a/doc/lfun/doUnwieldMessage b/doc/lfun/doUnwieldMessage
index f2245b6..6baf32a 100644
--- a/doc/lfun/doUnwieldMessage
+++ b/doc/lfun/doUnwieldMessage
@@ -1,4 +1,3 @@
-
 doUnwieldMessage()
 ******************
 
diff --git a/doc/lfun/doWearMessage b/doc/lfun/doWearMessage
index 6770180..2c44021 100644
--- a/doc/lfun/doWearMessage
+++ b/doc/lfun/doWearMessage
@@ -1,4 +1,3 @@
-
 doWearMessage()
 ***************
 
diff --git a/doc/lfun/doWieldMessage b/doc/lfun/doWieldMessage
index a3b737f..e425aa0 100644
--- a/doc/lfun/doWieldMessage
+++ b/doc/lfun/doWieldMessage
@@ -1,4 +1,3 @@
-
 doWieldMessage()
 ****************
 
diff --git a/doc/lfun/do_damage b/doc/lfun/do_damage
index 91c6bc8..6b3841b 100644
--- a/doc/lfun/do_damage
+++ b/doc/lfun/do_damage
@@ -1,4 +1,3 @@
-
 do_damage()
 ***********
 
diff --git a/doc/lfun/do_frage b/doc/lfun/do_frage
index 6c848b8..f5d6478 100644
--- a/doc/lfun/do_frage
+++ b/doc/lfun/do_frage
@@ -1,4 +1,3 @@
-
 do_frage()
 **********
 
diff --git a/doc/lfun/do_unwear b/doc/lfun/do_unwear
index dd91478..cc62c28 100644
--- a/doc/lfun/do_unwear
+++ b/doc/lfun/do_unwear
@@ -1,4 +1,3 @@
-
 do_unwear()
 ***********
 
diff --git a/doc/lfun/do_wear b/doc/lfun/do_wear
index abf7051..9164f19 100644
--- a/doc/lfun/do_wear
+++ b/doc/lfun/do_wear
@@ -1,4 +1,3 @@
-
 do_wear()
 *********
 
diff --git a/doc/lfun/drink_alcohol b/doc/lfun/drink_alcohol
index 01d0a77..0674593 100644
--- a/doc/lfun/drink_alcohol
+++ b/doc/lfun/drink_alcohol
@@ -1,4 +1,3 @@
-
 drink_alcohol()
 ***************
 
diff --git a/doc/lfun/drink_soft b/doc/lfun/drink_soft
index 0f030f6..a7e3bd7 100644
--- a/doc/lfun/drink_soft
+++ b/doc/lfun/drink_soft
@@ -1,4 +1,3 @@
-
 drink_soft()
 ************
 
diff --git a/doc/lfun/drop b/doc/lfun/drop
index cdd372b..76fb52b 100644
--- a/doc/lfun/drop
+++ b/doc/lfun/drop
@@ -1,4 +1,3 @@
-
 drop()
 ******
 
diff --git a/doc/lfun/drop_obj b/doc/lfun/drop_obj
index 3e1057f..3b711ec 100644
--- a/doc/lfun/drop_obj
+++ b/doc/lfun/drop_obj
@@ -1,4 +1,3 @@
-
 drop_obj()
 **********
 
diff --git a/doc/lfun/drop_objects b/doc/lfun/drop_objects
index 93cbee5..8e8d36f 100644
--- a/doc/lfun/drop_objects
+++ b/doc/lfun/drop_objects
@@ -1,4 +1,3 @@
-
 drop_objects()
 **************
 
diff --git a/doc/lfun/eat_food b/doc/lfun/eat_food
index 9cf54b3..196d9ed 100644
--- a/doc/lfun/eat_food
+++ b/doc/lfun/eat_food
@@ -1,4 +1,3 @@
-
 eat_food()
 **********
 
diff --git a/doc/lfun/execute_anything b/doc/lfun/execute_anything
index 39ec45a..7a101fe 100644
--- a/doc/lfun/execute_anything
+++ b/doc/lfun/execute_anything
@@ -1,4 +1,3 @@
-
 execute_anything()
 ******************
 
diff --git a/doc/lfun/exit b/doc/lfun/exit
index f2d0b00..6528a4a 100644
--- a/doc/lfun/exit
+++ b/doc/lfun/exit
@@ -1,4 +1,3 @@
-
 exit()
 ******
 
diff --git a/doc/lfun/find_obs b/doc/lfun/find_obs
index 994ac6f..a0ec8ab 100644
--- a/doc/lfun/find_obs
+++ b/doc/lfun/find_obs
@@ -1,4 +1,3 @@
-
 find_obs()
 **********
 
diff --git a/doc/lfun/get_killing_player b/doc/lfun/get_killing_player
index 3500be1..374f1b9 100644
--- a/doc/lfun/get_killing_player
+++ b/doc/lfun/get_killing_player
@@ -1,4 +1,3 @@
-
 get_killing_player()
 ********************
 
diff --git a/doc/lfun/gilde/AddSkill b/doc/lfun/gilde/AddSkill
index 6be310b..fb6cfc3 100644
--- a/doc/lfun/gilde/AddSkill
+++ b/doc/lfun/gilde/AddSkill
@@ -1,4 +1,3 @@
-
 AddSkill()
 **********
 
diff --git a/doc/lfun/gilde/AddSpell b/doc/lfun/gilde/AddSpell
index 027b4d6..30a56f9 100644
--- a/doc/lfun/gilde/AddSpell
+++ b/doc/lfun/gilde/AddSpell
@@ -1,4 +1,3 @@
-
 AddSpell()
 **********
 
diff --git a/doc/lfun/gilde/GuildRating b/doc/lfun/gilde/GuildRating
index ca4ec1b..48c5dd5 100644
--- a/doc/lfun/gilde/GuildRating
+++ b/doc/lfun/gilde/GuildRating
@@ -1,4 +1,3 @@
-
 GuildRating()
 *************
 
diff --git a/doc/lfun/gilde/InitialSkillAbility b/doc/lfun/gilde/InitialSkillAbility
index afea3e9..d0e258b 100644
--- a/doc/lfun/gilde/InitialSkillAbility
+++ b/doc/lfun/gilde/InitialSkillAbility
@@ -1,4 +1,3 @@
-
 InitialSkillAbility()
 *********************
 
diff --git a/doc/lfun/gilde/LearnSkill b/doc/lfun/gilde/LearnSkill
index 07a4dc9..17cacd3 100644
--- a/doc/lfun/gilde/LearnSkill
+++ b/doc/lfun/gilde/LearnSkill
@@ -1,4 +1,3 @@
-
 LearnSkill()
 ************
 
diff --git a/doc/lfun/gilde/LearnSpell b/doc/lfun/gilde/LearnSpell
index 385da3e..c078661 100644
--- a/doc/lfun/gilde/LearnSpell
+++ b/doc/lfun/gilde/LearnSpell
@@ -1,4 +1,3 @@
-
 LearnSpell()
 ************
 
diff --git a/doc/lfun/gilde/QuerySkill b/doc/lfun/gilde/QuerySkill
index ee3e68a..f455330 100644
--- a/doc/lfun/gilde/QuerySkill
+++ b/doc/lfun/gilde/QuerySkill
@@ -1,4 +1,3 @@
-
 QuerySkill()
 ************
 
diff --git a/doc/lfun/gilde/QuerySpell b/doc/lfun/gilde/QuerySpell
index 32eff3a..795f1fe 100644
--- a/doc/lfun/gilde/QuerySpell
+++ b/doc/lfun/gilde/QuerySpell
@@ -1,4 +1,3 @@
-
 QuerySpell()
 ************
 
diff --git a/doc/lfun/gilde/SkillListe b/doc/lfun/gilde/SkillListe
index 200650b..57f2c45 100644
--- a/doc/lfun/gilde/SkillListe
+++ b/doc/lfun/gilde/SkillListe
@@ -1,4 +1,3 @@
-
 SkillListe()
 ************
 
diff --git a/doc/lfun/gilde/UseSpell b/doc/lfun/gilde/UseSpell
index 4f3724c..3cc380c 100644
--- a/doc/lfun/gilde/UseSpell
+++ b/doc/lfun/gilde/UseSpell
@@ -1,4 +1,3 @@
-
 UseSpell()
 **********
 
diff --git a/doc/lfun/gilde/austreten b/doc/lfun/gilde/austreten
index cde77e2..f827f69 100644
--- a/doc/lfun/gilde/austreten
+++ b/doc/lfun/gilde/austreten
@@ -1,4 +1,3 @@
-
 austreten()
 ***********
 
diff --git a/doc/lfun/gilde/bei_oder_aus_treten b/doc/lfun/gilde/bei_oder_aus_treten
index abed024..27dacdc 100644
--- a/doc/lfun/gilde/bei_oder_aus_treten
+++ b/doc/lfun/gilde/bei_oder_aus_treten
@@ -1,4 +1,3 @@
-
 bei_oder_aus_treten()
 *********************
 
diff --git a/doc/lfun/gilde/beitreten b/doc/lfun/gilde/beitreten
index 6e5a957..1457cd2 100644
--- a/doc/lfun/gilde/beitreten
+++ b/doc/lfun/gilde/beitreten
@@ -1,4 +1,3 @@
-
 beitreten()
 ***********
 
diff --git a/doc/lfun/give b/doc/lfun/give
index 866c1e3..2c7547e 100644
--- a/doc/lfun/give
+++ b/doc/lfun/give
@@ -1,4 +1,3 @@
-
 give()
 ******
 
diff --git a/doc/lfun/give_notify b/doc/lfun/give_notify
index ef316cb..822fdec 100644
--- a/doc/lfun/give_notify
+++ b/doc/lfun/give_notify
@@ -1,4 +1,3 @@
-
 give_notify()
 *************
 
diff --git a/doc/lfun/give_obj b/doc/lfun/give_obj
index 753fd09..4ac60b2 100644
--- a/doc/lfun/give_obj
+++ b/doc/lfun/give_obj
@@ -1,4 +1,3 @@
-
 give_obj()
 **********
 
diff --git a/doc/lfun/heal_self b/doc/lfun/heal_self
index aeaf461..6093cd8 100644
--- a/doc/lfun/heal_self
+++ b/doc/lfun/heal_self
@@ -1,4 +1,3 @@
-
 heal_self()
 ***********
 
diff --git a/doc/lfun/heart_beat b/doc/lfun/heart_beat
index 475a781..cfa5feb 100644
--- a/doc/lfun/heart_beat
+++ b/doc/lfun/heart_beat
@@ -1,4 +1,3 @@
-
 heart_beat()
 ************
 
diff --git a/doc/lfun/id b/doc/lfun/id
index 4921395..c88a021 100644
--- a/doc/lfun/id
+++ b/doc/lfun/id
@@ -1,4 +1,3 @@
-
 id()
 ****
 
diff --git a/doc/lfun/init b/doc/lfun/init
index 8a2688f..1e0e6e3 100644
--- a/doc/lfun/init
+++ b/doc/lfun/init
@@ -1,4 +1,3 @@
-
 init()
 ******
 
@@ -43,8 +42,8 @@
 
    Der Ablauf der init()-Kette ist wie folgt:
 
-      1. Ist das Objekt X, welches ins Zielobjekt D bewegt wurde,
-         ein Lebewesen, so wird in D init() aufgerufen, wobei
+      1. Ist das Objekt X, welches ins Zielobjekt D bewegt wurde, ein
+         Lebewesen, so wird in D init() aufgerufen, wobei
          this_player() auf X gesetzt ist.
 
       2. Dann wird fuer jedes Objekt C in D folgendes ausgefuehrt:
@@ -71,13 +70,12 @@
 BEMERKUNGEN
 ===========
 
-   * Wenn man init() ueberschreibt und vergisst, in etwaigen
-     geerbten Programmen das init() zu rufen, resultiert das in
-     schweren Bugs
+   * Wenn man init() ueberschreibt und vergisst, in etwaigen geerbten
+     Programmen das init() zu rufen, resultiert das in schweren Bugs
 
-   * Das Argument <origin> gab es frueher nicht und es ist
-     weitgehend optional. Die Standardlib uebergibt es, aber nicht
-     alle (speziell) aeltere Programme uebergeben es weiter an ihre
+   * Das Argument <origin> gab es frueher nicht und es ist weitgehend
+     optional. Die Standardlib uebergibt es, aber nicht alle
+     (speziell) aeltere Programme uebergeben es weiter an ihre
      geerbten init().
 
 
diff --git a/doc/lfun/insert_sensitive_inv b/doc/lfun/insert_sensitive_inv
index 513632a..1edeb6d 100644
--- a/doc/lfun/insert_sensitive_inv
+++ b/doc/lfun/insert_sensitive_inv
@@ -1,4 +1,3 @@
-
 insert_sensitive_inv()
 **********************
 
diff --git a/doc/lfun/insert_sensitive_inv_trigger b/doc/lfun/insert_sensitive_inv_trigger
index edb78f8..09b122e 100644
--- a/doc/lfun/insert_sensitive_inv_trigger
+++ b/doc/lfun/insert_sensitive_inv_trigger
@@ -1,4 +1,3 @@
-
 insert_sensitive_inv_trigger()
 ******************************
 
diff --git a/doc/lfun/int_long b/doc/lfun/int_long
index 931e132..b3d2b43 100644
--- a/doc/lfun/int_long
+++ b/doc/lfun/int_long
@@ -1,4 +1,3 @@
-
 int_long()
 **********
 
diff --git a/doc/lfun/int_short b/doc/lfun/int_short
index aabd547..e1342fa 100644
--- a/doc/lfun/int_short
+++ b/doc/lfun/int_short
@@ -1,4 +1,3 @@
-
 int_short()
 ***********
 
diff --git a/doc/lfun/is_class_member b/doc/lfun/is_class_member
index 1018e71..19ec741 100644
--- a/doc/lfun/is_class_member
+++ b/doc/lfun/is_class_member
@@ -1,4 +1,3 @@
-
 is_class_member()
 *****************
 
diff --git a/doc/lfun/lfun b/doc/lfun/lfun
index 6e35081..b565171 100644
--- a/doc/lfun/lfun
+++ b/doc/lfun/lfun
@@ -1,4 +1,3 @@
-
 lfun()
 ******
 
diff --git a/doc/lfun/list b/doc/lfun/list
index 4148dc0..ff100e1 100644
--- a/doc/lfun/list
+++ b/doc/lfun/list
@@ -1,4 +1,3 @@
-
 list()
 ******
 
diff --git a/doc/lfun/locate_objects b/doc/lfun/locate_objects
index 5854980..5cc956c 100644
--- a/doc/lfun/locate_objects
+++ b/doc/lfun/locate_objects
@@ -1,4 +1,3 @@
-
 locate_objects()
 ****************
 
diff --git a/doc/lfun/logon b/doc/lfun/logon
index 4fb7117..e1a81e4 100644
--- a/doc/lfun/logon
+++ b/doc/lfun/logon
@@ -1,4 +1,3 @@
-
 logon()
 *******
 
diff --git a/doc/lfun/long b/doc/lfun/long
index a186cf9..b994b35 100644
--- a/doc/lfun/long
+++ b/doc/lfun/long
@@ -1,4 +1,3 @@
-
 long()
 ******
 
diff --git a/doc/lfun/make_immortal b/doc/lfun/make_immortal
index 9d0f402..9602221 100644
--- a/doc/lfun/make_immortal
+++ b/doc/lfun/make_immortal
@@ -1,4 +1,3 @@
-
 make_immortal()
 ***************
 
diff --git a/doc/lfun/make_invlist b/doc/lfun/make_invlist
index 379b47c..77b5dc1 100644
--- a/doc/lfun/make_invlist
+++ b/doc/lfun/make_invlist
@@ -1,4 +1,3 @@
-
 make_invlist()
 **************
 
diff --git a/doc/lfun/master/AddWizardForUID b/doc/lfun/master/AddWizardForUID
index 249e27c..e68b2fc 100644
--- a/doc/lfun/master/AddWizardForUID
+++ b/doc/lfun/master/AddWizardForUID
@@ -1,4 +1,3 @@
-
 AddWizardForUID()
 *****************
 
diff --git a/doc/lfun/master/QueryUIDAlias b/doc/lfun/master/QueryUIDAlias
index 8f58509..a5e0493 100644
--- a/doc/lfun/master/QueryUIDAlias
+++ b/doc/lfun/master/QueryUIDAlias
@@ -1,4 +1,3 @@
-
 QueryUIDAlias()
 ***************
 
diff --git a/doc/lfun/master/QueryUIDsForWizard b/doc/lfun/master/QueryUIDsForWizard
index e0d5816..88c8dda 100644
--- a/doc/lfun/master/QueryUIDsForWizard
+++ b/doc/lfun/master/QueryUIDsForWizard
@@ -1,4 +1,3 @@
-
 QueryUIDsForWizard()
 ********************
 
diff --git a/doc/lfun/master/QueryWizardsForUID b/doc/lfun/master/QueryWizardsForUID
index 6ddbdc3..2ea7022 100644
--- a/doc/lfun/master/QueryWizardsForUID
+++ b/doc/lfun/master/QueryWizardsForUID
@@ -1,4 +1,3 @@
-
 QueryWizardsForUID()
 ********************
 
diff --git a/doc/lfun/master/RemoveWizardFromUID b/doc/lfun/master/RemoveWizardFromUID
index 1fdeba5..1d68524 100644
--- a/doc/lfun/master/RemoveWizardFromUID
+++ b/doc/lfun/master/RemoveWizardFromUID
@@ -1,4 +1,3 @@
-
 RemoveWizardFromUID()
 *********************
 
diff --git a/doc/lfun/master/find_userinfo b/doc/lfun/master/find_userinfo
index 0a61400..77897bf 100644
--- a/doc/lfun/master/find_userinfo
+++ b/doc/lfun/master/find_userinfo
@@ -1,4 +1,3 @@
-
 find_userinfo()
 ***************
 
diff --git a/doc/lfun/match_ids b/doc/lfun/match_ids
index 48f368f..09fe451 100644
--- a/doc/lfun/match_ids
+++ b/doc/lfun/match_ids
@@ -1,4 +1,3 @@
-
 match_ids()
 ***********
 
diff --git a/doc/lfun/move b/doc/lfun/move
index 53593f8..f6e18a2 100644
--- a/doc/lfun/move
+++ b/doc/lfun/move
@@ -1,4 +1,3 @@
-
 move()
 ******
 
diff --git a/doc/lfun/moved_objects b/doc/lfun/moved_objects
index 8a5b536..a30ef26 100644
--- a/doc/lfun/moved_objects
+++ b/doc/lfun/moved_objects
@@ -1,4 +1,3 @@
-
 moved_objects()
 ***************
 
diff --git a/doc/lfun/moved_where b/doc/lfun/moved_where
index 640acae..2005876 100644
--- a/doc/lfun/moved_where
+++ b/doc/lfun/moved_where
@@ -1,4 +1,3 @@
-
 moved_where()
 *************
 
diff --git a/doc/lfun/muster b/doc/lfun/muster
index aa7279c..3766506 100644
--- a/doc/lfun/muster
+++ b/doc/lfun/muster
@@ -1,4 +1,3 @@
-
 muster()
 ********
 
diff --git a/doc/lfun/name b/doc/lfun/name
index 3509366..6fa7d83 100644
--- a/doc/lfun/name
+++ b/doc/lfun/name
@@ -1,4 +1,3 @@
-
 name()
 ******
 
diff --git a/doc/lfun/normalize_defend_args b/doc/lfun/normalize_defend_args
index a2db6fd..ce651b9 100644
--- a/doc/lfun/normalize_defend_args
+++ b/doc/lfun/normalize_defend_args
@@ -1,4 +1,3 @@
-
 normalize_defend_args()
 ***********************
 
diff --git a/doc/lfun/notify_player_change b/doc/lfun/notify_player_change
index 34c4024..4738ae3 100644
--- a/doc/lfun/notify_player_change
+++ b/doc/lfun/notify_player_change
@@ -1,4 +1,3 @@
-
 notify_player_change()
 **********************
 
diff --git a/doc/lfun/obsolete/AddDrink b/doc/lfun/obsolete/AddDrink
index 6f84377..de308c6 100644
--- a/doc/lfun/obsolete/AddDrink
+++ b/doc/lfun/obsolete/AddDrink
@@ -1,4 +1,3 @@
-
 AddDrink()
 **********
 
diff --git a/doc/lfun/obsolete/AddFood b/doc/lfun/obsolete/AddFood
index c972c86..8618d93 100644
--- a/doc/lfun/obsolete/AddFood
+++ b/doc/lfun/obsolete/AddFood
@@ -1,4 +1,3 @@
-
 AddFood()
 *********
 
diff --git a/doc/lfun/obsolete/AddHpHook b/doc/lfun/obsolete/AddHpHook
index 5a2adce..b33a65b 100644
--- a/doc/lfun/obsolete/AddHpHook
+++ b/doc/lfun/obsolete/AddHpHook
@@ -1,4 +1,3 @@
-
 AddHpHook()
 ***********
 
diff --git a/doc/lfun/obsolete/AddInsertHook b/doc/lfun/obsolete/AddInsertHook
index 8f49361..2eb148a 100644
--- a/doc/lfun/obsolete/AddInsertHook
+++ b/doc/lfun/obsolete/AddInsertHook
@@ -1,4 +1,3 @@
-
 AddInsertHook()
 ***************
 
diff --git a/doc/lfun/obsolete/AddRoomCmd b/doc/lfun/obsolete/AddRoomCmd
index f4aeb68..6288f4d 100644
--- a/doc/lfun/obsolete/AddRoomCmd
+++ b/doc/lfun/obsolete/AddRoomCmd
@@ -1,4 +1,3 @@
-
 AddRoomCmd()
 ************
 
diff --git a/doc/lfun/obsolete/DoList b/doc/lfun/obsolete/DoList
index 2119f05..84ddc7b 100644
--- a/doc/lfun/obsolete/DoList
+++ b/doc/lfun/obsolete/DoList
@@ -1,4 +1,3 @@
-
 DoList()
 ********
 
diff --git a/doc/lfun/obsolete/GetList b/doc/lfun/obsolete/GetList
index e066273..26b2f72 100644
--- a/doc/lfun/obsolete/GetList
+++ b/doc/lfun/obsolete/GetList
@@ -1,4 +1,3 @@
-
 GetList()
 *********
 
diff --git a/doc/lfun/obsolete/ModifySkillAttributeOld b/doc/lfun/obsolete/ModifySkillAttributeOld
index b0b81ab..fa1ac3a 100644
--- a/doc/lfun/obsolete/ModifySkillAttributeOld
+++ b/doc/lfun/obsolete/ModifySkillAttributeOld
@@ -1,4 +1,3 @@
-
 ModifySkillAttributeOld()
 *************************
 
diff --git a/doc/lfun/obsolete/NotifyGiveQuest b/doc/lfun/obsolete/NotifyGiveQuest
index 220942b..04c2b22 100644
--- a/doc/lfun/obsolete/NotifyGiveQuest
+++ b/doc/lfun/obsolete/NotifyGiveQuest
@@ -1,4 +1,3 @@
-
 NotifyGiveQuest()
 *****************
 
diff --git a/doc/lfun/obsolete/NotifyHpChange b/doc/lfun/obsolete/NotifyHpChange
index 3c96222..5ff5043 100644
--- a/doc/lfun/obsolete/NotifyHpChange
+++ b/doc/lfun/obsolete/NotifyHpChange
@@ -1,4 +1,3 @@
-
 NotifyHpChange()
 ****************
 
diff --git a/doc/lfun/obsolete/QueryEnemy b/doc/lfun/obsolete/QueryEnemy
index 2613f53..3c0ae0d 100644
--- a/doc/lfun/obsolete/QueryEnemy
+++ b/doc/lfun/obsolete/QueryEnemy
@@ -1,4 +1,3 @@
-
 QueryEnemy()
 ************
 
diff --git a/doc/lfun/obsolete/QueryInsertHooks b/doc/lfun/obsolete/QueryInsertHooks
index e69e46d..f178981 100644
--- a/doc/lfun/obsolete/QueryInsertHooks
+++ b/doc/lfun/obsolete/QueryInsertHooks
@@ -1,4 +1,3 @@
-
 QueryInsertHooks()
 ******************
 
diff --git a/doc/lfun/obsolete/QueryOptQP b/doc/lfun/obsolete/QueryOptQP
index 77404ad..49f8c00 100644
--- a/doc/lfun/obsolete/QueryOptQP
+++ b/doc/lfun/obsolete/QueryOptQP
@@ -1,4 +1,3 @@
-
 QueryOptQP()
 ************
 
diff --git a/doc/lfun/obsolete/RemoveHpHook b/doc/lfun/obsolete/RemoveHpHook
index 54c93ec..f18d790 100644
--- a/doc/lfun/obsolete/RemoveHpHook
+++ b/doc/lfun/obsolete/RemoveHpHook
@@ -1,4 +1,3 @@
-
 RemoveHpHook()
 **************
 
diff --git a/doc/lfun/obsolete/RemoveInsertHook b/doc/lfun/obsolete/RemoveInsertHook
index d0eeac1..9840be0 100644
--- a/doc/lfun/obsolete/RemoveInsertHook
+++ b/doc/lfun/obsolete/RemoveInsertHook
@@ -1,4 +1,3 @@
-
 RemoveInsertHook()
 ******************
 
diff --git a/doc/lfun/obsolete/TestAttributeLock b/doc/lfun/obsolete/TestAttributeLock
index 3d5d54d..814b08e 100644
--- a/doc/lfun/obsolete/TestAttributeLock
+++ b/doc/lfun/obsolete/TestAttributeLock
@@ -1,4 +1,3 @@
-
 TestAttributeLock()
 *******************
 
diff --git a/doc/lfun/obsolete/extra_look b/doc/lfun/obsolete/extra_look
index 9d1ac15..08acfce 100644
--- a/doc/lfun/obsolete/extra_look
+++ b/doc/lfun/obsolete/extra_look
@@ -1,4 +1,3 @@
-
 extra_look()
 ************
 
diff --git a/doc/lfun/obsolete/paramove b/doc/lfun/obsolete/paramove
index 25ce252..38aaf89 100644
--- a/doc/lfun/obsolete/paramove
+++ b/doc/lfun/obsolete/paramove
@@ -1,4 +1,3 @@
-
 paramove()
 **********
 
diff --git a/doc/lfun/pick b/doc/lfun/pick
index 5063ee6..c9b1df0 100644
--- a/doc/lfun/pick
+++ b/doc/lfun/pick
@@ -1,4 +1,3 @@
-
 pick()
 ******
 
diff --git a/doc/lfun/pick_obj b/doc/lfun/pick_obj
index 6557cee..135135b 100644
--- a/doc/lfun/pick_obj
+++ b/doc/lfun/pick_obj
@@ -1,4 +1,3 @@
-
 pick_obj()
 **********
 
diff --git a/doc/lfun/pick_objects b/doc/lfun/pick_objects
index ac70415..4037c46 100644
--- a/doc/lfun/pick_objects
+++ b/doc/lfun/pick_objects
@@ -1,4 +1,3 @@
-
 pick_objects()
 **************
 
diff --git a/doc/lfun/present_objects b/doc/lfun/present_objects
index 77f31fa..2a4f8a4 100644
--- a/doc/lfun/present_objects
+++ b/doc/lfun/present_objects
@@ -1,4 +1,3 @@
-
 present_objects()
 *****************
 
diff --git a/doc/lfun/present_vitem b/doc/lfun/present_vitem
index e2c1c4f..45f8b21 100644
--- a/doc/lfun/present_vitem
+++ b/doc/lfun/present_vitem
@@ -1,4 +1,3 @@
-
 present_vitem()
 ***************
 
diff --git a/doc/lfun/put b/doc/lfun/put
index 9b1d5eb..3d19e04 100644
--- a/doc/lfun/put
+++ b/doc/lfun/put
@@ -1,4 +1,3 @@
-
 put()
 *****
 
diff --git a/doc/lfun/put_obj b/doc/lfun/put_obj
index ff4dd91..ad4fa75 100644
--- a/doc/lfun/put_obj
+++ b/doc/lfun/put_obj
@@ -1,4 +1,3 @@
-
 put_obj()
 *********
 
diff --git a/doc/lfun/query_prevent_shadow b/doc/lfun/query_prevent_shadow
index 2c8d2f3..0124238 100644
--- a/doc/lfun/query_prevent_shadow
+++ b/doc/lfun/query_prevent_shadow
@@ -1,4 +1,3 @@
-
 query_prevent_shadow()
 **********************
 
diff --git a/doc/lfun/query_real_name b/doc/lfun/query_real_name
index 1ebc69f..36ba904 100644
--- a/doc/lfun/query_real_name
+++ b/doc/lfun/query_real_name
@@ -1,4 +1,3 @@
-
 query_real_name()
 *****************
 
diff --git a/doc/lfun/query_userlist b/doc/lfun/query_userlist
index 1dceab0..6bc1ce6 100644
--- a/doc/lfun/query_userlist
+++ b/doc/lfun/query_userlist
@@ -1,4 +1,3 @@
-
 query_userlist()
 ****************
 
diff --git a/doc/lfun/query_weight_contents b/doc/lfun/query_weight_contents
index bd644f5..66c3468 100644
--- a/doc/lfun/query_weight_contents
+++ b/doc/lfun/query_weight_contents
@@ -1,4 +1,3 @@
-
 query_weight_contents()
 ***********************
 
diff --git a/doc/lfun/reduce_hit_points b/doc/lfun/reduce_hit_points
index f82674f..7e4d39d 100644
--- a/doc/lfun/reduce_hit_points
+++ b/doc/lfun/reduce_hit_points
@@ -1,4 +1,3 @@
-
 reduce_hit_points()
 *******************
 
diff --git a/doc/lfun/reduce_spell_points b/doc/lfun/reduce_spell_points
index cddb7da..5c7e0dd 100644
--- a/doc/lfun/reduce_spell_points
+++ b/doc/lfun/reduce_spell_points
@@ -1,4 +1,3 @@
-
 reduce_spell_points()
 *********************
 
diff --git a/doc/lfun/register_modifier b/doc/lfun/register_modifier
index afe086c..b040877 100644
--- a/doc/lfun/register_modifier
+++ b/doc/lfun/register_modifier
@@ -1,4 +1,3 @@
-
 register_modifier()
 *******************
 
diff --git a/doc/lfun/remove b/doc/lfun/remove
index ea982b1..ed4bd69 100644
--- a/doc/lfun/remove
+++ b/doc/lfun/remove
@@ -1,4 +1,3 @@
-
 remove()
 ********
 
diff --git a/doc/lfun/remove_multiple b/doc/lfun/remove_multiple
index 9e60d55..4789483 100644
--- a/doc/lfun/remove_multiple
+++ b/doc/lfun/remove_multiple
@@ -1,4 +1,3 @@
-
 remove_multiple()
 *****************
 
diff --git a/doc/lfun/reset b/doc/lfun/reset
index 5959b3f..7e07245 100644
--- a/doc/lfun/reset
+++ b/doc/lfun/reset
@@ -1,4 +1,3 @@
-
 reset()
 *******
 
diff --git a/doc/lfun/restore_hit_points b/doc/lfun/restore_hit_points
index b4917cf..fccbe4a 100644
--- a/doc/lfun/restore_hit_points
+++ b/doc/lfun/restore_hit_points
@@ -1,4 +1,3 @@
-
 restore_hit_points()
 ********************
 
diff --git a/doc/lfun/restore_spell_points b/doc/lfun/restore_spell_points
index 2c8e42c..01b832a 100644
--- a/doc/lfun/restore_spell_points
+++ b/doc/lfun/restore_spell_points
@@ -1,4 +1,3 @@
-
 restore_spell_points()
 **********************
 
diff --git a/doc/lfun/save_me b/doc/lfun/save_me
index cbce90a..7c19034 100644
--- a/doc/lfun/save_me
+++ b/doc/lfun/save_me
@@ -1,4 +1,3 @@
-
 save_me()
 *********
 
diff --git a/doc/lfun/second_life b/doc/lfun/second_life
index 1ab849f..8249e79 100644
--- a/doc/lfun/second_life
+++ b/doc/lfun/second_life
@@ -1,4 +1,3 @@
-
 second_life()
 *************
 
diff --git a/doc/lfun/sell_obj b/doc/lfun/sell_obj
index 580fd87..bf2e5d8 100644
--- a/doc/lfun/sell_obj
+++ b/doc/lfun/sell_obj
@@ -1,4 +1,3 @@
-
 sell_obj()
 **********
 
diff --git a/doc/lfun/set_object_next_reset b/doc/lfun/set_object_next_reset
index 9b77a9e..7d874d3 100644
--- a/doc/lfun/set_object_next_reset
+++ b/doc/lfun/set_object_next_reset
@@ -1,4 +1,3 @@
-
 set_object_next_reset()
 ***********************
 
diff --git a/doc/lfun/shoot_dam b/doc/lfun/shoot_dam
index f66be19..407a0cf 100644
--- a/doc/lfun/shoot_dam
+++ b/doc/lfun/shoot_dam
@@ -1,4 +1,3 @@
-
 shoot_dam()
 ***********
 
diff --git a/doc/lfun/short b/doc/lfun/short
index 5da9b46..cc4a235 100644
--- a/doc/lfun/short
+++ b/doc/lfun/short
@@ -1,4 +1,3 @@
-
 short()
 *******
 
diff --git a/doc/lfun/show_notify b/doc/lfun/show_notify
index e69e5ac..695ccea 100644
--- a/doc/lfun/show_notify
+++ b/doc/lfun/show_notify
@@ -1,4 +1,3 @@
-
 show_notify()
 *************
 
diff --git a/doc/lfun/spellbook/AddSpell b/doc/lfun/spellbook/AddSpell
index 65f0df8..c9ba735 100644
--- a/doc/lfun/spellbook/AddSpell
+++ b/doc/lfun/spellbook/AddSpell
@@ -1,4 +1,3 @@
-
 AddSpell()
 **********
 
diff --git a/doc/lfun/spellbook/Erfolg b/doc/lfun/spellbook/Erfolg
index 6338e6d..b67e64d 100644
--- a/doc/lfun/spellbook/Erfolg
+++ b/doc/lfun/spellbook/Erfolg
@@ -1,4 +1,3 @@
-
 Erfolg()
 ********
 
diff --git a/doc/lfun/spellbook/Learn b/doc/lfun/spellbook/Learn
index 8de112e..7e11e98 100644
--- a/doc/lfun/spellbook/Learn
+++ b/doc/lfun/spellbook/Learn
@@ -1,4 +1,3 @@
-
 Learn()
 *******
 
diff --git a/doc/lfun/spellbook/Misserfolg b/doc/lfun/spellbook/Misserfolg
index 5ffe8de..aef67eb 100644
--- a/doc/lfun/spellbook/Misserfolg
+++ b/doc/lfun/spellbook/Misserfolg
@@ -1,4 +1,3 @@
-
 Misserfolg()
 ************
 
diff --git a/doc/lfun/spellbook/QuerySpell b/doc/lfun/spellbook/QuerySpell
index 963d30c..d40b976 100644
--- a/doc/lfun/spellbook/QuerySpell
+++ b/doc/lfun/spellbook/QuerySpell
@@ -1,4 +1,3 @@
-
 QuerySpell()
 ************
 
diff --git a/doc/lfun/spellbook/SpellSuccess b/doc/lfun/spellbook/SpellSuccess
index 564c948..8d2f7e7 100644
--- a/doc/lfun/spellbook/SpellSuccess
+++ b/doc/lfun/spellbook/SpellSuccess
@@ -1,4 +1,3 @@
-
 SpellSuccess()
 **************
 
diff --git a/doc/lfun/spellbook/TryAttackSpell b/doc/lfun/spellbook/TryAttackSpell
index d66684e..0fc8236 100644
--- a/doc/lfun/spellbook/TryAttackSpell
+++ b/doc/lfun/spellbook/TryAttackSpell
@@ -1,4 +1,3 @@
-
 TryAttackSpell()
 ****************
 
diff --git a/doc/lfun/trigger_sensitive_attack b/doc/lfun/trigger_sensitive_attack
index f290fc8..22539d9 100644
--- a/doc/lfun/trigger_sensitive_attack
+++ b/doc/lfun/trigger_sensitive_attack
@@ -1,4 +1,3 @@
-
 trigger_sensitive_attack()
 **************************
 
diff --git a/doc/lfun/trigger_sensitive_inv b/doc/lfun/trigger_sensitive_inv
index 27e26fb..7900f16 100644
--- a/doc/lfun/trigger_sensitive_inv
+++ b/doc/lfun/trigger_sensitive_inv
@@ -1,4 +1,3 @@
-
 trigger_sensitive_inv()
 ***********************
 
diff --git a/doc/lfun/wield_me b/doc/lfun/wield_me
index d1aa842..a3e94e7 100644
--- a/doc/lfun/wield_me
+++ b/doc/lfun/wield_me
@@ -1,4 +1,3 @@
-
 wield_me()
 **********